// JavaScript Document

function esDigito(sChr){
    var sCod = sChr.charCodeAt(0);
    return ((sCod > 47) && (sCod < 58));
   }

function valSep(oTxt){
	var bOk = false;
	var sep1 = oTxt.charAt(2);
	var sep2 = oTxt.charAt(5);
	bOk = bOk || ((sep1 == "-") && (sep2 == "-"));
	bOk = bOk || ((sep1 == "/") && (sep2 == "/"));
	return bOk;
}

function finMes(oTxt){
	var nMes = parseInt(oTxt.substr(3, 2), 10);
	var nAno = parseInt(oTxt.substr(6), 10);
	var nRes = 0;
	switch (nMes){
	 case 1: nRes = 31; break;
	 case 2: nRes = 28; 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 + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
}

function valDia(oTxt){
	var bOk = false;
	var nDia = parseInt(oTxt.substr(0, 2), 10);
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
	return bOk;
}

function valMes(oTxt){
	var bOk = false;
	var nMes = parseInt(oTxt.substr(3, 2), 10);
	bOk = bOk || ((nMes >= 1) && (nMes <= 12));
	return bOk;
}

function valAno(oTxt){
	var bOk = true;
	var nAno = oTxt.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 validarFecha(oTxt){
	var bOk = true;
	if (oTxt != ""){
	 bOk = bOk && (valAno(oTxt));
	 bOk = bOk && (valMes(oTxt));
	 bOk = bOk && (valDia(oTxt));
	 bOk = bOk && (valSep(oTxt));
	 if (!bOk){
	  return false;
	  //alert("Fecha inválida");
	  oTxt = "";
	  //oTxt.focus();
	 } else{
		 //alert("Fecha correcta");
		 return true;
	 }
	}
} 
function validar_fecha(){
								
	error_fecha="";
	valfecha1=true;
	valfecha2=true;
	
	finicio=document.getElementById('fprimera').value;
	if (finicio){
		valfecha1=validarFecha(finicio);
		if( valfecha1 != true){
			error_fecha="- La Fecha de inicio no es valida \n";
		}else{
			document.getElementById('fprimera').value=finicio.replace(/[\/]/g,"-");
		}
	}
	
	ffinal=document.getElementById('ffinal').value;
	if (ffinal){
		valfecha2=validarFecha(ffinal);
		if( valfecha2 != true){
			error_fecha=error_fecha +  "- La Fecha Final no es valida \n";
		}else{
			document.getElementById('ffinal').value=ffinal.replace(/[\/]/g,"-");
		}
	}
	if(error_fecha =="" && ffinal && finicio){
		
		f1=finicio.split("-");
		f2=ffinal.split("-");
		
		f1=new Date(f1[2],f1[1],f1[0]);
		f2=new Date(f2[2],f2[1],f2[0]);
		
		f1=new Date(f1);
		f2=new Date(f2);
		
		if (f2 < f1){
			error_fecha=error_fecha + "- La Fecha Final debe ser mayor a la Fecha Inicial";
		}
	}
	if (error_fecha != ""){
		alert(error_fecha);
		return false;
	}else{
		return true;
	}

}
