
var elementSelect="spectacles";
// Tri des resultats
function sortBy(sort) {
	var formulaireRecherche = document.getElementById('rechercheFormPrincipal');
	formulaireRecherche.sortBy.value = sort;
	switchRequete(false, null,getFadeIdxByChild('listeResultatsAjax'));
}
	
// Preparation d'une requete Ajax en fonction des donnees du formulaire
// Le parametre reloadBlocFiltres sert a specifier si les blocs Themes et Regions doivent etre recharges
function prepareRequete(reloadBlocFiltres, filtreSelect,fadeidx) {

	fade('blocFiltres');

	// Formulaire recheche de resultatsRechercheAjax.jsp
	var formulaireRecherche = document.getElementById('rechercheFormPrincipal');
	// Formulaire recheche de listeResultatsAjax.jsp
	var formulaireRecherche2 = document.getElementById('FilArianeForm');
	var filArianeForm = document.getElementById('FilArianeForm');
	
	
	// S'il est disponible, on utilise les donnees du second formulaire pour les regions, les themes et les sous-themes
	// C'est necessaire pour pouvoir remonter correctement le fil d'Ariane
	
	var formulaireRechercheBis;
	if (formulaireRecherche2 != null) {
		formulaireRechercheBis = formulaireRecherche2;
	}
	else {
		formulaireRechercheBis = formulaireRecherche;
	}
	
	var typeRecherche = formulaireRecherche.typeRecherche.value;
	var spectaclesArtistes = formulaireRecherche.spectaclesArtistes.value;
	var theme = formulaireRechercheBis.theme.value;
	var region = formulaireRechercheBis.region.value;
	var ville = formulaireRecherche.ville.value;
	var salle = formulaireRecherche.salle.value;
	var dateFixeStr = formulaireRecherche.dateFixeStr.value;
	var dateDebutStr = formulaireRecherche.dateDebutStr.value;
	var dateFinStr = formulaireRecherche.dateFinStr.value;
	var codcsa = formulaireRecherche.codcsa.value;
	var codsal = formulaireRecherche.codsal.value;
	var sortBy = formulaireRecherche.sortBy.value;
	var codins = formulaireRecherche.codins.value;
	var codgrp = formulaireRecherche.codgrp.value;
	var nbResultatsParPage = formulaireRecherche.nbResultatsParPage.value;
	var noeudId = formulaireRecherche.noeudId.value;
	var masquerComplet = document.getElementById("check_masque_selections").checked;
	var masquerSeanceNonReservable = formulaireRecherche.masquerSeanceNonReservable.value;
	var classementInternautes = null;
	if (formulaireRecherche.classementInternautes) {
		classementInternautes = formulaireRecherche.classementInternautes.checked;
	}
	var filtrePaysPredefini = formulaireRecherche.filtrePaysPredefini.value;
	var filtreThemePredefini = formulaireRecherche.filtreThemePredefini.value;
	var filtreRegionPredefini = formulaireRecherche.filtreRegionPredefini.value;
	var masque = formulaireRecherche.masque.value;
	var latitude = formulaireRecherche.latitude.value;
	var longitude = formulaireRecherche.longitude.value;
	var distance = formulaireRecherche.distance.value;
	
	var mesArtistes = formulaireRecherche.mesArtistes.value;
	var mesSalles = formulaireRecherche.mesSalles.value;
	
	var codmans = '';
	if (formulaireRecherche.codman != null) {
		var i = 0;
		while ((i == 0 && formulaireRecherche.codman != null) || formulaireRecherche.codman[i] != null) {
			
			// Cas ou plusieurs codmans sont passes
			if (formulaireRecherche.codman[i] != null) {
				codman = formulaireRecherche.codman[i].value
			}
			
			// On est dans le cas ou un seul codman a ete passe
			else {
				codman = formulaireRecherche.codman.value;
			}
			i = i + 1;
			codmans = codmans + '&codman=' + codman; 
		}
	}
	
	
	// Filtres existants
	var filtresThemes = '';
	if (formulaireRechercheBis != null && formulaireRechercheBis.filtresThemes != null) {
		var i = 0;
		var filtreTheme;
		while ((i == 0 && formulaireRechercheBis.filtresThemes != null) || formulaireRechercheBis.filtresThemes[i] != null) {
			
			// Cas ou plusieurs filtresThemes sont passes
			if (formulaireRechercheBis.filtresThemes[i] != null) {
				filtreTheme = formulaireRechercheBis.filtresThemes[i].value
			}
			
			// On est dans le cas où un seul filtresThemes a été passé
			else {
				filtreTheme = formulaireRechercheBis.filtresThemes.value;
			}
			i = i + 1;
			filtresThemes = filtresThemes + '&filtresThemes=' + filtreTheme; 
		}
	}
	
	var filtresRegions = '';
	if (formulaireRechercheBis != null && formulaireRechercheBis.filtresRegions != null) {
		var i = 0;
		var filtreRegion;
		while ((i == 0 && formulaireRechercheBis.filtresRegions != null) || formulaireRechercheBis.filtresRegions[i] != null) {
			
			// Cas ou plusieurs filtresRegions sont passes
			if (formulaireRechercheBis.filtresRegions[i] != null) {
				filtreRegion = formulaireRechercheBis.filtresRegions[i].value
			}
			
			// On est dans le cas où un seul filtresRegions a été passé
			else {
				filtreRegion = formulaireRechercheBis.filtresRegions.value;
			}
			i = i + 1;
			filtresRegions = filtresRegions + '&filtresRegions=' + filtreRegion; 
		}
	}

	// BSM 03/10/2007 Recherche par code artiste
	var codart = formulaireRecherche.codart.value;
	
	//on recupere les attributs de manifestations cochees, on les met dans un tableau, puis on le en parametre
	var attributsSelect=new Array;
	var index=0;
	for (i=0; i<document.getElementsByName("selectionManifestationAttibut").length; i++) {
 	
    	if (document.getElementsByName("selectionManifestationAttibut")[i].checked)
    	{
      		attributsSelect[index]=document.getElementsByName("selectionManifestationAttibut")[i].value;
      		index++;
     	} 
   	}
   	
   	//on recupere les categories clients cochees, on les met dans un tableau, puis on le en parametre
   	var catCliSelect=new Array;
	index=0;
	for (i=0; i<document.getElementsByName("selectionCategorieClient").length; i++) {
 	
    	if (document.getElementsByName("selectionCategorieClient")[i].checked)
    	{
      		catCliSelect[index]=document.getElementsByName("selectionCategorieClient")[i].value;
      		index++;
     	} 
   	}
   	
   	var modesObtentionSelect=new Array;
	index=0;
	for (i=0; i<document.getElementsByName("modesObtentionSelect").length; i++) {
 	
    	if (document.getElementsByName("modesObtentionSelect")[i].checked)
    	{
      		modesObtentionSelect[index]=document.getElementsByName("modesObtentionSelect")[i].value;
      		index++;
     	} 
   	}

	// BSM 03/10/2007 Recherche depuis le service MEA Marketing
	var alias = formulaireRecherche.alias.value;
	var sponsor = formulaireRecherche.sponsor.value;
	var topsales = formulaireRecherche.topsales.value;
	
	var requete = '/recherche/rechercheAjax.do?';
	requete += 'typeRecherche=' + typeRecherche;
	requete += '&mesArtistes=' + mesArtistes;
	requete += '&mesSalles=' + mesSalles;
	requete += '&spectaclesArtistes=' + spectaclesArtistes;
	requete += '&theme=' + theme;
	requete += '&region=' + region;
	requete += '&ville=' + ville;
	requete += '&salle=' + salle;
	requete += '&dateFixeStr=' + dateFixeStr;
	requete += '&dateDebutStr=' + dateDebutStr;
	requete += '&dateFinStr=' + dateFinStr;
	requete += '&codcsa=' + codcsa;
	requete += '&codsal=' + codsal;
	requete += '&sortBy=' + sortBy;
	requete += '&codins=' + codins;
	requete += '&codgrp=' + codgrp;
	requete += '&attributsSelect='+attributsSelect;
	requete += '&catCliSelect='+catCliSelect;
	if (modesObtentionSelect != null && modesObtentionSelect.length > 0) {
		requete += '&modesObtentionSelect='+modesObtentionSelect;
	}
	requete += '&masquerComplet='+masquerComplet;
	if (classementInternautes!=null) {
		requete += '&classementInternautes='+classementInternautes;
	}
	requete += '&masquerSeanceNonReservable='+masquerSeanceNonReservable;
	requete += '&nbResultatsParPage=' + nbResultatsParPage;
    requete += '&noeudId=' + noeudId;
    if (reloadBlocFiltres == false) {
		requete += '&reloadBlocFiltres=' + reloadBlocFiltres;
	}
	requete += '&tousJour=-1&rechercher=Recherchez';
	requete += '&filtreSelect='+filtreSelect; 
	requete += '&ajax=true';
	requete += codmans;
	requete += '&codart=' + codart;
	requete += '&alias=' + alias;
	requete += '&sponsor=' + sponsor;
	if (topsales && topsales != '') {
		requete += '&topsales=' + topsales;
	}
	requete += filtresThemes;
	requete += filtresRegions;
	requete += '&filtrePaysPredefini=' + filtrePaysPredefini;
	requete += '&filtreThemePredefini=' + filtreThemePredefini;
	requete += '&filtreRegionPredefini=' + filtreRegionPredefini;
	if (formulaireRecherche.genres) {
		if (formulaireRecherche.genres.length) {
			for (i = 0; i < formulaireRecherche.genres.length; i++) {
				requete += '&genres=' + formulaireRecherche.genres[i].value;
			}
		}
		else if (formulaireRecherche.genres.value) {
			requete += '&genres=' + formulaireRecherche.genres.value;
		}
	}
	requete += '&masque=' + masque;
	requete += '&latitude=' + latitude;
	requete += '&longitude=' + longitude;
	requete += '&distance=' + distance;
	
	return (requete);
}


