/*!
 * Copyright (c) 2010 Tamadi Voyage
 * Reservation en ligne
 *
 ******************************************************************************/

/*############################################################################*/
// Fonction charger de vérifier que le formulaire de reservation en ligne
// est rempli correctement.
/*############################################################################*/
function checkFormReservation(nbCaptcha){
  if(document.formReservation.resa_dest.value == "" || document.formReservation.resa_circuit.value == "" || document.formReservation.resa_dateDepart.value == "" || 
     document.formReservation.resa_dateRetour.value == "" || document.formReservation.resa_nbParticipant.value == "" || (document.formReservation.resa_civilite_tr1[0].checked == false && document.formReservation.resa_civilite_tr1[1].checked == false && document.formReservation.resa_civilite_tr1[2].checked == false) ||
     document.formReservation.resa_nom_tr1.value == "" || document.formReservation.resa_prenom_tr1.value == "" || document.formReservation.resa_adresse_tr1.value == "" ||
     document.formReservation.resa_code_p_tr1.value == "" || document.formReservation.resa_ville_tr1.value == "" || document.formReservation.resa_pays_tr1.value == "" ||
     document.formReservation.resa_fone_fixe_tr1.value == "" || document.formReservation.resa_email_tr1.value == "" || document.formReservation.resa_datenaissance_tr1.value == "" ||
     document.formReservation.resa_num_passport_tr1.value == "" || document.formReservation.resa_nationnalite_tr1.value == "" || document.formReservation.resa_profession_tr1.value == "" || 
     document.formReservation.resa_devis.value == "" || document.formReservation.nbCaptcha.value == "" || document.formReservation.resa_echange_email.checked == false){
    alert("Tous les champs marqué d'un \"*\" sont obligatoires.");
    return false;
  }else if(document.formReservation.resa_cgv.checked == false){
    alert("Vous devez accepter les confitions de ventes de Tamadi en cochant la case correspondante !");
    return false;
  }else if(nbCaptcha != document.formReservation.nbCaptcha.value){
    alert("Les chiffres saisis pour le filtre anti-spam sont erroné, veuillez recommencer !");
    return false;
  }else{
    /* Vérification du numero de devis */
    if(document.formReservation.checkNumDevisInput.value == "valide"){return true;}
    else{ 
      alert("Aucun devis ne correspond au numero " + document.formReservation.resa_devis.value);
      return false;
    } 
  }
}

/*############################################################################*/
// Fonction charger de vérifier que le formulaire de devis en ligne
// est rempli correctement.
/*############################################################################*/
function checkFormDevis(nbCaptcha){
  if(document.formDevis.devis_dest.value == "" || document.formDevis.devis_circuit.value == "" || document.formDevis.devis_dateDepart.value == "" || 
     document.formDevis.devis_dateRetour.value == "" || document.formDevis.devis_nbParticipant.value == "" || document.formDevis.devis_civilite_resp.value == "" || 
     document.formDevis.devis_nom_resp.value == "" || document.formDevis.devis_prenom_resp.value == "" || document.formDevis.devis_adresse_resp.value == "" ||
     document.formDevis.devis_code_p_resp.value == "" || document.formDevis.devis_ville_resp.value == "" || document.formDevis.devis_pays_resp.value == "" ||
     document.formDevis.devis_fone_fixe_resp.value == "" || document.formDevis.devis_email_resp.value == "" || document.formDevis.nbCaptcha.value == ""){
    alert("Tous les champs marqué d'un \"*\" sont obligatoires.");
    return false;
  }else if(nbCaptcha != document.formDevis.nbCaptcha.value){
    alert("Les chiffres saisis pour le filtre anti-spam sont erroné, veuillez recommencer !");
    return false;
  }else{
    return true;
  }
}


/*############################################################################*/
// Fonction chargée de vérifier la validité d'un numéro de devis
/*############################################################################*/
function checkNumeroDevis(numDevis){
  if(numDevis != ""){
    var xhr=null;
  
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    xhr.onreadystatechange = function() { return isNumDevisValide(xhr); };
    xhr.open("GET", "http://www.tamadi.org/include/getItemsFromDatabase.php?table=Reservations&devis=" + numDevis, true);
    xhr.send(null);
  }
}


