// hace el submit de la forma y modifica su propiedad "action"
	function submitTheForm(theFormName,action){
		if(action!='')
			document.forms[theFormName].action = action;
		document.forms[theFormName].submit()
	}
	
// Valida la un campo text como requerido y con una longitud maxima, imprime el nombre del campo o un texto opcional
	function validaCampo(nombreForma,nombreCampo){
	var strTexto
	var chrTipoDeDato
	var longitud
	var minimo
	var requerido
	
		//checo si argumentos extra
		if(arguments.length>=6)
			longitud = arguments[5]; // numero que representa longitud maxima
			
		if(arguments.length>=7)
			minimo = arguments[6];	// numero que representa longitud minima

		if(arguments.length>=4)
			requerido = arguments[3]; // 1 si es requerido, 0 sino lo es
	
		if(arguments.length>=3)			//texto que se imprimira el los alerts
			 strTexto = arguments[2]
		else
			 strTexto = nombreCampo;
	  
		if(arguments.length>=5)			
			 chrTipoDeDato = arguments[4] // A=texto, 9=entero, D=decimal;
		
					 
		// valida el campo como requerido
		if(requerido)
			if (document.forms[nombreForma].elements[nombreCampo].value == "")
			{
			  alert("Porfavor introduzca un valor para: [" + strTexto + "] .")
			  document.forms[nombreForma].elements[nombreCampo].focus();
			  return (false);
			}
		
		//valida la logitud maxima
		
		if (!isNaN(longitud)){
			if (document.forms[nombreForma].elements[nombreCampo].value.length > longitud)
			{
			  alert("Porfavor introduzca solo " + longitud + " caracteres en el campo [" + strTexto + "] .");
			  document.forms[nombreForma].elements[nombreCampo].focus();
			  return (false);
			}
		}			
		
		//valida la logitud minima
		if (!isNaN(minimo)){
			if (document.forms[nombreForma].elements[nombreCampo].value.length < minimo)
			{
			  alert("Porfavor introduzca almenos " + minimo + " caracteres en el campo [" + strTexto + "] .");
			  document.forms[nombreForma].elements[nombreCampo].focus();
			  return (false);
			}
		}
		// valida que sea solo texto	
		if (chrTipoDeDato=='A'){
		  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
		  var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
		  var allValid = true;
		  for (i = 0;  i < checkStr.length;  i++)
		  {
		    ch = checkStr.charAt(i);
		    for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		        break;
		    if (j == checkOK.length)
		    {
		      allValid = false;
		      break;
		    }
		  }
		  if (!allValid)
		  {
		    alert("Por favor introduzca solo letras para: [" + strTexto + "]");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false);
		  }
		}

		// valida si es Entero valido
		if (chrTipoDeDato=='9'){
		  var checkOK = "0123456789-,";
		  var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
		  var allValid = true;
		  var decPoints = 0;
		  var allNum = "";
		  for (i = 0;  i < checkStr.length;  i++)
		  {
		    ch = checkStr.charAt(i);
		    for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		        break;
		    if (j == checkOK.length)
		    {
		      allValid = false;
		      break;
		    }
		    if (ch != ",")
		      allNum += ch;
		  }
		  if (!allValid)
		  {
		    alert("Por favor introduzca solo números enteros para: [" + strTexto + "] Ej: 99,999");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false);
		  }
		}

		//valida si es decimal 
		if (chrTipoDeDato=='D'){
		  var checkOK = "0123456789-.,";
		  var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
		  var allValid = true;
		  var decPoints = 0;
		  var allNum = "";
		  for (i = 0;  i < checkStr.length;  i++)
		  {
		    ch = checkStr.charAt(i);
		    for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		        break;
		    if (j == checkOK.length)
		    {
		      allValid = false;
		      break;
		    }
		    if (ch == ".")
		    {
		      allNum += ".";
		      decPoints++;
		    }
		    else if (ch != ",")
		      allNum += ch;
		  }
		  if (!allValid)
		  {
		    alert("Por favor introduzca solo números decimales en: [" + strTexto + "] Ej: 9,999.99");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false);
		  }

		  if (decPoints > 1)
		  {
		    alert("Formato de número decimal incorrecto en: [" + strTexto + "] Ej: 9,999.99");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false);
		  }
		}
			
		//valida si es fecha del tipo MM/DD/AAAA
		if (chrTipoDeDato=='F'){
			var allValid = true;
			var checkStr = document.forms[nombreForma].elements[nombreCampo].value;
			
			if(!checkStr.length==10) 
				allValid = false;
			
				if(isNaN(checkStr.charAt(0))) allValid = false;
			
			if(isNaN(checkStr.charAt(1))) allValid = false;
			if(isNaN(checkStr.charAt(3))) allValid = false;
			if(isNaN(checkStr.charAt(4))) allValid = false;
			if(isNaN(checkStr.charAt(6))) allValid = false;
			if(isNaN(checkStr.charAt(7))) allValid = false;
			if(isNaN(checkStr.charAt(8))) allValid = false;
			if(isNaN(checkStr.charAt(9))) allValid = false;
			if(checkStr.charAt(2)!='/') allValid = false;
			if(checkStr.charAt(5)!='/') allValid = false;
			
			var mes = checkStr.charAt(0)+checkStr.charAt(1)
			var dia = checkStr.charAt(3)+checkStr.charAt(4)
			var anio =checkStr.charAt(6)+checkStr.charAt(7)+checkStr.charAt(8)+checkStr.charAt(9)
			
			if(parseInt(mes,10)<1 || parseInt(mes,10)>12) allValid = false;
			if(parseInt(dia,10)<1 || parseInt(dia,10)>31) allValid = false;
			if(parseInt(anio)<1900) allValid = false;

		  if (!allValid)
		  {
		    alert("Formato de fecha invalido en el campo: [" + strTexto + "] debe usar MM/DD/AAAA");
		    document.forms[nombreForma].elements[nombreCampo].focus();
		    return (false);
		  }
		}
		
		
		return(true);
	}








	
