var etatpicto=Array();
for($i=1;$i<=12;$i++){
	etatpicto[$i]=0;
}

// JavaScript Document

function affiche_div(num) { 
	cache_all();
	if(document.getElementById('Layer_div'+num)){
		document.getElementById('Layer_div'+num).style.visibility='visible';
		document.getElementById('Layer_div'+num).style.display='block';
	}
}

// ----------------------------- 

function cache_div(num) { 
	if(document.getElementById('Layer_div'+num)){
		document.getElementById('Layer_div'+num).style.visibility='hidden';
		document.getElementById('Layer_div'+num).style.display='none';
	}
}

//-------------------------------

function cache_all() {
	for (i=1; i<=200; i++){
		if(document.getElementById('Layer_div'+i)){
		document.getElementById('Layer_div'+i).style.visibility='hidden';
		document.getElementById('Layer_div'+i).style.display='none';
		}
	}
}

//-------------------------------

function strpos (haystack, needle, offset) {
	var i = (haystack+'').indexOf(needle, (offset || 0));
	return i === -1 ? false : i;
}

function ouvre_select(nom) {
	var id_btn = 'btn_'+nom.substr(11);
	if (document.getElementById(id_btn) == null || document.getElementById(id_btn).className.substr(-4)!='-des') {
		if(document.getElementById(nom) != null){
			if(document.getElementById(nom).style.display=='block'){
				document.getElementById(nom).style.display='none';	
			}else{		
				ferme_select_all(nom);
				document.getElementById(nom).style.display='block';	
			}	
		}
	} else {
		ferme_select_all(nom);
	}
}	
	
//-------------------------------

function ferme_select_all(nom) {
	if (document.getElementById('div-select-destination')){
		document.getElementById('div-select-destination').style.display='none';
	}	
	if (document.getElementById('div-select-objectif')){
		document.getElementById('div-select-objectif').style.display='none';
	}	
	if (document.getElementById('div-select-formule')){
		document.getElementById('div-select-formule').style.display='none';	
	}	
	if (document.getElementById('div-select-ville')){
		document.getElementById('div-select-ville').style.display='none';
	}	
	if (document.getElementById('div-select-objectif-liste')){
		document.getElementById('div-select-objectif-liste').style.display='none';
	}	
	if (document.getElementById('div-select-formule-liste')){
		document.getElementById('div-select-formule-liste').style.display='none';
	}	
	if (document.getElementById('div-select-formule-enfant')){
		document.getElementById('div-select-formule-enfant').style.display='none';
	}		
	if (document.getElementById('div-select-periode')){
		document.getElementById('div-select-periode').style.display='none';
	}		
	if (document.getElementById('tri-div-H')){
		document.getElementById('tri-div-H').style.display='none';
	}		
	if (document.getElementById('tri-div-B')){
		document.getElementById('tri-div-B').style.display='none';	
	}
	if (document.getElementById('div-select-langue')){
		document.getElementById('div-select-langue').style.display='none';
	}
}

//-------------------------------

function select_div(num) { 
	deselect_all();
	if(document.getElementById('cat'+num)){
		document.getElementById('cat'+num).className='select';
	}
}

// ----------------------------- 

function deselect_all() {
	for (i=1; i<=200; i++){
		if(document.getElementById('cat'+i)){
		document.getElementById('cat'+i).className='';
		}
	}
}
//-------------------------------

function coche_classic(num, cat) {
	lien = $('a-chk'+num);
	checkb = $('chk'+num);
	if(lien.className == cat+'-select'){
		checkb.checked='';
		lien.className=cat;
	}else{		
		checkb.checked = 'checked';
		lien.className = cat + '-select';
	}
}

//-------------------------------

//Coche ou décoche une checkbox periode
//num : numéro de la checkbox dans son groupe
//cat : couleur du thème actif
function coche_periode(num, cat){
	var checkb = $('periode' + num);
	var lien = $('a-periode' + num);
	if(num != 'Toutes'){
		if(lien.className == cat + '-select'){
			checkb.checked = false;
			lien.className = cat;
			//on l'enlève du tableau contenant les périodes cochées
			periodes_filtre.erase(parseInt(checkb.value));
		} else {
			checkb.checked = 'checked';
			lien.className = cat + '-select';
			//on décoche la case toutes si une autre case est cochée
			$('periodeToutes').checked = false;
			$('a-periodeToutes').className = cat;
			periodes_filtre.include(parseInt(checkb.value));
		}
	} else {
		if(lien.className == cat){
			lien.className = cat + '-select';
			checkb.checked = 'checked';
		} else {
			lien.className = cat;
			checkb.checked = false;
		}
	}
}

//-------------------------------

//Coche ou décoche une checkbox et met à jour le tableau des valeurs cochées du groupe de checkbox
//num : numéro de la checkbox dans son groupe
//nom : nom du groupe de checkbox
function coche_checkb(num, nom){
	var checkb = $(nom + num);
	if(checkb.className == "select"){
		checkb.checked = false;
		checkb.className = '';
		tabs[nom].erase(nom + num);
	} else {
		checkb.checked = 'checked';
		checkb.className = 'select';
		tabs[nom].include(nom + num);
	}
}

//-------------------------------

//Décoche toutes les checkb de periode
function decoche_all_periode(cat){
	var checkb = $$('input[id^=periode]');
	for(var i = 1;i < checkb.length;i++){
		var lien = $('a-' + checkb[i].id);
		if(lien.className == cat + '-select'){
			lien.className = cat;
			checkb[i].checked = false;
			periodes_filtre.erase(parseInt(checkb[i].value));	
		}
	}
	periodes_filtre = [];
}

//-------------------------------

