/**
 * 
 */
var event_slide_position = 1;
var target;
var pageActuelle;
var tempRel = 0;



//**************************************************************************************************
//										FONCTIONS GENERIQUES
//**************************************************************************************************
function getXMLHttpRequest() {
	var xhr = null;
	
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
	
	return xhr;
}
//TODO : Abstraction
function request(callback, target) {
	var xhr = getXMLHttpRequest();
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			callback(xhr.responseText);
		}
	};
	
	xhr.open("GET", target, true);
	xhr.send(null);
}
/**
 * Fonction Ã  appeler dans chaque page pour connaitre la page courante (pour fonctionnements spÃ©cifique)
 * @param location
 * @type mutateur(setter)
 */
function setPageActuelle(location){
	pageActuelle = location;
}
/**
 * Fonction Ã  appeler pour connaitre la page actuelle
 * @type accesseur(getter)
 */
function getPageActuelle(){
	return pageActuelle;
}

function setTempRel(Rel)
{
	tempRel = Rel;
}
//**************************************************************************************************
//										FONCTIONS LANGUES
//**************************************************************************************************
//DÃ©clencheur de la suite de fonction
 function setLang(lang){
	 // Send Ajax request to backend.php, with src set as "img" in the POST data
	 request(applyLang, "includes/backend?lang="+lang);
	 }
 
 function applyLang(oData){
	 // Send Ajax request to backend.php, with src set as "img" in the POST data
	 $('body').append(oData);
	 alert(oData);

	 }
//**************************************************************************************************
//											SLIDER DES PAGES
//**************************************************************************************************
 //Fonction permettant d'initialiser le slider
 function iSlide_init(){
	 var slideWidth = 680;
	 var slides = $('.event_slide');
	 var numberOfSlides = slides.length;
	 
	 // Supprime la scrollbar en JS
	 $('#event_container').css('overflow', 'hidden');

	 //on met tous les slides en float:left pour qu'il s'affichent de maniÃ¨re horizontale
	 slides.wrapAll('<div id="slideInner"></div>').css({'float' : 'left','width' : slideWidth, 'height' : 200});
	 // La longueur de #slideInner Ã©quivaut Ã  la somme de la longueur de tous les slides
	 $('#slideInner').css('width', slideWidth * numberOfSlides);	
 }
 //Fonction permettant la rotation des slides
 function triggerRotation(mode)
 {
	 if(mode == 0){
		// Determine une nouvelle position
		 if(event_slide_position == 2){  
			 $('#slide2').css('z-index', 50);
			 $('#slide1').css('z-index', 30);
			 $('#slide2').css('left', 0);
			 $('#slide2').animate({
				 'left' : -680
				 }, 300, function(){ $('#slide1').css('left', 680);});            
		 }
		 else
		 {
			 $('#slide2').css('z-index', 30);
			 $('#slide1').css('z-index', 50);
			 $('#slide1').animate({
			            'left' : 0
			            }, 300, function(){$('#slide2').css('left', 680);});            
		 }	 
	 }else{
		// Determine une nouvelle position
		 if(event_slide_position == 2){  
			 $('#slide2').css('z-index', 50);
			 $('#slide1').css('z-index', 30);
			 $('#slide2').css('left', -1316);
			 $('#slide2').animate({
				 'left' : -680
				 }, 300, function(){ $('#slide1').css('left', -680);});            
		 }
		 else
		 {
			 $('#slide2').css('z-index', 30);
			 $('#slide1').css('z-index', 50);
			 $('#slide1').animate({
			            'left' : 0
			            }, 300, function(){$('#slide2').css('left', 0);});            
		 }	 
	 }
 }