// Funciones para agregar o eliminar elementos de una lista de selección multiple a otra

	// función para agregar los elementos seleccionados de la lista 1 a la lista 2
	function onclick_cmdAgregar(strNombreForma,strListaUno,strListaDos) {

		// Agregamos todos los elementos
		for (intContador=0; intContador< document.forms[strNombreForma].elements[strListaUno].length; intContador++ ) {
		
			// Identificamos los elementos que han sido seleccinados
			if ( document.forms[strNombreForma].elements[strListaUno].options[intContador].selected ) {

				blnSubIndicadorEncontrado = 0;

				// Agregamos solamente los elementos que no existan en el destino
				for (intContadorExistencias=0; intContadorExistencias < document.forms[strNombreForma].elements[strListaDos].length; intContadorExistencias++ )
					if ( document.forms[strNombreForma].elements[strListaUno].options[intContador].value == document.forms[strNombreForma].elements[strListaDos].options[intContadorExistencias].value )
						blnSubIndicadorEncontrado = 1;

				if ( blnSubIndicadorEncontrado == 0 ) {
					objElemento = document.createElement('OPTION');
					objElemento.text = document.forms[strNombreForma].elements[strListaUno].options[intContador].text;
					objElemento.value = document.forms[strNombreForma].elements[strListaUno].options[intContador].value;
					document.forms[strNombreForma].elements[strListaDos].add(objElemento);
				}
			}
		}
	}
	
	//función para remover los elementos seleccionados de la lista2
	function onclick_cmdEliminar(strNombreForma,strListaDos) {
		// Eliminamos los elementos seleccionados 
		if ( document.forms[strNombreForma].elements[strListaDos].length > 0 ) {
			for(i=0;i<document.forms[strNombreForma].elements[strListaDos].length;i++){
				if (document.forms[strNombreForma].elements[strListaDos].options[i].selected){
					//document.forms[strNombreForma].elements[strListaDos].remove( document.forms[strNombreForma].elements[strListaDos].selectedIndex );
					document.forms[strNombreForma].elements[strListaDos].options[i] = null;
					//intElementos--				
				}
			}
		}
	}
	
	// esta función deve ir en el onCLick del boton para salvar o enviar los elementos configurados en la lista 2
	// sirve para seleccionarlos ya que sino el metodo POST no manda los valores.
	
	function cmdSalvarOnClick(strNombreForma,strListaDos){
		var i;
		for(i=0;i<document.forms[strNombreForma].elements[strListaDos].length;i++){
			document.forms[strNombreForma].elements[strListaDos].options[i].selected = 1;
		}
	}

//	VARIABLES QUE REQUIEREN LAS FUNCIONES
	var intPaginaActual = 0;
	