//Coche ou décoche un bouton radio
//num : numéro du bouton radio dans son groupe
//cat : couleur du thème actif
//nom : nom du groupe dans lequel est le bouton radio
function coche_radio(num, cat, nom){
	var checkb = $$('input[name='+ nom +']');
	
	for(var i = 0;i < checkb.length;i++){
		lien = $('a-' + checkb[i].id);
		if((i + 1) == num){
			lien.className = cat + '-select';
			checkb[i].checked = 'checked';
			if(nom == 'langue'){
				var texte = lien.get('text');
			} else {
				var texte = checkb[i].value;
			}
			majTextSelect(lien.get('text'), nom, 20);
			if (nom=="cible") {
				var cible = '';
				var cible_nom = '';
				switch (num) {
				case '1':
					cible = '2';
					cible_nom = 'adulte';
					break;
				case '2':
					cible = '1';
					cible_nom = 'etudiant';
					break;
				case '3':
					cible = '3';
					cible_nom = 'enfant';
					break;
				}
				selection_filtre[nom] = cible;
				selection_filtre['cible_nom'] = cible_nom;
			} else {
				selection_filtre[nom] = texte;
			}
		} else {
			lien.className = cat;
			checkb[i].checked = false;
		}
	}
}

//-------------------------------

//Met à jour le texte du select lorsqu'un choix a été fait
//texte : texte qui va remplacer l'ancien
//nom : nom du groupe dans lequel est le bouton radio
//longueur_max : nombre de caractères maximum qui peut être affiché (si la chaîne est coupée, '...' sont ajoutés)
function majTextSelect(texte, nom, longueur_max){
	//alert(nom);
	if(texte.length > longueur_max){
		$(nom+'-select').set('text', (texte.substr(0,longueur_max) + '...'));
	} else {
		$(nom+'-select').set('text', texte);
	}
}

//-------------------------------

function coche(num, ssnum, cat) { 
	var lien = document.getElementById('a-ville'+num+'-'+ssnum);
	var checkb = document.getElementById('ville'+num+'-'+ssnum);
	if(lien.className==cat+'-select'){
		checkb.checked='';
		lien.className=cat;
	}else{		
		checkb.checked='checked';
		lien.className=cat+'-select';
	}
}

//-------------------------------

//PLUS UTILISEE POUR L'INSTANT
function coche_langue(num, cat){
	var lien = $('a-langue'+num);
	var les_checkb = $$('input[name=langue]');
	for(var i = 0;i < les_checkb.length;i++){
		if(les_checkb[i].id == 'langue'+num){
			les_checkb[i].checked = 'checked';
			lien.className = cat+'-select';
		} else {
			$('a-langue'+parseInt(i +1 )).className = cat;
		}
	}
	$('langue-select').set('text',lien.name);
}

//-------------------------------

//Décoche toutes les detinations (pour le clic sur toutes) et coche la case toutes si elle est décochée
function decoche_all(cat){
	var pays = $$('input[id^=pays]');
	var ville = $$('input[id^=ville]');
	//on décoche chaque pays cochée
	for(var i = 0;i < pays.length;i++){
		lien = $('a-' + pays[i].id);
		if(lien.className == cat + '-select'){
			lien.className = cat;
			pays[i].checked = false;
			les_pays.erase(parseInt(lien.get('text')));
		}
	}
	//on décoche chaque ville cochée
	for(var i = 0;i < ville.length;i++){
		lien = $('a-' + ville[i].id);
		if(lien.className == cat + '-select'){
			lien.className = cat;
			ville[i].checked = false;
			villes.erase(parseInt(ville[i].value));
		}
	}
	//on coche la case toutes si elle est décochée
	var lien = $('a-dest-toutes');
	var checkb = $('dest-toutes');
	if(lien.className == cat){
		checkb.checked = 'checked';
		lien.className = cat + '-select';
	} else {
		checkb.checked = false;
		lien.className = cat;
	}
	les_pays = [];
	villes = [];
}

//-------------------------------

//Décoche la case toutes (appelée lorsqu'on clique sur une ville ou un pays)
function decoche_toute(cat){
	var checkb = $('dest-toutes');
	var lien = $('a-dest-toutes');
	if(lien.className = cat + '-select'){
		checkb.checked = false;
		lien.className = cat;
	}
}

//-------------------------------

function ferme_langue(){
	$('div-select-langue').style.display = 'none';
}

//-------------------------------

function ferme_cible(){
	$('div-select-cible').style.display = 'none';
}

//-------------------------------

function coche_all(num, cat, nb_case) {
	if(!nb_case){
		nb_case = 6;
	}
	checkpays = document.getElementById('pays'+num);
	lienpays = document.getElementById('a-pays'+num);
	if (lienpays.className==cat) {
		checkpays.checked='checked';
		lienpays.className=cat+'-select';
		for (i=1; i<=nb_case; i++){
			lien = document.getElementById('a-ville'+num+'-'+i);
			checkb = document.getElementById('ville'+num+'-'+i);
			if(lien.className==cat){
				checkb.checked='checked';
				lien.className=cat+'-select';
			}
		}
	} else {
		checkpays.checked='';
		lienpays.className=cat;
		for (i=1; i<=50; i++){
			lien = document.getElementById('a-ville'+num+'-'+i);
			checkb = document.getElementById('ville'+num+'-'+i);
			if(lien){
				if(lien.className==cat+'-select'){
					checkb.checked='';
					lien.className=cat;
				}
			}
		}
	}
}

//-------------------------------

//coche ou décoche toutes les checkbox de villes et de pays
//le paramètre 'cocher' prend la valeur 1 pour tout cocher et 0 pour tout décocher
function cochage_all(cocher, cat){
	var pays = $$('input[id^=pays]');
	var ville = $$('input[id^=ville]');
	if(cocher == 1){
		for(var i = 0;i < pays.length;i++){
			//on coche chaque pays
			pays[i].checked = 'checked';
			//on active le lien de chaque pays
			$('a-' + pays[i].id).className = cat + '-select';
		}
		for(var j = 0;j < ville.length;j++){
			//on coche chaque ville
			ville[j].checked = 'checked';
			//on active le lien de chaque ville
			$('a-' + ville[j].id).className = cat + '-select';
		}
	} else {		
		for(var i = 0;i < pays.length;i++){
			//on décoche et on désactive le lien de chaque pays
			pays[i].checked = false;
			$('a-' + pays[i].id).className = cat;
		}
		for(var j = 0;j < ville.length;j++){
			//on décoche et on désactive le lien de chaque ville
			ville[j].checked = false;
			$('a-' + ville[j].id).className = cat;
		}
	}
}

