<!--
/********************************************************************
* 													funFechas.js	*
* Autor: CREAVISION Digital											*
* Fecha de creacion: 18/12/2003										*
* Funciones:	fncConvertirFechaBD()								*
*				fncValidarFecha()									*
*				fncValidarFormatoFecha()							*
*				fncValidarFormatoHora()								*
*				fncComprobarRangoFechas()							*
*				fncNumDiasMes()										*
* Comentarios: 														*
*********************************************************************/



/********************************************************************
* Nombre: fncConvertirFechaBD()										*
* Autor: CREAVISION Digital											*
* Argumentos:	strFecha (Cadena) --> Fecha en formato dd/mm/aaaa 	*
* Resultado: Cadena con la fecha formateada							*
* Descripción: Convierte la fecha en formato dd/mm/aaaa al formato 	*
*				de la BD (aaaammdd)									*
* Comentarios: 														*
*********************************************************************/
function fncConvertirFechaBD(strFecha) {
	var fecha = new Date(strFecha.substring(6,10),(strFecha.substring(3,5)-1),strFecha.substring(0,2));
	return (fecha.getTime()/1000);
}

/********************************************************************
* Nombre: fncValidarFecha()											*
* Autor: CREAVISION Digital											*
* Argumentos:	strCadena (Cadena) --> Fecha a validar				*
* Resultado: Cadena con la fecha validada. En caso de error, 		*
*				devolverá el codigo del mismo (-1, -2, -3, -4)		*
* Descripción: Esta función valida una fecha en formato dd/mm/aaaa	*
* Comentarios: 														*
*********************************************************************/
function fncValidarFecha(strCadena) {
	var varNumeros = "0123456789";
	var varSeparador = "/";
	var varNumSeparadores = 0;

	var varFecha;
	var varDia, varNumDia;
	var varMes, varNumMes;
	var varAnio, varNumAnio;
	var varTemp;

	if (strCadena == "") {
		return "-1";
	}

	if ((strCadena.length != 6) && (strCadena.length != 8) && (strCadena.length != 10)) {
		return "-2";
	}
	
	for (i = 0; i < strCadena.length; i++)	{
		if (varNumeros.indexOf(strCadena.charAt(i)) == -1) {
			if (varSeparador == strCadena.charAt(i)) {
				varNumSeparadores++;
			}
			else {
				return "-3";
			}
		}
	}

	//Aquí la fecha consta de todo dígitos y puede llevar separadores

	//Hay que construir una fecha con separadores
	if (varNumSeparadores == 0)	{
		//Me han pasado una fecha sin separadores, introduzco los separadores
		strCadena = strCadena.substr(0, 2) + varSeparador + strCadena.substr(2, 2) + varSeparador + strCadena.substr(4, 4) + "";
	}
	else {
		if (varNumSeparadores != 2) {
			return "-4";
		}
	}

	//Tengo una fecha con dos separadores, se harán las correcciones
	//necesarias si se considera oportuno
	varTemp = strCadena.split(varSeparador);
    varDia = varTemp[0];
    varMes = varTemp[1];
    varAnio = varTemp[2];

	if (varDia.substr(0, 1) == "0") varDia = varDia.substr(1, 1);
	if (varMes.substr(0, 1) == "0") varMes = varMes.substr(1, 1);

	varNumDia = parseInt(varDia,10);
	varNumMes = parseInt(varMes,10);
	varNumAnio = parseInt(varAnio,10);

	if (varNumAnio < 29)
		varNumAnio = varNumAnio + 2000;
	if (varNumAnio <= 99)
		varNumAnio = varNumAnio + 1900;
	varAnio = varNumAnio;

	varTemp = new Date(varNumAnio, varNumMes -1 , varNumDia);
	if (varTemp.getMonth() != (varNumMes - 1)) {
		return "-5";
	}

	while(varDia.length < 2) {
		varDia = "0" + varDia;
	}
	while(varMes.length < 2) {
		varMes = "0" + varMes;
	}
	strCadena = varDia + varSeparador + varMes + varSeparador + varAnio + "";

	return strCadena;
}


/********************************************************************
* Nombre: fncValidarFormatoFecha()									*
* Autor: CREAVISION Digital											*
* Argumentos:	objFecha (Objeto) --> Objeto donde esta la fecha	*
* Resultado: Verdadero en caso de que la validacion sea correcta.	*
*				Falso en caso contrario								*
* Descripción: Esta función valida el formato de la fecha 			*
*				introducida	en la caja objFecha, y le pone el 		*
*				formato dd/mm/aaaa									*
* Comentarios: 														*
*********************************************************************/
function fncValidarFormatoFecha(objFecha) {
var strResultado = "";

	if (objFecha.value != "") {
		objFecha.value = fncTrim(objFecha.value);
		
		strResultado = fncValidarFecha(objFecha.value);
		if (strResultado == "-1") {
			alert("La fecha no puede ser vacia");
			objFecha.focus();
			objFecha.select();
			return false;
		}
		if (strResultado == "-2") {
			alert("La fecha no tiene el formato correcto (dd/mm/aaaa)");
			objFecha.focus();
			objFecha.select();
			return false;
		}
		if (strResultado == "-3") {
			alert("La fecha contiene caracteres no válidos");
			objFecha.focus();
			objFecha.select();
			return false;
		}		
		if (strResultado == "-4") {
			alert("La fecha no tiene el formato correcto (dd/mm/aaaa)");
			objFecha.focus();
			objFecha.select();
			return false;
		}
		if (strResultado == "-5") {
			alert("La fecha es incorrecta");
			objFecha.focus();
			objFecha.select();
			return false;
		}
		objFecha.value = strResultado;
	}
	
	return true;
}


