  var pattern = /[\/.-]+/;
  var msInDay=1000*60*60*24;


 function dateChangedfrec(calendar) {
    // Beware that this function is called even if the end-user only
    // changed the month/year. In order to determine if a date was
    // clicked you can use the dateClicked property of the calendar:
    if (calendar.dateClicked) { // OK, a date was clicked, set label
     var y = calendar.date.getFullYear();
     var m = calendar.date.getMonth() + 1;    // integer, 0..11
     var d = calendar.date.getDate();     // integer, 1..31
     // set label
     var msg = document.getElementById("lblfrec");
     msg.childNodes.item(0).nodeValue = d + "-" + m + "-" + y;
    }
 };
 function dateChangedfdev(calendar) {
    // Beware that this function is called even if the end-user only
    // changed the month/year. In order to determine if a date was
    // clicked you can use the dateClicked property of the calendar:
    if (calendar.dateClicked) { // OK, a date was clicked, set label
     var y = calendar.date.getFullYear();
     var m = calendar.date.getMonth() + 1;    // integer, 0..11
     var d = calendar.date.getDate();     // integer, 1..31
     // set label
     var msg = document.getElementById("lblfdev");
     msg.childNodes.item(0).nodeValue = d + "-" + m + "-" + y;
    }
 };

  function FechaPasada(dia,mes,any) {
  var today = new Date();
  var fecha = new Date(any,mes-1,dia);
  return ((fecha.getTime() - today.getTime() + msInDay) < 0);
 }

 function CumpleAntelacion(recD,recM,recA) {
  var today = new Date();
  var frec = new Date(recA,recM-1,recD);
  return ((frec.getTime() - today.getTime() + msInDay) > (MinDayAdvance*msInDay));
 }
 
 function CumpleMinDias(recD,recM,recA,devD,devM,devA) {
  var frec = new Date(recA,recM-1,recD);
  var fdev = new Date(devA,devM-1,devD);
  return ((fdev.getTime() - frec.getTime() + msInDay) > (MinNumDayRsrv*msInDay));
 }

 function CompruebaFechas() {
  var frec=document.form_DVal.frec.value;
  var fdev=document.form_DVal.fdev.value;
  // Aqui cambiamos del formato de entrada al formato de trabajo d/m/Y
   var logs = frec.split(pattern);
   var frecAny = parseInt(logs[PosAnyEntrada],10);
   var frecMes = parseInt(logs[PosMesEntrada],10);
   var frecDia = parseInt(logs[PosDiaEntrada],10);
   var logs = fdev.split(pattern);
   var fdevAny = parseInt(logs[PosAnyEntrada],10);
   var fdevMes = parseInt(logs[PosMesEntrada],10);
   var fdevDia = parseInt(logs[PosDiaEntrada],10);
  var frecDMY=frecDia + '/' + frecMes + '/' + frecAny;
  var fdevDMY=fdevDia + '/' + fdevMes + '/' + fdevAny;
  
  infoStr =frec + ' -> (d/m/y) ' + frecDMY + '\n';
  infoStr+=fdev + ' -> (d/m/y) ' + fdevDMY + '\n';
  
  if (comprova_data(frecDMY)) {
   infoStr+=frec + ' Valida\n';
  } else {
   infoStr+=frec + ' Invalida\n';
  }
  if (comprova_data(fdevDMY)) {
   infoStr+=fdev + ' Valida\n';
  } else {
   infoStr+=fdev + ' Invalida\n';
  }
  
  if (FechaPasada(frecDia,frecMes,frecAny)) {
   infoStr+=frec + ' en el pasado => Invalida\n';
  } else {
   infoStr+=frec + ' en el futuro => Valida\n';
  }
  if (FechaPasada(fdevDia,fdevMes,fdevAny)) {
   infoStr+=fdev + ' en el pasado => Invalida\n';
  } else {
   infoStr+=fdev + ' en el futuro => Valida\n';
  }

  if (CumpleAntelacion(frecDia,frecMes,frecAny)) {
   infoStr+=frec + ' Cumple antelacion\n';
  } else {
   infoStr+=frec + ' Incumple antelacion\n';
  }

  if (CumpleMinDias(frecDia,frecMes,frecAny,fdevDia,fdevMes,fdevAny)) {
   infoStr+='Cumple Minimo dias\n';
  } else {
   infoStr+='Incumple Minimo dias\n';
  }

  alert(infoStr);
  return False;
 }

 function AddMinDias(fechaEntrada) {
  // Aqui cambiamos del formato de entrada al formato de trabajo d/m/Y
   var logs = fechaEntrada.split(pattern);
   var frecAny = parseInt(logs[PosAnyEntrada],10);
   var frecMes = parseInt(logs[PosMesEntrada],10);
   var frecDia = parseInt(logs[PosDiaEntrada],10);
   // y saco la fecha
   var frec = new Date(frecAny,frecMes-1,frecDia);
   // sumo
   var fdev=DayAdd(frec, MinNumDayRsrv);
   var fdevAny=fdev.getFullYear();
   var fdevMes=fdev.getMonth()+1;
   var fdevDia=fdev.getDate();
   // y calculo cadena formateada a devolver
   var retStr='';
   if (fdevDia<10){
     fdevDia='0'+fdevDia;
   }
   if (fdevMes<10){
     fdevMes='0'+fdevMes;
   }
   if (PosAnyEntrada==0) {
     retStr+=fdevAny + Separador;
     if (PosMesEntrada==1) {
       retStr+=fdevMes + Separador + fdevDia;
     } else {
       retStr+=fdevDia + Separador + fdevMes;
     }
   } else if (PosAnyEntrada==1) {
     if (PosMesEntrada==0) {
       retStr+=fdevMes + Separador + fdevAny + Separador + fdevDia;
     } else {
       retStr+=fdevDia + Separador + fdevAny + Separador + fdevMes;
     }
   } else {  // PosAny=2
     if (PosMesEntrada==0) {
       retStr+=fdevMes + Separador + fdevDia + Separador + fdevAny;
     } else {
       retStr+=fdevDia + Separador + fdevMes + Separador + fdevAny;
     }
   }
  document.Rsrv1.date_dropoff.value=retStr;
  return true;
 }

