// JavaScript Document
function calculSejour(nbJour,nbSmne,nbMois, pvSmne, pvMois, pvMoisLS, fraisFixe, deb , fin) {

	var assurance	 		= 6;

	var LoyerSejour 		= 0;
	var LoyerSejourLS 		= 0;
	var fraisFixeCalcule 	= 0;
	var nbJourLimite		= 16;
	var lprixVenteJour 		= (pvMois)/30; //(fraisFixe+pvMois)/30; //base de calcul des jours
	var lprixVenteSemaine 	= pvSmne; //(fraisFixe+pvSmne);
	var lprix 				= 0;
	var trace				= 0;  // ouvre les alertes pour tracer 

	pvMois = pvMois-fraisFixe-assurance;
	pvMoisLS = pvMoisLS-fraisFixe-assurance;

	if (trace) {alert ("calculette:"+nbJour+","+nbSmne+","+nbMois);}
	
	// calcul période
	if ((nbSmne>=3 && nbMois==0) || (nbMois==1 && nbSmne==0 && nbJour==0)) 
	{
		LoyerSejour 		= pvMois+fraisFixe
		fraisFixeCalcule    = fraisFixe
		if (trace) {alert ("cas 0:"+LoyerSejour);}
	} 
	else 
	{ 
		
		if (nbMois == 0) {
			if (trace) alert ("cas 1 moins de trois semaines");
			//  moins de trois semaines
			// calcul du reliquat des jours 
			lprixVenteJour  	 = (lprixVenteSemaine/7) ;//base de calcul des jours
			nbJour               = Math.max(nbJour+(nbSmne*7),7);  // minimum prix semaine 6/3/09

			if (trace) alert ("calculette 2:"+nbJour+","+nbSmne+","+nbMois);
			
			if (nbJour > nbJourLimite) {
				LoyerSejour       	= (lprixVenteJour*nbJourLimite)+fraisFixe;  //calculé le prix de vente pack proportionnel sur la limite
				lprixVenteJour      = lprixVenteSemaine/7;
				lprix 				= (lprixVenteJour*nbJour)+fraisFixe ;			// 1 pack séjour
				if (trace) 			alert ("cas 1.2:"+lprix);
				if (lprix>LoyerSejour) {
					LoyerSejour			= lprix;
				} 
				LoyerSejour 		= Math.min(LoyerSejour,(fraisFixe+pvMois)); 		// max(pack proportionnel, 1pack sejour)

			} 
			else 
			{ 
				if (nbJour<7) {
					LoyerSejour       = arrondi(lprixVenteJour*nbJour)+fraisFixe;
				} else {
					LoyerSejour       = arrondi(lprixVenteJour*nbJour);
				}		
				if (trace) 			alert ("cas 1.2:"+LoyerSejour);
			}
			return LoyerSejour;
		} // fin nbmois==0
		
		if (nbMois == 1 && !(deb.getMonth()==2 && fin.getDate()<30) ) 
		{ //entre 1 et deux mois sauf mois de février
			LoyerSejour 	 = (pvMois+fraisFixe);
			if (trace) 			alert ("cas 3.1:"+LoyerSejour);
			nbJour 	 			=(fin.getTime()-deb.getTime())/1000;
			nbJour   			= Math.floor(nbJour/3600/24); 
			LoyerSejour 		+= arrondi(lprixVenteJour*nbJour)+fraisFixe;
			if (trace) 			alert ("cas 3.2:"+LoyerSejour+" nbjour:"+nbJour);

		} 
		else 
		{
			// longue durée: calcul des mois entier 
			if (nbMois>5) {
				    if (pvMoisLS>0) { pvMois 		= pvMoisLS;} 
			}
			LoyerSejour 	 = (pvMois+fraisFixe)*nbMois;
			// calcul du reliquat des jours 
			if (trace) {
				if (trace) 	alert ("cas 4:"+"("+pvMois+"+"+fraisFixe+")*"+nbMois+")");
				if (trace)  alert ("cas 4.1:"+LoyerSejour);
			}//	
			nbJour           = nbJour+(nbSmne*7);
//			LoyerSejour      = (lprixVenteSemaine*nbSmne)+LoyerSejour;
			if (nbJour!=0) {
				if (trace) {alert ("cas 4.2:("+lprixVenteJour+"*"+nbJour+")");	}
				LoyerSejour      = (lprixVenteJour*nbJour)+LoyerSejour;
				LoyerSejour      = arrondi(LoyerSejour+((fraisFixe/30)*nbJour));
				if (trace) {alert ("cas 4.3:"+LoyerSejour+"("+lprixVenteJour+")");}
			}

		} 
	}
	
	return (LoyerSejour+assurance);

}
//-----------------------------------------------------------------------------------------------------------------------------------
function calcul(sejSmne, sejMois, sejMoisLS ,fraisFixe, typeAppart, nameff, namemontant, namemontantTot)
	{
	var annee = document.getElementsByName("arrivee-y")[0].value;
	var mois = document.getElementsByName("arrivee-m")[0].value;
	var jour = document.getElementsByName("arrivee-d")[0].value;
	var annee2 = document.getElementsByName("depart-y")[0].value;
	var mois2 = document.getElementsByName("depart-m")[0].value;
	var jour2 = document.getElementsByName("depart-d")[0].value;
	var trace				= 0;  // ouvre les alertes pour tracer 

    var deb 	= new Date(annee,mois-1,jour,0,0);
	var fin 	= new Date(annee2,mois2-1,jour2,0,0);
	var duree 	= new Array;
	var nbpers 	= 0; 
	var montant = 0; 
	var frais 	= 0;
	var pvLS 	= 0;
	var ts      = 0;
	
	
	switch (typeAppart) {
		case "S": ts = 0.88; 
		break;
		case "1": ts = 1.1;    
		break;
		case "2": ts = 1.3;  
		break;
		case "3": ts = 1.5;  
		break;
		default:  ts = 1.6;  
		break;
		} 
		
	nbpers = parseInt(document.getElementsByName("adults")[0].value)+ parseInt(document.getElementsByName("children")[0].value);

	frais =  fraisSejour(deb, fin, nbpers, ts);
	if (trace) {alert("nameff:"+nameff) };
	frais = Math.ceil(frais);
	document.getElementsByName(nameff)[0].value = frais+" €";
	if (trace) {alert("deb:"+deb) };
	if (trace) {alert("fin:"+fin) };
	duree=tjs_duree(deb, fin);
	if (trace) {alert(duree["month"]+"-"+duree["week"]+"-"+duree["day"]) };
	 
	document.getElementsByName("nuite")[0].value  = duree["month"]+"-"+duree["week"]+"-"+duree["day"];
	
	if (sejMoisLS<500) {pvLS = 0;} else {pvLS = sejMoisLS;}

	if (trace) {
		alert("montants:"+sejSmne+"-"+sejMois+"-"+pvLS+"-"+fraisFixe) ;
	}
	montant = calculSejour(duree["day"],duree["week"],duree["month"], sejSmne, sejMois, pvLS, fraisFixe, deb,fin);
	if (trace) {
		alert("montant:"+montant) ;
	}	
	document.getElementsByName(namemontant)[0].value = montant+" €";
	montant = montant+frais;
	document.getElementsByName(namemontantTot)[0].value = montant+" €";

	}

