/**************************************************************************************
*
* Code JS pour le page de résultats
*
* Attention !! 
* 
* 
* 
*
***************************************************************************************/
var TableauJSFiltres = new Array; //Tableau des filtres
var TableauJSFeatures = new Array; //Tableau des features
var TableauJSPays = new Array; // Tableau des noms des pays
var TableauJSChaines = new Array; // Tableau des ids des chaines
var TableauJSBouquets = new Array; // Tableau des ids des bouquets
var TableauJSIdsOffres = new Array; // Tableau des ids des offres //Ce tableau sert à mémoriser les offres qui correspondent aux filtres courants et à l'éligibilité
var critere_tri_offres = "prixAnnuel"; // Critère de tri des offres
var sens_tri_offres = "asc"; // Sens de tri des offres
var verifEligibilite = 0;


/**************************************************************************************
*
*
* fonctions pour tous les blocs
*
*
*
*
***************************************************************************************/
function updaterBlocsPageResultat(){

	queryString = construireQueryStringSansTri();
	
	// Pour la liste des filtres
	new Ajax.Updater('result-content', '/ajax/numerique/all-resultats.php?'+queryString, {
		method: 'get',
		onComplete: function() {
			//On remet les handlers d'événements en place
			$$('#accordion-2 *[type=\"checkbox\"]').invoke('observe', 'click', ajouterFiltreSelectionne);
			$$('#selected-criteria a').invoke('observe', 'click', supprimerAttente);
			$$('a[rel="lightbox"]').invoke('observe', 'click', observerElement);
			$$('a[rel="lightbox"] > img').invoke('observe', 'click', observerElementImage);
			new Tabs('tabs');
			var Accordion = new accordion('accordion-2', { useEffects: true, sectionIndex: 0, singleActive:false });		
			$('face-a-face').observe('click', function (evt){
				evt.stop();
				allerVersFaceAFace();
			});
			
			updaterBlocVerifEligibilite();
		}
	});

/*	// Pour la liste des filtres
	new Ajax.Updater('user-selection', '/ajax/numerique/modifier-bloc-filtres.php?'+queryString, {
		method: 'get',
		onComplete: function() {
			//On remet les handlers d'événements en place
			$$('#accordion-2 *[type=\"checkbox\"]').invoke('observe', 'click', ajouterFiltreSelectionne);
			$$('#selected-criteria a').invoke('observe', 'click', supprimerAttente);
			$$('a[rel="lightbox"]').invoke('observe', 'click', observerElement);
			$$('a[rel="lightbox"] > img').invoke('observe', 'click', observerElementImage);
			new Tabs('tabs');
			var Accordion = new accordion('accordion-2', { useEffects: true, sectionIndex: 0, singleActive:false });		
		}
	});	
	
	// Pour le tableau des offres
	new Ajax.Updater('offers-selection', '/ajax/numerique/modifier-bloc-resultats.php?'+queryString, {
		method: 'get',
		parameters : { ct : critere_tri_offres, st : sens_tri_offres},
		onCreate: function() {
			$('offers-selection').insert({top : '<div id="loading" style="position:absolute;top:150px;left:48%;"><img src="/images/charte-v2/spinner.gif" /></div>'});
			new Effect.Fade('offers-selection', {duration: 0.5,from: 1.0,to: 0.4});
		},
		onComplete: function() {
			new Effect.Appear('offers-selection', {duration: 0.5,from: 0.4,to: 1.0});
			$('face-a-face').observe('click', function (evt){
				evt.stop();
				allerVersFaceAFace();
			});
			$('loading').remove();
		}
	});
	*/
}


function supprimerAttente(event){

	//On récupère l'élément
	var element = event.element();
	var temp = element.identify().split('-');
	var attenteType = temp[0];
	var attenteId = temp[1];

	switch(attenteType){
		case "filter":
			supprimerFiltreSelectionne(attenteId);break;
		case "pays":
			{supprimerPaysSelectionne(attenteId);break;}
		case "bouquet":
			supprimerBouquetSelectionne(attenteId);break;
		case "chaine":
			supprimerChaineSelectionnee(attenteId);break;
	}
}


