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

function finMes(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 > finMes(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 addToDate(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; 
} 

function recalcF1(){ 
	with (document.formulario){ 
		fecha1.value = addToDate(fecha0.value, increm.value); 
	} 
} 

function validarFecha(caja)
{ 
   if (caja)
   {  
      borrar = caja;
      if ((caja.substr(2,1) == "/") && (caja.substr(5,1) == "/") || (caja.substr(2,1) == ".") && (caja.substr(5,1) == "."))
      {      
         for (i=0; i<10; i++)
	     {	
            if (((caja.substr(i,1)<"0") || (caja.substr(i,1)>"9")) && (i != 2) && (i != 5))
			{
               borrar = '';
               break;  
			}  
         }
	     if (borrar)
	     { 
	        a = caja.substr(6,4);
		    m = caja.substr(3,2);
		    d = caja.substr(0,2);
		    if((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
		       borrar = '';
		    else
		    {
		       if((a%4 != 0) && (m == 2) && (d > 28))	   
		          borrar = ''; // Aņo no viciesto y es febrero y el dia es mayor a 28
			   else	
			   {
		          if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
			         borrar = '';	      				  	 
			   }  // else
		    } // fin else
         } // if (error)
      } // if ((caja.substr(2,1) == \"/\") && (caja.substr(5,1) == \"/\"))			    			
	  else
	     borrar = '';
	  if (borrar == '') {
	     return false;
	  }else{
	  	return true;
	  }
   } 
} 
function cadena_fecha(str){
	var nDia = Number(str.substr(0, 2)); 
	var nMes = Number(str.substr(3, 2)); 
	var nAno = Number(str.substr(6, 4)); 

	var fecha = new Date (nAno, nMes-1, nDia, 0, 0, 0);

	return fecha;
}