function duree()
{
	var annee = document.getElementsByName("arrivee-y")[0].value;
	var mois = document.getElementsByName("arrivee-m")[0].value;
	var jour = document.getElementsByName("arrivee-d")[0].value;
	var annee2 = document.getElementsByName("depart-y")[0].value;
	var mois2 = document.getElementsByName("depart-m")[0].value;
	var jour2 = document.getElementsByName("depart-d")[0].value;
	
	var deb = new Date(annee,mois-1,jour,0,0);
	var fin = new Date(annee2,mois2-1,jour2,0,0);

	//alert('le champ a pour valeur : "'+obj.value+"'")
	var duree = new Array;
	duree=tjs_duree(deb, fin);					
	document.getElementsByName("nuite")[0].value = duree["month"]+"-"+duree["week"]+"-"+duree["day"];
}


function arrondi(montant) {
	var montantarrondi = Math.round((montant*10)/10) ;
	return montantarrondi;
}

function fraisSejour(deb, fin, nbpers, frais) {
    var nbJour = 0;
	var ts = 0.00;
	var nb = 0;
//	alert(fin.getDate()+"/"+(fin.getMonth()+1)+"/"+fin.getFullYear());
//	alert(deb.getDate()+"/"+(deb.getMonth()+1)+"/"+deb.getFullYear());
    nbJour 	 			=(fin.getTime()-deb.getTime())/1000;
//	alert("frais:"+nbJour);
	nbJour   			= Math.floor(nbJour/3600/24); 
	ts = frais;
	nb = nbpers;
	//alert("ts:"+ts+" nb:"+nb);
	ts = arrondi(nbJour)*nb*ts;
	return ts;
}