/**********************************
 ** Validaciones para los campos ** 
 **********************************/
/**
 * Valida que se capturen sólo caracteres alfanuméricos permitidos.
 * Carateres no permitidos Postgresql:
 * -	Comilla simple '
 * -	Diagonal invertida \
 * -	Pipe | (convención de UNICOM)
 * Caracteres no permitidos Oracle:
 * -	Comilla simple '
 * -	Pipe | (convención de UNICOM)
 * #Fuente: Departamento de Desarrollo de Bases de Datos.
 *
 * Para uniformar las validaciones de todos los sistemas no se permitirán los caracteres que no permite Postgresql.
 * Esta validación debe ser llamada por la funcion alfa() y por las funciones que validen los campos al darle submit al form.
 */
function validaAlfa(elemento, campo){
	var alfa=("");
	//var alfa=("abcdefghijklmnñopqrstuvwxyz ABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúüÁÉÍÓÚÜ0123456789.,;:_-¡!#$%&/()=¿?+*{}[]´\"");
	msj = "";
	noPermitidos = "";
	cont = 0;
    saltoLinea=0;
	valor = trim(elemento.value);
	elemento.value = valor;
	if (campo == 0) {//Nombre y Apellidos
		alfa=("abcdefghijklmnñopqrstuvwxyz ABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúüÁÉÍÓÚÜ'´\n");
	} else if (campo == 1) {//Calle y numero, Colonia, adscripción
		alfa=("abcdefghijklmnñopqrstuvwxyz ABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúüÁÉÍÓÚÜ0123456789.,-;:#/´'\n");
	} else if (campo == 2) {//TextAreas, telefonos, fax
		alfa=("abcdefghijklmnñopqrstuvwxyz ABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúüÁÉÍÓÚÜ0123456789.,;:_-¡!¿?()[]{}+*/=#$%&\´'");
	} else if (campo == 3) {//Folio
		alfa=("emorEMOR0123456789-");
	} else if (campo == 4) {//Expediente
		alfa=("ciCI0123456789/");
	}else if (campo == 5) {//Folio y Expediente
		alfa=("emorEMOR-ci/CI0123456789");
	}else if (campo == 6){//Números y letras
		alfa= ("abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789´'");
	}else if (campo == 7){//Correo electrónico
		alfa= ("abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789.@_-");
	}else if (campo == 8){//Login
		alfa= ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-");
	}else if (campo == 9){//varios logins
		alfa= ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-");
	}else if (campo == 10) {//edad
		alfa=("0123456789");
	}else if (campo == 11) {//edad
		alfa=("0123456789.");
	}
	
	valor = trim(valor);
	elemento.value = valor;
	
	if(valor != ""){
		/*
		 * For para comparar si el caracter introducido esta dentro de los permitidos
		 * Se recorren ambas cadenas, permitidos y el campo a validar para comparar caracter por caracter.
		 */
		
		for(i = 0; i < valor.length; i++){

			for(j = 0; j < alfa.length; j++){
				if(valor.charAt(i) != alfa.charAt(j)){
					cont = 0;
				}else if(valor.charAt(i) == alfa.charAt(j)){
					cont++;
					break;
				}
			}
			/*
			 * Si cont = 0 (se encontró un caracter no válido) entonces se compara para ver cuál caracter fue el encontrado,
			 * se concatenan para mostrarlos en un mensaje de error y se eliminan del campo.
			 * Si el caracter es un salto de linea \n, este no es incluido como caracter no permitido,
			 * por lo cual no se agrega al String noPermitidos.
			 */
			if(cont == 0){
				noPermitidos += valor.charAt(i);
			 	saltoLinea ++;
			 	if(valor.charAt(i)=='\n'){
			 		noPermitidos= noPermitidos.substring(0, saltoLinea -2);
			 		saltoLinea =saltoLinea-2 ;
			 	} else {
				 	/*
				 	 * Se eliminan los caracteres no válidos.
				 	 */
				 	var reemplazo = "";
				 	if(valor.charAt(i) == '|') 
				 		reemplazo = " ";
				 	if(valor.charAt(i) == '\"') 
				 		reemplazo = "'";
					if(i == 0 && valor.charAt(i)!='\n'){
						valor = reemplazo + valor.substring(1, valor.length);
						 i--;
					}else if(i == elemento.value.length - 1 && valor.charAt(i)!='\n'){
						valor = valor.substring(0, valor.length - 1) + reemplazo;
						i--;
					}else if (valor.charAt(i)!='\n'){
						valor = valor.substring(0, i) + reemplazo + valor.substring(i + 1, valor.length);
						i--;
					}	
			 	}
			}
		}
	}
     /*
	 * Se arma el mensaje de error con los caracteres invalidos.
	 */
	if(noPermitidos != ""){
		msj += "No se permiten los siguientes caracteres: \" "+ noPermitidos +" \"";
	}
	valor = trim(valor);
	elemento.value = valor;
	return msj;
}
/**
 * Función que debe ser llamada en los campos que deben contener sólo caracteres alfanumericos al momento de irlos capturando.
 */
function alfa(elemento, campo){
	msj = validaAlfa(elemento, campo);
	if(msj != ""){
		alert(msj);
		eval(elemento.focus());
	}
}
/**
 * Valida que se capturen sólo números.
 * Esta validación debe ser llamada por la funcion numero() y por las funciones que validen los campos al darle submit al form.
 */
function validaNumero(elemento,numinf,numsup){
	var numeros = /^\d*$/;
	var msj = "";
	rango = "";
	valor = elemento.value;
	// Se comento debido a que el cursor al cambiar de campo ya no se visualiza
	//valor = trim(elemento.value);
	//elemento.value = valor;
	
   // if(numinf > 0 && numsup > 0)
		rango = " del "+ numinf +" al "+ numsup;
	if(valor!=""){
		/*
		 * Se valida que sea un número sin ningún tipo de caracter especial.
		 */
		if (isNaN(valor) || !numeros.test(valor) || (valor<numinf) || (valor>numsup)){
			/*
			 * Se valida que el número este dentro del rango permitido.
			 */
		    elemento.value="";
			msj = "Ingrese solamente números"+ rango;
		}
	}
	return msj;
}


/**
 * Valida que se capturen sólo números al ir capturando los datos .
 * 
 */