function supprimerFiltreSelectionne(filtreId){

	// On retire du tableau le filtre supprimé
	var tailleTableau = TableauJSFiltres.length;	
	var i = 0;
	
	while ( (i < tailleTableau) && (TableauJSFiltres[i] != filtreId) ) {i++;}
	
	enleverElementTableauFiltres(i); // On enlève le filtre
	
	updaterBlocsPageResultat(); //On recharge

}

function ajouterFiltreSelectionne(event){

	//On récupère l'élément
	var element = event.element();
	var temp = element.identify().split('-');
	var filtreId = temp[1];

	/* On ajoute le filtre au tableau des filtres sélectionnés */
	TableauJSFiltres[TableauJSFiltres.length] = filtreId;

	updaterBlocsPageResultat();
}


function supprimerPaysSelectionne(paysId){

	/* On retire du tableau le pays supprimé */
	var tailleTableau = TableauJSPays.length;
	var i = 0;
	
	while ( (i < tailleTableau) && (TableauJSPays[i] != paysId) ) {i++;}
	
	enleverElementTableauPays(i); // On enlève le pays

	updaterBlocsPageResultat();

}


function ajouterPaysSelectionne(event){
	
	var element = event.element();

	// On ajoute le pays au tableau des pays sélectionnés
	var tailleTableau = TableauJSPays.length;
	TableauJSPays[tailleTableau] = element.identify();
	hideLightbox();
	updaterBlocsPageResultat();
	
}
 


function ajouterBouquetSelectionne(event){

	var element = event.element();

	// On ajoute le bouquet au tableau des bouquets sélectionnés
	var tailleTableau = TableauJSBouquets.length;
	TableauJSBouquets[tailleTableau] = element.identify();
	hideLightbox();
	updaterBlocsPageResultat();

}


function supprimerBouquetSelectionne(bouquetId){

	/* On ajoute le bouquet au tableau des bouquets sélectionnés */
	var tailleTableau = TableauJSBouquets.length;
	var i = 0;
	
	while ( (i < tailleTableau) && (TableauJSBouquets[i] != bouquetId) ) {i++;}
	
	enleverElementTableauBouquets(i);
	
	updaterBlocsPageResultat();

}



/************************* Fonctions pour les chaines *************************************/

function ajouterChaineSelectionnee(event){

	var element = event.element();

	// On ajoute le bouquet au tableau des bouquets sélectionnés
	var tailleTableau = TableauJSChaines.length;
	TableauJSChaines[tailleTableau] = element.identify();
	hideLightbox();
	updaterBlocsPageResultat();

}


function supprimerChaineSelectionnee(chaineId){


	// On ajoute le bouquet au tableau des bouquets sélectionnés 
	var tailleTableau = TableauJSChaines.length;
	var i = 0;
	
	while ( (i < tailleTableau) && (TableauJSChaines[i] != chaineId) ) {i++;}
	
	enleverElementTableauChaines(i);
	
	updaterBlocsPageResultat();

}

/**************************************************************************************
*
*
* fonctions pour le bloc de résultat
*
*
*
*
***************************************************************************************/
function recupererTableauCheckboxCochees(){

	var tableauCheckboxesCochees = [];

	$$('#offers-selection *[class="checkbox"]').each(
		function (element){
		
			if (element.checked == true){
			
				var temp = element.identify().split('-');
				var offreId = temp[1];
			
				tableauCheckboxesCochees.push(offreId);
			}
		}
	)

	return tableauCheckboxesCochees;
}


//Fonction qui envoie vers la page de face à face avec les ids des offres sélectionnées, ainsi que les filtres sélectionnés, dans la querystring
function allerVersFaceAFace(event){

	var tableauCheckboxesCochees = new Array;
	tableauCheckboxesCochees = recupererTableauCheckboxCochees();

	if (tableauCheckboxesCochees.length < 1){ //S'il n'y a pas de checkbox cochées

		alert("Veuillez sélectionner au moins une offre à comparer");
	}
	else if (tableauCheckboxesCochees.length > 3){
	
		alert("Veuillez sélectionner au maximum 3 offres à comparer \n");
	}
	else if (tableauCheckboxesCochees.length == 1){ //S'il n'y a qu'une offre sélectionnée, on envoie sur la page détails
		window.location.href = "/numerique/details-offre.php?o="+tableauCheckboxesCochees[0];
	}
	else{ //s'il y a le bon nombre d'offres cochées
		window.location.href = "/numerique/face-a-face.php?"+construireQueryStringFaceAFace(tableauCheckboxesCochees);
	}
	
}
	