//-------------------------------

function suite_detail(num, nbre, cat) {
	switch (cat) {
		case 'bleu':
			couleur='#e8f2f9';
			break;
		case 'marron':
			couleur='#eae5e1';
			break;
		case 'violet':
			couleur='#f0ecf5';
			break;
		case 'mauve':
			couleur='#f6eef4';
			break;
		case 'rose':
			couleur='#f9eef3';
			break;
	}
	for(i=2;i<=nbre;i++){
		if(document.getElementById('suite'+i)){
			if(num==i){
				if (document.getElementById('suite'+i).style.height=='0px') {
					document.getElementById('b-detail'+i).className='bouton-detail-suite';
					document.getElementById('txt-detail'+i).innerHTML='Fermer';
					document.getElementById('bloc'+i).style.backgroundColor='#ffffff';
				} else {
					document.getElementById('b-detail'+i).className='bouton-detail';
					document.getElementById('txt-detail'+i).innerHTML='Lire la suite';
					document.getElementById('bloc'+i).style.backgroundColor=couleur;
				}
			}else{
				document.getElementById('b-detail'+i).className='bouton-detail';
				document.getElementById('txt-detail'+i).innerHTML='Lire la suite';
				document.getElementById('bloc'+i).style.backgroundColor=couleur;
			}
		}
	}
}

//----------------------------------

//utilisée pour désactiver un bouton dans le facilitateur pour forcer un ordre de sélection
//prend en paramètre un tableau des différents boutons à désactiver 
//exemple : griser_bouton(['objectif','formule']);
function griser_bouton(bouton_id){
	for(var i = 0; i < bouton_id.length;i++){
		btn = $('btn_' + bouton_id[i]);
		//vérification que le bouton n'est pas déjà grisé
		if(btn.className.substr(btn.className.length - 4,4) != '-des'){
			btn.className += '-des'; //changement de la classe pour enlever l'effet :hover
			lien_btn = document.getElementById('b-' + bouton_id[i]); 
			lien_btn_grise = document.getElementById('b-' + bouton_id[i] + '-grise');
			lien_btn.style.display = 'none'; //masquage du lien actif
			lien_btn_grise.style.display = 'inline'; //affichage du lien inactif
																	   
		}
	}
}

//---------------------------------

function changer_filtre(filtre) {
	switch (filtre) {
		case 'adulte':
			document.getElementById('selection3').style.display = 'none';
			document.getElementById('selection2').style.display = 'block';
			break;
		case 'enfant':
			document.getElementById('selection2').style.display = 'none';
			document.getElementById('selection3').style.display = 'block';
			break;
	}
}

//---------------------------------

//utilisée pour réactiver un bouton dans le facilitateur
//prend en paramètre un tableau des différents boutons à réactiver 
//exemple : degriser_bouton(['objectif','formule']);
function degriser_bouton(bouton_id){
	for(var i = 0;i < bouton_id.length;i++){
		btn = document.getElementById('btn_' + bouton_id[i]);
		if (btn) {
		var classe = btn.className; 
		//vérification que le bouton n'est pas déjà dégrisé
		if(classe.substr(classe.length - 4) == '-des'){
			classe = classe.substr(0,classe.length - 4); //changement de la classe pour récupérer l'effet :hover
			btn.className = classe;
			if (document.getElementById('b-' + bouton_id[i])) {
				lien_btn = document.getElementById('b-' + bouton_id[i]);
				lien_btn.style.display = 'inline'; //affichage du lien actif
				lien_btn.className = 'select';
			}
			if (document.getElementById('b-' + bouton_id[i] + '-grise')) {
				lien_btn_grise = document.getElementById('b-' + bouton_id[i] + '-grise');
				lien_btn_grise.style.display = 'none'; //masquage du lien inactif
			}
		}
		if ($('liste-'+bouton_id[i])) {
			$('liste-'+bouton_id[i]).set('class','select');
		}
		}
	}
}

//---------------------------------

//checkDestination renvoie true si elle trouve une destination cochée et false si elles sont toutes décochées
function checkDestination(){
	var pays = $$('input[id^=pays]');
	var ville = $$('input[id^=ville]');
	if($('dest-toutes')){
		var toutes = $('dest-toutes');
	}
	for(var i = 0;i < pays.length;i++){
		if(pays[i].checked){
			return true;
		}
	}
	for(var j = 0;j < ville.length;j++){
		if(ville[j].checked){
			return true;
		}
	}
	if($('dest-toutes') && toutes.checked){
		return true;
	}
	return false;
}
	
//----------------------------------

//utilisée lorsqu'une checkbox destination est cochée ou décochée, pour débloquer la selection des objectifs
function debloquer_objectif(cible){
	//vérification qu'une destination est cochée
	if(checkDestination()){
		//s'il y en a une, le bouton objectif est activé
		degriser_bouton(['objectif']);
	} else {
		//s'il n'y en a aucune, les boutons objectif et formule sont grisés
		if(cible == 'Enfant' || cible == '3'){
			griser_bouton(['objectif','periode']);
		} else { 
			griser_bouton(['objectif','formule']);
		}
	}
}

//----------------------------------

//checkObjectifs renvoie true si elle trouve un objectif coché et false s'ils sont tous décochés
function checkObjectifs(){
	var objectifs = $$('input[name=objectif]');
	//test sur chaque objectif qu'il est coché ou non
	for(var i = 0;i < objectifs.length;i++){
		if(objectifs[i].checked){
			return true;
		}
	}
	return false;
}

//----------------------------------

//utilisée lorsqu'une checkbox objectif est coché ou décoché, pour débloquer la selection des formules
function debloquer_formule(){
	//vérification qu'un objectif est coché
	if(checkObjectifs()){
		//s'il y a un, le bouton formule est activé
		degriser_bouton(['formule']);
	} else {
		//s'il n'y en a aucun, le bouton formule est grisé
		griser_bouton(['formule']);
	}
}

//----------------------------------

//checkCategories renvoie true si elle trouve une catégorie cochée et false sinon
function checkCategories(){
	var categories = $$('input[name=categorie]');
	for(var i = 0;i < categories.length;i++){
		if(categories[i].checked){
			return true;
		}
	}
	return false;
}