// Fonction appelee lors d'un changement de page dans la liste des resultats de recherche
function changePage(url) {
	request = url + "&ajax=true&reloadBlocFiltres=false";
	fadeidx = getFadeIdxByChild('listeResultatsAjax');
// RLR: Historique AJAX
	var searchData = new Array(fadeidx, request);
	dhtmlHistory.add("a"+(new Date()).getTime(), searchData);
	
	/* Stocker dans un cookie ce qu'on appelle. */
	cookieData = LireCookie("ajaxhistory");
	if (cookieData == null){
		cookieData = fadeidx + "|" + request + "|" +fadeidx + "|" + request;
	}else{
		tabData = cookieData.split("|");
		cookieData = tabData[2] + "|" + tabData[3] + "|" +fadeidx + "|" + request;
	}
	EcrireCookie("ajaxhistory", cookieData, null, '/');
// /RLR

	makeRequest(request, fadeidx,"alertContents('"+fadeidx+"'");
}


// Fonction traitant la reponse du serveur
function alertContents(fadeidx,httpRequest) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
			
			// Supprimer l'image d'attente
			unfade('blocFiltres');
			unfade(fadeidx);
			
			// Si une redirection est demandee (une seule manifestation retournee)
			var redirection = httpRequest.getResponseHeader("gourl");
			if (redirection != null && redirection != '') {
				// RLR: Historique AJAX
				// Indiquer dans le cookie que la 2e URL doit en fait etre la precedante.
				cookieData = LireCookie("ajaxhistory");
				if (cookieData != null){
					tabData = cookieData.split("|");
					EcrireCookie("ajaxhistory", tabData[0] + "|" + tabData[1] + "|" +tabData[2] + "|" + tabData[1], null, '/');
				}// Si on a pas de cookie, ce qui est tres louche, on ne fait rien.
				// /RLR
				document.location.href = redirection;
			}

			// Sinon, on affiche la liste des resultats
			else {

	            // Remplacer le resultat de la recherche par le nouveau obtenu par la requete ajax
	            var listeResultats = document.getElementById('listeResultatsAjax');
	           	if (listeResultats != null) {
	            	listeResultats.innerHTML = httpRequest.responseText;
	            }
				
				// Mise a jour du nombre de r?sultats par page
				var formNbResultats = document.forms['formNbResultats'];
				if (formNbResultats != null && formNbResultats.nbResultats != null) {
				
				    if (document.getElementById('rechercheFormPrincipal').nbResultatsParPage != null 
					    && document.getElementById('rechercheFormPrincipal').nbResultatsParPage.value != '') { 
						formNbResultats.nbResultats.value = document.getElementById('rechercheFormPrincipal').nbResultatsParPage.value;
					}
					else{
						formNbResultats.nbResultats.value = -1;
					}
				}
				// Mise a jour du bloc en tete
				updateBlocEnTete()
				
				// Mise a jour des blocs Filtres Existants
				updateBlocFiltresThemes();
				updateBlocFiltresRegions();
				
				// Mise a jour du bloc autres recherches
				updateBlocAutresRecherches();
				
				// Mise a jour du bloc Thematiques
				updateBlocThemes();
				
				// Mise a jour du bloc Regions
				updateBlocRegions();
			
				//oblige pour reloader le fil d ariane
				var j;
		 		for (j = 0; j < theFilArianeMap.keys.length; j++) {
		 		var key = theFilArianeMap.keys[j];
		 		var lefil = theFilArianeMap.get(key);
					lefil.show();
				}
			}
	    } 
        else {
            alert('RechercheAjax : Un probleme est survenu avec la requete.' + httpRequest.status);
        }
    }
}