//**************************************************************************************************
 //**************************************************************************************************
 //		FONCTION PERMETTANT LA RECUPERATION DES TITRES D'EVENEMENT AINSI QUE LEURS IMAGES
 //**************************************************************************************************
 //DÃ©clencheur de la suite de fonction
 function event_getTitles(oTarget){
	 target = oTarget;
	 request(event_title, "pages/" + target + ".php?mode=titles");
 }
 
 //Fonction mettant en place les titres sur le selecteur latÃ©ral ainsi que le systÃ¨me de slides glissant.
 function event_title(oData) {
	 $("#event_slidesControler").append(oData);
	 if(event_slide_position == 1){  
		 event_slide_position = 2;
	 }else{
		 event_slide_position = 1;
	 }
	//charge en mémoire l'image par defaut
	 request(event_picture, "pages/"+target+".php?mode=pictures&opt=" + $('#first_event_control').attr('rel'));
	//On dÃ©clenche la rotation
	 triggerRotation(1);
	 switch(getPageActuelle()){
	 	case "logiciel" :
			 //On affiche la page ABVent
			 request(special_event_body, "pages/"+target+".php?mode=body&opt=" + $('#first_event_control').attr('rel'));
			 request(special_event_downloadLink, "pages/"+target+".php?mode=download&opt=" + $('#first_event_control').attr('rel'));
			 break;
		 
	 	case "evenement" :
	 		//Charge maintenant le contenu de la page par defaut
			 request(event_body, "pages/"+target+".php?mode=body&opt=" + $('#first_event_control').attr('rel'));
			 //Charge les photos en relation avec la page par dÃ©faut
			 request(event_photo, "pages/"+target+".php?mode=photos&opt=" + $('#first_event_control').attr('rel'));
			 //Charge les liens d'inscription
			 request(event_registerLink, "pages/"+target+".php?mode=register&opt=" + $('#first_event_control').attr('rel'));
	 		break;
	 		
	 	default :
			 //Charge maintenant le contenu de la page par defaut
			 request(event_body, "pages/"+target+".php?mode=body&opt=" + $('#first_event_control').attr('rel'));
			 //Charge les photos en relation avec la page par dÃ©faut
			 request(event_photo, "pages/"+target+".php?mode=photos&opt=" + $('#first_event_control').attr('rel'));
	 }
	 // crÃ©e un Ã©couteur pour l'Ã©vÃ¨nement de type clic sur les div qui ont la classe .event_control
	 $('.event_control').click(function(){
		 $('#first_event_control').css("background", "rgba(20, 102, 255, 0)").css("color", "black");
		 $('.event_control').css("background", "rgba(20, 102, 255, 0)").css("color", "black");
		 $(this).css("background", "rgba(20, 102, 255, 0.50)").css("color", "white");
		 //charge en mÃ©moire l'image en relation
		 request(event_picture, "pages/"+target+".php?mode=pictures&opt=" + $(this).attr('rel'));
		 //On dÃ©clenche la rotation
		 triggerRotation(1);
		 
		 var id = $(this).attr('rel');
		 $('select[name="offres"] option').attr('selected', false);
		 $('select[name="offres"] #option'+id).attr('selected', true);
		 
		 if($(this).hasClass("special_page")){
			 //Charge maintenant le contenu de la page
			 request(special_event_body, "pages/"+target+".php?mode=body&opt=" + $(this).attr('rel'));
			 request(special_event_downloadLink, "pages/"+target+".php?mode=download&opt=" + $(this).attr('rel'));
		 }/*else if($(this).hasClass("normal_page")){
			 //Charge maintenant le contenu de la page
			 request(event_body, "pages/"+target+".php?mode=offersBody&opt=" + $(this).attr('rel'));
			 //Enfin, charge les photos en relation
			 request(event_photo, "pages/"+target+".php?mode=offersPictures&opt=" + $(this).attr('rel'));
		 }*/else{
			 //Charge maintenant le contenu de la page
			 request(event_body, "pages/"+target+".php?mode=body&opt=" + $(this).attr('rel'));
			 //Enfin, charge les photos en relation
			 request(event_photo, "pages/"+target+".php?mode=photos&opt=" + $(this).attr('rel'));
		 }
		 
		 $('.event_control_offers').click(function(){

			 //charge en mÃ©moire l'image en relation
			 request(event_picture, "pages/"+target+".php?mode=offersPictures&opt=" + $(this).attr('rel'));
			 //On dÃ©clenche la rotation
			 triggerRotation(1);
			 //Charge maintenant le contenu de la page
			 request(event_body, "pages/"+target+".php?mode=offersBody&opt=" + $(this).attr('rel'));
			 //Enfin, charge les photos en relation
			 request(event_photo, "pages/"+target+".php?mode=offersPhotos&opt=" + $(this).attr('rel'));
		});
		 
		 //Lien pour page evenement
		 if(getPageActuelle()=="evenement"){
			//Charge les liens d'inscription
			 request(event_registerLink, "pages/"+target+".php?mode=register&opt=" + $(this).attr('rel'));
		 }
		 
		 //Empeche le navigateur de dÃ©clencher la lecture de l'adresse liens 'href' (qui provoque alors une erreur) 
		 return false;
	 });
	 
		if(tempRel != -1)
		{	//On ouvre la page avec l'id rel passé en paramètre
			$(".event_control special_page[rel='" + tempRel + "']").click();
			$(".event_control[rel='" + tempRel + "']").click();
		}
	 /*if(getPageActuelle() == "logiciel"){		 
		 //On lance le cross domain
		 //crossDomain();
	 }*/
 }
 
 //Fonction appelant la page d'image en fonction du titre.
 function event_picture(oData) {
	
	 if(event_slide_position == 2){ 
	 	$('#slide2').html(oData);
	 }else{
		 $('#slide1').html(oData);
	 }
	 $('#primary_link').css({color : "white", background : "rgba(85, 85, 85, 0.8)"});
	$('.event_slide_subLinks a').click(function(){
		$('.event_slide_subLinks a').css({background : "rgba(85, 85, 85, 0)"});
 		//Charge maintenant le contenu de la page dans une Iframe
		request(special_event_body, "pages/"+target+".php?mode=subLinks_body&opt=" + $(this).attr('href'));
		$(this).css({color : "white", background : "rgba(85, 85, 85, 0.8)"});
		return false;
 	});
 }
 
 //Fonction appelant le contenu d'un evenement en fonction du titre
 function event_body(oData) {
	 $("#right_text").html(oData);
	 $("#logiciel_special_area").hide();
	 $("#right_text").show();
 }
 function special_event_body(oData){
	 $("#right_text").html('');
	 $("#right_text").hide();
	 $("#logiciel_special_area").html(oData);
	 $("#logiciel_special_area").show()
 }
 function special_event_downloadLink(oData){
	 $("#btn_downloadLink").attr('href', oData);
	 $("#btn_downloadLink").click(function(){
		 request(special_event_body, "pages/"+target+".php?mode=downloadPage&opt=" + $(this).attr('href'));
		 return false;
	 });
 }
 function event_registerLink(oData){
	 $(".register_link").html(oData);
 }
