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

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

   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 pick(cal){
	var ftemp = cal.date; //rescatamos la fecha en formato largo
	var ano = ftemp.getFullYear();
	var mes = parseInt(ftemp.getMonth()) +1;
	var dia = ftemp.getDate();
	if (mes < 10)
		{
		mes = "0"+mes;
		}
	if (dia < 10)
		{
		dia = "0"+dia;
		}
	var fechapick = dia+"/"+mes+"/"+ano;
  	document.getElementById("fdev").value=fechapick;
}

//funcion que calcula la fehca introducida antes, le suma los dias y los deveuelve al campo de devolucion
  function fechadev(cal){
	var ftemp = cal.date; //rescatamos la fecha en formato largo
	var ano = ftemp.getFullYear();
	var mes = parseInt(ftemp.getMonth()) +1;
	if (mes < 10)
		{
		mes = "0"+mes;
		}
	var dia = ftemp.getDate();
	if (dia < 10)
		{
		dia = "0"+dia;
		}
	var fechaori = dia+"/"+mes+"/"+ano;
  	document.getElementById("fent").value=fechaori;
	var devinc = addToDate(fechaori, document.fcalen.inc.value);
	
	with (document.fcalen)
		{
		fechadev.value = devinc;
		}
	var ffinraw = document.getElementById("fdev").value;
	var ffin = ffinraw.substr(3,2) + "/" + ffinraw.substr(0,2) + "/" + ffinraw.substr(6,4);
	document.getElementById("caldev").innerHTML="";
	Calendar.setup({
		flat:		"caldev",
		ifFormat:	"%d/%m/%Y",
		date:		ffin,
		weekNumbers:	false,
		onSelect:	comprueba_dias_min
	});
  }

//ATENCION COMPROBAR DIAS MINIMOS DE RESERVA
function comprueba_dias_min(cal) {
	var min_dias = document.fcalen.inc.value;
	var fdev_str = cal.date; //rescatamos la fecha en formato largo
	
	//rescatamos la fecha de entrega
	var fent = document.fcalen.fechaent.value;
	
	var fent_dmy=fent;
	
	//incrementamos dias minimos
	fent_inc=addToDate(fent_dmy,min_dias);

	
	//convertimos la entrega incrementada a Y/M/D
	anioinc=fent_inc.substr(6,4);
	mesinc=fent_inc.substr(3,2);
	diainc=fent_inc.substr(0,2);
	var fent_ymd=anioinc+"/"+mesinc+"/"+diainc;
	
	//sacamos formato largo de entrega incrementada
	fent_inc_str=new Date(fent_ymd);
	
	//comprobamos que la fecha elejida no sea menor que la incrementada, q es la minima
	if (fdev_str < fent_inc_str)
		{
		alert("Debe reservar al menos por un periodo de "+min_dias+" días");
		}
	else
		{
		//convertimos la fecha de devolucion elejida a d/m/y
		var aniodev=fdev_str.getFullYear();
		var mesdev=parseInt(fdev_str.getMonth())+1;
		if (mesdev < 10)
			{
			mesdev="0"+mesdev;
			}
		var diadev=fdev_str.getDate();
		if(diadev < 10)
			{
			diadev="0"+diadev;
			}
		fdev_dmy=diadev+"/"+mesdev+"/"+aniodev;
		
		with (document.fcalen)
			{
			fechadev.value = fdev_dmy;
			}
		//calendar.hide();
		pick(cal);
		}
	}
function oculta(cal){
	calendar.hide();
	}
