// Función para elliminar espacios en blanco al comienzo y al final
  function trim(cadena){
	  var micadena="",texto=0;
	  if(cadena.length==0) return "";
	  for (i=0;i<cadena.length;i++)
	    if (cadena.substring(i,i+1)!=" "){
			micadena=cadena.substring(i,cadena.length);
			break;
		}
		for (j=micadena.length;j>i;j--)
		   if(micadena.substring(j-1,j)!=" "){
			   micadena=micadena.substring(0,j);
			   break;
        }
		return micadena;
   }
   function alltrim(cadena){
		var micadena="";
		for (i=0;i<cadena.length;i++){
		   if (cadena.substring(i,i+1)!=" ")
			 micadena=micadena+cadena.substring(i,i+1);
		}
		return micadena;
   }
// Función evalua si es cadena 
  function escadena(cadena){
    checkChar = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúÁÉÍÓÚüÜ ";
    for (i=0;i<=cadena.length;i++)
    	 if((checkChar.indexOf(cadena.charAt(i))==-1)) return (false);
    return (true);	 
  }
// Función evalua si una cadena contiene exclusivamente números
  function esnumero(cadena){
     checkChar = "1234567890";
  	 for (i=0;i<=cadena.length;i++)
  	 		 if((checkChar.indexOf(cadena.charAt(i))==-1)) return (false);
  	 return (true);	 
  }
// Aproxima por lo bajo un número (Creo)
  function getFloor(x) {   return Math.floor(x)}
// Verifica si un elemento determinado está incluido en una lista
  function Existe(lista,Item){
     for (var i = 0; i < lista.length; i++){
  	  if (trim(lista.options[i].text) == trim(Item))
  		 return (true);
  	 }
   return (false);
  }
  function ExisteValor(lista,Item){
		 for (var i = 0; i < lista.length; i++){
  	  if (trim(lista.options[i].value) == trim(Item))
  		 return (true);
  	 }
   return (false);
  }
// Agrega un elemento en una lista
// Parametros: la lista, el valor, el nombre desplegado y la posición 
  function AgregarOpcion(lista,valor,nombre,posicion) {
		if (trim(valor).length==0){
  //     alert('No se agregó ningún valor a la lista.');
  		 return (false);
  		}
  		if (Existe(lista,nombre)){
  //     alert('El elemento ya está incluído en la lista');
  		 return (false);
  		}
      if (valor!=''){
  //		  alert('agregando')
        oNewOption = new Option();
        oNewOption.text = nombre;
        oNewOption.value = valor;
        lista.add(oNewOption, posicion);
      }
  }
// Función para validar una dirección de correo electrónico
  function ValidarEmail(Campo){
  	var ok = true;
  	with (Campo)
  	{
  // Validar que los caracteres que contiene la cuenta de correo
  // esten dentro de los caracteres de la siguiente lista
  		var car_validos = "0123456789abcdefghijlkmnopqrstuvwxyz@.-_"
  		var car_otros = "@.-_";
  		for (var i=0; i < value.length; i++) {
  			var ch = value.substring(i, i+1);
  			if (car_validos.indexOf(ch) == -1) ok = false;
  		}
  		apos = value.indexOf("@");
  		lastpos = value.length-1;
  // Validar primer y ultimo caracter
  		var car1 = value.substring(0, 1);
  		var car2 = value.substring(lastpos, lastpos+1);
  		if ((car_otros.indexOf(car1) != -1) || (car_otros.indexOf(car2) != -1)) ok = false;
  // Validar anterior y siguiente caracter despues de "@"
  		car1 = value.substring(apos-1, apos);
  		car2= value.substring(apos+1, apos+2);
  		if ((car_otros.indexOf(car1) != -1) || (car_otros.indexOf(car2) != -1)) ok = false;
  // Buscar si existe otro simbolo "@" en el campo
  		var subcadena = value.substring(apos + 1, 100);
  		a2pos = subcadena.indexOf("@");
  		spacepos = value.indexOf(" ");
  		dotpos = value.lastIndexOf(".");
  		if (apos < 1 || a2pos != -1 || lastpos - dotpos < 2 || spacepos != -1) ok = false;
  	}
  	if (!ok) return false;
  	return true;
  }
