﻿function verif(lang){

	if (!verifResa(lang)) return false;
	
	//alert("verifFields : " + lang);
	if (!verifInfos(lang)) return false;
	
	return true;

}


var dateFieldValues = new Array();

dateFieldValues["FR"] = new Array();

dateFieldValues["FR"]["debut"] = new Array();
dateFieldValues["FR"]["debut"]["emptydate"] = "Les dates de début et fin de séjour ne sont pas renseignées.";
dateFieldValues["FR"]["debut"]["pastdate"] = "La date de début de séjour est dépassée.";
dateFieldValues["FR"]["debut"]["reversedate"] = "La date de fin de séjour est antérieure à la date de début de séjour.";
dateFieldValues["FR"]["debut"]["samedate"] = "Les dates de début et de fin de séjour sont les mêmes.";

dateFieldValues["FR"]["fin"] = new Array();
dateFieldValues["FR"]["fin"]["emptydate"] = "Les dates de début et fin de séjour ne sont pas renseignées.";
dateFieldValues["FR"]["fin"]["pastdate"] = "La date de fin de séjour est dépassée.";


dateFieldValues["UK"] = new Array();

dateFieldValues["UK"]["debut"] = new Array();
dateFieldValues["UK"]["debut"]["emptydate"] = "The dates of the beginning and the end of your stay have not been indicated.";
dateFieldValues["UK"]["debut"]["pastdate"] = "The date of the beginning of your stay is incorrect.";
dateFieldValues["UK"]["debut"]["reversedate"] = "The date of the end of your stay is earlier than the date of the beginning of your stay.";
dateFieldValues["UK"]["debut"]["samedate"] = "The dates of the beginning and the end of your stay are the same.";

dateFieldValues["UK"]["fin"] = new Array();
dateFieldValues["UK"]["fin"]["emptydate"] = "The dates of the beginning and the end of your stay have not been indicated.";
dateFieldValues["UK"]["fin"]["pastdate"] = "The date of the end of your stay is incorrect.";


function verifResa(lang){

	// Tarifs des chambre par catégorie
	var tj1
	tj1 = 200;
	var tj2
	tj2 = 0;
	var tj3
	tj3 = 0;
	var tj4
	tj4 = 0;
	var tj5
	tj5 = 0;
	// Tarifs p'tit dej'
	var tjbk
	tjbk = 5;

	// Récupération du nombre de chambres par catégorie
	/*
	nj1=window.document.reservation.categ1_nbr.value;
	nj2=window.document.reservation.categ2_nbr.value;
	nj3=window.document.reservation.categ3_nbr.value;
	nj4=window.document.reservation.categ4_nbr.value;
	nj5=window.document.reservation.categ5_nbr.value;
	*/
	nj1 = 1;
	nj2 = nj3 = nj4 = nj5 = 0;
	
	if (!detectPassedDate(lang)) return false;


  nbj=calcDuree();
  if (nbj == "void") {
	  alert(dateFieldValues[lang]["debut"]["emptydate"]);
	  window.document.forms['reservation'].duree.value="";
	  window.document.forms['reservation'].montant.value="";
	  return false;
  } else if (nbj == "neg") {
	  alert(dateFieldValues[lang]["debut"]["reversedate"]);
	  window.document.forms['reservation'].duree.value="";
	  window.document.forms['reservation'].montant.value="";
	  return false;
  } else if (nbj == "nul") {
	  alert(dateFieldValues[lang]["debut"]["samedate"]);
	  window.document.forms['reservation'].duree.value="";
	  window.document.forms['reservation'].montant.value="";
	  return false;
  } else {
	  cout=nbj*(tj1*nj1+tj2*nj2+tj3*nj3+tj4*nj4+tj5*nj5);
	  window.document.forms['reservation'].duree.value=nbj;
	  window.document.forms['reservation'].montant.value=cout;
	  return true;
	  }
  

}

function calcDuree(){
  if ((document.forms['reservation'].date1.value == "") || (document.forms['reservation'].date2.value == ""))
		return "void";
  else {
     d1 = new formatDate(document.forms['reservation'].date1.value);
     d2 = new formatDate(document.forms['reservation'].date2.value);
	// alert("Calcdurée : " + d1.jour + "-" + d1.mois + "-" + d1.an + "  /  " + d2.jour + "-" + d2.mois + "-" + d2.an + "  >  " + d1.nombreJours(d2));
	 return d1.nombreJours(d2);
  }
}