function fnValidarNumero(elemento,numinf,numsup){
	var num=/^(([0-9][ ])| ([ ][0-9]) | ([.][0-9]) | ([0-9][.]) | ([a-z] | [A-Z]) )$/;
	var puntoI = /^([.][0-9])$/;
	var puntoF = /^([0-9][.])$/;
	valor=elemento.value;
	
	var keycode;
	if (window.event) keycode = window.event.keyCode; //Funcion para IE
	else if (evento) keycode = evento.which;//Funcion para Firefox
	//alert(keycode);
	 
	if (valor!="" && keycode!=9){
		
		if (isNaN(valor) || valor == " " || valor == "  " || num.test(valor) || puntoI.test(valor) || puntoF.test(valor)){
			
		  //Se quitan los caracteres que no sean números	
		  validaAlfa(elemento, 10); 
		  
	   	if (!isNaN(valor) && !valor == " " && !valor == "  " && !num.test(valor) && !puntoI.test(valor) && !puntoF.test(valor) && (valor<numinf || valor>numsup) ){
			alert("Ingrese solamente números del "+numinf+" al "+numsup);
			elemento.value="";
			elemento.focus();
			valor="";
		}
		}
		 else if ( (valor<numinf) || (valor>numsup) )
		 {
					alert("Ingrese solamente números del "+numinf+" al "+numsup);
					elemento.value="";
			        elemento.focus();					
					valor="";
		}
	}
	return valor;
}


/*
 * Función que evalua si se estan metiendo números decimales dentro de un rango predefinido y con ciertos decimales.
 */
function validaNumeroConDecimales(elemento,numInf, numSup, decimales){

  	var keycode;
	if (window.event) keycode = window.event.keyCode; //Funcion para IE
	else if (evento) keycode = evento.which;//Funcion para Firefox
	//alert(keycode);
      
	//Se quitan los caracteres que no sean números	
	if (keycode!=8 && keycode!=9 && keycode!=37 && keycode!=39 && keycode!=46 && keycode!=16){
     validaAlfa(elemento, 11); 
    }       
      
	 var campo=trim(elemento.value);
	 var valor="";
	 
	if (isNaN(campo) || (campo=="."))
	{
		valor="";
	}
	else
	{
	var	campoF=parseFloat(campo);
		
		if ((campoF<numInf) || (campoF>numSup))
		{
			alert("Ingrese solamente números entre el "+numInf+" y el "+numSup+".");
			valor="";
			elemento.value=trim(valor);			
		}
		else
	    {
			var Char;
			var contador=-1;
			valor="";

			for (i = 0; i < campo.length && contador < decimales; i++) 
			{ 
				if (contador>=0){ 
					contador++; 
				}
				Char = campo.charAt(i); 
				if (Char=="."){
					 contador=0;
				}	
				valor+=Char;
			}
		}
	}
	
	if(valor!="")
	{
	var Flotante="";
	Flotante=valor.charAt(0);
		if(Flotante==".")
		{
		  valor="0"+valor;
		}
	}
	
	if (keycode!=8 && keycode!=9 && keycode!=37 && keycode!=39 && keycode!=46 && keycode!=16){
	 elemento.value=trim(valor);
	}
	return valor;
}


/*
 * Función que evalua si se estan metiendo números decimales dentro de un rango predefinido
 * y con ciertos decimales; regresa un string.
 */
function fnvalidaNumeroConDecimales(elemento,numInf, numSup, decimales){

     //elemento.value=trim(elemento.value);

	 var campo=elemento.value;
	 var valor="";
	 var msj = "";
	 
	if (isNaN(campo) || (campo=="."))
	{
		valor="";
		msj+= "Ingrese solamente números entre el "+numInf+" y el "+numSup+"."
	} else {
	var	campoF=parseFloat(campo);
		
		if ((campoF<numInf) || (campoF>numSup))
		{
			msj+= "Ingrese solamente números entre el "+numInf+" y el "+numSup+"."
			valor="";
		} else {
			var Char;
			var contador=-1;
			valor="";

			for (i = 0; i < campo.length && contador < decimales; i++) 
			{ 
				if (contador>=0){ 
					contador++; 
				}
				Char = campo.charAt(i); 
				if (Char=="."){
					 contador=0;
				}	
				valor+=Char;
			}
		}
	}
	
	if(valor!="")
	{
	var Flotante="";
	Flotante=valor.charAt(0);
		if(Flotante==".")
		{
		  valor="0"+valor;
		}
	}
	elemento.value=valor;
	return msj;
}




/**
 * Valida que se capturen sólo números.
 * Esta validación debe ser llamada por la funcion numero() y por las funciones que validen los campos al darle submit al form.
 */
function validaSoloNumero(elemento,nombreCampo){
	var numeros = /^\d*$/;
	msj = "";
	rango = "";
	valor = trim(elemento.value);
	elemento.value = valor;
	   
	if(valor!=""){
		/*
		 * Se valida que sea un número sin ningún tipo de caracter especial.
		 */
		if (isNaN(valor) || !numeros.test(valor)){
			/*
			 * Se valida que el número este dentro del rango permitido.
			 */
		    elemento.value="";
			msj = "El dato "+ nombreCampo +" debe ser un número entero.";
		}
	}
	return msj;
}

/**
 * Función que debe ser llamada en los campos que deben contener sólo números al momento de irlos capturando.
 */
function soloNumero(elemento, nombreCampo){
	msj = validaSoloNumero(elemento, nombreCampo);
	if(msj != ""){
		alert(msj);
		elemento.value = "";
		elemento.focus();
	}
}


/**
 * Función que debe ser llamada en los campos que deben contener sólo números al momento de irlos capturando.
 */
function numero(elemento, numinf, numsup){
	msj = validaNumero(elemento, numinf, numsup);
	if(msj != ""){
		alert(msj);
		elemento.value = "";
		elemento.focus();
	}
}

/*
 * Funcion para validar campos de fecha.
 */
