function Comparar_Fecha(Obj1,Obj2,Estricto)  {
	if (Obj1.substring(1,2)=="/") {
		Obj1="0"+Obj1
	}
	if (Obj1.substring(4,5)=="/"){
		Obj1=Obj1.substring(0,3)+"0"+Obj1.substring(3,9)
	}
	
	if (Obj2.substring(1,2)=="/") {
		Obj2="0"+Obj2
	}
	if (Obj2.substring(4,5)=="/"){
		Obj2=Obj2.substring(0,3)+"0"+Obj2.substring(3,9)
	}
	
	dia1=Obj1.substring(0,2);
	mes1=Obj1.substring(3,5);
	anyo1=Obj1.substring(6,10);
	dia2=Obj2.substring(0,2);
	mes2=Obj2.substring(3,5);
	anyo2=Obj2.substring(6,10);
	
	
	if (dia1 == "08")
		dia1 = "8";
	if (dia1 == '09')
		dia1 = "9";
	if (mes1 == "08")
		mes1 = "8";
	if (mes1 == "09")
		mes1 = "9";
	if (dia2 == "08")
		dia2 = "8";
	if (dia2 == '09')
		dia2 = "9";
	if (mes2 == "08")
		mes2 = "8";
	if (mes2 == "09")
		mes2 = "9";
	
	dia1=parseInt(dia1);
	dia2=parseInt(dia2);
	mes1=parseInt(mes1);
	mes2=parseInt(mes2);
	anyo1=parseInt(anyo1);
	anyo2=parseInt(anyo2);
	
	if (anyo1>anyo2)
	{
		return false;
	}
	
	if ((anyo1==anyo2) && (mes1>mes2))
	{
		return false;
	}
	if (Estricto) {
		if ((anyo1==anyo2) && (mes1==mes2) && (dia1>dia2))
		{
			return false;
		} 
	} else {
		if ((anyo1==anyo2) && (mes1==mes2) && (dia1>=dia2))
		{
			return false;
		} 
	}
	
	return true;
}


function finMes(ofecha){ 
	var nMes = parseInt(ofecha.substr(3, 2), 10); 
	var nAno = parseInt(ofecha.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(ofecha){ 
	var bOk = false; 
	var nDia = parseInt(ofecha.substr(0, 2), 10); 
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(ofecha))); 
	return bOk; 
} 

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

function valAno(ofecha){ 
	var bOk = true; 
	var nAno = ofecha.substr(6); 
	bOk = bOk && ((nAno.length == 2) || (nAno.length == 4)); 
	return bOk; 
} 

function Validar_Fecha(ofecha) {
	var bOk = true; 
	if (ofecha != ""){ 
	 /*alert(valAno(ofecha));
	 alert(valMes(ofecha));
	 alert(valDia(ofecha));*/
	 bOk = bOk && (valAno(ofecha)); 
	 bOk = bOk && (valMes(ofecha)); 	 
	 bOk = bOk && (valDia(ofecha)); 
	 if (!bOk){ 
		return(-1); 
	 } else {
	 	return(0); 
	 }
	} 
}

function Validar_Fecha_Futura(ofini, offin) {
	var fecha= new Date();
	var dia=fecha.getDate();
			str_dia = new String (dia) 
			if (str_dia.length == 1) 
				dia = "0" + dia
	var mes=fecha.getMonth()+1;
			str_mes = new String (mes) 
			if (str_mes.length == 1) 
				mes = "0" + mes
	var ano=fecha.getFullYear()+1;
	var fechatope=dia+'/'+mes+'/'+ano;
	
	$res=Comparar_Fecha(fechatope,ofini,1);
	$res=$res || Comparar_Fecha(fechatope,offin,1);

	return ($res);
}


var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); 

function finMes2(nMes, nAno){ 
 return aFinMes[nMes - 1] + (((nMes == 2) && (nAno % 4) == 0)? 1: 0); 
} 

function padNmb(nStr, nLen, sChr){ 
	var sRes = String(nStr); 
	for (var i = 0; i < nLen - String(nStr).length; i++) 
	 sRes = sChr + sRes; 
	return sRes; 
} 

function makeDateFormat(nDay, nMonth, nYear){ 
	var sRes; 
	sRes = padNmb(nDay, 2, "0") + "/" + padNmb(nMonth, 2, "0") + "/" + padNmb(nYear, 4, "0"); 
	return sRes; 
} 
	
function incDate(sFec0){ 

 var nDia = parseInt(sFec0.substr(0, 2), 10); 
 var nMes = parseInt(sFec0.substr(3, 2), 10); 
 var nAno = parseInt(sFec0.substr(6, 4), 10); 
 nDia += 1; 
 if (nDia > finMes2(nMes, nAno)){ 
	nDia = 1; 
	nMes += 1; 
	if (nMes == 13){ 
	 nMes = 1; 
	 nAno += 1; 
	} 
 } 
 return makeDateFormat(nDia, nMes, nAno); 
} 

function decDate(sFec0){ 
 var nDia = Number(sFec0.substr(0, 2)); 
 var nMes = Number(sFec0.substr(3, 2)); 
 var nAno = Number(sFec0.substr(6, 4)); 
 nDia -= 1; 
 if (nDia == 0){ 
	nMes -= 1; 
	if (nMes == 0){ 
	 nMes = 12; 
	 nAno -= 1; 
	} 
	nDia = finMes(nMes, nAno); 
 } 
 return makeDateFormat(nDia, nMes, nAno); 
} 

function sumaDias(sFec0, sInc){ 
 var nInc = Math.abs(parseInt(sInc)); 
 var sRes = sFec0; 
  if (parseInt(sInc) >= 0) 
	for (var i = 0; i < nInc; i++) sRes = incDate(sRes); 
 else 
 	for (var i = 0; i < nInc; i++) sRes = decDate(sRes); 
 return sRes; 
} 