function nombreJours(autreDate) {
  if (this.OK) {
     var ldate1 = new Date(this.an, this.mois-1, this.jour);    // !!!! les mois sont comptés de 0 ‡ 11  !!!!!!!!!!!!
     if (autreDate.OK) {
        var ldate2 = new Date(autreDate.an, autreDate.mois-1, autreDate.jour);
	 	//alert("date 0: " + autreDate.an + "/" + autreDate.mois + "/" + autreDate.jours);
     } else return "erreur";
  }
  else return "erreur";
  
  if (ldate1.getTime() < ldate2.getTime())
     return Math.floor((ldate2.getTime() - ldate1.getTime()) / 1000 / 60 / 60 / 24);
  else if (ldate1.getTime() > ldate2.getTime()) {
//     return Math.floor((ldate1.getTime() - ldate2.getTime()) / 1000 / 60 / 60 / 24);
	return "neg"
  }
  else if (ldate1.getTime() == ldate2.getTime()) {
//     return Math.floor((ldate1.getTime() - ldate2.getTime()) / 1000 / 60 / 60 / 24);
	return "nul"
  }
}

formatDate.prototype.nombreJours = nombreJours;



function formatDate(chaine) {
//  var ctl = /^(\d\d?)\/(\d\d?)\/(\d\d)(\d\d)?$/;   // Séparateur "/"
  var ctl = /^(\d\d?)-(\d\d?)-(\d\d)(\d\d)?$/;   // Séparateur "-"
  var tab = ctl.exec(chaine);
  if (tab.length) {
     this.jour = tab[1];
     this.mois = tab[2];
     if (tab.length > 4) this.an = (tab[4]) ? tab[3] + tab[4] : 2000 + eval(tab[3]);
     else this.an = 2000 + eval(tab[3]);
     this.OK = true;
  }
  else this.OK = false;
}



function detectPassedDate(lang) {
	// vérifie si la date n'est pas passée
    // SET DAY MONTH AND YEAR TO TODAY'S DATE
    var nowDate   = new Date();
    var dayAct   = nowDate.getDate();
    var monthAct = nowDate.getMonth() + 1;
    var yearAct  = nowDate.getFullYear();
	var ldate;
	//alert("date now: " + yearAct + "/" + monthAct + "/" + dayAct);
	
  if ((document.forms['reservation'].date1.value == "") || (document.forms['reservation'].date2.value == ""))
		return true;
  else {
	  
    ldate = new formatDate(document.forms['reservation'].date1.value);
    dateAn = parseInt(ldate.an, 10);
    dateMois = parseInt(ldate.mois, 10);
    dateJour = parseInt(ldate.jour, 10);
	//alert("date 1: " + document.forms['reservation'].date1.value + " > " + dateAn + "/" + dateMois + "/" + dateJour);
	//alert("date 2: " + document.forms['reservation'].date1.value + " > " + ldate.an + "/" + ldate.mois + "/" + ldate.jour);
	
	if (dateAn < yearAct) {
		alert(dateFieldValues[lang]["debut"]["pastdate"]);
		document.forms['reservation'].date1.value="";
		return false;
	} else if (dateAn == yearAct && dateMois < monthAct) {
		alert(dateFieldValues[lang]["debut"]["pastdate"]);
		document.forms['reservation'].date1.value="";
		return false;
	} else if (dateAn == yearAct && dateMois == monthAct && dateJour < dayAct) {
		alert(dateFieldValues[lang]["debut"]["pastdate"]);
		document.forms['reservation'].date1.value="";
		return false;
	}
	
	
    ldate = new formatDate(document.forms['reservation'].date2.value);
	//alert("date 1: " + yearAct + "/" + monthAct + "/" + dayAct + "   >   " + ldate.an + "/" + ldate.mois + "/" + ldate.jour);
	if (dateAn < yearAct) {
		alert(dateFieldValues[lang]["fin"]["pastdate"]);
		document.forms['reservation'].date2.value="";
		return false;
	} else if (dateAn == yearAct && dateMois < monthAct) {
		alert(dateFieldValues[lang]["fin"]["pastdate"]);
		document.forms['reservation'].date2.value="";
		return false;
	} else if (dateAn == yearAct && dateMois == monthAct && dateJour < dayAct) {
		alert(dateFieldValues[lang]["fin"]["pastdate"]);
		document.forms['reservation'].date2.value="";
		return false;
	}
	
	
	return true;
	
  }
}
		