// Mise a jour du bloc en tete Ajax
function updateBlocEnTete() {
	if (document.getElementById('blocEnTeteAjax') != null) {
		document.getElementById('blocEnTete').innerHTML = document.getElementById('blocEnTeteAjax').innerHTML;
	}
}


// Mise a jour du bloc filtres themes via Ajax
function updateBlocFiltresThemes() {
	if (document.getElementById('blocFiltresThemesAjax') != null) {
		document.getElementById('blocFiltresThemes').innerHTML = document.getElementById('blocFiltresThemesAjax').innerHTML;
	}
}

function updateBlocFiltresRegions() {
	if (document.getElementById('blocFiltresRegionsAjax') != null) {
		document.getElementById('blocFiltresRegions').innerHTML = document.getElementById('blocFiltresRegionsAjax').innerHTML;
	}
}

// Mise a jour du bloc autres recherches via Ajax
function updateBlocAutresRecherches() {
	if (document.getElementById('blocAutresRecherchesAjax') != null) {
		document.getElementById('blocAutresRecherches').innerHTML = document.getElementById('blocAutresRecherchesAjax').innerHTML;
	}
}

// Mise a jour du bloc themes via Ajax
function updateBlocThemes() {
	if (document.getElementById('blocThemeAjax') != null) {
		document.getElementById('blocThemes').innerHTML = document.getElementById('blocThemeAjax').innerHTML;
	}
}

