
function ChangeUrl(formulaire){
	if (formulaire.ListeUrl.selectedIndex != 0){
		window.top.carte_annonce.location.href = formulaire.ListeUrl.options[formulaire.ListeUrl.selectedIndex].value;
	}
	else {
		alert('Veuillez choisir une destination.');
	}
}

//Cette fonction calcule les jours fériés françaises 
function JoursFeries (an){
 	var JourAn = new Date(an, "00", "01");
 	var FeteTravail = new Date(an, "04", "01");
 	var Victoire1945 = new Date(an, "04", "08");
 	var FeteNationale = new Date(an,"06", "14");
 	var Assomption = new Date(an, "07", "15");
	var Toussaint = new Date(an, "10", "01");
	var Armistice = new Date(an, "10", "11");
	var Noel = new Date(an, "11", "25");
	//**var SaintEtienne = new Date(an, "11", "26");**//
	 
	var G = an%19;
	var C = Math.floor(an/100);
	var H = (C - Math.floor(C/4) - Math.floor((8*C+13)/25) + 19*G + 15)%30;
	var I = H - Math.floor(H/28)*(1 - Math.floor(H/28)*Math.floor(29/(H + 1))*Math.floor((21 - G)/11));
	var J = (an*1 + Math.floor(an/4) + I + 2 - C + Math.floor(C/4))%7;
	var L = I - J;
	var MoisPaques = 3 + Math.floor((L + 40)/44);
	var JourPaques = L + 28 - 31*Math.floor(MoisPaques/4);
	var Paques = new Date(an, MoisPaques-1, JourPaques);
	//**var VendrediSaint = new Date(an, MoisPaques-1, JourPaques-2);**//
	var LundiPaques = new Date(an, MoisPaques-1, JourPaques+1);
	var Ascension = new Date(an, MoisPaques-1, JourPaques+39);
	var Pentecote = new Date(an, MoisPaques-1, JourPaques+49);
	var LundiPentecote = new Date(an, MoisPaques-1, JourPaques+50);
	 
	//**SaintEtienne et Vendredi Saint sont des f�tes exclusivement**//
	//**alscacienne. On les ignore dans notre cas.**//
	return new Array(JourAn, Paques, LundiPaques, FeteTravail, Victoire1945, Ascension, Pentecote, LundiPentecote, FeteNationale, Assomption, Toussaint, Armistice, Noel);
}
	 
//Cette fonction calcule le dernier jour ouvrable en prenant compte des 
//jours fériés et des dimanches
function calc_date_mini(nombreJourOuvrable){
	var date_now = new Date();
	var date_now_annee = date_now.getFullYear();
	var date_now_mois = date_now.getMonth();
	var date_now_jour = date_now.getDate();
	
	//**init. des compteurs**//
	var cpt_i = 0;
	var cpt_j = 0;
	var cpt_k = 0;
	
	//**init. des tableaux récupérant les jours feries de l'annee en cours et de l'annee suivante.**//
	var tab_1=new Array;
	var tab_2=new Array;
	tab_1=JoursFeries(date_now.getFullYear());
	tab_2=JoursFeries(date_now.getFullYear()+1);
	
	for(cpt_i=0; cpt_j < nombreJourOuvrable + 1 ; cpt_i++) {
		var date_eval = new Date(date_now_annee, date_now_mois, date_now_jour+cpt_i);
		var day_date_eval = date_eval.getDay();
		if((day_date_eval != 0) && (day_date_eval != 6)) {
			//Ne prend pas en compte les jours de dimanche et de samedi
	 		cpt_j++;
	 		for(cpt_k = 0; cpt_k < 13; cpt_k++){
	 			if(date_eval.getMonth() == tab_1[cpt_k].getMonth() && date_eval.getFullYear() == tab_1[cpt_k].getFullYear() && date_eval.getDate() == tab_1[cpt_k].getDate()){
	 				cpt_j--;
	 				break;
	 			}
	 			if(date_eval.getMonth() == tab_2[cpt_k].getMonth() && date_eval.getFullYear() == tab_2[cpt_k].getFullYear() && date_eval.getDate() == tab_2[cpt_k].getDate()){
	 				cpt_j--;
	 				break;
	 			}
	 		}
	 	}
	}
	return date_eval;
}

//Cette fonction vérifie si le jour passée est un dimanche
function jourDimanche (date) {
	//Désactive les dimanches (Dimanche = 0, Samedi = 6)
	return (date.getDay() == 0 || date.getDay() == 6) ? true : false;
}

//Cette fonction renvoie true sie la date passée est un jour férié
function dateFerie(date) {
	date_now = new Date();
	
	tabFeries = JoursFeries(date_now.getFullYear());
	
	for (var i = 0; i < 13; i++){
		if(date.getMonth() == tabFeries[i].getMonth() 
			&& date.getFullYear() == tabFeries[i].getFullYear() 
			&& date.getDate() == tabFeries[i].getDate()) 
		{
			return true;
		}
	}
	
	//Ce n'est pas un jour férié
	return false;
}

//Cette fonction vérifie si la date est antérieure à la date du jour
function avantDateJour(date) {
	//initialisation des dates
	d1 = new Date();
	
	if (date.getFullYear() < d1.getFullYear()) {
		return true;
	}
	else if (date.getFullYear() == d1.getFullYear() 
		&& date.getMonth() < d1.getMonth()) {
		return true;
	}
	else if (date.getFullYear() == d1.getFullYear() 
		&& date.getMonth() == d1.getMonth()
		&& date.getDate() < d1.getDate()) {
		return true;
	}
	
	return false;
}

function apresJourOuvrable(date) {
	jo = calc_date_mini(12); //Date limite de la période des jours ouvrables, 12 jours après la date du jour
	
	if (date.getFullYear() > jo.getFullYear()) {
		return true;
	}
	else if (date.getFullYear() == jo.getFullYear() 
		&& date.getMonth() > jo.getMonth()) {
		return true;
	}
	else if (date.getFullYear() == jo.getFullYear() 
		&& date.getMonth() == jo.getMonth()
		&& date.getDate() >= jo.getDate()) {
		return true;
	}
	
	return false;
}

function dateStatusHandler(date, y, m, d) {
	//Si la date passée est un dimanche, on renvoie true
	if (jourDimanche(date)) {
		return true;
	}
	
	//Si la date passée est un jour férié, on renvoie true
	if (dateFerie(date)) {
		return true;
	}
	
	if(avantDateJour(date)) {
		return true;
	}
	
	/*if (apresJourOuvrable(date)) {
		return true;
	}*/
	
	return false;
}

Calendar.setup({
	inputField     :    "f_date_c",     // id of the input field
	ifFormat       :    "%d/%m/%Y",      // format of the input field
	button         :    "f_trigger_c",  // trigger for the calendar (button ID)
	align          :    "Tl",           // alignment (defaults to "Bl")
	singleClick    :    true,
	dateStatusFunc :	dateStatusHandler
});
								 
/*Calendar.setup({
	inputField     :    "e_date_g",     // id of the input field
	ifFormat       :    "%d/%m/%Y",      // format of the input field
	button         :    "e_trigger_g",  // trigger for the calendar (button ID)
	align          :    "Tl",           // alignment (defaults to "Bl")
	singleClick    :    true
}); */