//Fonction appelant les photos d'un evenement en fonction du titre
 function event_photo(oData) {
	 $(".left_photos").html(oData);
	 //On applique l'effet fancybox aux photos
	  $(".right_photos a").fancybox({
			'overlayOpacity'	:	0.7,
			'overlayColor'		:	'#a3a3a3' });
 }
 //TODO Cross domain
	 function crossDomain(){
		$('.event_control').click(function(){
			doAjax($(this).attr('href'));
			return false;
			});
	 }
		function doAjax(url){
			var container = $("#right_text");
			// if it is an external URI
			if(url.match('^http')){
			//On dÃ©finit l'encodage des caractÃ¨res
			jQuery.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});
			// On fait appel au YQL (Yahoo Query Language)
			$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
			"q=select%20*%20from%20html%20where%20url%3D%22"+
			encodeURIComponent(url)+
			"%22&format=xml'&callback=?",
			// this function gets the data from the successful
			// JSON-P call
			function(data){
				// if there is data, filter it and render it out
				if(data.results[0]){
					//Premiere procedure de nettoyage du texte
					var data = filterData(data.results[0]);
					container.html(data);
					//2eme processus de nettoyage du texte reÃ§u. (Est diffÃ©rent pour chaque produit...)
					cleanArchicadData(container);
					// otherwise tell the world that something went wrong
				} else {
					var errormsg = '<p>Error: could not load the page.</p>';
					container.html(errormsg);
				}
				}
			);
			// if it is not an external URI, use Ajax load()
			} else {
				$('#target').load(url);
			}
		}
		// filter out some nasties
		function filterData(data){
			//data = data.replaceAll(/<tr>/gi, '');	
			filteredData = data.substring(data.search(/<div id="BIM" style="display:none">/gi), data.search(/<div class="piedpage">/gi));
			//data = data.replace(/[r|n]+/g,'');
			//data = data.replace(/<--[Ss]*?-->/g,'');
			//data = data.replace(/<noscript[^>]*>[Ss]*?</noscript>/g,'');
			//data = data.replace(/<script[^>]*>[Ss]*?</script>/g,'');
			//data = data.replace(/<script.*/>/,'');
			return filteredData;
		}
		function cleanArchicadData(container){
			var elementList = new Array();
			var i = 0;
			var elements = container.children();
			var introduction = '';
			introduction = elements.eq(1).html() + elements.eq(3).html()
			$(".listMenuDroite").detach();
			$(".titre_table").each(function(){
				elementList[i] = new Array();
				elementList[i][0] = $(this).html();
				elementList[i][1] = $(this).next("p").html();
				$(this).next("p").detach();
				$(this).detach();
				i++;
			});
			i=0;
			container.html('');
			container.append(introduction);
			$("table, tr, td").detach();
			for(i=0; i<elementList.length; i++){
				container.append("<div class='produit_paragraphe'>" + elementList[i][0] + elementList[i][1] + "</div>");
			}
		}