// Mise a jour du bloc regions via Ajax
function updateBlocRegions() {
	if (document.getElementById('blocRegionAjax') != null) {
		document.getElementById('blocRegions').innerHTML = document.getElementById('blocRegionAjax').innerHTML;
	}
}



function removeFiltreTheme(themeSupprime) {
	var filArianeForm = document.getElementById('FilArianeForm');
	// Filtres existants
	var filtresThemes = '';
	if (filArianeForm != null && filArianeForm.filtresThemes != null) {
		var i = 0;
		var filtreThemePere = '';
		var filtreSupprimeTrouve = false;
		while (filtreSupprimeTrouve != true && filArianeForm.filtresThemes[i] != null) {
			if (filArianeForm.filtresThemes[i].value != themeSupprime) {
				filtreThemePere = filArianeForm.filtresThemes[i].value
			}
			// On tombe sur le filtre a supprimer, on s'arrete
			else {
				filtreSupprimeTrouve = true;
			}
			i = i + 1;
		}
	}

	// mise a jour du bon filtre
	filArianeForm.theme.value = filtreThemePere;
}


function removeFiltreRegion(regionSupprimee) {
	var filArianeForm = document.getElementById('FilArianeForm');
	// Filtres existants
	var filtresRegions = '';
	if (filArianeForm != null && filArianeForm.filtresRegions != null) {
		var i = 0;
		var filtreRegionPere = '';
		var filtreSupprimeTrouve = false;
		while (filtreSupprimeTrouve != true && filArianeForm.filtresRegions[i] != null) {
			if (filArianeForm.filtresRegions[i].value != regionSupprimee) {
				filtreRegionPere = filArianeForm.filtresRegions[i].value
			}
			// On tombe sur le filtre a supprimer, on s'arrete
			else {
				filtreSupprimeTrouve = true;
			}
			i = i + 1;
		}
	}

	// mise a jour du bon filtre
	filArianeForm.region.value = filtreRegionPere;
}