//----------------------------------

//utilisée lorsqu'une checkbox objectif est coché ou décoché, pour débloquer la selection des formules
function debloquer_formule_enfant(){
	degriser_bouton(['formule-enfant']);
}

//----------------------------------

//Utilisée lorsqu'un bouton radio categorie est coché ou décoché, pour débloquer la selection de la période
function debloquer_periode(){
	//vérification qu'une catégorie est cochée
	if(checkCategories()){
		//activation du select période
		degriser_bouton(['periode']);
	} else {
		//désactivation si aucune catégorie n'est cochée
		griser_bouton(['periode']);
	}
}

//----------------------------------

//permet de charger la liste des objectifs en fonction d'une ville, d'une langue et d'une cible
//prend en paramètres la langue, la cible, le nom de la ville, et l'id de la checkbox de la ville
function chargerObjectifsVille(langue, ville, id_ville, cible, cat){
	//mise à jour du tableau des villes cochées
	//On récupère le ville_id stocké dans la value de la checkbox
	var ville_id = parseInt($(id_ville).value);
	//test de la valeur de la checkbox sur laquelle l'utilisateur vient de cliquer
	if($(id_ville).checked){
		//si elle est cochée, rajout de la ville
		villes.include(ville_id);
	} else {
		//si elle décochée, c'est que la ville est dans le tableau, donc elle est retirée
		villes.erase(ville_id);
	}
	//appel de la requête ajax
	chargerListeObjectifs(langue, villes, les_pays, cible, cat);
}

//----------------------------------

//permet de charger la liste des objectifs en fonction d'un pays d'une langue et d'une cible
//prend en paramètres la langue, la cible, le nom du pays, l'id de la checkbox du pays, et le numéro du pays dans la liste des checkbox
function chargerObjectifsPays(langue, pays, id_pays, cible, cat){
	//mise à jour du tableau des pays cochés
	//On récupère le pays_id stocké dans la value de la checkbox
	var pays_id = parseInt($(id_pays).value);
	//test de la valeur de la checkbox sur laquelle l'utilisateur vient de cliquer
	if($(id_pays).checked){
		//si elle est cochée, rajout du pays
		les_pays.include(parseInt(pays_id));
	} else {
		//si elle est décochée, le pays est déjà dans le tableau, donc il est retiré
		les_pays.erase(parseInt(pays_id));
	}
	//appel de la requête ajax
	chargerListeObjectifs(langue, villes, les_pays, cible, cat);
}

//-----------------------------------

//appelle le fichier ajax/categorie.php avec la langue, les villes, les pays et la cible pour ajouter la liste des objectifs correspondants au select des objectifs
//prend en paramètres la langue, la cible, un tableau de villes et un tableau de pays (les tableaux doivent être en javascript)
function chargerListeObjectifs(langue, villes, pays, cible, cat){
	//La recherche avec la cible 'Enfant' n'a pas besoin d'objectifs mais des catégories directement
	if(cible != 'Enfant' && cible != '3'){
		var option = {url: "/ajax/objectif.php?langue="+langue+"&villes="+villes+"&pays="+pays+"&cible="+cible+"&cat="+cat, method : 'get' , update: $('div-select-objectif'), evalScripts: true};
		var monObjetAjax= new Request.HTML(option);
		monObjetAjax.send();
	} else {
		chargerListeCategories(langue, cible, villes, pays, cat, '');
		debloquer_formule_enfant();
	}
	if(page_facilitateur){
		//mise à jour du nombre de destinations avec le nouveau nb_destinations
		if(getNbDestinations() == 0){
			//si aucune destinations n'est cochée, on affiche toutes les destinations disponibles
			var option4 = {url: "/ajax/nb-destinations.php?langue="+langue+"&cible="+cible, method: 'get', update: $('nb_destinations'), evalScripts:true};
			var monObjetAjax4 = new Request.HTML(option4);
			monObjetAjax4.send();
		} else {
			//sinon on affiche le nombre de destinations cochées
			$('nb_destinations').set('text',getNbDestinations());
		}
		//mise à jour du nombre d'écoles disponibles en appelant le fichier ajax/nb-ecoles.php
		var option2 = {url: "/ajax/nb-ecoles.php?langue="+langue+"&villes="+villes+"&pays="+pays+"&cible="+cible, method : 'get',update: $('nb_ecoles'), evalScripts:true};
		var monObjetAjax2 = new Request.HTML(option2);
		monObjetAjax2.send();
		//mise à jour du nombre de produits en appelant le fichier ajax/nb-produits.php
		var option3 = {url : "/ajax/nb-produits.php?langue="+langue+"&villes="+villes+"&pays="+pays+"&cible="+cible, method : 'get',update: $('nb_produits'), evalScripts:true};
		var monObjetAjax3 = new Request.HTML(option3);
		monObjetAjax3.send();
		//on débloque le bouton objectif
		debloquer_objectif();
	}
	//mise à jour de la valeur du select avec le choix sélectionné	
	//majSelectDest(villes, pays);

}

//-----------------------------------

//Met à jour la valeur du select des destinations
function majSelectDest(villes, les_pays){
	var nb_villes_cochees = villes.length;
	var nb_pays_coches = les_pays.length;
	if(nb_villes_cochees > 1 || nb_pays_coches > 0){
		// On affiche "plusieurs destinations" si plus d'une est sélectionnée
		$('destination-select').set('text','Plusieurs destinations');
	} else {
		if(nb_villes_cochees == 1){
			// On affiche le nom de la ville si elle est la seule sélectionnée
			majTextSelect(villes_id[villes[0]], 'destination',20);
		}  else {
			//on affiche toutes si la case 'toutes' est cochée
			if($('dest-toutes').checked){
				$('destination-select').set('text','Toutes destinations');
			} else {
				//on affiche 'Choisir...' si aucun choix n'a été fait
				$('destination-select').set('text','Toutes destinations');
			}
		}
	}
}

//-----------------------------------

