/* ***************************************************************************//* INDICE DE FUNCIONES                                                       *//* ***************************************************************************/var separadorFecha = "/";var separadorHora  = ":";var nombreMeses    = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); /* // *********************************************************** // Funciones que eliminan los espacios en blanco de una cadena // a derecha, a izquierda o ambos y devuelve la nueva cadena. // Parámetros: //   str -> cadena a la que se desea eliminar los espacios // Retorno: //   Cadena recibida sin espacios a derecha, a izquierda o  //   a ambos lados, según el caso // ***********************************************************  */function lTrim(str) {return str.replace(/^(\s)*/, "");}function rTrim(str) {return str.replace(/(\s)*$/, "");}function Trim(str) {return lTrim(rTrim(str));} /* // *********************************************************** // Funciones generales de validación de datos (entero, float,  //   correo, vacío) // Parámetros: //   str -> cadena que se desea validar // Retorno: //   true  si la validación es correcta //   false si la validación es incorrecta // ***********************************************************  */function esVacio  (str) { return ((str == null) || (Trim(str).length == 0)) }function esEntero (str) { regExp = /^\d+$/;return regExp.test(str); }function esFloat  (str) { regExp = /^((\d*\.\d+)|(\d+\.\d+)|(\d+))$/;return regExp.test(str); }function esHex    (str) { regExp = /^(\d|[a-f]|[A-F])+$/;return regExp.test(str); }function esCorreo (str) { regExp = /^.+\@.+\..+$/;return regExp.test(str); } /* // ********************************************************** // Función que ejecuta la acción especificada como parámetro. // Parámetros: //   accion -> acción o url a ejecutar // ********************************************************** */function ejecutarAccion (accion) {this.location = accion;} /* // ********************************************************** // Función que no realiza ninguna acción.  // Simplemente se utiliza cuando una llamada href no se trata  // directamente, sino a través de la directiva onclick. // Parámetros: //   ninguno // ********************************************************** */function doNothing() {} /* // ********************************************************* // Función que comprueba si el año que se pasa por parámetro  // es bisiesto. // Parámetros: //   anio -> representa el año a validar // Retorno: //   true  si el año corresponde a uno bisiesto //   false si el año no corresponde a uno bisiesto // ********************************************************* */function esBisiesto (anio) {return ( anio % 4 == 0 ) && ( ( anio % 100 != 0 ) || ( anio % 400 == 0 ) );} /* // ********************************************************* // Función que comprueba si el parámetro especificado es una // fecha correcta (según el formato dd/mm/yyyy). // Parámetros: //   strFecha -> representa la fecha a validar // Retorno: //   true  si la fecha es correcta //   false si la fecha no es correcta // ********************************************************* */function esFecha (strFecha) {var arrayFecha = strFecha.split(separadorFecha);if (arrayFecha.length !=3) return false;dia = arrayFecha[0];mes = arrayFecha[1];ano = arrayFecha[2];if (!esEntero(dia) || !esEntero(mes) || !esEntero(ano)) return false;return validarFecha(dia, mes, ano);} /* // ********************************************************** // Función que comprueba si los tres parámetros especificados // corresponden al día, mes y año de una fecha correcta. // Parámetros: //   intDia -> representa el día del mes //   intMes -> representa el mes //   intAno -> representa el año // Retorno: //   true  si la fecha que forman es correcta //   false si la fecha que forman no es correcta // ********************************************************** */function validarFecha (intDia, intMes, intAno) {if (intMes < 1 || intMes > 12) return false;var arrayMeses = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);if (esBisiesto(intAno)){arrayMeses[1] = 29;}if ((0 < intDia) && (intDia <= arrayMeses[intMes-1])){if (intAno>1900 && intAno<3000) return true;}return false;} /* // *********************************************************** // Funcion que comprueba si la diferencia entre dos fechas  // es superior a un año.  // Parámetros: //   fechaInicial -> representa la fecha inicial //   fechaFinal   -> representa la fecha final // Retorno: //   true  si la fechaFinal no es superior a un año de la fecha inicial //   false si la fechaFinal  es superior a un año de la fecha inicial // *********************************************************** */function esSuperiorUnAno(fechaInicial,fechaFinal){var arrayFechaInicial = fechaInicial.split(separadorFecha);if (arrayFechaInicial.length !=3) return false;var arrayFechaFinal = fechaFinal.split(separadorFecha);if (arrayFechaFinal.length !=3) return false;diaInicial = arrayFechaInicial[0];mesInicial = arrayFechaInicial[1];anoInicial = arrayFechaInicial[2];diaFinal = arrayFechaFinal[0];mesFinal = arrayFechaFinal[1];anoFinal = arrayFechaFinal[2];if ((anoFinal-anoInicial)>1) return true;if (((anoFinal-anoInicial)>0) && ((mesFinal-mesInicial)>0)) return true;if (((anoFinal-anoInicial)>0) && ((mesFinal-mesInicial)==0) && ((diaFinal-diaInicial)>0)) return true;return false;} /* // *********************************************************** // Función que comprueba, para dos fechas especificadas, si la // primera de ellas es mayor o igual que la segunda. // Parámetros: //   fecha1 -> representa la primera fecha a validar //   fecha2 -> representa la segunda fecha a validar // Retorno: //   true  si fecha1 es posterior o igual que fecha2 //   false si fecha1 es anterior a fecha2 // *********************************************************** */function esFechaPosterior (fecha1, fecha2) {var sDia1 = fecha1.substring(0, 2);var sMes1 = fecha1.substring(3, 5);var sAno1 = fecha1.substring(6,10);var sDia2 = fecha2.substring(0, 2);var sMes2 = fecha2.substring(3, 5);var sAno2 = fecha2.substring(6,10);var sFecha1 = sAno1 + sMes1 + sDia1;var sFecha2 = sAno2 + sMes2 + sDia2;if (!sFecha1=="" && !sFecha2=="") {if (parseFloat(sFecha1) >= parseFloat(sFecha2)) {return true;} else {return false;}} else {return true;}} /* // *********************************************************** // Función que comprueba si la fecha especificada es mayor que // la del sistema. // Parámetros: //   strFecha -> representa la fecha a validar // Retorno: //   true  si fecha es posterior o igual a la del sistema //   false si fecha es anterior a la del sistema // *********************************************************** */function esFechaPosteriorSistema (strFecha) {var fecha = new Date;var dia   = fecha.getDate();var mes   = fecha.getMonth();var anio  = fecha.getYear();diaAct = 0;diaAct = parseInt(dia);if (diaAct < 10) {dia = "0"+ dia;} else {dia = dia;}mesAct = 0;mesAct = parseInt(mes)+1;if (mesAct < 10) {mes = "0"+ mesAct;} else {mes = mesAct;}var fechaSistema = dia +'/'+ mes +'/'+ anio;return esFechaPosterior(strFecha, fechaSistema);} /* // ********************************************************* // Función que comprueba si el parámetro especificado es una // hora correcta (según el formato hh:mm). // Parámetros: //   strHora -> representa la hora a validar // Retorno: //   true  si la hora es correcta //   false si la hora no es correcta // ********************************************************* */function esHora (strHora) {var arrayHora = strHora.split(separadorHora);if (arrayHora.length !=2) return false;hh = arrayHora[0];mm = arrayHora[1];if (!esEntero(hh) || !esEntero(mm)) return false;return validarHora(hh, mm);} /* // ********************************************************** // Función que comprueba si los dos parámetros especificados // corresponden a la hora y minutos de una hora. // Parámetros: //   intHoras   -> representa las horas //   intMinutos -> representa los minutos // Retorno: //   true  si la hora que forman es correcta //   false si la hora que forman no es correcta // ********************************************************** */function validarHora (intHoras, intMinutos) {if (intHoras   < 0 || intHoras   > 23) return false;if (intMinutos < 0 || intMinutos > 59) return false;return true;}/**Validaciones**/function isEmpty(str) { return ((str == null) || (Trim(str).length == 0)) }function isEmptyLista(obj){    	var sel=false;    	if (obj.length>0){    	for (i=0;i<obj.length;i++){    		if (obj[i].checked || (obj[i].type != 'checkbox')) {    			sel=true;    		}    		    	}    } else {    	if (obj.checked || (obj.type != 'checkbox')) {    			sel=true;    		}    }    	if (sel)     		return false;    	else     		return true;    }	        function seleccionarTodosPaises(objChecked,obj){    	    	for(i=0;i<objChecked.length;i++){    		objChecked[i].checked=obj.checked;    		      	}    }        function selectValue(obj,valor){        	    	for(i=0;i<obj.options.length;i++){    		if (obj.options[i].value==valor){    			obj.options[i].selected=true;    			break;    		}    	}    }     /* // ********************************************************** // Función que cambia el tamano de una imagen // adecuandola al maximo tamano indicado manteniendo el aspecto // Parámetros: //	  imagen   -> imagen a hacer el resize //   intAlto   -> Alto maximo //   intAncho -> Ancho maximo // Retorno: //   true  si la hora que forman es correcta //   false si la hora que forman no es correcta // ********************************************************** */function resize(imagen, intAlto, intAncho) {  //var elem = document.getElementById(nombre);  if (imagen.width > imagen.height) {  	if (imagen.width > intAncho) imagen.width = intAncho;  } else {    if (imagen.height > intAlto) imagen.height = intAlto;  }} /* // ********************************************************** // Función que cambia el tamano de una imagen // adecuandola al maximo tamano indicado manteniendo el aspecto // Parámetros: //	  imagen   -> imagen a hacer el resize //   intAlto   -> Alto maximo //   intAncho -> Ancho maximo // Retorno: //   true  si la hora que forman es correcta //   false si la hora que forman no es correcta // ********************************************************** */function ajustarImagen(imagen, intAlto, intAncho) {  if (imagen.width > imagen.height) {  	if (imagen.width > intAncho) imagen.width = intAncho;  } else {    if (imagen.height > intAlto) imagen.height = intAlto;  }}    function emptyOrNullToValue(s,valor){    	if (s == null || s==("") || s.length==0){    		return valor;    	}    	return s;    }/* // ********************************************************** // Función que valida el CIF de una empresa // Parámetros: //	  cif   -> cif de la empresa // Retorno: //   true  si es un cif valido //   false si no es un cif valido // ********************************************************** */ 	 	function isValidCif(cif){ 		try{ 			var par = 0;var non = 0;var letras = "ABCDEFGHJKLMNPRQSUVW";var caracterControlLetra = "KPQS";var caracterControlNum = "ABEH";var i;var parcial;var control;var controlLetra = "JABCDEFGHIJ";var letraIni = cif.charAt(0);if (cif.length!=9) {    return false;}else{    if (letras.indexOf(letraIni.toUpperCase())==-1)        return false;        for (i=2;i<8;i+=2) {        par = par + parseInt(cif.charAt(i));    }    for (i=1;i<9;i+=2) {        var nn = 2 * parseInt(cif.charAt(i));        if (nn > 9) nn = 1 + (nn-10);        non = non + nn;    }    parcial = par + non;    control = (10 - ( parcial % 10));    if (caracterControlLetra.indexOf(letraIni.toUpperCase()) != -1){        if (controlLetra.charAt(control) != cif.charAt(8).toUpperCase())            return false;    }    if (caracterControlNum.indexOf(letraIni.toUpperCase()) != -1){        if (control == 10) control = 0;        if (control != cif.charAt(8))        	return false;    }    if ((caracterControlLetra.indexOf(letraIni.toUpperCase()) == -1) && (caracterControlNum.indexOf(letraIni.toUpperCase()) == -1))    {        if (control == 10) control = 0;                if ((controlLetra.charAt(control) != cif.charAt(8).toUpperCase()) && (control != cif.charAt(8)))            return false;    }        return true;}}catch(ex){return false;}} 			 /* // ********************************************************** // Función que valida el NIF de una empresa // Parámetros: //	  nif   -> nif de la empresa // Retorno: //   true  si es un nif valido //   false si no es un nif valido // ********************************************************** */ function isValidNif(nif){try {dni=nif.substring(0,nif.length-1);let=nif.charAt(abc.length-1);if (!isNaN(let)){  		return false; 	}else{  		cadena="TRWAGMYFPDXBNJZSQVHLCKET"  		posicion = dni % 23;  		letra = cadena.substring(posicion,posicion+1);  		if (letra!=let.toUpperCase()){    		return false;   		} 	}return true;}catch(ex){return false;}}