// Función para determinar un valor seleccionado en una lista
function eleccion(lista,mivalor){
   for (var i = 0; i < lista.length; i++)
	  if (lista.options[i].value == mivalor)
		 return lista.options[i].selected = (true);
}
// Función para contar cuantos elementos fueron seleccionados en una lista
function contar_selecciones(lista){
   var cuantos = 0;
   for(var i=1;i<lista.length;i++){
	  if(lista.options[i].selected==true) cuantos++;
   }
   return cuantos; 
}
function array_selecciones(lista){
   var cuales = '';
   for(var i=1;i<lista.length;i++){
	  if(lista.options[i].selected==true) cuales+=lista.options[i].value+',';
   }
   return cuales.substring(0,cuales.lastIndexOf(","));
}
function array_selec_type(lista,tipo){
   var cuales = '';
   if(tipo=='CHAR') mask = '"';
   else mask='';
   for(var i=1;i<lista.length;i++){
	  if(lista.options[i].selected==true) cuales+=mask+lista.options[i].value+mask+',';
   }
   return cuales.substring(0,cuales.lastIndexOf(","));
}
// Función para retornar el texto de una opcion seleccionada en una lista
function texto(lista,valor){
   for (var i = 0; i < lista.length; i++)
	  if (lista.options[i].value == valor)
		 return lista.options[i].text;
}
// Funciones para lanzar una ventana externa (popup)
function launch(newURL, newName, newFeatures, orgName) {
  var remote = open(newURL, newName, newFeatures);
  if (remote.opener == null)
    remote.opener = window;
  remote.opener.name = orgName;
  return remote;
}