function trierVariantes(critere){

	//si le critere sélectionné est déjà le critère de tri...
	if (critere_tri_offres === critere){
	
		//On modifie le sens de tri
		if (sens_tri_offres === "asc"){
			sens_tri_offres = "desc";
		}else{
			sens_tri_offres = "asc";
		}
	}else{
		//On modifie le critère et on règle le sens de tri sur "ascendant"
		critere_tri_offres = critere;
		sens_tri_offres = "asc";
	}
	
	//On détermine la partie de la query string qui concerne les filtres
	var queryString = construireQueryStringSansTri();
	
	//On détermine la partie de la query string qui concerne le tri
	if (queryString !== ""){ queryString+= "&"; }
	queryString+="ct="+critere_tri_offres+"&st="+sens_tri_offres;
	
	//On recharge le bloc de résultats
	new Ajax.Updater("blocResultats", "/ajax/numerique/modifier-bloc-resultats.php?"+queryString, {
		method: 'get'
	});
}


function impression(){


	//On détermine la partie de la query string qui concerne les filtres
	var tailleTableau = TableauJSFiltres.length;
	var queryString = "";
	
	if (tailleTableau > 2){alert("taille tableau sup a 2")}

	for (j = 0; j < tailleTableau; j++){
	
		if (j > 0) {queryString+= "&";}
		queryString+="f"+(j+1)+"="+TableauJSFiltres[j];
	}
	
	//On détermine la partie de la query string qui concerne le tri
	if (queryString !== ""){ queryString+= "&"; }
	queryString+="ct="+critere_tri_offres+"&st="+sens_tri_offres;
	
	//On ouvre une nouvelle page d'impression
	window.open("/numerique/impression-resultats.php?"+queryString, "Impression des resultats","")


}


function construireQueryStringSansTri(){
	/* On construit la querystring à passer aux scripts php, à partir des tableaux */
	var queryString = "";
	
	queryString +="f[]="+TableauJSFiltres.join('&f[]=');
	queryString +="&fe[]="+TableauJSFeatures.join(',');
	queryString +="&p[]="+TableauJSPays.join(',');
	queryString +="&c[]="+TableauJSChaines.join(',');
	queryString +="&b[]="+TableauJSBouquets.join(',');

	return queryString;
}


function construireQueryStringFaceAFace(tableau_offres_selectionnees){
	// On construit la querystring à passer aux scripts php, à partir des tableaux
	var queryString = "";

	queryString +="f[]="+TableauJSFiltres.join('&f[]=');
	queryString +="&fe[]="+TableauJSFeatures.join('&fe[]=');
	queryString +="&o[]="+tableau_offres_selectionnees.join('&o[]=');
	
	return queryString;
}


function enleverElementTableauFiltres(indice_element){

	taille_tableau = TableauJSFiltres.length;	
	for (i = indice_element; i < taille_tableau - 1; i++){ TableauJSFiltres[i] = TableauJSFiltres[i+1];} //On décale tous les éléments à gauche à partir de l'indice de celui qu'on veut virer

	TableauJSFiltres.pop(); //On vire le dernier (la taille du tableau est mise à jour automatiquement)
}



function enleverElementTableauPays(indice_element){

	taille_tableau = TableauJSPays.length;
	for (i = indice_element; i < taille_tableau - 1; i++){TableauJSPays[i] = TableauJSPays[i+1];}
	
	TableauJSPays.pop();
}



function enleverElementTableauBouquets(indice_element){

	taille_tableau = TableauJSBouquets.length;
	for (i = indice_element; i < taille_tableau - 1; i++){TableauJSBouquets[i] = TableauJSBouquets[i+1];}

	TableauJSBouquets.pop();
}



function enleverElementTableauChaines(indice_element){

	taille_tableau = TableauJSChaines.length;
	for (i = indice_element; i < taille_tableau - 1; i++){TableauJSChaines[i] = TableauJSChaines[i+1];}

	TableauJSChaines.pop();
}

function showFormEligibilite(){
	$('ok').hide();
	$('nt').show();		
}


function updaterBlocVerifEligibilite(){

	if (verifEligibilite == 0){
		$('ok').hide();
		$('nt').show();		
	}else{	
		$('ok').show();
		$('nt').hide();
	}
}