///////////////////////////
//Coordonnées du formulaire
////////////////////////////

	var formFieldValues = new Array();
	
	formFieldValues["FR"] = new Array();
	
// DEMANDEUR
	formFieldValues["FR"]["civil"] = new Array();
	formFieldValues["FR"]["civil"]["emptyfield"] = "votre civilité";
	formFieldValues["FR"]["civil"]["emptymsg"] = "Merci d'indiquer votre civilité.";
	
	formFieldValues["FR"]["nom"] = new Array();
	formFieldValues["FR"]["nom"]["emptyfield"] = "votre nom";
	formFieldValues["FR"]["nom"]["emptymsg"] = "Merci d'indiquer votre nom.";
	
	formFieldValues["FR"]["prenom"] = new Array();
	formFieldValues["FR"]["prenom"]["emptyfield"] = "votre prénom";
	formFieldValues["FR"]["prenom"]["emptymsg"] = "Merci d'indiquer votre prénom.";
	
	formFieldValues["FR"]["tel1"] = new Array();
	formFieldValues["FR"]["tel1"]["emptyfield"] = "votre n∞ de téléphone";
	formFieldValues["FR"]["tel1"]["emptymsg"] = "Merci d'indiquer un numéro de téléphone où vous joindre.";
	
	formFieldValues["FR"]["tel2"] = new Array();
	formFieldValues["FR"]["tel2"]["emptyfield"] = "votre n° de portable";
	formFieldValues["FR"]["tel2"]["emptymsg"] = "Merci d'indiquer un numéro de téléphone où vous joindre.";
	
	formFieldValues["FR"]["adresse"] = new Array();
	formFieldValues["FR"]["adresse"]["emptyfield"] = "numéro, rue ...";
	formFieldValues["FR"]["adresse"]["emptymsg"] = "Votre adresse postale est incomplète.";
	
	formFieldValues["FR"]["ville"] = new Array();
	formFieldValues["FR"]["ville"]["emptyfield"] = "ville";
	formFieldValues["FR"]["ville"]["emptymsg"] = "Votre adresse postale est incomplète [ville]";
	
	formFieldValues["FR"]["codepostal"] = new Array();
	formFieldValues["FR"]["codepostal"]["emptyfield"] = "code postal";
	formFieldValues["FR"]["codepostal"]["emptymsg"] = "Votre adresse postale est incomplète [code postal]";
	formFieldValues["FR"]["codepostal"]["errormsg"] = "Votre code postal semble incorrect.";
	
	formFieldValues["FR"]["email"] = new Array();
	formFieldValues["FR"]["email"]["emptyfield"] = "votre e-mail";
	formFieldValues["FR"]["email"]["emptymsg"] = "Merci d'indiquer votre adresse mail.";
	formFieldValues["FR"]["email"]["errormsg"] = "Votre adresse mail semble incorrecte.";
	
	formFieldValues["FR"]["email2"] = new Array();
	formFieldValues["FR"]["email2"]["emptyfield"] = "rè-inscrivez votre e-mail";
	formFieldValues["FR"]["email2"]["emptymsg"] = "Afin d'assurer que votre adresse mail ne comporte pas de faute de frappe, merci de répéter votre adresse.";
	formFieldValues["FR"]["email2"]["errormsg"] = "Vèrifier que votre adresse mail est correcte.";
	
	formFieldValues["FR"]["commentaires"] = new Array();
	formFieldValues["FR"]["commentaires"]["emptyfield"] = "tapez ici votre message";
	formFieldValues["FR"]["commentaires"]["emptymsg"] = "tapez ici votre message";
	formFieldValues["FR"]["commentaires"]["errormsg"] = "tapez ici votre message";
	
	formFieldValues["FR"]["personnes"] = new Array();
	formFieldValues["FR"]["personnes"]["emptyfield"] = "";
	formFieldValues["FR"]["personnes"]["emptymsg"] = "Au moins un adulte doit être présent.";
	formFieldValues["FR"]["personnes"]["errormsg"] = "";
	
	formFieldValues["FR"]["chambres"] = new Array();
	formFieldValues["FR"]["chambres"]["emptyfield"] = "";
	formFieldValues["FR"]["chambres"]["emptymsg"] = "Au moins une chambre doit être sélectionnée.";
	formFieldValues["FR"]["chambres"]["errormsg"] = "";
	
	

	formFieldValues["UK"] = new Array();
	