//**************************************************************************************************
//**************************************************************************************************
//		FONCTION PERMETTANT L'AJOUT DES OFFRES AUX LOGICIEL
//**************************************************************************************************
//DÃ©clencheur de la suite de fonction
 function event_getTitles_offres(oTarget){
	 var id_timeout;
	 target = oTarget;
	 id_timeout = setTimeout('request(event_setTitles_offres, "pages/" + target + ".php?mode=offersTitles")', 500);
 }
 
 //Fonction mettant en place les titres sur le selecteur latÃ©ral ainsi que le systÃ¨me de slides glissant.
 function event_setTitles_offres(oData) {
	 $("#event_slidesControler").append(oData);
	 // crÃ©e un Ã©couteur pour l'Ã©vÃ¨nement de type clic sur les div qui ont la classe .event_control
	 $('.event_control_offers').click(function(){
		 //charge en mÃ©moire l'image en relation
		 request(event_picture, "pages/"+target+".php?mode=offersPictures&opt=" + $(this).attr('rel'));
		 //On dÃ©clenche la rotation
		 triggerRotation(1);
		 //Charge maintenant le contenu de la page
		 request(event_body, "pages/"+target+".php?mode=offersBody&opt=" + $(this).attr('rel'));
		 //Enfin, charge les photos en relation
		 request(event_photo, "pages/"+target+".php?mode=offersPhotos&opt=" + $(this).attr('rel'));
	 });
 }
 
//**************************************************************************************************
//**************************************************************************************************
//	FONCTION PERMETTANT LE FONCTIONNEMENT DU SLIDER SUR LA PAGE ASSISTANCE ET ACTUALITE
//**************************************************************************************************
//DÃ©clencheur de la suite de fonction
 function event_getTitles_assist(oTarget){
	 target = oTarget;
	 try{
		$.ajax({
			   type: "GET",
			   url: "pages/" + target + ".php",
			   data: "mode=banniere",
			   success: function(msg){
				   if(event_slide_position == 2){ 
					 	$('#slide2').html(msg);
				 }else{
					 $('#slide1').html(msg);
				 }
				//On dÃ©clenche la rotation
				 triggerRotation(1);
			   }
			 });
	 }catch(e){alert('Erreur lors de la rÃ©cupÃ©ration des catÃ©gories');}
 }