/********************************************************************
* Nombre: fncValidarFormatoHora()									*
* Autor: CREAVISION Digital											*
* Argumentos:	objHora (Objeto) --> Objeto donde esta la hora		*
* Resultado: Verdadero en caso de que la validacion sea correcta.	*
*				Falso en caso contrario								*
* Descripción: Esta función valida el formato de la hora 			*
*				introducida	en la caja objHora, y le pone el 		*
*				formato hh:mm										*
* Comentarios: 														*
*********************************************************************/
function fncValidarFormatoHora(objHora) {
	if (objHora.value != "") {
		objHora.value = fncTrim(objHora.value);
		strHora = objHora.value;
		
		if (strHora.length < 8) {
			alert("La hora no tiene el formato correcto (hh:mm:ss)");
			objHora.focus();
			objHora.select();
			return false;
		}
		
		if (strHora.length == 8) {
			if ((strHora.substring(2,3) != ":") || (strHora.substring(5,6) != ":")) {
				alert("La hora no tiene el formato correcto (hh:mm:ss)");
				objHora.focus();
				objHora.select();
				return false;
			}

			if (!fncEsNumero(strHora.substring(0,2))) {
				alert("La hora no es numérica (Valor actual: \"" + strHora.substring(0,2) + "\")");
				objHora.focus();
				objHora.select();
				return false;
			}

			if (!fncEsNumero(strHora.substring(3,5))) {
				alert("Los minutos no son numéricos (Valor actual: \"" + strHora.substring(3,5) + "\")");
				objHora.focus();
				objHora.select();
				return false;
			}

			if (!fncEsNumero(strHora.substring(6))) {
				alert("Los segundos no son numéricos (Valor actual: \"" + strHora.substring(6) + "\")");
				objHora.focus();
				objHora.select();
				return false;
			}


			if (parseInt(strHora.substring(0,2)) > 23) {
				alert("La hora no puede ser mayor de \"23\"");
				objHora.focus();
				objHora.select();
				return false;
			}

			if (parseInt(strHora.substring(3,5)) > 59) {
				alert("Los minutos no pueden ser mayores de \"59\"");
				objHora.focus();
				objHora.select();
				return false;
			}

			if (parseInt(strHora.substring(6)) > 59) {
				alert("Los segundos no pueden ser mayores de \"59\"");
				objHora.focus();
				objHora.select();
				return false;
			}
			
			
			
		}
		
	return true;
	}
}

/********************************************************************
* Nombre: fncComprobarRangoFechas()									*
* Autor: CREAVISION Digital											*
* Argumentos:	strFecha1 (Cadena) --> Fecha inicial en formato Web	*
*				strFecha2 (Cadena) --> Fecha final en formato Web	*
* Resultado: Verdadero en caso de que la validacion sea correcta.	*
*				Falso en caso contrario								*
* Descripción: Funcion que comprueba que la fecha 'strFecha1' sea 	*
*				menor que la fecha 'strFecha2'						*
* Comentarios: 														*
*********************************************************************/
function fncComprobarRangoFechas(strFecha1, strFecha2) {
var strAux1 = "";
var strAux2 = "";

	//Primero se convierten las dos fechas en el formato numerico que maneja la BD: 'aaaammdd'
	strAux1 = fncConvertirFechaBD(strFecha1);
	strAux2 = fncConvertirFechaBD(strFecha2);
	
	//Se restan los dos valores. Si la fecha inicial es mayor que la final obtendremos un numero negativo
	if (parseInt(strAux2) - parseInt(strAux1) < 0) {
		return false;
	}
	return true;
}


/********************************************************************
* Nombre: fncNumDiasMes()											*
* Autor: CREAVISION Digital											*
* Argumentos:	intMes (Entero) --> Mes a consultar (0-11)			*
*				intAnio (Entero) --> Año del mes a consultar		*
* Resultado: Numero de dias del mes pasado en el año indicado		*
* Descripción: Devuelve el número de días del mes y año solicitados	*
* Comentarios: 														*
*********************************************************************/
//Devuelve el número de días del mes y año solicitados
// Rango salida dias 1-31 Rango entrada mes 0-11
function fncNumDiasMes(intMes,intAnio) {
	var arrDias = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	intDias = arrDias[intMes];
	
	//Control de años bisiestos
	if (intMes == 1) {
		if (((intAnio%4 == 0) && (intAnio%100 != 0)) || (intAnio%400 == 0)) { 
			intDias = 29;
		}
	}
	return intDias;
}

/********************************************************************
* Nombre: fncPonerCeros()											*
* Autor: CREAVISION Digital											*
* Argumentos:	intNumero (Entero)									*
* Descripción: Devuelve el número con ceros delante					*
* Comentarios: Utilizado para fechas y horas						*
*********************************************************************/
function fncPonerCeros(intNumero)
		{
		if (intNumero < 10) intNumero = '0' + intNumero;
		return intNumero;
		}

-->