//Met à jour la valeur du select des périodes avec le choix sélectionné
function majSelectPeriode(periodes){
	var nb_periodes_cochees = periodes.length;
	if(nb_periodes_cochees > 1){
		$('periode-select').set('text','Plusieurs periodes');
	} else {
		if(nb_periodes_cochees == 1){
			majTextSelect(periodes_id[periodes[0]],'periode',35);
		} else {
			if($('periodeToutes').checked){
				$('periode-select').set('text','Toutes');
			} else {
				$('periode-select').set('text','Choisir...');
			}
		}
	}
}

//-----------------------------------

//Retourne le nombre de destinations cochées
function getNbDestinations(){
	var villes = $$('input[id^=ville]');
	var nbDest = 0;
	if($('dest-toutes')){
		var toutes = $('dest-toutes').checked;
	} else {
		var toutes = false;
	}
	for(var i = 0;i < villes.length;i++){
		if(villes[i].checked || toutes){
			//si la ville est cochée ou si la case toutes est cochée, on incrémente le nombre de destinations
			nbDest++;
		}
	}
	return nbDest;
}

//-----------------------------------

//appelle le fichier ajax/destination.php avec la langue et la cible pour ajouter les destinations correspondantes dans le div-select-destinations
//prend en paramètres la langue et la cible
function chargerListeDestinations(langue, cible, cat){
	var option = {url:"/ajax/destination.php?langue="+langue+"&cible="+cible+"&cat="+cat, method: 'get', update: $('div-select-destination'), evalScripts: true};
	var monObjetAjax = new Request.HTML(option);
	monObjetAjax.send();
	//mise à jour du nombre d'écoles disponibles en appelant le fichier ajax/nb-ecoles.php
	var option2 = {url:"/ajax/nb-ecoles.php?langue="+langue+"&cible="+cible, method: 'get', update: $('nb_ecoles'), evalScripts:true};
	var monObjetAjax2 = new Request.HTML(option2);
	monObjetAjax2.send();
	//mise à jour du nombre de destinations disponibles
	var option3 = {url: "/ajax/nb-destinations.php?langue="+langue+"&cible="+cible, method: 'get', update: $('nb_destinations'), evalScripts:true};
	var monObjetAjax3 = new Request.HTML(option3);
	monObjetAjax3.send();
	//mise à jour du nombre de produits en appelent le fichier ajax/nb-produits.php
	var option4 = {url: "/ajax/nb-produits.php?langue="+langue+"&cible="+cible, method: 'get', update: $('nb_produits'), evalScripts: true};
	var monObjetAjax4 = new Request.HTML(option4);
	monObjetAjax4.send();
}

//----------------------------------

//Appelle le fichier ajax/categorie.php avec la langue, les villes, les pays, la cible et l'objectif pour ajouter les catégories (=FORMULES, ou types de séjours) dans le div-select-formule
//prend en paramètres la langue, un tableau de villes, un tableau de pays, la cible, et l'objectif (les tableaux doivent être en javascript)
//le paramètre 'cat' sert à garder la couleur du thème actuellement activé (pour le css)
function chargerListeCategories(langue, cible, villes, pays, cat, objectif){
	if(cible == 'Enfant' || cible == '3'){
		var update_div = 'div-select-formule-enfant';
	} else {
		var update_div = 'div-select-formule';
	}
	var option = {url:"/ajax/categorie.php?langue="+langue+"&cible="+cible+"&cat="+cat+"&villes="+villes+"&pays="+pays+"&objectif="+objectif, method: 'get', update: $(update_div), evalScripts:true};
	var monObjetAjax = new Request.HTML(option);
	monObjetAjax.send();
	//mise à jour du nombre de produits en appelant le fichier ajax/nb-produits.php
	var option2 = {url: "/ajax/nb-produits.php?langue="+langue+"&cible="+cible+"&villes="+villes+"&pays="+pays+"&objectif="+objectif, method: 'get', update: $('nb_produits'), evalScripts: true};
	var monObjetAjax2 = new Request.HTML(option2);
	monObjetAjax2.send();
	//mise à jour du nombre d'écoles en appelant le fichier ajax/nb-ecoles.php
	var option3 = {url: "/ajax/nb-ecoles.php?langue="+langue+"&cible="+cible+"&villes="+villes+"&pays="+pays+"&objectif="+objectif, method: 'get', update: $('nb_ecoles'), evalScripts: true};
	var monObjetAjax3 = new Request.HTML(option3);
	monObjetAjax3.send();
}

//----------------------------------

//Appelle le fichier ajax/periode.php pour remplir la liste des périodes dans div-select-periode
//prend en paramètres la langue, un tableau de villes, un tableau de pays, la cible, et la catégorie (les tableaux doivent être en javascript)
//le paramètre 'cat' sert à garder la couleur du thème actuellement activé (pour le css)
function chargerListePeriode(cat, cible, langue, villes, pays, categorie){
	var option = {
		url:"/ajax/periode.php?cat="+cat+"&cible="+cible+"&langue="+langue+"&villes="+villes+"&pays="+pays+"&categorie="+categorie+"&periodes="+periodes_filtre, 
		method: 'get', 
		update: $('div-select-periode'), 
		evalScripts:true
	};
	var monObjetAjax = new Request.HTML(option);
	monObjetAjax.send();
	//mise à jour du nombre de produits
	var option2 = {url: "/ajax/nb-produits.php?cat="+cat+"&cible="+cible+"&langue="+langue+"&villes="+villes+"&pays="+pays+"&categorie="+categorie, method: 'get', update: $('nb-produits'), evalScripts:true};
	var monObjetAjax2 = new Request.HTML(option2);
	monObjetAjax2.send();
	//mise à jour du nombre d'écoles
	var option3 = {url: "/ajax/nb-ecoles.php?cat="+cat+"&cible="+cible+"&langue="+langue+"&villes="+villes+"&pays="+pays+"&categorie="+categorie, method: 'get', update: $('nb-ecoles'), evalScripts:true};
	var monObjetAjax3 = new Request.HTML(option3);
	monObjetAjax3.send();
	majSelectPeriode(periodes_filtre);
}
//----------------------------------