function validaDia(elemento,mes,anio,nombreCampo){
	
	
	var dia=elemento.value;
	var msj="";
	
	var fecha=new Date();
	if (dia!=""){
		dia =trim(dia);
		elemento.value = dia;
	}
	msj += validaSoloNumero(elemento,nombreCampo);
	
	if(anio!=null){
		fecha.setYear(anio);
		fecha.setMonth(mes - 1);
		fecha.setDate(dia);
	}
	
	
   
	
	ENERO_SUP=31;
	//Se verifica si el año es bisiesto para ver el último día de febrero.
	FEBRERO_SUP = ((fecha.getFullYear() % 4 == 0) && ((fecha.getFullYear() % 100 != 0)||(fecha.getFullYear() % 400 == 0)))?29:28;	
	MARZO_SUP=31;
	ABRIL_SUP=30;
	MAYO_SUP=31;
	JUNIO_SUP=30;
	JULIO_SUP=31;
	AGOSTO_SUP=31;
	SEPTIEMBRE_SUP=30;
	OCTUBRE_SUP=31;
	NOVIEMBRE_SUP=30;
	DICIEMBRE_SUP=31;
	
	//SE VERIFICA SI ES AÑO BISIESTO PARA VER EL ÚLTIMO DÍA DE FEBRERO.
	if(mes == "01" && ((dia == 0) || (dia > ENERO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Enero.\n";
		elemento.value="";
	}else if(mes == "02" && ((dia == 0) || (dia > FEBRERO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Febrero.\n";
		elemento.value="";
	}else if(mes == "03" && ((dia == 0) || (dia > MARZO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Marzo.\n";
		elemento.value="";
	}else if(mes == "04" && ((dia == 0) || (dia > ABRIL_SUP))){
		msj = "-Ingrese una fecha válida para el mes de Abril.\n";
		elemento.value="";
	}else if(mes == "05" && ((dia == 0) || (dia > MAYO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Mayo.\n";
		elemento.value="";
	}else if(mes == "06" && ((dia == 0) || (dia > JUNIO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Junio.\n";
		elemento.value="";
	}else if(mes == "07" && ((dia == 0) || (dia > JULIO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Julio.\n";
		elemento.value="";
	}else if(mes == "08" && ((dia == 0) || (dia > AGOSTO_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Agosto.\n";
		elemento.value="";
	}else if(mes == "09" && ((dia == 0) || (dia > SEPTIEMBRE_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Septiembre.\n";
		elemento.value="";
	}else if(mes == "10" && ((dia == 0) || (dia > OCTUBRE_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Octubre.\n";
		elemento.value="";
	}else if(mes == "11" && ((dia == 0) || (dia > NOVIEMBRE_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Noviembre.\n";
		elemento.value="";
	}else if(mes == "12" && ((dia == 0) || (dia > DICIEMBRE_SUP))){
		msj = "- Ingrese una fecha válida para el mes de Diciembre.\n";
		elemento.value="";
	}
	return msj;
}

/**
 * Función que debe ser llamada en los campos de día, mes y año al momento de irlos capturando.
 * Sólo realizará la validación cuando se hayan capturado el mes y el año para verificar si el día esta dentro del rango.
 */
function dia(elemento, mes, anio, nombreCampo){
	msj = "";
	if(elemento.value != "" && mes != "" && anio != ""){
		msj = validaDia(elemento, mes, anio, nombreCampo);
		if(msj != ""){
			alert(msj);
			elemento.value = "";
			elemento.focus();
		}
	}else{
		if(elemento.value != "") {
			msj = validaSoloNumero(elemento,nombreCampo);
		}
		if(msj != ""){
			alert(msj);
			elemento.value = "";
			elemento.focus();
		}
	}
}
/**
 * Valida que se capturen sólo rangos válidos para las horas y minutos.
 * Esta validación debe ser llamada por la funcion horas() y por las funciones que validen los campos al darle submit al form.
 */
function validaHoras(elemento,numinf,numsup){
	var num=/^(([0-9][ ])| ([ ][0-9]) | ([.][0-9]) | ([0-9][.]) | ([a-z] | [A-Z]))$/;
	var puntoI = /^([.][0-9])$/;
	var puntoF = /^([0-9][.])$/;
	var signo = /^([0-9][-])$/;
	msj = "";
	valor = trim(elemento.value);
	elemento.value = valor;
	
	if (valor!=""){
		/*
		 * Se valida que no contenga espacios al inicio, final, punto al inicio, al final, letras ni guión (-).
		 */
		if (isNaN(valor) || valor == " " || valor == "  " || num.test(valor) || puntoI.test(valor) || puntoF.test(valor) || signo.test(valor)){
			msj = "Ingrese solamente números del "+numinf+" al "+numsup;
		}else if((valor<numinf) || (valor>numsup)){
			/*
			 * Se valida que no pongan números mayores o menores a los que están permitidos por mes
			 */
			msj = "Ingrese solamente números del "+numinf+" al "+numsup;
		}
	}
	return msj;
}
/**
 * Función que debe ser llamada en los campos de horas y minutos al momento de irlos capturando.
 */
function horas(elemento, numinf, numsup){
	msj = validaHoras(elemento, numinf, numsup);
	if(msj != ""){
		alert(msj);
		elemento.value = "";
		elemento.focus();
	}
}
/**
 * Esta función se utiliza para verificar que en el código postal se capturen solo números.
 * Conforme se captura es llamada para ir verificandolo, si se encuentra un caracter no permitido,
 * el campo se limpia y se emite un mensaje.
 * Esta validación debe ser llamada por la funcion cp() y por las funciones que validen los campos al darle submit al form.
 */
function validaCP(elemento){
	var numeros = ("0123456789");
	msj = "";
	valor = trim(elemento.value);
	if (valor!="") {
		for (i = 0; i < valor.length; i++) {
			for (j= 0; j < numeros.length; j++) {
				if (valor.charAt(i) != numeros.charAt(j)) {
					valido = 0;
				} else if (valor.charAt(i) == numeros.charAt(j)){
					valido = 1;
					break;
				}
			}
			if (valido == 0) {
				msj="Solo se permiten números";
				if(i == 0){
					valor = valor.substring(1, valor.length);
					i--;
				}else if(i == valor.length - 1){
					valor = valor.substring(0, valor.length - 1);
					i--;
				}else{
					valor = valor.substring(0, i) + valor.substring(i + 1, valor.length);
					i--;
				}
			}
		}/*
		if (valor != "" && valor.length < 5) {
			longitud = valor.length;
			for (i = 0; i < 5 - longitud; i++) {
				valor = "0"+ valor;
			}
		}*/
	}
	elemento.value = valor;
	return msj;
}
/**
 * Función que debe ser llamada en los campos de código postal al momento de irlos capturando.
 */
function cp(elemento){
	msj = validaCP(elemento);
	if(msj != ""){
		alert(msj);
		elemento.focus();
	}
}
/**
 * Función que valida el formato de un email válido.
 * Esta validación debe ser llamada por la funcion email() y por las funciones que validen los campos al darle submit al form.
 */

function validaEmail(elemento, condicion){
    msj = "";
    correo = 0;
          
    msj =  validaAlfa(elemento, condicion);
    
    if(msj == ""){
      cont = 0;
	  valor = elemento.value;
	  valor = trim(valor);
	  elemento.value = valor;
	  var mail = /^\w[-.\w]*@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+$/i;

      if(valor != "" ){
	  for(i = 0; i < valor.length; i++)
	   {
	    if(valor.charAt(i) == "@"){ cont++;}
	   }
	   
        if( !(mail.test(valor)) || cont > 1  ){
	     msj="El dato \"Correo electrónico\" debe contener un correo con el siguiente formato: nombre@correo.com";
	   }
	 }

	}
	return msj;
}

/**
 * Función que debe ser llamada en los campos de correo electrónico al momento de irlos capturando.
 */
function email(elemento, condicion){
	msj = "";
	if (elemento.value != "") {
		msj = validaEmail(elemento, condicion);
	}
	if(msj != ""){
		alert(msj);
		//elemento.value = "";
		elemento.focus();
	}
}

/**
 * Función que elimina los espacios al inicio y al final de una cadena.
 */
function trim (valor) {
	//alert ("\""+ valor +"\"");
	for(i = 0; i < valor.length; i++){
		if (valor.charAt(0) == " "){
			valor = valor.substring(1, valor.length);
			i--;
		}
		if (valor.charAt(valor.length - 1) == " "){
			valor = valor.substring(0, valor.length - 1);
			i--;
		}
	}
	//alert ("\""+ valor +"\"");
	return valor;
}

/**
 * Valida la longitud de los campos textareas en el evento onkeyup
 * y no permite que se escriban más caracteres de los permitidos.
 */
function verificaTamano (elemento, elementoTamano, limite, nombre) {
	elementoTamano.value = elemento.value.length;
	if (elementoTamano.value > limite) {
		elemento.value = elemento.value.substring(0, limite);
		elementoTamano.value = elemento.value.length;
		alert ("El dato "+nombre+" no debe exceder los "+ limite +" caracteres de longitud.");
	}
}
/**
 * Valida la longitud de los campos textareas en el evento onkeyup
 * y no permite que se escriban más caracteres de los permitidos.
 * Este metodo no utiliza el indicador de cuantos caracteres se han escrito.
 */
function verificaTamanoSimple (elemento, limite, nombre) {
	var tam = elemento.value.length;
	if (tam > limite) {
		elemento.value = elemento.value.substring(0, limite);
		alert ("El dato "+nombre+" no debe exceder los "+ limite +" caracteres de longitud.");
	}
}

/**
 * Valida la longitud de los campos textareas.
 */
function keyPress (e, elemento, elementoTamano, limite) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	//alert("keycode: "+ keycode+ ", elemento: "+ elemento.value.length +", elementoTamaño: "+ elementoTamano.value);
	if (elemento.value.length > limite && keycode != 8 && keycode != 17 && keycode != 18 && keycode != 19 && keycode != 20){
		elementoTamano.value = elemento.value.length;
		return false;
	}else{
		elementoTamano.value = elemento.value.length;
		return true;
	}
}




/**
 *Completa RFC 
 **/
 
 function completaRFC(campo){
 	 if (campo.value.length==10){
 		campo.value= campo.value+'000';
 	}
 	return campo;
 }
 
 
 /**
 **Validación para el RFC
 **/
 
 function validaRfc(texto,forma){
	var regexp=/^[a-z]{4}[0-9]{2}([0][1-9]|[1][012])([012][1-9]|31|[123][0])([a-z0-9]{3})?$/i;
	var resultado=regexp.test(texto);
	if(!resultado){
		alert("Ingrese un RFC válido");
		return false;
	}
	return true;
}

 /**
 **Validación para el RFC al hacer el Submit
 **/
 
 function validaRfcSub(texto){
	var regexp=/^[a-z]{4}[0-9]{2}([0][1-9]|[1][012])([012][1-9]|31|[123][0])([a-z0-9]{3})?$/i;
	var resultado=regexp.test(texto);
	var msj="";
	if(!resultado){
		msj= "Ingrese un RFC válido";
		return msj;
	}
	return msj;
}


/**
*Validación para hacer submit al presionar Enter.
*En el JSP poner onkeypress= inSummitEnter (event, nombreForm);
**/
function iSubmitEnter(oEvento, oFormulario){ 
     var iAscii; 

     if (oEvento.keyCode) 
         iAscii = oEvento.keyCode; 
     else if (oEvento.which) 
         iAscii = oEvento.which; 
     else 
         return false; 

     if (iAscii == 13) 
	 	return true; 
}  

/**Función que pasa el valor del campo a mayúsculas al cambiar de campo
 *Poner en el JSP onchange="pasaMayusculas(this)"
 */
function pasaMayusculas(elemento) {
	elemento.value=elemento.value.toUpperCase();
}

// JavaScript Document
function validarFiltro(form){
	var msj="";
	var idFechaInicio;
	var idFechaFin;
	var diaInicio=form.diaInicio.value;
	var mesInicio=form.mesInicio.value;
	var anioInicio=form.anioInicio.value;
	var diaFin=form.diaFin.value;
	var mesFin=form.mesFin.value;
	var anioFin=form.anioFin.value;
	
	var fechaInicio=anioInicio+"/"+mesInicio+"/"+diaInicio;
	var fechaFin=anioFin+"/"+mesFin+"/"+diaFin;
	
	var sinFechaInicio=diaInicio+mesInicio+anioInicio;
	var sinFechaFin=diaFin+mesFin+anioFin;
		
	if(sinFechaInicio=="" && sinFechaFin==""){
		msj+="Debe proporcionar los parámetros de búsqueda"
	}else{
		idFechaInicio=validarFechaCompleta(diaInicio,mesInicio,anioInicio);
		if(idFechaInicio!=0 && idFechaInicio!=7){
			msj+="Complete la fecha para el dato \"Desde:\"\n";
			if(idFechaInicio==1 || idFechaInicio==2 || idFechaInicio==3){
				msj+=validarDia(form.diaInicio,"Desde:");
			}
		}else if(idFechaInicio==0){
			msj+=validarDia(form.diaInicio,"Desde:");
			msj+=validarMes(form.diaInicio,mesInicio,anioInicio);
		}
			
		idFechaFin=validarFechaCompleta(diaFin,mesFin,anioFin);
		if(idFechaFin!=0 && idFechaFin!=7){
			msj+="Complete la fecha para el dato \"Hasta:\"\n";
			if(idFechaFin==1 || idFechaFin==2 || idFechaFin==3){
				msj+=validarDia(form.diaFin,"Hasta:");
			}
		}else if(idFechaFin==0){
			msj+=validarDia(form.diaFin,"Hasta:");
			msj+=validarMes(form.diaFin,mesFin,anioFin);
		}
			
		if(idFechaInicio==0 && idFechaFin==7){
			msj+="Ingrese la fecha para el dato \"Hasta:\"\n";
		}
		else if(idFechaInicio==7 && idFechaFin==0){
			msj+="Ingrese la fecha para el dato \"Desde:\"\n";
		}
		else if(idFechaInicio==0 && idFechaFin==0){
			msj+=validarRangoFecha(fechaInicio,fechaFin);
		}
	}
	
	if(msj==""){
		return true;
	}else{
		alert(msj);
		return false;
	}
}
/*
*Valida que el mes sea correcto
*/
function validarMes(elemento,mes,anio){
	msj = "";
	valor = elemento.value.replace(/\s+/g,'');;
	ENERO_SUP = 31; FEBRERO_SUP = 28; MARZO_SUP = 31; ABRIL_SUP = 30;
	MAYO_SUP = 31; JUNIO_SUP = 30; JULIO_SUP = 31; AGOSTO_SUP = 31;
	SEPTIEMBRE_SUP = 30; OCTUBRE_SUP = 31; NOVIEMBRE_SUP = 30; DICIEMBRE_SUP = 31;
	//SE VERIFICA SI ES AÑO BISIESTO PARA VER EL ÚLTIMO DÍA DE FEBRERO.
	FEBRERO_SUP = ((anio % 4 == 0) && ((anio % 100 != 0)||(anio % 400 == 0)))?29:28;
	if(mes == "01" && ((valor == 0) || (valor > ENERO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Enero \n";
		elemento.value="";
	}else if(mes == "02" && ((valor == 0) || (valor > FEBRERO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Febrero \n";
		elemento.value="";
	}else if(mes == "03" && ((valor == 0) || (valor > MARZO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Marzo \n";
		elemento.value="";
	}else if(mes == "04" && ((valor == 0) || (valor > ABRIL_SUP))){
		msj += "Ingrese una fecha válida para el mes de Abril \n";
		elemento.value="";
	}else if(mes == "05" && ((valor == 0) || (valor > MAYO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Mayo \n";
		elemento.value="";
	}else if(mes == "06" && ((valor == 0) || (valor > JUNIO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Junio \n";
		elemento.value="";
	}else if(mes == "07" && ((valor == 0) || (valor > JULIO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Julio \n";
		elemento.value="";
	}else if(mes == "08" && ((valor == 0) || (valor > AGOSTO_SUP))){
		msj += "Ingrese una fecha válida para el mes de Agosto \n";
		elemento.value="";
	}else if(mes == "09" && ((valor == 0) || (valor > SEPTIEMBRE_SUP))){
		msj += "Ingrese una fecha válida para el mes de Septiembre \n";
		elemento.value="";
	}else if(mes == "10" && ((valor == 0) || (valor > OCTUBRE_SUP))){
		msj += "Ingrese una fecha válida para el mes de Octubre \n";
		elemento.value="";
	}else if(mes == "11" && ((valor == 0) || (valor > NOVIEMBRE_SUP))){
		msj += "Ingrese una fecha válida para el mes de Noviembre \n";
		elemento.value="";
	}else if(mes == "12" && ((valor == 0) || (valor > DICIEMBRE_SUP))){
		msj += "Ingrese una fecha válida para el mes de Diciembre \n";
		elemento.value="";
	}
	return msj;
}


function validarFechaCompleta(diaValue,mesValue,anioValue){
	id=0;
	//000
	if(diaValue!="" && mesValue!="" && anioValue!=""){
		id=0;
	}
	//001
	else if(diaValue!="" && mesValue!="" && anioValue==""){
		id=1;
	}
	//010
	else if(diaValue!="" && mesValue=="" && anioValue!=""){
		id=2;
	}
	//011
	else if(diaValue!="" && mesValue=="" && anioValue==""){
		id=3;
	}
	//100
	else if(diaValue=="" && mesValue!="" && anioValue!=""){
		id=4;
	}
	//101
	else if(diaValue=="" && mesValue!="" && anioValue==""){
		id=5;
	}
	//110
	else if(diaValue=="" && mesValue=="" && anioValue!=""){
		id=6;
	}
	//111
	else if(diaValue=="" && mesValue=="" && anioValue==""){
		id=7;
	}
	return id;
}
function validarRangoFecha(fechaInicio,fechaFin){
	msj="";
	var fechaMin=Date.parse(fechaInicio);
	var fechaMax=Date.parse(fechaFin);
	if(fechaMin>fechaMax){
		msj+="El rango de fechas no es válido.\nLa fecha \"Desde:\" debe ser menor a la fecha \"Hasta:\"";
	}
	return msj;
}


var menu = {
	principal:function(numeroOpcion){
			this.opcionesGenerales(numeroOpcion);
	},    
		opcionesGenerales:function(numeroOpcion){
		numeroOpcion = leerPestania(numeroOpcion);		
		document.getElementById(menuEstatico.opciones[numeroOpcion].colortd).style.backgroundColor = menuEstatico.opciones[numeroOpcion].color;	   	
	}
}

var menu1 = {
		ini:function(){
			document.getElementById('trOpciones').style.display = 'none';
	},
	principal:function(numeroOpcion){
			this.opcionesGenerales(numeroOpcion);
	},    
		opcionesGenerales:function(numeroOpcion){
		
		//alert(menuEstatico.opciones[3].colortd);
		
		numeroOpcion = leerPestania(numeroOpcion);
		
		//alert(numeroOpcion)
	   	//document.getElementById('trOpciones').style.display = 'block';
	   	
	   	document.getElementById(menuEstatico.opciones[numeroOpcion].colortd).style.backgroundColor = menuEstatico.opciones[numeroOpcion].color;
	   	//document.getElementById(menuEstatico.opciones[numeroOpcion].tabla).style.borderColor = menuEstatico.opciones[numeroOpcion].color;
		
		/*var _td = "<table width='100%' height='20' border='0' cellpadding='0' cellspacing='0' bgcolor='"
	   				+ menuEstatico.opciones[numeroOpcion].color+ "'><tr>";	  
		document.getElementById('trOpciones').innerHTML="";
		for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
		
			_td += "<td align='center'>&nbsp;&nbsp;&nbsp;<a href='"+menuEstatico.opciones[numeroOpcion].action[i]+"' class='sub_menu'>"+menuEstatico.opciones[numeroOpcion].titulo[i]+"</a></td>";
			
			if(i==3){
           
           _td += "</tr> <tr>";
           
           }
            if(i==7){
           
           _td += "</tr> <tr>";
           
           }
            if(i==11){
           
           _td += "</tr> <tr>";
           
           }					
			
		}
		_td += "</tr></table>";
		document.getElementById('trOpciones').innerHTML = _td;
		for(var i = 0; i < (menuEstatico.opciones.length); i++) {
			if(numeroOpcion != i){
				document.getElementById(menuEstatico.opciones[i].colortd).style.backgroundColor = "#F6F8FA";
				document.getElementById(menuEstatico.opciones[i].tabla).style.borderColor = "#CCCCCC";
			}
		}*/
	}
}

function leerPestania(numeroOpcion) {
	var opcion = "";
	var posicion = -1;
	for(var i = 0; i < (menuEstatico.opciones.length); i++) {
		opcion = menuEstatico.opciones[i].colortd;
		if(numeroOpcion == opcion) {
			posicion = i;
			break;			
		}
	}
	return posicion;
}

/**
 * Fecha en el encabezado del sistema.
 */
function fecha(f){
	var fecha = new Date();
	var meses = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
	var nmes = fecha.getMonth();
	var dia = fecha.getDay();
	var diaSemana = new Array('Domingo', 'Lunes', 'Martes','Miércoles', 'Jueves', 'Viernes','Sábado');
    var minutos = fecha.getMinutes();
	if (minutos >=0 && minutos <=9) {
		minutos = "0" + minutos;
	}
	//return diaSemana[dia]+"  "+fecha.getDate()+" de "+meses[nmes]+" de "+fecha.getFullYear()+", "+fecha.getHours()+":"+minutos+" hrs.";
	return diaSemana[dia]+"  "+fecha.getDate()+" de "+meses[nmes]+" de "+fecha.getFullYear();
}


/**
*FUNCION QUE COMPARA QUE LA FECHA INTRODUCIDA NO SEA MAYOR A LA DEL DIA DE HOY
**/
function fechaMayorHoy(dia, mes, anio, nombreFecha){
	mensaje = "";
	fechaEntrada = new Date();
	fecha = new Date(fechaHoy);
	dia.value= trim(dia.value);
	if (validarFechaCompleta(dia.value,mes.value,anio.value)!=0) {			
		mensaje+="- La fecha "+nombreFecha+" está incompleta.\n"
	}else{
		mensaje+= validaDia(dia, mes.value, anio.value, 'día '+nombreFecha);
		if (mensaje ==""){
			fechaEntrada.setDate(dia.value);
			fechaEntrada.setMonth(mes.value - 1);
			fechaEntrada.setYear(anio.value);
			fechaEntrada.setHours(0);
			fechaEntrada.setMinutes(0);
			fechaEntrada.setSeconds(0);
			fechaEntrada.setMilliseconds(00);
			if (fechaEntrada > fecha){
				dia.focus();
				mensaje += "- La fecha "+nombreFecha+" no puede ser mayor a la fecha actual.\n";
			}
		}
	}
return mensaje;
}

//Esta funcion emplea un campo llamado foco en el cual viene el nombre de campo al que se le dara el foco
function foco(form){
	var campo = form.foco.value;
	eval("form."+ campo + ".focus()");
}

//Esta funcion pone el foco en el campo indicado 
function focos(campo)
	{
        campo.focus();
	}


/**Función que valida el año de elección para ponerlo automaticamente al seleccionar
 el mes (según corresponda) **/
 
 
function anioEleccion(form,origen,destino){

   var anioEleccion= trim( eval("form."+ origen + ".value"));
       anioElec=trim(anioElec);

   if( anioEleccion >= 8 && anioEleccion <= 12)
   {
     //Resta un año al año de la elección
     eval("form."+ destino + ".value=anioElec-1");
   }
   else if( anioEleccion >= 1 && anioEleccion <= 7)
   {
     //Pone el año de la elección
     eval("form."+ destino + ".value=anioElec");
   }
   else
   {
     //Limpia el campo
     eval("form."+ destino + ".value=''");
   }
   
}



/*********************************
 ** Validaciones para el login  ** 
 *********************************/
function requeridoAcceso(form){

	form.usuario.value = trim(form.usuario.value);
	form.contrasena.value= trim(form.contrasena.value);

	if(form.usuario.value == "" && form.contrasena.value == ""){
		alert(generalesvalingrearRequeridos()+"\n- "+ generalesusuario()+"\n- "+generalescontrasenia());
		form.usuario.focus();
		return false;
	}else if(form.usuario.value == ""){
		alert(generalesvalingrearRequeridos()+"\n- "+ generalesusuario());
		form.usuario.focus();
		return false;
	}else if(form.contrasena.value == ""){
		alert(generalesvalingrearRequeridos()+"\n- "+ generalescontrasenia());
		form.contrasena.focus();
		return false;
	}else{
		msj=validaAlfa(form.usuario,8);
		if(msj!=""){	
				alert(generalesvaldato()+" \" "+generalesusuario()+" \" " +msj);
				form.usuario.focus();
				return false;	
		}
		return true;
	}
}

/******************************************
 **  Fin de validaciones para el login   ** 
 ******************************************/
 
 /**
 * Elimina espacios en blanco
 **/
function espacios(campo) {
	campo = trim(campo);
}


/**
	Función que carga el menu.
*/
function mmLoadMenus() {
	/*
	*	Si existe la pestaña de Reportes ya no crea los objetos porque ya existen. 
	*/ 	
	if (window.mm_menu_reportes) return;
	
	/*
	*	Menu Capturar
	*/
	numeroOpcion = leerPestania('tdCaptura');
	if(numeroOpcion != -1) {
		//alert(numeroOpcion)
		//alert('Color capturar ' + menuEstatico.opciones[numeroOpcion].color);	
		window.mm_menu_capturar = new Menu("root",180,16,"Arial, Helvetica, sans-serif",10,"#FFFFFF","#333333","#77B08D",menuEstatico.opciones[numeroOpcion].color,"left","middle",3,0,1000,-5,70,true,true,true,0,true,true);
		for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
			//alert('Nombre Capturar ' + menuEstatico.opciones[numeroOpcion].titulo[i] + " -- action " + menuEstatico.opciones[numeroOpcion].action[i]);
			mm_menu_capturar.addMenuItem(menuEstatico.opciones[numeroOpcion].titulo[i],"location='"+menuEstatico.opciones[numeroOpcion].action[i]+"'");
		}	
		mm_menu_capturar.hideOnMouseOut=true;
		mm_menu_capturar.bgColor = bgColor='#FFFFFF';
	   	mm_menu_capturar.menuBorder=0;
	   	mm_menu_capturar.menuLiteBgColor='#FFFFFF';
	   	mm_menu_capturar.menuBorderBgColor='#FFFFFF';
	}
	
	/*
	*	Menu Consultar
	*/
	numeroOpcion = leerPestania('tdConsulta');
	if (numeroOpcion != -1) {
		//alert('Color consultar ' + menuEstatico.opciones[numeroOpcion].color);
		window.mm_menu_consultar = new Menu("root",180,16,"Arial, Helvetica, sans-serif",10,"#FFFFFF","#333333","#DA8585",menuEstatico.opciones[numeroOpcion].color,"left","middle",3,0,1000,-5,70,true,true,true,0,true,true);
	  	for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
			//alert('Nombre Consultar ' + menuEstatico.opciones[numeroOpcion].titulo[i] + " -- action " + menuEstatico.opciones[numeroOpcion].action[i]);
			mm_menu_consultar.addMenuItem(menuEstatico.opciones[numeroOpcion].titulo[i],"location='"+menuEstatico.opciones[numeroOpcion].action[i]+"'");
		}
	  	mm_menu_consultar.hideOnMouseOut=true;
	   	mm_menu_consultar.bgColor='#FFFFFF';
	   	mm_menu_consultar.menuBorder=0;
	   	mm_menu_consultar.menuLiteBgColor='#FFFFFF';
	   	mm_menu_consultar.menuBorderBgColor='#FFFFFF';
	}
	
	/*
	*	Menu Modificar
	*/
	numeroOpcion = leerPestania('tdModifica');
	if (numeroOpcion != -1) {
		//alert('Color modificar ' + menuEstatico.opciones[numeroOpcion].color);
		window.mm_menu_modificar = new Menu("root",180,16,"Arial, Helvetica, sans-serif",10,"#FFFFFF","#333333","#8492E5",menuEstatico.opciones[numeroOpcion].color,"left","middle",3,0,1000,-5,70,true,true,true,0,true,true);
		for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
			//alert('Nombre Modificar ' + menuEstatico.opciones[numeroOpcion].titulo[i] + " -- action " + menuEstatico.opciones[numeroOpcion].action[i]);
			mm_menu_modificar.addMenuItem(menuEstatico.opciones[numeroOpcion].titulo[i],"location='"+menuEstatico.opciones[numeroOpcion].action[i]+"'");
		}
	  	mm_menu_modificar.hideOnMouseOut=true;
	   	mm_menu_modificar.bgColor='#FFFFFF';
	   	mm_menu_modificar.menuBorder=0;
	   	mm_menu_modificar.menuLiteBgColor='#FFFFFF';
	   	mm_menu_modificar.menuBorderBgColor='#FFFFFF';
	}
   	
   	/*
	*	Menu Reportes
	*/
	numeroOpcion = leerPestania('tdReportes');
	if (numeroOpcion != -1) {
		//alert('Color reportes ' + menuEstatico.opciones[numeroOpcion].color);
		window.mm_menu_reportes = new Menu("root",180,16,"Arial, Helvetica, sans-serif",10,"#FFFFFF","#333333","#B4C066",menuEstatico.opciones[numeroOpcion].color,"left","middle",3,0,1000,-5,70,true,true,true,0,true,true);
		for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
			//alert('Nombre reportes ' + menuEstatico.opciones[numeroOpcion].titulo[i] + " -- action " + menuEstatico.opciones[numeroOpcion].action[i]);
			mm_menu_reportes.addMenuItem(menuEstatico.opciones[numeroOpcion].titulo[i],"location='"+menuEstatico.opciones[numeroOpcion].action[i]+"'");
		}
	  	mm_menu_reportes.hideOnMouseOut=true;
	   	mm_menu_reportes.bgColor='#FFFFFF';
	   	mm_menu_reportes.menuBorder=0;
	   	mm_menu_reportes.menuLiteBgColor='#FFFFFF';
	   	mm_menu_reportes.menuBorderBgColor='#FFFFFF';
   	}
   	/*
	*	Menu Exportar
	*/
	numeroOpcion = leerPestania('tdTablas');
	if (numeroOpcion != -1) {
		//alert('Color tablas ' + menuEstatico.opciones[numeroOpcion].color);
		window.mm_menu_tablas = new Menu("root",180,16,"Arial, Helvetica, sans-serif",10,"#FFFFFF","#333333","#B1A23F",menuEstatico.opciones[numeroOpcion].color,"left","middle",3,0,1000,-5,70,true,true,true,0,true,true);
		for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
			//alert('Nombre tablas ' + menuEstatico.opciones[numeroOpcion].titulo[i] + " -- action " + menuEstatico.opciones[numeroOpcion].action[i]);
			mm_menu_tablas.addMenuItem(menuEstatico.opciones[numeroOpcion].titulo[i],"location='"+menuEstatico.opciones[numeroOpcion].action[i]+"'");
		}
	  	mm_menu_tablas.hideOnMouseOut=true;
	   	mm_menu_tablas.bgColor='#FFFFFF';
	   	mm_menu_tablas.menuBorder=0;
	   	mm_menu_tablas.menuLiteBgColor='#FFFFFF';
	   	mm_menu_tablas.menuBorderBgColor='#FFFFFF';
	}

	/*
	*	Menu Proceso
	*/
	numeroOpcion = leerPestania('tdProcesos');
	if (numeroOpcion != -1) { 
		//alert('|' + numeroOpcion + '|');
		//alert('Color tablas ' + menuEstatico.opciones[numeroOpcion].color);
		window.mm_menu_procesos = new Menu("root",180,16,"Arial, Helvetica, sans-serif",10,"#FFFFFF","#333333","#A3A459",menuEstatico.opciones[numeroOpcion].color,"left","middle",3,0,1000,-5,70,true,true,true,0,true,true);
		for(var i = 0; i < menuEstatico.opciones[numeroOpcion].titulo.length; i++){
			//alert('Nombre tablas ' + menuEstatico.opciones[numeroOpcion].titulo[i] + " -- action " + menuEstatico.opciones[numeroOpcion].action[i]);
			mm_menu_procesos.addMenuItem(menuEstatico.opciones[numeroOpcion].titulo[i],"location='"+menuEstatico.opciones[numeroOpcion].action[i]+"'");
		}
	  	mm_menu_procesos.hideOnMouseOut=true;
	   	mm_menu_procesos.bgColor='#FFFFFF';
	   	mm_menu_procesos.menuBorder=0;
	   	mm_menu_procesos.menuLiteBgColor='#FFFFFF';
	   	mm_menu_procesos.menuBorderBgColor='#FFFFFF';
	}
	
	mm_menu_reportes.writeMenus();
} 

/**
*Funcion que completa las horas en caso de ser menor a 10, funciona para cualquier campo numerico.
*/

	function completaHoras(elemento){
	     elemento.value=trim(elemento.value);
		if (elemento.value.length ==1){
			elemento.value = trim("0"+elemento.value);
		}
	}
	
	
	
/*
 * Función que determina si a un número entero se le antepone un cero, lo quita y devuelve 
 * el resto del número al elemento.
 */
	function quitaCeroEntero(elemento)
	 {
       var cero="";
  	   var i=0;
	   var p=0;
	   var dato="";       
       elemento.value=trim(elemento.value);
  	   cero=trim(elemento.value);
       
		for (i=0;  i < cero.length; i++)
		 {
		    p++;
            dato=cero.substring(i,p);
		    if(dato!="0") {break;}
		 }       
       
        elemento.value=trim(cero.substring(i,cero.length));       
	 }



/*
 * Función que determina si a un número decimal se le antepone un cero, lo quita y devuelve 
 * el resto del número al elemento.
 */
	function quitaCeroDecimal(elemento)
	 {
       var cero="";
       var parteUno="";
       var parteDos="";
       var masCeros="";
       var valorPoner="";
       elemento.value=trim(elemento.value);       
       cero= trim(String(elemento.value));
       
       // Si no tiene "."
      if(cero.indexOf('.')==-1 && cero!="")
      {
       if(cero.length == 2)
       {
        if(cero.substring(0,1)=="0")
        {
         elemento.value=trim(cero.substring(1,2)+".00");
        }
        else
        {
        elemento.value=trim(cero+".00");
        }
       }
       else
       {
	       recorre=0;
		       for(i=1; i<=cero.length; i++)
		       {
		         masCeros = cero.substring(recorre,i);
		
		         if(masCeros!=0)
		         {
		            if(masCeros!=1)
		            {
		              valorPoner=masCeros;
		            }
		            else
		            {
		              valorPoner=cero.substring(recorre,cero.length);
		            }
		         break;
		         }
		         recorre++;
		       }
       
		       if(valorPoner=="")
		       {
		       valorPoner=0;
		       }
       
        elemento.value=trim(valorPoner+".00");
       }
      }
       
       // Si tiene "."
      if(cero.indexOf('.')!=-1 && cero!="")
      {
        parteUno= cero.substring(0,cero.indexOf('.'))
        parteDos= cero.substring(cero.indexOf('.'),cero.length)
        
	      //Parte entera  
	      if(parteUno.length == 2)
	       {
	        if(parteUno.substring(0,1)=="0")
	        {
	         parteUno =trim(parteUno.substring(1,2));
	        }
	       }
	       else
	       {
		       recorre=0;
			       for(i=1; i<=parteUno.length; i++)
			       {
			         masCeros = parteUno.substring(recorre,i);
			
			         if(masCeros!=0)
			         {
			            if(masCeros!=1)
			            {
			              valorPoner=masCeros;
			            }
			            else
			            {
			              valorPoner=parteUno.substring(recorre,cero.length);
			            }
			         break;
			         }
			         recorre++;
			       }
	       
			       if(valorPoner=="")
			       {
			       valorPoner=0;
			       }
	       
	        parteUno=trim(valorPoner);
	       }	       
	       
      	  //Parte decimal
	      if(parteDos.length == 1)
	      {
	        parteDos=parteDos+"00";
	      }
	      if(parteDos.length == 2)
	      {
	        parteDos=parteDos+"0";
	      }
         elemento.value=trim(parteUno+parteDos);
      }
 }	
	
	
/*Función que fuerza al campo a obtener el foco */
	function focoForzado(elemento)
	{ 
        elemento.focus();
        elemento.select();
	}
	
/*Función que selecciona el foco del camposs*/	
function campoOnfocus(p_idOrigen){
	var objInput =p_idOrigen.createTextRange();
        objInput.collapse(false); 
        objInput.select();
}	
	
	
	
	
/** Objeto generales:
  *mensajeError: Variable que tiene el mensaje de error, cuando se utiliza la funcion callBack.
  *
  *callBack : Realiza la peticion a un servicio y regresa los valores en formato JSON los parametros que
  * recibe son los siguientes:
  *		@url: Es el path del servicio que se quiere invocar. 
  *		@callbackFunction: Nombre de la funcion que recibira los datos que regresa el servicio.
  *		@form : Objeto de la forma.(ejemplo: document.avanceForm)
  *		
  *agregaOpcionSelect : Agrega n opciones a un combo, recibe los sig. parametros :
  *		@idSelect : id del combo.
  *		@opciones : Es un arreglo unidimensional con las opciones que debe agregar.
  *
  *eliminaOpcionSelect: Elimina todas las opciones de un combo, recibe los siguientes parametros:
  *		@idSelect : id del combo.
  */	
var generales = {
	mensajeError :"La acci\363n que esta solicitando no se pudo realizar, favor de comunicarse al CAU.", 
	callBack : function(url, callbackFunction,form){
		var request = null;
		if(window.XMLHttpRequest){
			request = new XMLHttpRequest();
		}
		else if(window.ActiveXObject){//IE6 & IE5.
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		if (request != null){
			request.open("POST", url, true);
			request.onreadystatechange = function(){
			  if(request.readyState == 4){
					if(request.status == 200){
						if(request.responseText.parseJSON()){
							var reqText = request.responseText;
							var jsonValues = eval("(" + reqText + ")");
							callbackFunction(jsonValues,form);
						}
						else{
							alert(generales.mensajeError);
						}
					}
					else{
						alert(generales.mensajeError);
					}
			   }
			}
			  request.send(null);
		}	
	},
	agregaOpcionSelect : function(idSelect,opciones){
		for(var indice = 0; indice < opciones.length; indice++){
			document.getElementById(idSelect).options[indice] = new Option(opciones[indice].label/*Text*/,opciones[indice].value/*valor*/);
		}
	},
	agregaOpcionSelectDto : function(idSelect, listaOpciones, nombrePropiedad,labelPropiedad){
	var descripcion = (labelPropiedad == undefined)?nombrePropiedad:labelPropiedad;
		for(var indice = 0; indice < listaOpciones.length; indice++){
			if(indice==0){document.getElementById(idSelect).options[0] = new Option("");}
			document.getElementById(idSelect).options[indice+1] = new Option(eval("listaOpciones[indice]."+descripcion)/*Text*/,eval("listaOpciones[indice]."+nombrePropiedad)/*valor*/);
		}
	},
	eliminaOpcionSelect : function(idSelect){
			var arrayEliminados = [];
			var fBox = document.getElementById(idSelect);
			if(fBox.selectedIndex == -1){
				//alert("Selecciona una opcion.");
				return;
			}
			for(var i = 0; i < fBox.options.length; i++){
					fBox.options[i]=null;
					i--;
			}
	}
}

/**
  * Se crea una funcion(parseJSON) al objeto String para validar que la cadena que regresa
  * el servicio sea en formato JSON.
  */	
String.prototype.parseJSON = function () {
    try {
        return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
                this.replace(/"(\\.|[^"\\])*"/g, ''))) &&
            eval('(' + this + ')');
    } catch (e) {
        return false;
    }
	
}
	
/*FUNCION QUE VALIDA EL RANGO DE SECCIONES*/

function validaRangoInicio(inicial, final){
	if(inicial.value != ""){
		if(inicial.selectedIndex > final.selectedIndex){
			final.value = inicial.value;
		}
	}else{
		final.value = inicial.value;
	}
}


function validaRangoFin(inicial, final){
	if(final.value != ""){
		if(final.selectedIndex < inicial.selectedIndex || inicial.value == ""){
				inicial.value = final.value;
		}
	}else{
		inicial.value = final.value;
	}
 }



	