/*############################################################################*/
// Fonction chargée de vérifier la validité d'un numéro de devis
/*############################################################################*/
function isNumDevisValide(xhr){
  if (xhr.readyState==4) {
  	var docXML = xhr.responseXML;
  	var rep = docXML.getElementsByTagName("devis");
    var msg = rep.item(0).firstChild.data;
  	if(msg == "valide"){
      var texte = "<input id=\"checkNumDevisInput\" type=\"hidden\" name=\"checkNumDevis\" value=\"valide\" />";
      document.getElementById('divCheckNumDevis').innerHTML = texte;
      return true;
    }else{
      var texte = "<input id=\"checkNumDevisInput\" type=\"hidden\" name=\"checkNumDevis\" value=\"unvalide\" />";
      document.getElementById('divCheckNumDevis').innerHTML = texte;
      return false;
    }
    return false;
  }
}

/*############################################################################*/
// Fonction chargée de recuperer les circuits par pays dans la BDD
/*############################################################################*/
function getCircuitsByDest(dest, act){
  var xhr=null;

  if (window.XMLHttpRequest) {
      xhr = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  resetDates(act);
  xhr.onreadystatechange = function() { setSelectCircuits(xhr, act); };
  xhr.open("GET", "http://www.tamadi.org/include/getItemsFromDatabase.php?table=Circuits&dest=" + dest, true);
  xhr.send(null);
}

/*############################################################################*/
// Fonction chargée d'afficher les circuits par destination choisie
/*############################################################################*/
function setSelectCircuits(xhr, act){
  if (xhr.readyState==4) {
  	var docXML= xhr.responseXML;
  	var ids = docXML.getElementsByTagName("id");
  	var names = docXML.getElementsByTagName("nom");
    var texte = "";

  	if(act == "0"){
      texte += "<label class=\"devisLabel1\">Nom du sejour *:</label>";
    	texte += "<select class=\"devisSelect1\" name=\"devis_circuit\" onChange=\"getDateDepartCircuit(this.value, " + act + ")\">";
    }else if(act == "1"){
      texte += "<label class=\"resaLabel1\">Nom du sejour *:</label>";
    	texte += "<select class=\"resaSelect1\" name=\"resa_circuit\" onChange=\"getDateDepartCircuit(this.value, " + act + ")\">";
    }
  	
    texte += "<option value=\"\"></option>";
  	
  	for (i=0;i<ids.length;i++){
  		texte += "<option value=\"" + ids.item(i).firstChild.data + "\">" + names.item(i).firstChild.data + "</option>";
  	}
  	texte += "</select>";
  	if(act == "0"){
      document.getElementById('devisSelectSejour').innerHTML = texte;
    }else if(act == "1"){
      document.getElementById('resaSelectSejour').innerHTML = texte;
    }
  }
}

/*############################################################################*/
// Fonction chargée de recuperer les dates de départ d'uncircuits
/*############################################################################*/
function getDateDepartCircuit(circuit, act){
  var xhr=null;

  if (window.XMLHttpRequest) {
      xhr = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  resetDates(act);
  xhr.onreadystatechange = function() { setSelectDateDepart(xhr, act); };
  xhr.open("GET", "http://www.tamadi.org/include/getItemsFromDatabase.php?table=Departs&circuit=" + circuit, true);
  xhr.send(null);
}

/*############################################################################*/
// Fonction chargée d'afficher les dates de departs d'un circuit
/*############################################################################*/
function setSelectDateDepart(xhr, act){
  if (xhr.readyState==4) {
  	var docXML= xhr.responseXML;
  	var ids = docXML.getElementsByTagName("id");
  	var departs = docXML.getElementsByTagName("depart");
    var texte ="";
    
    if(act == "0"){
    	texte += "<label class=\"devisLabel1\">Date de départ *:</label>";
    	texte += "<select class=\"devisSelect2\" name=\"devis_dateDepart\" onChange=\"getDateRetourCircuit(this.value, " + act + ")\">";
    	texte += "<option value=\"\"></option>";
    }else if(act == "1"){
      texte += "<label class=\"resaLabel1\">Date de départ *:</label>";
    	texte += "<select class=\"resaSelect2\" name=\"resa_dateDepart\" onChange=\"getDateRetourCircuit(this.value, " + act + ")\">";
    	texte += "<option value=\"\"></option>";
    	texte += "<option value=\"-1\">Autre date</option>";
    }
  	
  	for (i=0;i<ids.length;i++){
  		texte += "<option value=\"" + ids.item(i).firstChild.data + "\">" + departs.item(i).firstChild.data + "</option>";
  	}
  	texte += "</select>";
  	
  	if(act == "0"){
      document.getElementById('devisSelectDateDepart').innerHTML = texte;
    }else if(act == "1"){
      document.getElementById('resaSelectDateDepart').innerHTML = texte;
    }
  }
}

/*############################################################################*/
// Fonction chargée de recuperer la date de retour d'un circuit
/*############################################################################*/
function getDateRetourCircuit(idDepart, act){
  

  // IF AUTRE DATE, TYPE IN THE DATE
  if(idDepart == -1){
    var texte = "<label class=\"resaLabel1\">Date de départ exacte *:</label>";
    texte += "<input class=\"resaInput1\" id=\"resa_dateDepartAutre\" type=\"text\" name=\"resa_dateDepartAutre\" maxlength=\"200\" size=\"30\" value=\"<Precisez la date de départ>\" onFocus=\"clearInput(this);\"/>";
    document.getElementById('resaSelectDateDepartAutre').innerHTML = texte;
    document.getElementById('resaSelectDateDepartAutre').className = 'setVisible';
   
    var dateRetour = "<label class=\"resaLabel1\">Date de retour *:</label>";
    dateRetour += "<input class=\"resaInput1\" type=\"hidden\" name=\"resa_dateRetour\" size=\"30\" value=\"-1\" />";
    dateRetour += "<input class=\"resaInput1\" type=\"text\" name=\"resa_dateRetour1\" size=\"30\" value=\"<Indiquez la date retour>\" onFocus=\"clearInput(this);\" />";
    document.getElementById('resaSelectDateRetour').innerHTML = dateRetour;
  
  }else{
    document.getElementById('resaSelectDateDepartAutre').className = 'setUnVisible';
    
    var xhr=null;
    // ELSE GET DATE RETOUR FROM DATABASE
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    xhr.onreadystatechange = function() { setInputDateRetour(xhr, act); };
    xhr.open("GET", "http://www.tamadi.org/include/getItemsFromDatabase.php?table=Retour&IdDatedepart=" + idDepart, true);
    xhr.send(null);
  }
}

function clearInput(e){
  e.value = "";
}
/*############################################################################*/
// Fonction chargée d'afficher la date de retour d'un circuit
/*############################################################################*/
function setInputDateRetour(xhr, act){
  if (xhr.readyState==4) {
  	var docXML= xhr.responseXML;
  	var ids = docXML.getElementsByTagName("id");
  	var retours = docXML.getElementsByTagName("retour");
    var texte ="";
    
  	if(act == "0"){
      texte += "<label class=\"devisLabel1\">Date de retour *:</label>";
    	texte += "<input class=\"devisInput1\" type=\"hidden\" name=\"devis_dateRetour\" size=\"30\" value=\"" + retours.item(0).firstChild.data + "\" />";
    	texte += "<input class=\"devisInput1\" type=\"text\" name=\"devis_dateRetour1\" disabled size=\"30\" value=\"" + retours.item(0).firstChild.data + "\" />";
    	
    	document.getElementById('devisSelectDateRetour').innerHTML = texte;
    }else if(act == "1"){
      texte += "<label class=\"resaLabel1\">Date de retour *:</label>";
    	texte += "<input class=\"resaInput1\" type=\"hidden\" name=\"resa_dateRetour\" size=\"30\" value=\"" + retours.item(0).firstChild.data + "\" />";
    	texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_dateRetour1\" disabled size=\"30\" value=\"" + retours.item(0).firstChild.data + "\" />";
    	
    	document.getElementById('resaSelectDateRetour').innerHTML = texte;
    }
  }
}

/*############################################################################*/
// Fonction chargée de remettre à 0 les champs des dates
/*############################################################################*/
function resetDates(act){
  var depart ="";
  var retour ="";
  
  if(act == "0"){
    depart += "<label class=\"devisLabel1\">Date de départ *:</label>";
    depart += "<select class=\"devisSelect2\" name=\"devis_dateDepart\" onChange=\"getDateRetourCircuit(this.value, " + act + ")\">";
    depart += "<option value=\"\"></option>";
    depart += "</select>";
    retour += "<label class=\"devisLabel1\">Date de retour *:</label>";
    retour += "<input class=\"devisInput1\" type=\"text\" name=\"devis_dateRetour\" disabled size=\"30\" value=\"\" />";
    document.getElementById('devisSelectDateDepart').innerHTML = depart;
    document.getElementById('devisSelectDateRetour').innerHTML = retour;
  }else if(act == "1"){
    depart += "<label class=\"resaLabel1\">Date de départ *:</label>";
    depart += "<select class=\"resaSelect2\" name=\"resa_dateDepart\" onChange=\"getDateRetourCircuit(this.value, " + act + ")\">";
    depart += "<option value=\"\"></option>";
    depart += "</select>";
    retour += "<label class=\"resaLabel1\">Date de retour *:</label>";
    retour += "<input class=\"resaInput1\" type=\"text\" name=\"resa_dateRetour\" disabled size=\"30\" value=\"\" />";
    document.getElementById('resaSelectDateDepart').innerHTML = depart;
    document.getElementById('resaSelectDateRetour').innerHTML = retour;
  }
}

/*##################################################################################*/
// Fonction qui affiche les champs de saisies en fonction du nombre de participants
/*##################################################################################*/
function setOtherTravelersForm(nbTravelers){
  var texte = "";
  var cpt = 2;
  
  if(nbTravelers != ""){
    for(i=1;i<nbTravelers;i++){
      texte += "<fieldset class=\"formReservation\"><legend>Voyageur " + cpt +" (ne remplir que les donn&eacute;es différentes de celles de la personne qui reserve)</legend>";
      texte += "<label class=\"resaLabel1\">Civilit&eacute; :</label>";
      texte += "<input class=\"resaInputRadio\" type=\"radio\" name=\"resa_civilite_tr" + cpt +"\" value=\"Mr\" />Mr"
      texte += "<input class=\"resaInputRadio\" type=\"radio\" name=\"resa_civilite_tr" + cpt +"\" value=\"Mme\" />Mme";
      texte += "<input class=\"resaInputRadio\" type=\"radio\" name=\"resa_civilite_tr" + cpt +"\" value=\"Melle\" />Melle<br />";
      texte += "<label class=\"resaLabel1\">Nom :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_nom_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Pr&eacute;nom :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_prenom_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Adresse :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_adresse_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Code Postal :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_code_p_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Ville :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_ville_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Pays :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_pays_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">T&eacute;l&eacute;phone fixe :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_fone_fixe_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">T&eacute;l&eacute;phone mobile :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_cellfone_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Adresse &eacute;lectronique :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_email_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Date de naissance :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_datenaissance_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><span class=\"smallItalicText\"> jj/mm/aaaa</span><br />";
      texte += "<label class=\"resaLabel1\">Num&eacute;ro de passeport :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_num_passport_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Nationnalit&eacute; :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_nationnalite_tr" + cpt +"\" maxlength=\"200\" size=\"30\" /><br />";
      texte += "<label class=\"resaLabel1\">Profession :</label>";
      texte += "<input class=\"resaInput1\" type=\"text\" name=\"resa_profession_tr" + cpt +"\" maxlength=\"200\" size=\"30\" />";
      texte += "</fieldset>"
      cpt++;
    }
  }
  
  document.getElementById('voyageurParticipants').innerHTML = texte;
}