//Appelle les fichiers ajax/nb-produits.php et ajax/nb-ecoles.php pour mettre à jour les nombres de produits et d'écoles lors du clique sur la période ou la catégorie
function majNbProduits(cible, langue, pays, villes, objectif, categorie, periodes, cat){
	//mise à jour du nombre de produits
	//création de l'url différente en fonction de si la cible est 'Enfant' ou non
	var optionUrl = "/ajax/nb-produits.php?cible="+cible+"&langue="+langue+"&pays="+pays+"&villes="+villes+"&categorie="+categorie+"&cat="+cat;
	if(cible == 'Enfant' || cible == '3'){
		optionUrl += "&periodes="+periodes;
	} else {
		optionUrl += "&objectif="+objectif;
	}
	var option = {url:optionUrl, method: 'get', update: $('nb_produits'), evalScripts: true};
	var monObjetAjax = new Request.HTML(option);
	monObjetAjax.send();
	//mise à jour du nombre d'écoles
	//cération de l'url différente en fonction de si la cible est 'Enfant' ou non
	var optionUrl2 = "/ajax/nb-ecoles.php?cible="+cible+"&langue="+langue+"&pays="+pays+"&villes="+villes+"&categorie="+categorie+"&cat="+cat;
	if(cible == 'Enfant' || cible == '3'){
		optionUrl2 += "&periodes="+periodes;
	} else {
		optionUrl2 += "&objectif="+objectif;
	}
	var option2 = {url:optionUrl2, method: 'get', update: $('nb-ecoles'), evalScripts: true};
	var monObjetAjax2 = new Request.HTML(option2);
	monObjetAjax2.send();
}

//----------------------------------

//Retourne l'URL pour transmettre les paramètres de la recherche faite avec le facilitateur
function creerUrlFacilitateur(cat){

	//url de base avec la catégorie
	var url = "cat="+cat;
	//rajout de la langue
	var langue = $('langue-select').get('text');
	url += "&langue="+langue;
	//rajout du tableau des villes si elles existent
	if(typeof(villes) != 'undefined' && villes.length > 0){
		url += "&villes="+villes;
	}
	//rajout du tableau des pays s'il existe
	if(typeof(les_pays) != 'undefined' && les_pays.length > 0){
		url += "&pays="+les_pays;
	}
	//rajout de la catégorie
	if(typeof(selection_filtre.categorie) != 'undefined' && selection_filtre.categorie != ''){
		url += "&categorie="+selection_filtre.categorie;
	}
	//rajout de l'objectif
	if(typeof(selection_filtre.objectif) != 'undefined' && selection_filtre.objectif != ''){
		url += "&objectif="+selection_filtre.objectif;
	}
	//rajout deu tableau des periodes
	if(typeof(periodes_filtre) != 'undefined' && periodes_filtre.length > 0){
		url += "&periodes="+periodes_filtre;
	}

  // L'url est générée par un script ajax, ce qui permet d'utiliser la classe url.lib dans l'ajax distant
  // et ainsi d'assurer de l'unicité des urls
	new Request({
    url: '/ajax/generer_url_liste.php',
    method: 'get',
    evalScripts: false,
    evalResponse: false,
    async: false,
    onSuccess: function(responseText) {
      window.location.href = responseText;
    }
  }).send(url);
}

//----------------------------------

//Charge la liste des resultats avec les nouveau filtres
//Appel du fichiers ajax/liste-produitsphp
function chargerResultats(tranches_prix,cat){
	//Mise à jour de la liste des produits avec les nouvelles options
	var option = {url: "/ajax/liste-produits.php?tranches_prix="+tranches_prix+"&cat="+cat, method: 'get', update:$('resultats'), evalScripts:true};
	var monObjetAjax = new Request.HTML(option);
	monObjetAjax.send();
}

//----------------------------------

//Met à jour la numérotation des pages avec un nombre de page et un numéro de page
function chargerNumerotation(nb_pages,page,cat){
	var option = {url: "/ajax/numerotation.php?nb_pages="+nb_pages+"&page="+page+"&cat="+cat, method:'get', update:$('numerotationH'), evalScripts:true};
	var monObjetAjax = new Request.HTML(option);
	monObjetAjax.send();
	var option2 = {url: "/ajax/numerotation.php?nb_pages="+nb_pages+"&page="+page+"&cat="+cat, method:'get', update:$('numerotationB'), evalScripts:true};
	var monObjetAjax2 = new Request.HTML(option2);
	monObjetAjax2.send();
}

//--------------------------------

//Créé l'url pour changer de pages dans les résultats avec les options cochées
// function urlChangerPage(cat, page, langue, sens, nb_pages){
	// var url;
	// var laPage;
	// var condition;
	// if(sens == "plus"){
		// laPage = parseInt(page) + 1;
		// condition = (page < nb_pages);
	// } else {
		// if(sens == "moins"){
			// laPage = parseInt(page) - 1;
			// condition = (page > 1);
		// } else {
			// laPage = page;
			// condition = true;
		// }
	// }
	// if(condition){
		// url = "?page="+laPage+"&cat="+cat+"&langue="+langue+"&tranche="+tabs.tranche;
		// window.location.href  = url;
	// }
// }

//---------------------------------

//Affiche la liste des valeurs d'un tableau à une dimension
function print_r(tab){
	var test = '';
	for(var i = 0;i < tab.length;i++){
		test += tab[i]+'-';
	}
	alert(test);
}

//---------------------------------

//Incrémente ou décrémente la valeur d'un champ numérique
// numBoxId : id du champ à modifier
// changeType : 'plus' ou 'moins', pour incrémenter ou décrémenter
function changeNumBox(numBoxId, changeType){
	valeur_act = parseInt($(numBoxId).value);
	if((valeur_act != 1 || changeType == 'plus')){
		if(changeType == "plus"){
			$(numBoxId).value = valeur_act + 1;	
		} else {
			$(numBoxId).value = valeur_act - 1;
		}
	}
}

//---------------------------------

//Retourne une date sour le format "01 Janvier 2000"
// date : date sous le format "JJ/MM/AAAA"
function changeFormatDate(date){
	//alert('changeFormatDate:'+(laDate.getMonth()+1));
	laDate = explodeDate(date);
	return laDate.getDate() + ' ' + getMonthOfYear(laDate.getMonth()+1) + ' ' + laDate.getFullYear();
}