function setOf(){
	document.Rsrv1.of_dropoff.value=document.Rsrv1.of_pickup.value;
} 

function setNation(){
	document.Rsrv3.nationality.value=document.Rsrv3.country.value;
} 
 

function wopen(url,tit){
	
	var var_width = 279;
	var var_heigth = 308;
	var vleft = Math.round(window.screen.width/2-var_width/2);
	var vtop = Math.round(window.screen.height/2-var_heigth/2);
	//nw=window.open('','ficha','');
	nw=window.open('',tit,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width='+var_width+',height='+var_heigth+',top='+vtop+',left='+vleft);
	
	nw.location=url;
}

function sel_radio(rango){
	for (var i=0;i<document.Rsrv2.elements.length;i++) {
		if (document.Rsrv2.elements[i].type=='radio'){
			if (document.Rsrv2.elements[i].value==rango){
				document.Rsrv2.elements[i].checked=true;
			}else{
				document.Rsrv2.elements[i].checked=false;
			}
		}
	}
}

 // If this handler returns true then the "date" given as
 // parameter will be disabled.
 // You can use the functions date.getFullYear() -- returns the year
 // as 4 digit number, date.getMonth() -- returns the month as 0..11,
 // and date.getDate() -- returns the date of the month as 1..31, to
 // make heavy calculations here.  However, beware that this function
 // should be very fast, as it is called for each day in a month when
 // the calendar is (re)constructed.
 function isValidpick(date) {
   var now = new Date();
  var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
  return (date.getTime() < today.getTime());
 }

 function isValiddrop(date) {
  var logs = document.Rsrv1.date_pickup.value.split(pattern);
  var frecAny = parseInt(logs[PosAnyEntrada],10);
  var frecMes = parseInt(logs[PosMesEntrada],10);
  var frecDia = parseInt(logs[PosDiaEntrada],10);
  // y saco la fecha
  var frec = new Date(frecAny,frecMes-1,frecDia);
  return (date.getTime() < frec.getTime());
 }