//**************************************************************************************************
//		FONCTION PERMETTANT LA RECUPERATION DES NEWS
//**************************************************************************************************
//DÃ©clencheur de la suite de fonction
 function event_getNews(oTarget){
	 target = oTarget;
	 request(event_news, "pages/" + target + ".php?mode=news");
 }
 //Fonction mettant en place les titres sur le selecteur latÃ©ral ainsi que le systÃ¨me de slides glissant.
 function event_news(oData) {
	 $("#actualite_middle #right_text").html("<div id='title_right_text'>News<span id='tout_deployer'>tout dÃ©plier</span></div>" + oData);
	 showHideAccordeon(); //On met en place les action du bouton tout dÃ©plier/tout replier
	 setAccordeon();
	 //On ouvre par dÃ©faut le premier Ã©lÃ©ment de type bouton.
	 $("#right_text :first-child").next().click();
 }
 //Fonction permettant de rÃ©cupÃ©rer la selection des catÃ©gories
 function event_getCat(oTarget){
	 target = oTarget;
	 request(event_cat, "pages/" + target + ".php?mode=categories");
 }
 function event_cat(oData) {
	 $("#actualite_middle #left_text").append(oData);
	 //Les 15 dernieres news sont selectionnÃ©es de base
	 $("#actualite_accueil").css("background", "rgba(20, 102, 255, 0.50)").css("color", "white");
	 //Mise en place de la gestion du clic
	 $(".categorie_link").click(function(){
			try{
				$(".categorie_link").css("background", "rgba(255, 255, 255, 1)").css("color", "black");
				$("#actualite_accueil").css("background", "rgba(255, 255, 255, 1)").css("color", "black");
				$("select[name='news_recherche']").css("background", "rgba(255, 255, 255, 1)").css("color", "black");
				$(this).css("background", "rgba(20, 102, 255, 0.50)").css("color", "white");
				event_getNewsOfCat("actualite/actualite_finder", $(this).html());
			}
			catch(e){alert('Erreur lors de la rÃ©cupÃ©ration des catÃ©gories.');}
	 });
	 $("#actualite_accueil").click(function(){
			$(this).css("background", "rgba(20, 102, 255, 0.50)").css("color", "white");
			$(".categorie_link").css("background", "rgba(255, 255, 255, 1)").css("color", "black");
			$("select[name='news_recherche']").css("background", "rgba(255, 255, 255, 1)").css("color", "black");
			//On rÃ©cupÃ¨re les 15 dernieres nouvelles
			try{
			  	event_getNews("actualite/actualite_finder");
			}
			catch(e){alert('Erreur lors de la rÃ©cupÃ©ration des news.');}
	 });
 }