// ESTE CÓDIGO ASP VA EN LA PÁGINA DONDE VA LA PAGINACIÓN DENTRO DE UN <SCRIPT>
//	<%If IsArray(vntResultado) Then
//		intTotalPaginas = (Ubound(vntResultado,2)+1) Mod 5
//		If intTotalPaginas > 0 Then 
//			intTotalPaginas = Fix((Ubound(vntResultado,2)+1)/5) + 1
//		Else
//			intTotalPaginas = (Ubound(vntResultado,2)+1)/5
//		End If%>
//	var intTotalPaginas = <%=intTotalPaginas-1%>;
//	<%End If%>

	
	function IsNets(){
		return navigator.appName == 'Netscape';
	}


//		FUNCIONES QUE CONTROLAN EL CAMBIO DE PÁGINAS 

	function escondePaginas(){
		var intSegmento
		if(IsNets()){
			for(intSegmento=0;intSegmento<=intTotalPaginas;intSegmento++){
					document.layers['S'+intSegmento].visibility = "hide";
			}
		}else{
			for(intSegmento=0;intSegmento<=intTotalPaginas;intSegmento++){
					document.all['S'+intSegmento].style.display = 'none';
			}
		}
	}
	
	function cambiaPaginaAdelante(n) {
		if (intPaginaActual < intTotalPaginas){
			escondePaginas();
			if(IsNets()){
				document.layers['S' + n].visibility='show';
				//document.layers['Titulo'].document.write('Pagina ' + n + ' De ' + intTotalPaginas);
			}else{
				document.all['S' + n].style.display = '';
				//document.all.Titulo.innerHTML = 'Pagina ' + n + ' De ' + intTotalPaginas;
			}
			intPaginaActual = intPaginaActual + 1
		}
	}
	
	function cambiaPaginaAtraz(n) {
		if (intPaginaActual > 0){
			escondePaginas();
			if(IsNets()){
				document.layers['S' + n].visibility="show";
				//document.layers['Titulo'].document.write('Pagina ' + n + ' De ' + intTotalPaginas);
			}else{
				document.all['S' + n].style.display = '';
				//document.all.Titulo.innerHTML = 'Pagina ' + n + ' De ' + intTotalPaginas;
			}
			intPaginaActual = intPaginaActual - 1
		}
	}
	


function ventana_Grafica() {
var Imprimevw=window.open("","Imprimew",config="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=yes,left=20,top=20,width=550,height=290");
Imprimevw.focus();
}

function Pantalla(w,h,var1) {
var Pantallapw=window.open(var1,"Pantalla1","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=20,top=20,width=" + w + ",height=" + h +"");
Pantallapw.focus();
}
function Ventana(w,h,var1) {

	msgWindow = window.open(var1, "Ventana1", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=" + w + ",height=" + h +"");
	msgWindow.name = "Ventana1";
	msgWindow.focus();
}
function Orden(w,h,var1) {

var Pantallaow=window.open(var1,"Orden1","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,left=20,top=20,width=" + w + ",height=" + h +"");
Pantallaow.focus();
}

   function click()
   {if (event.button==2)
      {alert('Funcion no disponible !!!') }

   }

   function sobreImagen(iNombre,estatus,iImagen)
   {if (estatus)
     {document[iNombre].src=iImagen + "1.gif"}
    else
     {document[iNombre].src=iImagen + "0.gif"}
   }

   function salir()
   {window.close()}

      function setselect (obj,valor) {
       	for (var i = 0; i < obj.length; i++) {
                 if (obj.options[i].value == valor)
               	{
       		obj.options[i].selected = true;
       		}
       	}
      }

      function setopc (obj,valor) {
       	for (var i = 0; i < obj.length; i++) {
                 if (obj[i].value == valor)
               	{
       		obj[i].checked = true;
       		}
       	}
      }

      function setchk (obj,valor) {
	obj.checked = true;

      }

      function settext (obj,valor) {
      	obj.value = valor;
      }
	

        //      Funcion que regresa el caracter de newline, de acuerdo a la plataforma.
        //      Es util para desplegar en TextAreas y respetar los "carriage returns"
        function newline()
        {   if (navigator.appVersion.lastIndexOf('Win') != -1)
                return "\r\n"
                else
                        return "\n"
        }
                
        function Text_Invert(exp)
        {       var cr=null, pos=exp.indexOf("`")
        
                cr = newline()
                if (pos != -1)
                {       exp=exp.substring(0,pos-1) + cr + exp.substring(pos+1,exp.length)
                        return Text_Invert(exp)
                }
                else
                        return exp
        }
        

      function setmemo (obj,valor) {
      	obj.value = Text_Invert(valor);
      }

      function updmemo (obj) {
      	obj.value = obj.value;
      }

function showhide(what){
if (what.style.display=='none'){

what.style.display='';
	}
else{
what.style.display='none'

	}
}
