//calcular la edad de una persona
//recibe la fecha como un string en formato español
//devuelve un entero con la edad. Devuelve false en caso de que la fecha sea incorrecta o mayor que el dia actual
function calcular_edad(fecha){

    //calculo la fecha de hoy
    hoy=new Date();

    //calculo la fecha que recibo
    //La descompongo en un array
    var array_fecha = fecha.split("/")
    //si el array no tiene tres partes, la fecha es incorrecta
    if (array_fecha.length!=3)
       return false

    //compruebo que los ano, mes, dia son correctos
    var ano
    ano = parseInt(array_fecha[2]);
    if (isNaN(ano))
       return false

    var mes
    mes = parseInt(array_fecha[1]);
    if (isNaN(mes))
       return false

    var dia
    dia = parseInt(array_fecha[0]);
    if (isNaN(dia))
       return false


    //si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
    if (ano<=99)
       ano +=1900

    //resto los años de las dos fechas
    edad=hoy.getFullYear()- ano - 1; //-1 porque no se si ha cumplido años ya este año

    //si resto los meses y me da menor que 0 entonces no ha cumplido años. Si da mayor si ha cumplido
    if (hoy.getMonth() + 1 - mes < 0) //+ 1 porque los meses empiezan en 0
       return edad
    if (hoy.getMonth() + 1 - mes > 0)
       return edad+1

    //entonces es que eran iguales. miro los dias
    //si resto los dias y me da menor que 0 entonces no ha cumplido años. Si da mayor o igual si ha cumplido
    if (hoy.getUTCDate() - dia >= 0)
       return edad + 1

    return edad
}

function openHelp(url, title) {
  var width = 360;
	var heigth = 320;
	var left = Math.round(window.screen.width/2-width/2);
	var top = Math.round(window.screen.height/2-heigth/2);
  window.open( url, title, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=' + width + ',height=' + heigth + ',top=' + top + ',left=' + left);
}

function validate_step1(form) {
  var currentDate = new Date();
  if (form.pHours.value=='' || form.pMinutes.value=='' || form.dHours.value=='' || form.dMinutes.value=='') {
    show_error('error-datesempty');
    return false;
  }
  var pickupDate = new Date(form.pYear.value, form.pMonth.value-1, form.pDay.value, form.pHours.value, form.pMinutes.value);
  var dropoffDate = new Date(form.dYear.value, form.dMonth.value-1, form.dDay.value, form.dHours.value, form.dMinutes.value);
  if (pickupDate.getMonth()!=form.pMonth.value-1) {
    show_error('error-datesinvalid');
    return false;
  }
  if (dropoffDate.getMonth()!=form.dMonth.value-1) {
    show_error('error-datesinvalid');
    return false;
  }
  if ((pickupDate-currentDate)<0) {
    show_error('error-datesinvalid');
    return false;
  }
  if ((pickupDate-dropoffDate)>=0) {
    show_error('error-datesinvalid');
    return false;
  }
  //if (!checkEmail(form.email.value)) {
  //  show_error('error-email');
  //  return false;
  //}
  return true;
}

function validate_step2(form) {
  return (form.offercode!=null);
}

function validate_step3(form) {
  if (form.name.value == "") {
    show_error('error-name');
    form.name.focus();
    return false;
  }
  if (form.surname.value == "") {
    show_error('error-surname');
    form.surname.focus();
    return false;
  }
  if (form.country.value == "") {
    show_error('error-pais');
    form.country.focus();
    return false;
  }
  if (form.license.value == "") {
    show_error('error-license');
    form.license.focus();
    return false;
  }
  
/*  if (form.address.value == "") {
    show_error('error-address'); 
    form.address.focus(); 
    return false;
  }
  if (form.city.value == "") {
    show_error('error-city');
    form.city.focus();
    return false;
  }
  if (form.postalcode.value == "") {
    show_error('error-postalcode');
    form.postalcode.focus();
    return false;
  }
  if (form.passport.value == "") {
    show_error('error-passport');
    form.passport.focus();
    return false;
  }*/
  
  if (form.phone1.value == "") {
    show_error('error-tel1');
    form.phone1.focus();
    return false;
  }
  if (form.email.value == "") {
    show_error('error-email');
    form.email.focus();
    return false;
  }
  if (form.requires_address) {
    if (form.notes.value=='') {
      show_error("error-notes");
      form.notes.focus();
      return false;
    }
  }
  if ((form.email.value.length) != 0) {
    iAtt = form.email.value.indexOf("@");
    iPunktur = form.email.value.indexOf(".");
    if ((iAtt <= 0) || (iPunktur <= 0)) {
      show_error('error-email-invalid');
      form.email.focus();
      form.email.select();
      return false;
    } 
  }
  /*if (form.email.value !=  form.emailConf.value) {
    show_error('error-email-cmp');
    form.emailConf.focus();
    return false;
  }*/
  if (form.ccowner) {
    if (form.ccowner.value=='' || form.ccnumber.value=='' || form.ccexpdate.value=='' || form.cccontrol.value=='') {
      show_error('error-cc-data');
      form.ccowner.focus();
      form.ccowner.select();
      return false;
    }
  }

  if (form.office_airport.value == "t") {
	if (form.nflightin.value == "") {
	show_error('error-nflight');
	form.nflightin.focus();
	return false;
	}
  }

  if (calcular_edad(form.birthDay.value+'/'+form.birthMonth.value+'/'+form.birthYear.value) < 19) {
	show_error('error-birthday');
	form.birthDay.focus();
	return false;
  }

  return true;
}

var lastOffer = null;
var lastExtras = null;
function selectOffer(id) {
  var offer = document.getElementById('offer_'+id);
  var extras = document.getElementById('extras_'+id);
  if (offer==lastOffer) {
    return;
  }
  if (lastOffer!=null) {
    lastOffer.className = 'offer';
    lastExtras.style.display = 'none';
    sbs = lastExtras.getElementsByTagName("select");
    for(i=0; i<sbs.length; i++) {
      sbs[i].disabled = true;
    }
  }
  offer.className = 'offer-selected';
  extras.style.display = '';

  lastOffer = offer;
  lastExtras = extras;
  sbs = extras.getElementsByTagName("select");
  for(i=0; i<sbs.length; i++) {
    sbs[i].disabled = false;
  }
}

function send_form(form) {
  if (validate_step1(form)) {
    try {
      if (this.opener && this.opener.name=='rentspain-main') {
        this.opener.hide_and_wait(null);
        form.target = 'rentspain-main';
        form.submit();
        close();
        return true;
      }
    }
    catch (e) {
    }
    hide_and_wait(null);
    form.submit();
  }
}