// DEMANDEUR
	formFieldValues["UK"]["civil"] = new Array();
	formFieldValues["UK"]["civil"]["emptyfield"] = "votre civilité";
	formFieldValues["UK"]["civil"]["emptymsg"] = "Merci d'indiquer votre civilité.";
	
	formFieldValues["UK"]["nom"] = new Array();
	formFieldValues["UK"]["nom"]["emptyfield"] = "your name";
	formFieldValues["UK"]["nom"]["emptymsg"] = "Please indicate your name.";
	
	formFieldValues["UK"]["prenom"] = new Array();
	formFieldValues["UK"]["prenom"]["emptyfield"] = "your first name";
	formFieldValues["UK"]["prenom"]["emptymsg"] = "Please indicate your first name.";
	
	formFieldValues["UK"]["tel1"] = new Array();
	formFieldValues["UK"]["tel1"]["emptyfield"] = "votre n∞ de téléphone";
	formFieldValues["UK"]["tel1"]["emptymsg"] = "Merci d'indiquer un numéro de téléphone où vous joindre.";
	
	formFieldValues["UK"]["tel2"] = new Array();
	formFieldValues["UK"]["tel2"]["emptyfield"] = "votre n° de portable";
	formFieldValues["UK"]["tel2"]["emptymsg"] = "Merci d'indiquer un numéro de téléphone où vous joindre.";
	
	formFieldValues["UK"]["adresse"] = new Array();
	formFieldValues["UK"]["adresse"]["emptyfield"] = "numéro, rue ...";
	formFieldValues["UK"]["adresse"]["emptymsg"] = "Votre adresse postale est incomplète.";
	
	formFieldValues["UK"]["ville"] = new Array();
	formFieldValues["UK"]["ville"]["emptyfield"] = "ville";
	formFieldValues["UK"]["ville"]["emptymsg"] = "Votre adresse postale est incomplète [ville]";
	
	formFieldValues["UK"]["codepostal"] = new Array();
	formFieldValues["UK"]["codepostal"]["emptyfield"] = "code postal";
	formFieldValues["UK"]["codepostal"]["emptymsg"] = "Votre adresse postale est incomplète [code postal]";
	formFieldValues["UK"]["codepostal"]["errormsg"] = "Votre code postal semble incorrect.";
	
	formFieldValues["UK"]["email"] = new Array();
	formFieldValues["UK"]["email"]["emptyfield"] = "your e-mail address";
	formFieldValues["UK"]["email"]["emptymsg"] = "Please indicate your e-mail address.";
	formFieldValues["UK"]["email"]["errormsg"] = "Your e-mail address does not seem correct.";
	
	formFieldValues["UK"]["email2"] = new Array();
	formFieldValues["UK"]["email2"]["emptyfield"] = "rè-inscrivez votre e-mail";
	formFieldValues["UK"]["email2"]["emptymsg"] = "Afin d'assurer que votre adresse mail ne comporte pas de faute de UKappe, merci de répéter votre adresse.";
	formFieldValues["UK"]["email2"]["errormsg"] = "Vèrifier que votre adresse mail est correcte.";
	
	formFieldValues["UK"]["commentaires"] = new Array();
	formFieldValues["UK"]["commentaires"]["emptyfield"] = "tapez ici votre message";
	formFieldValues["UK"]["commentaires"]["emptymsg"] = "tapez ici votre message";
	formFieldValues["UK"]["commentaires"]["errormsg"] = "tapez ici votre message";
	
	formFieldValues["UK"]["personnes"] = new Array();
	formFieldValues["UK"]["personnes"]["emptyfield"] = "";
	formFieldValues["UK"]["personnes"]["emptymsg"] = "At least one adult must be present.";
	formFieldValues["UK"]["personnes"]["errormsg"] = "";
	
	formFieldValues["UK"]["chambres"] = new Array();
	formFieldValues["UK"]["chambres"]["emptyfield"] = "";
	formFieldValues["UK"]["chambres"]["emptymsg"] = "At least one room must be selected.";
	formFieldValues["UK"]["chambres"]["errormsg"] = "";
	
	


