//mettre le jour suivant dans date fin saison dans fichier js pour correspondre avec fichier excel
//ex. hs 30/07/05 --> 19/08/2005 dans excel et 30/07/05 --> 20/08/2005 dans js

//date debut et fin moyenne saison
debutms1=new Date("2010","11","25");//25 decembre 2010, 0=janvier, 11=decembre
finms1=new Date("2011","00","02");//01 janvier 2011, 0=janvier, 11=decembre--> mettre 1 jour de plus pour le calcul des nuitées
debutms2=new Date("2010","07","16");//16 aout 2010, 0=janvier, 11=decembre
finms2=new Date("2010","07","30");//29 aout 2010, 0=janvier, 11=decembre--> mettre 1 jour de plus pour le calcul des nuitées
debutms3=new Date("2011","07","16");//16 aout 2011, 0=janvier, 11=decembre
finms3=new Date("2011","07","29");//28 aout 2010, 0=janvier, 11=decembre--> mettre 1 jour de plus pour le calcul des nuitées
//date debut et fin tres haute saison
debutths=new Date("2011","06","27");//27 juillet 2011, 0=janvier, 11=decembre
finths=new Date("2011","07","01");//31 juillet 2010, 0=janvier, 11=decembre--> mettre 1 jour de plus pour le calcul des nuitées
//date debut et fin haute saison
debuths1=new Date("2010","07","02");//02 aout 2010, 0=janvier, 11=decembre
finhs1=new Date("2010","07","16");//15 aout 2010, 0=janvier, 11=decembre --> mettre 1 jour de plus pour le calcul des nuitées
debuths2=new Date("2011","07","01");//01 aout 2011, 0=janvier, 11=decembre
finhs2=new Date("2011","07","16");//15 aout 2011, 0=janvier, 11=decembre --> mettre 1 jour de plus pour le calcul des nuitées

//tableaux avec prix journaliers bs et hs des apparts avant le 01/09/2010
tabprixbs1=new Array(59.00,69.00,69.00);
tabprixms1=new Array(76.70,89.70,89.70);
tabprixhs1=new Array(100.30,117.30,117.30);
tabprixths1=new Array(118.00,138.00,138.00);
//tableaux avec prix journaliers bs et hs des apparts apres le 01/09/2010
tabprixbs2=new Array(64.00,73.00,73.00);
tabprixms2=new Array(81.92,93.44,93.44);
tabprixhs2=new Array(106.24,121.18,121.18);
tabprixths2=new Array(128.00,146.00,146.00);

function CheckDate(d,what) {
      // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
      // Le séparateur est défini dans la variable separateur
      var amin=2008; // année mini
      var amax=2500; // année maxi
      var separateur="/"; // separateur entre jour/mois/annee
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      if ( ((isNaN(j))||(j<1)||(j>31)) || ((isNaN(m))||(m<1)||(m>12)) || ((isNaN(a))||(a<amin)||(a>amax)) || ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) ) {
         if(what=="arrivee")
		 {alert("La date d'arrivée est incorrecte.");}
		 else if(what=="depart")
		 {alert("La date de départ est incorrecte.");}
      }
	  else {
         var madate=new Date(a,m-1,j);
		 return madate;
      }
   }

function renvoinbjours(date1,date2) {
	//cette fonction renvoi le nb de jours entre 2 dates
	Temp1 = date1.getTime();
	Temp2 = date2.getTime();
	/*
	DiffSec = Math.floor((Temp2-Temp1)/1000);
	DiffMin = Math.floor(DiffSec/60);
	Diffheure = Math.floor(DiffMin/60);
	DiffJour = Math.floor(Diffheure/24);
	while (DiffMin>=60)
			{DiffMin = DiffMin-60;}
	while (Diffheure>=24)
			{Diffheure = Diffheure-24;}
	while (DiffSec>=60)
			{DiffSec = DiffSec-60;}
	*/
	nbjours = Math.round((((Temp2-Temp1)/1000/60)/60)/24)
	return nbjours+1;
}

function renvoinbjourssaison(date1,date2,saison) {
	//cette fonction renvoie le nb de jours en fonction des saisons
	if (saison=="ms1") {
		debutsaison=debutms1;
		finsaison=finms1;
		}
	else if(saison=="ms2") {
		debutsaison=debutms2;
		finsaison=finms2;
		}
	else if(saison=="ms3") {
		debutsaison=debutms3;
		finsaison=finms3;
		}
	else if(saison=="hs1") {
		debutsaison=debuths1;
		finsaison=finhs1;
		}
	else if(saison=="hs2") {
		debutsaison=debuths2;
		finsaison=finhs2;
		}
	else if(saison=="ths") {
		debutsaison=debutths;
		finsaison=finths;
		}

	//cas ou la periode de location est dans la periode de saison
	if( (dateentree>=debutsaison)&&(dateentree<=finsaison)&&(datesortie>=debutsaison)&&(datesortie<=finsaison) ) {
		nbjourssaison=renvoinbjours(dateentree,datesortie)-1;
	}
	//cas ou la date entree est avant le debut de la saison et la date sortie est apres la fin de la saison
	else if( (dateentree<debutsaison)&&(dateentree<finsaison)&&(datesortie>debutsaison)&&(datesortie>finsaison) ) {
		nbjourssaison=renvoinbjours(debutsaison,finsaison)-1;
		}
		//cas ou la date entree est dans la periode de la saison et la date sortie est apres la fin de la saison
		else if( (dateentree>=debutsaison)&&(dateentree<finsaison)&&(datesortie>debutsaison)&&(datesortie>finsaison) ) {
			nbjourssaison=renvoinbjours(dateentree,finsaison)-1;
			}
			//cas ou la date entree est avant le debut de la saison et la date sortie est dans la periode de la saison
			else if( (dateentree<debutsaison)&&(dateentree<finsaison)&&(datesortie>=debutsaison)&&(datesortie<=finsaison) ) {
				nbjourssaison=renvoinbjours(debutsaison,datesortie)-1;
				}
				else nbjourssaison=0;
	return nbjourssaison;
}

