//---------------------------------------
// CALCUL AUTOMATIQUE DU PRIX DU SEJOUR /
//---------------------------------------

/* script trouve sur http://www.aidejavascript.com/article109.html?artsuite=1 */
/* NOUVELLE CHAMBRE --> Chaque commentaire de ce style explique comment rajouter de nouvelles chambres */


// 1) FONCTION TRAITANT LES DATES
// ------------------------------
// (Cette fonction est appellée plus loin dans le script de calcul)


function formatDate(chaine) {									//format Date
  var ctl = /^(\d\d?)\.(\d\d?)\.(\d\d)(\d\d)?$/;
  var tab = ctl.exec(chaine);
  if (tab.length) {
     this.jour = tab[1];
     this.mois = tab[2] - 1;
     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 nombreJours(autreDate) {
  if (this.OK) {
     var date1 = new Date(this.an, this.mois, this.jour);
     if (autreDate.OK)
        var date2 = new Date(autreDate.an, autreDate.mois, autreDate.jour);
     else return "erreur";
  }
  else return "erreur";
  if (date1.getTime() < date2.getTime())
     return Math.floor((date2.getTime() - date1.getTime()) / 1000 / 60 / 60 / 24);
  else  
     return Math.floor((date1.getTime() - date2.getTime()) / 1000 / 60 / 60 / 24);
}

formatDate.prototype.nombreJours = nombreJours;

// 2) FONCTION DE VERIFICATION DES CHAMPS
// --------------------------------------
// Verifie que les champs requis soit remplis

function Calcul(form){

	var form_error = " ";
	
// Verification de la date de départ et de son formatage;
if ( form.du.value.length < 1) {
	form_error += "- Uw aankomstdatum \n";
	}else{
	// verification du format jj.mm.aaaa
	var temp = form.du.value;
	var verif_date = temp.split('.');
	
	if ((verif_date[0].length!=2)||(verif_date[1].length!=2)||(verif_date[2].length!=4)) {
		form_error += "- Voor uw aankomstdatum, jet juiste datum formaat is dd.mm.jjjj \n";
	}
}

// Verification de la date d'arrivée et de son formatage;
if ( form.au.value.length < 1) {
	form_error += "- Uw vertrekdatum \n";
	}else{
	// verification du format jj.mm.aaaa
	var temp = form.au.value;
	var verif_date = temp.split('.');
	
	if ((verif_date[0].length!=2)||(verif_date[1].length!=2)||(verif_date[2].length!=4)) {
		form_error += "- Voor uw vertrekdatum, jet juiste datum formaat is dd.mm.jjjj \n";
	}
}

// Verification du choix d'une chambre;
	if (!form.chambre_menthe_2.checked && !form.chambre_coriandre_2.checked && !form.chambre_vanille_2.checked && !form.suite_fruits_rouges_2.checked && !form.suite_fruits_rouges_3.checked && !form.suite_fruits_rouges_4.checked && !form.suite_fruits_rouges_5.checked) {
	form_error +="- De kamer(s) van uw keuze \n";
	}
	
	/* NOUVELLE CHAMBRE --> Rajouter dans le if précédent && !form.id_de_la_chambre.checked */
	
// Verification du choix unique d'une des formules de la suite "fruits rouges";
var fruits_rouges=0;
fruits_rouges += form.suite_fruits_rouges_5.checked ? 1 : 0;
fruits_rouges += form.suite_fruits_rouges_4.checked ? 1 : 0;
fruits_rouges += form.suite_fruits_rouges_3.checked ? 1 : 0;
fruits_rouges += form.suite_fruits_rouges_2.checked ? 1 : 0;

if (fruits_rouges >=2 ) {
	form_error += "- De suite fruits rouges is meermalen geselecteerd \n";	
}

	/* NOUVELLE CHAMBRE --> Si cette nouvelle chambre présente plusieurs formules comme la suite fruits rouges, recopier la fonction précédente en changeant la variable et en checkant les différentes formules */
	
// RESULTAT FINAL DU SCRIPT DE VERIFICATION
// ----------------------------------------

	if ( form_error != " ") {														// Si form_err est différent du vide
	alert("Voordat de prijs kan worden berekend dienen de volgende velden ingevuld te zijn :\n\n" +form_error);	// Cree le popup avec le message d'erreur suivit des erreurs trouvees
	}

// 3) CALCUL DU SEJOUR
// -------------------

// formatage des champs dates appelant les fonctions formDate() et nombreJours()

	if ((form.du.value == "") || (form.au.value == "")) {
     form.nuits.value = "";
	} else {
     d1 = new formatDate(form.du.value);
     d2 = new formatDate(form.au.value);
     form.nuits.value = d1.nombreJours(d2);
  }
  
// PARTIE A : CREATION DES VARIABLES ET ATTRIBUTION DE VALEURS
//------------------------------------------------------------
    if (form.nuits.value == "") {									// Test : si le champ 'nuits' est vide...
		form.nuits.value=0;											// attribue la valeur '0'
		}
		
	var e1=parseInt(form.nuits.value)  								// Récupère la valeur du champs 'nuits' et l'attribue à la variable 'e1'
	
	var cado=parseInt(e1/7)											// Cadeau 7 nuitées au prix de 6
	if (cado >= 1) {
	e1=e1-cado;	
}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	
	var e2= form.chambre_menthe_2.checked ? 60 : 0; 				// Attribue la valeur '60' à la variable 'e2' si chambre_menthe_2 est cochée
	var e3= form.chambre_coriandre_2.checked ? 60 : 0; 				// Attribue la valeur '60' à la variable 'e3' si chambre_coriandre_2 est cochée
	var e4= form.suite_fruits_rouges_2.checked ? 90 : 0; 				// Attribue la valeur '90' à la variable 'e4' si suite_fruits_rouges_2 est cochée
	var e5= form.suite_fruits_rouges_3.checked ? 105 : 0; 				// Attribue la valeur '105' à la variable 'e5' si suite_fruits_rouges_2 est cochée
	var e6= form.suite_fruits_rouges_4.checked ? 120 : 0; 				// Attribue la valeur '120' à la variable 'e6' si suite_fruits_rouges_2 est cochée
	var e7= form.suite_fruits_rouges_5.checked ? 130 : 0; 				// Attribue la valeur '130' à la variable 'e7' si suite_fruits_rouges_2 est cochée
	var e8= form.chambre_vanille_2.checked ? 60 : 0; 				// Attribue la valeur '60' à la variable 'e8' si chambre_vanille_2 est cochée	
	
	/* NOUVELLE CHAMBRE --> Rajouter à la suite de ce script autant de var e* qu'il y a de nouvelle chambre. N'oubliez pas de mettre l'id correspondants à chaque fois. Le chiffre qui suit "checked ?" est le prix de la chambre */

// PARTIE B : CALCULS
//------------------------------------------------------------		// Calcul du total
	var r=(e2+e3+e4+e5+e6+e7+e8)*e1									// Comptabilise les chambres occupées, puis multiplie par le nombre de nuits
	
	/* NOUVELLE CHAMBRE --> Rajouter dans l'addition le nombre de variable e* nouvellement créée */
	
    var ChRes1=r+"\r\n"												// Attribue le résultat à la variable 'ChRes1'
    form.total.value=ChRes1										// Affichage du budget hébergement
}