//---------------------------------

// Renvoie le chiffre avec un 0 devant
function mettreZero(chiffre){
	if(chiffre<10){
		return '0'+chiffre;
	} else {
		return chiffre;
	}
}

//---------------------------------

//Retourne le mois de l'année en toute lettre
//$num : numéro du mois
function getMonthOfYear(num){
	var mois;
	switch(num){
		case 1:
			mois = 'Janvier';
			break;
		case 2:
			mois = 'Fevrier';
			break;
		case 3:
			mois = 'Mars';
			break;
		case 4:
			mois = 'Avril';
			break;
		case 5:
			mois = 'Mai';
			break;
		case 6:
			mois = 'Juin';
			break;
		case 7:
			mois = 'Juillet';
			break;
		case 8:
			mois = 'Aout';
			break;
		case 9:
			mois = 'Septembre';
			break;
		case 10:
			mois = 'Octobre';
			break;
		case 11:
			mois = 'Novembre';
			break;
		case 12:
			mois = 'Decembre';
			break;
		default:
			mois = 'Numero mois incorrect';
			break;
	}
	return mois;
}

//---------------------------------

//Retourne un objet date à partir d'une date en chaine de caractères
//date : date au format "JJ/MM/AAAA"
function explodeDate(date){
		var elem = 	date.split('/');
		var laDate = new Date(elem[2],elem[1] - 1,elem[0]);
		return laDate;
}

//---------------------------------

//Convertit une date JJ/MM/AAAA en AAAA-MM-JJ
function dateConvert(date){
	var laDate = explodeDate(date);
	return laDate.getFullYear() + '-' + mettreZero(laDate.getMonth()+1) + '-' + mettreZero(laDate.getDate());
}

//---------------------------------	

//Ajoute un nombre de jour à une date
//date : date au format "JJ/MM/AAAA"
//nb_j : nombre de jours à ajouter
//format_amj : false par défaut, si true renvoit la date au format "AAAA-MM-JJ"
function addDay(date, nb_j, format_amj){
	// Initialisation format_amj avec valeur par défaut
	if(typeof(format_amj) == 'undefined'){
		format_amj = false;
	}
	// Ajout du nb_j à la date
	var laDate = explodeDate(date);
	laDate.setTime(laDate.getTime() + (nb_j * 24 * 60 * 60 * 1000));
	// Changement de format si besoin
	if(!format_amj){
		return laDate.getDate() + ' ' + getMonthOfYear(laDate.getMonth()+1) + ' ' + laDate.getFullYear();
	} else {
		return laDate.getFullYear() + '-' + mettreZero(laDate.getMonth()+1) + '-' + mettreZero(laDate.getDate());
	}
}

//Enlève un nombre de jour à une date
//date : date au format "JJ/MM/AAAA"
//nb_j : nombre de jours à ajouter
//format_amj : false par défaut, si true renvoit la date au format "AAAA-MM-JJ"
function delDay(date, nb_j, format_amj){
	// Initialisation format_amj avec valeur par défaut
	if(typeof(format_amj) == 'undefined'){
		format_amj = false;
	}
	// Ajout du nb_j à la date
	var laDate = explodeDate(date);
	laDate.setTime(laDate.getTime() - (nb_j * 24 * 60 * 60 * 1000));
	// Changement de format si besoin
	if(!format_amj){
	//	alert('delDay:'+(laDate.getMonth()+1));
		return laDate.getDate() + ' ' + getMonthOfYear(laDate.getMonth()+1) + ' ' + laDate.getFullYear();
	} else {
		return laDate.getFullYear() + '-' + mettreZero(laDate.getMonth()+1) + '-' + mettreZero(laDate.getDate());
	}
}

//---------------------------------

//Ajoute un nombre de mois à une date
//date : date au format "JJ/MM/AAAA"
//nb_m : nombre de mois à ajouter(entre 0 et 12)
function addMonth(date, nb_m){
	var laDate = explodeDate(date);
	if(laDate.getMonth() + nb_m < 11){
		laDate.setMonth(laDate.getMonth() + nb_m);
	} else { 
		laDate.setMonth(laDate.getMonth() + nb_m - 12);
		laDate.setYear(laDate.getFullYear() + 1);
	}
	//alert('addMonth'+(laDate.getMonth()+1));
	return laDate.getDate() + ' ' + getMonthOfYear(laDate.getMonth()+1) + ' ' + laDate.getFullYear();
}	

//---------------------------------

//Ferme le select passé en paramètre et le met à jour
function ferme_select(elem){
	$(elem).style.display = 'none';
}

// ----------------------------- 
function cache_paiement_all() {
	document.getElementById('cb').style.display='none';
	document.getElementById('b-cb').className='';
	document.getElementById('radio-cb').checked='';
	document.getElementById('tel').style.display='none';
	document.getElementById('b-tel').className='';
	document.getElementById('radio-tel').checked='';
	/*document.getElementById('cb3x').style.display='none';
	document.getElementById('b-cb3x').className='';
	document.getElementById('radio-cb3x').checked='';*/
	/*document.getElementById('paypal').style.display='none';
	document.getElementById('b-paypal').className='';
	document.getElementById('radio-paypal').checked='';*/
	document.getElementById('cheque').style.display='none';
	document.getElementById('b-cheque').className='';
	document.getElementById('radio-cheque').checked='';
	document.getElementById('virement').style.display='none';
	document.getElementById('b-virement').className='';
	document.getElementById('radio-virement').checked='';
	/*document.getElementById('mandat').style.display='none';
	document.getElementById('b-mandat').className='';
	document.getElementById('radio-mandat').checked='';*/
}

// ----------------------------- 
function cache_paiement(id) {
	cache_paiement_all();
	effetTransparence('apparition', id);
	document.getElementById('b-'+id).className='select';
	document.getElementById('radio-'+id).checked='checked';
}

//------------------------------

//Renvoie la hauteur d'un élément en pixel
function getHauteur(elem_id){
	var elem = $(elem_id);
	var height = elem.getStyle('height');
	return height.substr(0,height.length - 2)*1;
}

