function restarFechas(f0, f1) {
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var fecha0 = f0;

var matchArray0 = fecha0.match(datePat);
month0 = matchArray0[3];
day0 = matchArray0[1];
year0 = matchArray0[5];


var fecha1 = f1;
var matchArray1 = fecha1.match(datePat);
month1 = matchArray1[3];
day1 = matchArray1[1];
year1 = matchArray1[5];

var fechaIni = new Date();
fechaIni.setFullYear(year0, month0, day0)

var fechaFin = new Date();
fechaFin.setFullYear(year1, month1, day1)

var resta = fechaFin - fechaIni;
resta = resta/86400000;
resta = Math.round (resta);
return(resta);

} 



  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));
   var nMes = parseInt(sFec0.substr(3, 2));
   var nAno = parseInt(sFec0.substr(6, 4));

   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 aumenta(f,num) { 
  f=f.split('-'); 
  f=f[1]+'/'+f[0]+'/'+f[2]; 
  hoy=new Date(f); 
  hoy.setTime(hoy.getTime()+num*24*60*60*1000); 
  mes=hoy.getMonth()+1; 
  if(mes<10) mes='0'+mes; 
  dia = hoy.getDate();
  if(dia<10) dia='0'+dia; 
  ano = hoy.getFullYear();
  if(ano<10) ano='200'+ano; 
  fecha=dia+'-'+mes+'-'+ano; 
  return fecha; 
} 

function fecha_valida(f)
{
var error = 0;
/* la forma de verificar el formato es la que ya comentamos */
re=/^[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]$/
if(f.length==0 || !re.exec(f))
{
	alert("La fecha no tiene formato correcto.");
	error = 1;
}

var d = new Date()
d.setFullYear(f.substring(6,10), 
	      f.substring(3,5)-1,
	      f.substring(0,2))

if(d.getMonth() != f.substring(3,5)-1 
	|| d.getDate() != f.substring(0,2))
{
	alert("La fecha introducida no es válida.")
	error = 2
}


return error
}


function revisarFechaLlegada ()
{
	fecha_valida(document.reservas.llegada.value);
}

function revisarFechaSalida ()
{
	fecha_valida(document.reservas.salida.value);
}



function reservar_ya()
{
	document.reservas.noches.value = restarFechas (document.reservas.llegada.value,document.reservas.salida.value);
	if ( fecha_valida (document.reservas.llegada.value, document.reservas.noches.value, document.reservas.adultos.value) == 0)
		document.reservas.submit();
}