function launchRemote(myUrl,x,y,scroll) {
  if (myUrl=="") return (false);
  myRemote = launch(myUrl,
                    "myRemote",
                    "screenx=0,screeny=0,height="+y+",width="+x+",alwaysLowered=0,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=no,scrollbars="+scroll+",status=0,titlebar=0,toolbar=0,z-lock=0",
                    "myWindow");
}
// Función para chequear un solo elemento de una lista de
// casillas de verificación, devuelve el elemento chequeado
function chequear(formulario,check){
   mivalor = check.checked;
   for (var i=0;i<formulario.elements.length;i++){
			 if(formulario.elements[i].type=="checkbox" && formulario.elements[i].name!=check.name){ 
					formulario.elements[i].checked = (false);
			 }
	 }
	 return check.value;
}
// Función para chequear todos los elementos de una lista de
// casillas de verificación
function chequear_todos(formulario,check){
   mivalor = check.checked;
   var total = 0;
   for (var i=0;i<formulario.elements.length;i++){
			 if(formulario.elements[i].type=="checkbox" && formulario.elements[i].name!=check.name && !formulario.elements[i].disabled){ 
					formulario.elements[i].checked = mivalor;
					if(mivalor) total+=1;
			 }
	 }
	 return total;
}
function chequear_todos_columna(formulario,check,columna){
   mivalor = check.checked;
   var total = 0;
   for (var i=0;i<formulario.elements.length;i++){
			 if(formulario.elements[i].type=="checkbox" 
			 &&formulario.elements[i].id == columna){ 
					formulario.elements[i].checked = mivalor;
					if(mivalor) total+=1;
			 }else formulario.elements[i].checked = false;
	 }
	 check.checked = mivalor;
	 return total;
}
// Función para validar fechas. Funciona solo con combos
function ValidaFecha(dia,mes,ano){
			if (trim(dia)!="0" && trim(mes)!="0" && trim(ano)!="0"){
      		// Validación de año bisiesto y fecha de febrero
					if (getFloor(parseInt(ano,10)/4)*4==parseInt(ano,10)){
      		   // si es año bisiesto y la fecha es mayor que 29 de febrero
						 if (parseInt(mes,10)==2 && parseInt(dia,10)>29){
						    alert('Fecha inválida. El mes de febrero no puede tener días mayores que 29 para año bisiesto');
								return false;
      			 }
      	  }
      		else{
					   // si es año normal y la fecha es mayor que 28 de febrero
      		   if (parseInt(mes,10)==2 && parseInt(dia,10)>28){
      			 		alert('Fecha inválida. El mes de febrero no puede tener días mayores que 28');
								return false;
      			 }
      		}
      		// Validación de otros mesies del año
      		if ((parseInt(mes,10)==4 || parseInt(mes,10)==6		
      		|| parseInt(mes,10)==9 || parseInt(mes,10)==11)
      		&& parseInt(dia,10)>30){ 
      				alert('Fecha inválida. El mes no puede tener más de 30 días.');
							return false;
      		}
      }else if(parseInt(dia,10)+parseInt(mes,10)+parseInt(ano,10)!=0){
				alert('Fecha inválida. Falta algún parámetro de la fecha (dia, mes o año)');
				return false;
	    }
			else if(parseInt(dia,10)+parseInt(mes,10)+parseInt(ano,10)==0){
				alert('La fecha no puede estar vacía.');
				return false;
			}
			return true;
}
// Función para validar fechas. Funciona solo con combos
function ValidaFechaOpcional(dia,mes,ano){
			if (trim(dia)!="0" && trim(mes)!="0" && trim(ano)!="0"){
      		// Validación de año bisiesto y fecha de febrero
					if (getFloor(parseInt(ano,10)/4)*4==parseInt(ano,10)){
      		   // si es año bisiesto y la fecha es mayor que 29 de febrero
						 if (parseInt(mes,10)==2 && parseInt(dia,10)>29){
						    alert('Fecha inválida. El mes de febrero no puede tener días mayores que 29 para año bisiesto');
								return false;
      			 }
      	  }
      		else{
					   // si es año normal y la fecha es mayor que 28 de febrero
      		   if (parseInt(mes,10)==2 && parseInt(dia,10)>28){
      			 		alert('Fecha inválida. El mes de febrero no puede tener días mayores que 28');
								return false;
      			 }
      		}
      		// Validación de otros mesies del año
      		if ((parseInt(mes,10)==4 || parseInt(mes,10)==6		
      		|| parseInt(mes,10)==9 || parseInt(mes,10)==11)
      		&& parseInt(dia,10)>30){ 
      				alert('Fecha inválida. El mes no puede tener más de 30 días.');
							return false;
      		}
      }else if(parseInt(dia,10)+parseInt(mes,10)+parseInt(ano,10)!=0){
				alert('Fecha inválida. Falta algún parámetro de la fecha (dia, mes o año)');
				return false;
	    }
			return true;
}
// Función para seleccionar un texto en un campo text
function setfocus(campo){
	campo.select()
	campo.focus()
}
function printit(){  
	if (window.print) {
		window.print() ;  
	} else {
		var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	    document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
	}
}
function indice_elemento(formulario,check){
   for(var i = 0; i < formulario.elements.length; i++)
      if(formulario.elements[i].name==check.name) 
	     return i;
}
function poneDatos(elemento,dato){
	document.getElementById(elemento).innerHTML = dato;
}
function getXmlHttpObject(){
    var xmlhttp;

    /*@cc_on
    @if (@_jscript_version >= 5)
    try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e){
    try{
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e){
    xmlhttp = false;
    }
    }
    @else
    xmlhttp = false;
    @end @*/

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){
        try{
            xmlhttp = new XMLHttpRequest();
        }
        catch (e){
            xmlhttp = false;
        }
    }
    return xmlhttp;
}

function handleHttpResponse(){
	if (http.readyState == 1){
		mensaje_busqueda = "";
		mensaje_busqueda = "<font size='2'><b>Consultando información, por favor espere...</b></font>";
		document.getElementById(seccion).innerHTML = mensaje_busqueda;
    }
    if (http.readyState == 4){
		results = http.responseText;
        document.getElementById(seccion).innerHTML = results;
    }
}
function sendQuerystring(miseccion,pagina,parametros){
	seccion = miseccion;
	url_actual = pagina+'?'+parametros+'&'+Math.floor(Math.random()*10000000+1);
	//alert(url_actual);
	http = getXmlHttpObject();
	http.open("GET", url_actual , true);
	http.onreadystatechange = handleHttpResponse;
	http.send(null);
}