function mailpassword(mail,id,template) {
	if (!id){
	 var id='oubli';
	}
	if (!template){
	 var template="/ajax/password_oubli.php";
	}
  // Attention, bien laisser la fonction encodeURIComponent qui permet l'encodage des caractères spéciaux et de , / ? : @ & = + $ #
  // Ajouté pour pouvoir gérer des emails contenant par exemple des + qui sans ça sont transformés en espace
	var option = {url: template+"?mail="+encodeURIComponent(mail), method : 'get' , update: $(id), evalScripts: true};
	var monObjetAjax= new Request.HTML(option);
	monObjetAjax.send();
}

function updatePicto(pictoid){
	
	var picto = pictoid.split('_');
	var id    = picto[0];
	var num   = parseInt(picto[1]);
	
	document.getElementById(id).value = num;
	for(i=1;i<=num;i++){
		document.getElementById(id+'_'+i).src = '/charte/informations/etoile_on.gif';
	}
	for(i=num+1;i<=4;i++){
		document.getElementById(id+'_'+i).src = '/charte/informations/etoile.gif';
	}
}

function affichePicto(pictoid){
//	alert(pictoid);
	var picto = pictoid.split('_');
	var id    = picto[0];
	var num   = parseInt(picto[1]);

	for(i=1;i<=num;i++){
		document.getElementById(id+'_'+i).src = '/charte/informations/etoile_on.gif';
	}
	for(i=num+1;i<=4;i++){
		document.getElementById(id+'_'+i).src = '/charte/informations/etoile.gif';
	}

}

function cachePicto(pictoid){
//	alert(pictoid);
	var picto = pictoid.split('_');
	var id    = picto[0];
	var num = parseInt(document.getElementById(id).value);
	
	for(i=1;i<=num;i++){
		document.getElementById(id+'_'+i).src = '/charte/informations/etoile_on.gif';
	}
	for(i=num+1;i<=4;i++){
		document.getElementById(id+'_'+i).src = '/charte/informations/etoile.gif';
	}
}

function afficheTransparence(div){
	if($(div).getStyle('opacity') == '0'){ 
		$(div).setStyle('display', 'block'); 
		$(div).fade('in'); 
	} else { 
		$(div).fade('out'); 
		setTimeout("$('"+div+"').setStyle('display', 'none')",500); 
	}
}

function trim(myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 

function envoi_fiche_ami() {
	new Request({
		url : "/ajax/envoi_fiche_ami.php",
		method : 'post',
		async : false,
		data : {
			'envoi_nom'       : $('envoi_nom').value,
			'envoi_email'     : $('envoi_email').value,
			'envoi_ami_nom'   : $('envoi_ami_nom').value,
			'envoi_ami_email' : $('envoi_ami_email').value,
			'cible'           : $('cible_id').value,
			'produit_id'      : $('produit_id').value
		},
		onSuccess : function() {
			effetTransparence('disparition','envoi-mail1');
			effetTransparence('apparition','envoi-mail-confirm');
			$('envoi_nom').value = '';
			$('envoi_email').value = '';
			$('envoi_ami_nom').value = '';
			$('envoi_ami_email').value = '';
		}
	}).send();
}

function envoi_devis_ami(devis) {
	new Request({
		url : "/ajax/envoi_devis_ami.php",
		method : 'post',
		async : false,
		data : {
			'envoi_nom'       : $('envoi_nom2').value,
			'envoi_email'     : $('envoi_email2').value,
			'envoi_ami_nom'   : $('envoi_ami_nom2').value,
			'envoi_ami_email' : $('envoi_ami_email2').value,
			'devis_id'        : devis
		},
		onSuccess : function() {
			effetTransparence('disparition','envoi-mail2');
			effetTransparence('apparition','envoi-mail-confirm2');
			$('envoi_nom2').value = '';
			$('envoi_email2').value = '';
			$('envoi_ami_nom2').value = '';
			$('envoi_ami_email2').value = '';
		}		
	}).send();
}


function remplissage_formulaire(){
	if($('nom').value != ''){
		$('label_nom[1]').innerHTML = '';
		$('nom-participant[1]').value = $('nom').value;
	}
	if($('prenom').value != ''){
		$('label_prenom[1]').innerHTML = '';
		$('prenom-participant[1]').value = $('prenom').value;
	}
	if($('date').value != ''){
		$('label_date[1]').innerHTML = '';
		$('date-participant[1]').value = $('date').value;
	}
	if($('nationalite').value != ''){
		$('label_nationalite[1]').innerHTML = '';
		$('nationalite-participant[1]').value = $('nationalite').value;
	}
	if($('adresse').value != ''){
		$('label_adresse[1]').innerHTML = '';
		$('adresse-participant[1]').value = $('adresse').value;
	}
	if($('cp').value != ''){
		$('label_cp[1]').innerHTML = '';
		$('cp-participant[1]').value = $('cp').value;
	}
	if($('ville').value != ''){
		$('label_ville[1]').innerHTML = '';
		$('ville-participant[1]').value = $('ville').value;
	}
	if($('client_tel').value != ''){
		$('label_tel[1]').innerHTML = '';
		$('tel-participant[1]').value = $('client_tel').value;
	}
	if($('portable').value != ''){
		$('label_portable[1]').innerHTML = '';
		$('portable-participant[1]').value = $('portable').value;
	}
	if($('mail').value != ''){
		$('label_mail[1]').innerHTML = '';
		$('mail-participant[1]').value = $('mail').value;
	}
	
	$('civilite_nom[1]').value = $('civilite_nom[0]').value;
	$('civilite_id[1]').value = $('civilite_id[0]').value;
	$('select_civilite[1]').innerHTML = $('select_civilite[0]').innerHTML;
	$('select_civilite[1]').setStyles({
		'color': '#000',
		'background-position': '0 0'
	});
	
	$('pays_nom[1]').value = $('pays_nom[0]').value;
	$('pays_id[1]').value = $('pays_id[0]').value;
	$('select_pays[1]').innerHTML = $('select_pays[0]').innerHTML;
	$('select_pays[1]').setStyles({
		'color': '#000',
		'background-position': '0 0'
	});
}