function verifInfos(lang){
	
	//alert("verifFields : " + lang + " > " + document.forms[0].adult.selectedIndex);

	// empty nombres de personnes
	if (document.forms[0].adult.selectedIndex==0) {
	   document.forms[0].adult.focus();
	   return alerteMsg2("personnes", "emptymsg", lang);
	   }
	 
	// empty chambres de personnes
	if (document.forms[0].single.selectedIndex==0 && document.forms[0].sdouble.selectedIndex==0 && document.forms[0].triple.selectedIndex==0) {
	   document.forms[0].single.focus();
	   return alerteMsg2("chambres", "emptymsg", lang);
	   }
	 
	// empty civilité
	/*if (document.forms[0].civil.value=="" || document.forms[0].civil.value==formFieldValues[lang]["civil"]["emptyfield"]) {
	   document.forms[0].nom.focus();
	   return alerteMsg2("civil", "emptymsg", lang);
	   }*/
	 
	// empty nom
	if (document.forms[0].nom.value=="" || document.forms[0].nom.value==formFieldValues[lang]["nom"]["emptyfield"]) {
	   document.forms[0].nom.focus();
	   return alerteMsg2("nom", "emptymsg", lang);
	   }
	 
	// empty prenom
	if (document.forms[0].prenom.value=="" || document.forms[0].prenom.value==formFieldValues[lang]["prenom"]["emptyfield"]) {
	   document.forms[0].prenom.focus();
	   return alerteMsg2("prenom", "emptymsg", lang);
	   }
	 	   	   
	// empty rue
	if (document.forms[0].adresse.value=="" || document.forms[0].adresse.value==formFieldValues[lang]["adresse"]["emptyfield"]) {
	   document.forms[0].adresse.focus();
	//   return alerteMsg2("adresse", "emptymsg", lang);
	   }
	 	   	   
	// empty ville
	if (document.forms[0].ville.value=="" || document.forms[0].ville.value==formFieldValues[lang]["ville"]["emptyfield"]) {
	   document.forms[0].ville.focus();
	//   return alerteMsg2("ville", "emptymsg", lang);
	   }
	 	   	   
	// empty tel
	emptyTel1 = emptyTel2 = false;
	if (document.forms[0].tel1.value=="" || document.forms[0].tel1.value==formFieldValues[lang]["tel1"]["emptyfield"]) emptyTel1=true;
	if (document.forms[0].tel2.value=="" || document.forms[0].tel2.value==formFieldValues[lang]["tel2"]["emptyfield"]) emptyTel2=true;
	if (emptyTel1==true && emptyTel2==true) {
	   document.forms[0].tel1.focus();
	//   return alerteMsg2("tel1", "emptymsg", lang);
	   }

	// empty or wrong cp
	if (document.forms[0].codepostal.value=="" || document.forms[0].codepostal.value==formFieldValues[lang]["codepostal"]["emptyfield"]) {
	   document.forms[0].codepostal.focus();
	//   return alerteMsg2("codepostal", "emptymsg", lang);
	   } else {// malformed cp 
	  			v=document.forms[0].codepostal.value;				
				if(v.length!=5 && v!=formFieldValues[lang]["codepostal"]["emptyfield"]) {
			    	document.forms[0].codepostal.focus();
	//		   		return alerteMsg2("codepostal", "errormsg", lang);
			   }
	   }
	 	   	   
	 // mauvais email
	 if (document.forms[0].email.value=="" || document.forms[0].email.value==formFieldValues[lang]["email"]["emptyfield"]) {
	   document.forms[0].email.focus();
	   return alerteMsg2("email", "emptymsg", lang);
	   } 
	   else {// malformed email 
	  			v=document.forms[0].email.value;				
				if(!(v.indexOf('@')>0 && v.indexOf('@')<v.length-2 && v.lastIndexOf('.')>v.indexOf('@')+1 && v.lastIndexOf('.')<v.length-2)) {
			    	document.forms[0].email.focus();
			   		return alerteMsg2("email", "errormsg", lang);
			   }
			   // Vérification du mail
/*			   if (document.forms[0].email2.value=="" || document.forms[0].email2.value==formFieldValues[lang]["email2"]["emptyfield"]) {
			    	document.forms[0].email2.focus();
			   		return alerteMsg2("email2", "emptymsg", lang);
			   }
			   if (document.forms[0].email.value!=document.forms[0].email2.value) {
			    	document.forms[0].email2.focus();
			   		return alerteMsg2("email2", "errormsg", lang);
			   }
*/
		}
	// empty message
	if (document.forms[0].commentaires.value=="" || document.forms[0].commentaires.value==formFieldValues[lang]["commentaires"]["emptyfield"]) {
		document.forms[0].commentaires.focus();
//		return alerteMsg2("commentaires", "emptymsg", lang);
	}
   	   

	return true;

}




//Gestion des messages d'alerte
function alerteMsg2(field, codeAlerte, lang){

	alert(formFieldValues[lang][field][codeAlerte]);
	return false;
	
}



