function leap(year) {
   if ((year % 4 == 0) && (( year % 100 != 0) || (year % 400 ==0)))
     return true; 
   else
     return false;
 }

 function rellenaCadena(s,relleno,cantidad,pos) {
   var aux = s;
   for (var i = s.Length + 1; i<=cantidad; i++)
     if (pos == 0)
			aux = relleno + aux;
     else
			aux = aux + relleno;
   return aux;
 }

 var mesArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
 function syncComboFIni() {
 if (leap(document.forms[0].ddlAnoIni.value)) mesArray[1] = 29;
	document.forms[0].ddlDiaIni.options.length = mesArray[document.forms[0].ddlMesIni.value - 1]; 
 for (i = 1; i <= mesArray[document.forms[0].ddlMesIni.value - 1];i++) {
   document.forms[0].ddlDiaIni[i-1].text =rellenaCadena(i,"0",2,0);
   document.forms[0].ddlDiaIni[i-1].value =rellenaCadena(i,"0",2,0);
 }
 }

 function syncComboFFin() {
 if (leap(document.forms[0].ddlAnoFin.value)) mesArray[1] = 29;
	document.forms[0].ddlDiaFin.options.length = mesArray[document.forms[0].ddlMesFin.value - 1]; 
 for (i = 1; i <= mesArray[document.forms[0].ddlMesFin.value - 1];i++) {
   document.forms[0].ddlDiaFin[i-1].text =rellenaCadena(i,"0",2,0);
   document.forms[0].ddlDiaFin[i-1].value =rellenaCadena(i,"0",2,0);
 }
  /*Aņadido para que al poner un mes anterior al actual cambie de aņo*/
 var mesactual= (new Date()).getMonth() +1 ;
 var anoactual= (new Date()).getYear();
 if (Number(document.forms[0].ddlMesFin.value) < mesactual)  
 {
	document.forms[0].ddlAnoFin.value = anoactual +1;
 }
 /************/
 }

 function takeYear(theDate) {
 x = theDate.getYear();
	var y = x % 100; 
 y += (y < 38) ? 2000 : 1900; 
  return y; }

 function changeFFinDia(dias) {
 document.forms[0].ddlAnoFin.value = Number(document.forms[0].ddlAnoIni.value);
 if (document.forms[0].ddlDiaIni.value < mesArray[document.forms[0].ddlMesIni.value - 1]) {
 document.forms[0].ddlDiaFin.value = Number(document.forms[0].ddlDiaIni.value) + Number(dias); 
 document.forms[0].ddlMesFin.value = document.forms[0].ddlMesIni.value;
 } 
 else{
 document.forms[0].ddlDiaFin.value =  1; 
 var mesfin; var mesini = document.forms[0].ddlMesIni.value; 
 if (Number(mesini)<9) mesfin = "0"+ (Number(mesini)+1);  
 if (mesini=='09') mesfin= "10"; 
 if (mesini=='10') mesfin= "11"; 
 if (mesini=='11') mesfin= "12"; 
 if (mesini=='12') {mesfin= "01"; document.forms[0].ddlAnoFin.value = Number(document.forms[0].ddlAnoIni.value) +1; } 
 document.forms[0].ddlMesFin.value =  mesfin; 
 } 
 var date = new Date(); 
 if ((document.forms[0].ddlDiaIni.value == '31')&&(document.forms[0].ddlMesIni.value == '12')&& (Number(document.forms[0].ddlAnoIni.value) == (takeYear(date)+1))) {
 document.forms[0].ddlDiaFin.value = '31'; document.forms[0].ddlMesFin.value = '12'; document.forms[0].ddlAnoFin.value = document.forms[0].ddlAnoIni.value; 
} 
 syncComboFFin();
 }

 function changeFFinMes() {
 document.forms[0].ddlAnoFin.value = Number(document.forms[0].ddlAnoIni.value);
 var mesfin; var mesini = document.forms[0].ddlMesIni.value; 
 if (document.forms[0].ddlDiaIni.value == mesArray[document.forms[0].ddlMesIni.value - 1]) {
 if (Number(mesini)<9) mesfin = "0"+ (Number(mesini)+1);  
 if (mesini=='09') mesfin= "10"; 
 if (mesini=='10') mesfin= "11"; 
 if (mesini=='11') mesfin= "12"; 
 if (mesini=='12') {mesfin= "01"; document.forms[0].ddlAnoFin.value = Number(document.forms[0].ddlAnoIni.value) +1; 
}
} 
 else { document.forms[0].ddlDiaFin.value = Number(document.forms[0].ddlDiaIni.value) +1; mesfin=mesini;} document.forms[0].ddlMesFin.value =  mesfin;
 var date = new Date(); 
 if ((document.forms[0].ddlDiaIni.value == '31')&&(document.forms[0].ddlMesIni.value == '12')&& (Number(document.forms[0].ddlAnoIni.value) == (takeYear(date)+1))) {
 document.forms[0].ddlDiaFin.value = '31'; document.forms[0].ddlMesFin.value = '12'; document.forms[0].ddlAnoFin.value = document.forms[0].ddlAnoIni.value; 
} 
 /*Aņadido para que al poner un mes anterior al actual cambie de aņo*/
 var mesactual= (new Date()).getMonth() +1 ;
 var anoactual= (new Date()).getYear();
 if (mesini < mesactual)  
 {
	document.forms[0].ddlAnoIni.value = anoactual +1;
	document.forms[0].ddlAnoFin.value = Number(document.forms[0].ddlAnoIni.value);
 }
 /************/
 syncComboFFin();
 }

 function changeFFinAno() {
 var date = new Date(); 
 if((document.frm.ddlMesIni.value < date.getMonth()+1) && (Number(document.frm.ddlAnoIni.value) == (takeYear(date))))
 {
	document.frm.ddlMesIni.value = date.getMonth()+1;
	document.frm.ddlMesFin.value = date.getMonth()+1;
	document.frm.ddlAnoFin.value = date.getYear();
	document.frm.ddlAnoIni.value = date.getYear();
 }
 document.forms[0].ddlAnoFin.value = document.forms[0].ddlAnoIni.value;
 
 if ((document.forms[0].ddlDiaIni.value == '31')&&(document.forms[0].ddlMesIni.value == '12')&& (Number(document.forms[0].ddlAnoIni.value) == (takeYear(date)+1))) {
 document.forms[0].ddlDiaFin.value = '31'; document.forms[0].ddlMesFin.value = '12'; document.forms[0].ddlAnoFin.value = document.forms[0].ddlAnoIni.value; 
} 
 }