//Fonction permettant de rÃ©cupÃ©rer les news par rapport Ã  la catÃ©gories
 function event_getNewsOfCat(oTarget, nameCat){
	 target = oTarget;
	 cat = nameCat
	 request(event_news, "pages/" + target + ".php?mode=newsOfCat&opt=" + cat);
 }
 //Accordeon Jquery
 //Fonction mettant en place l'accordeon
 function setAccordeon(){
	 //Cache tous les contenu au dÃ©marrage du script
	 $(".news_content").hide(); 
	 //Lors du click sur un bouton
	 $(".news_button").click(function(){
		 //Si le contenu suivant le bouton est cachÃ©, on l'affiche
		if($(this).next().is(':hidden') == true) {
			$(".news_content").hide("fast"); 
			//Modifications graphique
			$(".news_button").css("background", "rgba(200, 200, 200, 1)"); 
			$(".news_button").css("color", "black"); 
			$(this).css("background", "rgba(20, 102, 255, 0.50)");
			$(this).css("color", "white");
			
			$(this).next().show("fast"); 
			//Sinon, on le cache (on referme le contenu)
		}else{
			$(this).next().hide("fast"); 
			$(".news_button").css("background", "rgba(200, 200, 200, 1)"); 
			$(".news_button").css("color", "black"); 
		}
	 });
 }
 //Fonction manipulant le bouton de dÃ©pli, repli
 function showHideAccordeon(){
	 var buttonState = 0;
	//Lors du clic sur 'tout dÃ©ployer', on ouvre tous les accordÃ©ons
	 $("#tout_deployer").click(function(){
		 //Si l'accordeon est en position fermÃ© :
		 if(buttonState ==0){
			 buttonState = 1;
			 $("#tout_deployer").html("tout replier");
			 $(".news_content").show("fast");
		 }else{
			 buttonState = 0;
			 $("#tout_deployer").html("tout dÃ©plier");
			 $(".news_content").hide("fast");
		 }
	 }); 
 }
//**************************************************************************************************
 //**************************************************************************************************
 //		FONCTION PERMETTANT LA RECUPERATION DE L'ASSISTANCE
 //**************************************************************************************************
//Fonction permettant de rÃ©cupÃ©rer la selection des catÃ©gories
 function event_getAssistanceCat(oTarget){
	 target = oTarget;
	 //request(event_cat, "pages/" + target + ".php?mode=categories");
	 try{
		$.ajax({
			   type: "GET",
			   url: "pages/" + target + ".php",
			   data: "mode=categories",
			   success: function(msg){
				   //Ajoute les catÃ©gories au menu de gauche
				   $("#actualite_middle #left_text").append(msg);
				   //Met en place les Ã©venements relatif a ces catÃ©gories.
				   $(".categorie_link").click(function(){
					   event_getAssistanceContent(target, $(this).html(), $(this).attr("id"));
					   $(".categorie_link").css("background", "#FFF").css("color", "black");
					   $(this).css("background", "rgba(20, 102, 255, 0.50)").css("color", "white");
				   });
				   $("#left_text :first-child").next().click();
			   }
			 });
	 }catch(e){alert('Erreur lors de la rÃ©cupÃ©ration des catÃ©gories');}
 }
//Fonction permettant de rÃ©cupÃ©rer l'image et le texte de la banniÃ¨re
 function event_getAssistanceTitle(oTarget){
	 target = oTarget;
	 try{
		$.ajax({
			   type: "GET",
			   url: "pages/" + target + ".php",
			   data: "mode=banniere",
			   success: function(msg){
				   if(event_slide_position == 2){ 
					 	$('#slide2').html(msg);
				 }else{
					 $('#slide1').html(msg);
				 }
				//On dÃ©clenche la rotation
				 triggerRotation(1);
			   }
			 });
	 }catch(e){alert('Erreur lors de la rÃ©cupÃ©ration des catÃ©gories');}
 }
 function event_getAssistanceContent(oTarget, mode, typeData){
	 var target = oTarget;
	 var data = mode;
	 var type = typeData
	 try{
			$.ajax({
				   type: "GET",
				   url: "pages/" + target + ".php",
				   data: "mode=categorieContent&opt="+data+"&type="+type,
				   success: function(msg){
					   $("#actualite_middle #right_text").html("<div id='title_right_text'>Assistance<span id='tout_deployer'>tout dÃ©plier</span></div>");
					   //Ajoute les catÃ©gories au menu de gauche
					   $("#actualite_middle #right_text").append(msg);
					   setAccordeon();
					   showHideAccordeon();
					   //On ouvre par defaut le premier Ã©lement
					   $("#right_text :first-child").next().click();
					   
				   }
				 });
		 }catch(e){alert('Erreur lors de la rÃ©cupÃ©ration du contenu de la catÃ©gorie');}
 }