function renvoicoef(nbjour,saison) {
	//cette fonction renvoi le coef de regressivité a appliquer en fonction de la duree du sejour
	//en moyenne saison et haute saison la degressivité max est 14 jours
	if(saison=="bs")
	{	
		if(nbjour<14)
		{coef=1;}
		else if((nbjour>=14)&&(nbjour<30))
			{coef=0.9;}
			else if((nbjour>=30)&&(nbjour<60))
				{coef=0.6;}
				else if((nbjour>=60)&&(nbjour<120))
					{coef=0.5;}
					else if(nbjour>=120)
						{coef=0.4;}
	}
	else if(saison=="ms")
	{	
		if(nbjour<7)
		{coef=1;}
		else if((nbjour>=7)&&(nbjour<14))
			{coef=1;}
			else if(nbjour>=14)
				{coef=0.9;}
	}
	else if(saison=="hs")
	{	
		if(nbjour<7)
		{coef=1;}
		else if((nbjour>=7)&&(nbjour<14))
			{coef=1;}
			else if(nbjour>=14)
				{coef=0.9;}
	}
	else if(saison=="ths")
	{	
		if(nbjour>=7)
		{coef=1;}
		else {coef=1;}
	}
	return coef;
}

function calculer() {
	dateentree=CheckDate(document.formulaire.datearrivee.value,"arrivee");
	datesortie=CheckDate(document.formulaire.datedepart.value,"depart");
	if(dateentree<datesortie)
	{
		if ((eval(dateentree))&&(eval(datesortie)))
		{
			//nbjours total du sejour
			/*****************************************************/
			nbjourstotal=renvoinbjours(dateentree,datesortie)-1 //-1 pour avoir meme resultat que fichier excel

			nbjoursms=renvoinbjourssaison(dateentree,datesortie,"ms1")+renvoinbjourssaison(dateentree,datesortie,"ms2")+renvoinbjourssaison(dateentree,datesortie,"ms3")
			nbjourshs=renvoinbjourssaison(dateentree,datesortie,"hs1")+renvoinbjourssaison(dateentree,datesortie,"hs2")
			nbjoursths=renvoinbjourssaison(dateentree,datesortie,"ths")
			nbjoursbs=nbjourstotal-(nbjoursms+nbjourshs+nbjoursths)
			//alert("nbjoursths : "+nbjoursths+" nbjourshs : "+nbjourshs+" nbjoursms : "+nbjoursms+" nbjoursbs : "+nbjoursbs+" nbjourstotal : "+nbjourstotal)
			
			coefbs=renvoicoef(nbjourstotal,"bs");
			coefms=renvoicoef(nbjourstotal,"ms");
			coefhs=renvoicoef(nbjourstotal,"hs");
			coefths=renvoicoef(nbjourstotal,"ths");
			//alert("coefbs : "+coefbs+" coefms : "+coefms+" coefhs : "+coefhs);
					
			appartement=document.formulaire.appartement.value;
			//alert("appartement : "+appartement);
			
			datenouveauxtarifs=new Date("2010","07","31"); //31aout pour une prise en compte dès le 1er septembre
			if(dateentree>datenouveauxtarifs)
			{ //apres
			tabprixbs=tabprixbs2;
			tabprixms=tabprixms2;
			tabprixhs=tabprixhs2;
			tabprixths=tabprixths2;
			}
			else
			{ //avant
			tabprixbs=tabprixbs1;
			tabprixms=tabprixms1;
			tabprixhs=tabprixhs1;
			tabprixths=tabprixths1;
			}
			
			prixjourbs=tabprixbs[appartement];
			prixjourms=tabprixms[appartement];
			prixjourhs=tabprixhs[appartement];
			prixjourths=tabprixths[appartement];
			//alert("bs : "+prixjourbs+" ms : "+prixjourms+" hs : "+prixjourhs+" ths : "+prixjourths);

			prixsejour=(Math.round((prixjourths*nbjoursths*coefths+prixjourhs*nbjourshs*coefhs+prixjourms*nbjoursms*coefms+prixjourbs*nbjoursbs*coefbs)*100))/100;
			document.formulaire.prixsejour.value=prixsejour;
			document.formulaire.arrhes.value=(Math.round((prixsejour*25/100)*100))/100;
		}
	
	}
	else {alert("La date d'arrivée doit être antérieure à la date de départ");}
}

function verifreservation() {
	if ((document.formulaire.tel.value=="")&&(document.formulaire.mobile.value==""))
		{alert("Merci de saisir un numéro de téléphone.");}
		else if (document.formulaire.email.value=="" || (document.formulaire.email.value.indexOf("@",0)<0 || document.formulaire.email.value.indexOf(".",0)<0 || document.formulaire.email.value.indexOf("'",0)>0 || document.formulaire.email.value.indexOf('"',0)>0 || document.formulaire.email.value.indexOf("%",0)>0))
			{alert("Merci de saisir correctement votre email.");}
			else if ((CheckDate(document.formulaire.datearrivee.value,"arrivee")!="")&&(CheckDate(document.formulaire.datedepart.value,"depart")))
				{document.formulaire.submit();}
	}