function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}
function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}
function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}
function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}
function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}
function valFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk){
   return false;
}else{
   return true;
}
}
}

function formatoFechaOK (campo, comprobarMayorHoy) {
	//Comprobamos que no es vacio
	if (campo.value!="") {
		fPartida = campo.value.split("/");
		//Comprobamos que han introducido las 3 partes
		if (fPartida.length!=3) {
			return false;
		}else{
			try {
				dia = parseInt(fPartida[0]);
				mes = parseInt(fPartida[1]);
				ano = parseInt(fPartida[2]);
				
				//Comprobamos que las partes son numéricas
				if (isNaN(dia) || isNaN(mes) || isNaN(ano))
					return false;
					
				//Comprobamos que el mes no se pase ni se quede corto
				if (mes<1 || mes>12)
					return false;
					
				//Comprobamos que el año tenga 4 cifras
				if (ano.toString().length!=4) {
					return false;
				}else{
					//Pasamos los números a fecha
					fecha = new Date();
					fecha.setDate(dia);     //Dia del mes
					fecha.setMonth(mes-1);  //Los meses van de 0 a 11
					fecha.setFullYear(ano); //Año completo (yyyy). No se le sumará 1900
					
					//Comprobamos que el dia no fuera mayor que el ultimo del mes
					if (fecha.getDate()!=dia)
						return false;
			
					fechaHoy = new Date();
					
					//Ultima comprobacion si el parametro 'comprobarMayorHoy' nos lo han proporcionado
					if (comprobarMayorHoy &&fecha<fechaHoy)
						return false;

					//Si ha pasado todas las comprobaciones...
					return true;
				}		
			}catch (e){
				return false;
			}
		}
	}else{
		return false;
	}
}

function compareFechas (fechaIni, fechaFin) {
	//Comprobamos que las fechas son completamente correctas sintácticamente
	if (valFecha(fechaIni) && valFecha(fechaFin)) {

		f1Partida = fechaIni.value.split("/");
		diaa = f1Partida[0];
		mesa = f1Partida[1];
		anoa = f1Partida[2];
		
		fechaa = new Date();
		fechaa.setMonth(mesa-1);  //Los meses van de 0 a 11
		fechaa.setDate(diaa);     //Dia del mes
		
		fechaa.setFullYear(anoa); //Año completo (yyyy). No se le sumará 1900

		f2Partida = fechaFin.value.split("/");
		diab = f2Partida[0];
		mesb = f2Partida[1];
		anob = f2Partida[2];
		
		fechab = new Date();
		fechab.setMonth(mesb-1);  //Los meses van de 0 a 11
		fechab.setDate(diab);     //Dia del mes
		
		fechab.setFullYear(anob); //Año completo (yyyy). No se le sumará 1900
		
		fechaHoy = new Date();
		
		if ((fechaa<fechab)&&(fechaa>=fechaHoy)&&(fechab>fechaHoy)){
		document.forms.form2.submit();
        return(true);
        }else{
		      if (fechaa>fechab){
				    alert("La fecha de llegada no puede ser posterior a la fecha de salida.");
					form2.fechaentrada.focus(); 
					return false;
				}else{
				     if (fechaa==fechab){
					    alert("La fecha de salida no puede ser igual a la fecha de llegada.");
						form2.fechaentrada.focus(); 
						return false;
					}
		        }
		}
				
		
    }else{
			alert("Alguna de las fechas no es vÃ¡lida o es inferior a la fecha actual");
			form2.fechaentrada.focus(); 
			return false;
	}
}
