
var myRegions;
var myActivites;
var _langue;
var _domaine = "http://" + document.domain + "/rendezvous/"

/** Pour Google Map - carte globale ****************/
var maxZoom = 17;
var minZoom = 5;
var map;
var maxClusterZoom = maxZoom - 1;
var myRegionMarkers = new Array();
var myEvenementMarkers = new Array();
/*var evenementMarkerImage = 'http://chart.apis.google.com/chart?cht=mm&chs=24x32&' +
         'chco=FFFFFF,FF3C90,000000&ext=.png';		*/		
var mc; //Markerclusterer 
var timer;
var infoActive = new Boolean(false);
var infoActiveCluster = new Boolean(false);
var regionLayerActive = new Boolean(true);


var ICON_BASE = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=";
var ICON_DESC = "|ff3c90|000000";
var NB_VISIBLE_EVENT = 6; //S'il y a plus de NB_VISBILE_EVENT element on ajoute les autres dans la zone cachee

//INITIALISATION DES COMPOSANTES DE LA PAGE 
$(document).ready( function () {
	location.href.indexOf("/en/") == -1 ? _langue = "FR" : _langue = "EN";	
		
//var myDate = new Date(2001, 05, 24);
//alert(myDate);		

	//Initialisation du BigBox (Fiche événement)
	if ($("div").is("#partageFB")) {
        //catch like event
        FB.Event.subscribe('edge.create', function(href, widget) {        
            saveStats("Bouton_Jaime", "liked", href);
        });
        //catch unlike event
        FB.Event.subscribe('edge.remove', function(href, widget) {
        	 saveStats("Bouton_Jaime", "unliked", href);            
        });				
	}	

	//Initialisation du BigBox (Fiche événement)
	if ($("div").is("#encartBigBox")) {
		setBigBox();		
	}	
	
	//Init GA
	if (typeof pageTracker != "undefined") {
		initGoogleAnalytics();	
	}
		
	//Page Résultats de recherche
	if ($("div").is("#ResultatsRecherche") || $("div").is(".ResultatsRechercheSans")) {
		setPageRecherche();				
	}	
	
	//Carte d'une fiche événement
	$("#colRegion").live('click', function() {
		sortEventByRegions();		
	});
	
	$("#colDate").live('click', function() {		
		sortEventByDates();		
	});
	
	$("#colActivitees").live('click', function() {		
		sortEventByActivites();		
	});		

	//Click sur la div invisible au dessus du logo des rv (pour rendre le logo en background cliquable)
	$("#fakeForClick").click(function(){		
		location.href=_domaine + $(this).attr('link');
	});	
	
	//Application du blackout en accueil
	if ($("div").is(".blackout")) {
		//startBlackOut();
	}		

	//Carte d'une fiche événement			
	if ($("div").is("#encartMap")) {		
		setCarte();		
	}
	
	//Carte de tous les événements		
	if ($("div").is("#mapEvenements_canvas")) {		
		setCarteEvenements();		
	}			
	
	//Gestion du lien sur les titres des événements (Dans la liste d'accueil ou de recherche)
	if ($("div").is(".texteEvenement")) {
		titleEventClick();
	}	
	
	//Hover sur les h2 (titre des événements cliquables)	
	//$("div.encadreEvenement_desc h2").mouseover(function(){	
	$("div.encadreEvenement_desc h2").live('mouseover', function() {
		$(this).addClass("h2Over")	
	});
	//$("div.encadreEvenement_desc h2").mouseout(function(){
	$("div.encadreEvenement_desc h2").live('mouseout', function() {	
		$(this).removeClass("h2Over")	
	});
	
			
	//Ajout de l'URL aux liens partager de FB		
	$(".partageFB").click(function(){
		var url = document.URL;		
		var title = $("h1").html();							
		window.open("http://www.facebook.com/sharer.php?u=" + url + "&t=" +  encodeURI(title));		
	});	
	
	//Ajout de l'URL aux liens partager de twitter
	if ($("a").is(".partageTwitter")) {		
		placerLiensTwitter();
		//Pour le suivi GA du click sur le bouton twitter
		try
		  {
			$("a.partageTwitter img").live('click', function() {		
				trackTweeterClick();
			});			  
		  }
		catch(err)
		  {
		  	//Action à poser si le tracking ne fonctionne pas
		  }
	}
   	
	//Impression fiche événement
	$(".btnImprimer").click(function(){	
		window.print();
	});	
		
	$(".partageMail").click(function(){		
		var url = document.URL;		
		var title= $("h1").html();		
		var sujet;			
		_langue == "FR" ? sujet = title + " : tu vas aimer ça!" : sujet = title + ": You're going to love this!";		
		var bodyFR	= "Salut!\n\nEn regardant l'événement " + title + " sur le site des Rendez-vous Loto-Québec, je me suis dit que tu voudrais sûrement aller voir ça : " + url + "\n\nTu m'en redonneras des nouvelles!";			
		var bodyEN = "Hi!\n\nWhen I saw the event " + title + " on the Rendez-vous Loto-Québec web site, I thought you would like to check it out: " + url + "\n\nLet me know what you think!";			;
		_langue == "FR" ? body = bodyFR : body = bodyEN;		
		location.href="mailto:?Subject=" + escape(sujet) + "&Body=" + escape(body);	
	});
		
	// Fonction d'ajout à l'agenda	
	$("#agenda_popup").gbxInit({height:150, width:170});
		
	$("#agendaCloser").click(function(){		
		$("#agenda_popup").gbxHide();		
	});	
	if ($("div").is(".lienAjouterCal")) {		
		setChoixAgenda();		
	}	
	
	//Init carrousel
	if ($('div').is('#carousel')) {			
		initMainCarous();
	}	
	if ($('div').is('#zonepromo')) {			
		$("div#zonepromo").carrousel({rotation_internal: 6000});
	}	
	
	//Init boite de recherche
	initRecherche();
	
	$(".expanderBox").live('mouseenter', function() {
		$(this).css('color', '#ff3c90');
		var iconeFleche = $(this).children('img');
		$(iconeFleche).attr('src', $(iconeFleche).attr("src").replace("_out", "_over"));					
	});
	
	$(".expanderBox").live('mouseout', function() {
		$(this).css('color', '#000');
		var iconeFleche = $(this).children('img');		
		$(iconeFleche).attr('src', $(iconeFleche).attr("src").replace("_over", "_out"));		
	});
	
	$(".expanderBox").live('click', function() {	
		var boxToToggle = "#" + $(this).attr('id') + "Content";		
		$(boxToToggle).slideToggle('slow');
		var iconeFleche = $(this).children('img');
		if ($(iconeFleche).attr("src").indexOf('bt_ouvrir') != -1) {			
			$(iconeFleche).attr('src', $(iconeFleche).attr("src").replace("ouvrir", "retour"));
			$(this).children('span.libelle').css('display', 'none');
			$(this).children('span.fermer').css('display', 'block');			
		} else {
			$(iconeFleche).attr('src', $(iconeFleche).attr("src").replace("retour", "ouvrir"));		
			$(this).children('span.libelle').css('display', 'block');
			$(this).children('span.fermer').css('display', 'none');	
		}				
	});	
	

	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])
	
	if ((version >= 5.5) && (document.body.filters)) {
		for(var i=0; i<document.images.length; i++) {
			var img = document.images[i]
			var imgName = img.src.toUpperCase()
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
		         var imgID = (img.id) ? "id='" + img.id + "' " : ""
		         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
		         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
		         var imgStyle = "display:inline-block;" + img.style.cssText 
		         if (img.align == "left") imgStyle = "float:left;" + imgStyle
		         if (img.align == "right") imgStyle = "float:right;" + imgStyle
		         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
		         var strNewHTML = "<span " + imgID + imgClass + imgTitle
		         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
		         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		         + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
		         img.outerHTML = strNewHTML
		         i = i-1
			}
		}
	}
	
		
	
});	
	
/***********FIN INITIALISATION***********************************/

//Succession des images du Bigbox
var currentPub = 0;

function setBigBox() {	
	$("#encartBigBox img").addClass("encartBigBoxPub");
	$(".encartBigBoxPub").css('display', 'none');
	$(".encartBigBoxPub:first").css('display', 'block');			
	var timerBigBox;
	timerBigBox = setInterval("goRotateBigBox()", 5000);
}
		
function goRotateBigBox() {
	var nbPub = $(".encartBigBoxPub").length;
	$(".encartBigBoxPub").css('display', 'none');	
	$(".encartBigBoxPub").each(function(index){		
		if (currentPub == index) {			
			$(this).css('display', 'block');						
		}			
	});
	currentPub = currentPub + 1 < nbPub ? currentPub + 1 : 0;	
}

//Initialisation de la barre de recherche
function initRecherche() {

	refreshRegionsInputBox();
	refreshActivitesInputBox();
	
	$("#dateDu").prev().click(function(){		
		$("#dateDu").datepicker("show");		
	});
	
	$("#dateFin").prev().click(function(){			
		$("#dateFin").datepicker( "show" );		
	});	
			
	var datesRange = $( "#dateDu, #dateFin" ).datepicker({
		defaultDate: "+1w",						
		onSelect: function( selectedDate ) {
			var option = this.id == "dateDu" ? "minDate" : "maxDate",			
				instance = $( this ).data( "datepicker" );
				date = $.datepicker.parseDate(
					instance.settings.dateFormat ||
					$.datepicker._defaults.dateFormat,
					selectedDate, instance.settings );
			datesRange.not( this ).datepicker( "option", option, date );
		},
		onClose: function(dateText, inst) {					
			if (this.id == "dateDu" && $("#dateDu").attr('value') != "") {			
				$("#dateDu").prev().html($("#dateDu").attr('value'));
			} else if (this.id == "dateFin" && $("#dateFin").attr('value') != "") {				
				$("#dateFin").prev().html($("#dateFin").attr('value'));
			} 						
		},
		showButtonPanel: false
		/*showButtonPanel: false,
		beforeShow: customRange*/
	});
	
	function customRange() {
		
		var currentYear = (new Date()).getFullYear();
		var currentDate = new Date();
		var finAnneFinanciere;
		var thisFinAnnee = new Date(currentYear, 2, 31);
		
		if (currentDate - thisFinAnnee > 0) {
			finAnneFinanciere = new Date(currentYear + 1, 2, 31);
		} else {
			finAnneFinanciere = thisFinAnnee;
		}
	
		//var dateMin = $("#dateDu").datepicker("getDate") == null ? new Date(2008, 12 - 1, 1) : $("#dateDu").datepicker("getDate");
		var dateMax;
		if (this.id == "dateDu" && $("#dateFin").datepicker("getDate") != null) {
			var selectedDate = $("#dateFin").datepicker("getDate");
			dateMax = selectedDate > finAnneFinanciere ? finAnneFinanciere : selectedDate;	
			return {    
		        maxDate: dateMax
	    	}; 			
		} else {
			dateMax = finAnneFinanciere;		
			return {    
		        maxDate: dateMax
	    	}; 
		}
		
		return {}; 
	}
	
					
	/**** FERMETURE DE FORM REGION OU TYPE ACTIVITE ****/
	$(".formCloser").click(function(){			
		var formId = $(this).parent().attr('id');					
		formId == "formActivites" ?  refreshActivitesInputBox() : refreshRegionsInputBox();					
		$("#"+formId).slideUp('fast');
		var iDbtOuvrir = $(this).parent().attr('id').replace('form', '');				
		$("#"+iDbtOuvrir).attr('src', $("#"+iDbtOuvrir).attr('src').replace('_sel', '_0'));	
	});
	
	/**** OUVERTURE DE FORM REGION OU TYPE ACTIVITE ****/
	$(".formOpener").click(function(){					
		var formId = "form" + $(this).attr('id');			
		if ($("#"+formId).css('display') == 'none') {
			$("#"+formId).slideDown('fast');					
			$(this).attr('src',  $(this).attr('src').replace('_1', '_sel'));	
			$(".form").each(function(index){						
				if ($(this).attr('id') != formId) {
					$(this).attr('id') == "formActivites" ?  refreshActivitesInputBox() : refreshRegionsInputBox();
					$(this).slideUp('fast');					
					var btnId = $(this).attr('id').replace('form', '');
					$("#" + btnId).attr('src',  $("#" + btnId).attr('src').replace('_sel', '_0'));
				}												
			});		
		} else {
			$("#"+formId).slideUp('fast');					
			$(this).attr('src',  $(this).attr('src').replace('_sel', '_1'));
			formId == "formActivites" ?  refreshActivitesInputBox() : refreshRegionsInputBox();				
		}		
	});	
	
	$(".selectAll").click(function(){				
		$(this).parents(".form").find("input").attr('checked', true);	
		$(this).addClass("markedSeleted");
		$(this).next(".unSelectAll").removeClass("markedSeleted");				
	});		
	$(".unSelectAll").click(function(){					
		$(this).parents(".form").find("input").attr('checked', false);	
		$(this).addClass("markedSeleted");
		$(this).prev(".selectAll").removeClass("markedSeleted");
	});
			
	$(".checkboxListElement input:checkbox").click(function(){					
		var selectAll = $(this).parentsUntil(".form").find(".selectAll");
		var unSelectAll = $(this).parentsUntil(".form").find(".unSelectAll");					
		if ($(this).is(':checked')) {									
			if (isAllChecked) {
				$(selectAll).addClass("markedSeleted");
				$(unSelectAll).removeClass("markedSeleted");	
			}
		} else {			
			if (isAllUnChecked) {
				$(unSelectAll).addClass("markedSeleted");	
				$(selectAll).removeClass("markedSeleted");			
			}							
		}
	});			
	
/*	$(".checkboxListElement").click(function(){			
		var checkbox = $(this).find('input:checkbox');
		if ($(checkbox).is(':checked')) {
			alert("checked");
			$(checkbox).attr('checked', false);
			if (isAllUnChecked) {
				$(".unSelectAll").addClass("markedSeleted");	
				$(".selectAll").removeClass("markedSeleted");			
			}				

		} else {
			alert("pas checked");
			$(checkbox).attr('checked', true);				
			if (isAllChecked) {
				$(".selectAll").addClass("markedSeleted");
				$(".unSelectAll").removeClass("markedSeleted");	
			}									
		}
	});			*/	
	
	function isAllUnChecked() {
		var allUnChecked = new Boolean(false);
		if ($(".checkboxListElement input:checked").size() == 0) {
			allUnChecked  = true;
		}		
		return allUnChecked;
	}
	
	function isAllChecked() {
		var allChecked = new Boolean(false);
		if ($(".checkboxListElement input:checked").size() == $(".checkboxListElement input").size()) {
			allChecked  = true;
		}		
		return allChecked;
	}	
			
	
	$("#submitRecherche").click(function(){	
		
		if ($("#formActivites").css('display') == 'block') {
			$("#formActivites").slideUp('fast');
			refreshActivitesInputBox();			
		} else if ($("#formRegions").css('display') == 'block') {
			$("#formRegions").slideUp('fast');
			refreshRegionsInputBox();
		}
				
		//Validations:
		var valide = new Boolean("true");
		
		if ($("#formRegions_header_btnAucun").hasClass("markedSeleted")) {					//1. Au moins une région choisie
			valide = false;
			alert("Sélectionnez au moins une région...");			
		} else if ($("#formActivites_header_btnAucun").hasClass("markedSeleted")) {			//2. Au moins un type d'activité choisi
			valide = false;
			alert("Sélectionnez au moins une activité");						
		} 
		/*else if ($("#dateDu").attr('value') == "" || $("#dateFin").attr('value') == "") {	//3. Il y a une date de début et de fin ou aucune date			
			valide = false;
			alert("Vous devez sélectionnez une date de début et une date de fin");
		} */
				
		if (valide) {
			var requestForm;
			//alert($("input#dateFin").attr('value'));
			requestForm = "<input name='dateDebut' type='text' value='" + $("input#dateDu").attr('value') + "' />";		
			requestForm += "<input name='dateFin' type='text' value='" + $("input#dateFin").attr('value') + "' />";
			requestForm += "<input name='sort' type='text' value='' />";
	
			var i=0;
			for (i=0;i<=myRegions.length-1;i++) {						
				requestForm += "<input name='region' type='checkbox' value='" + myRegions[i] + "' checked/>";
			}			
			var j=0;
			for (j=0;j<=myActivites.length-1;j++) {			
				requestForm += "<input name='typeActivite' type='checkbox' value='" + myActivites[j] + "' checked/>";
			}		
							
			$("#findEvents").html(requestForm);
			$("#findEvents").submit();		
		}
	});	

	$("input").click(function(){
		var parentForm = $(this).parents(".form");
		var nbChoix = $(parentForm).find("input").length;		
		var	nbSelection = 0;
		$(parentForm).find("input:checked").each(function(index){						
			nbSelection = index + 1;			
		});
		
		if (nbSelection == 0) {
			$(parentForm).find(".selectAll").removeClass("markedSeleted");
			$(parentForm).find(".unSelectAll").addClass("markedSeleted");		
		} else if (nbSelection == nbChoix) {
			$(parentForm).find(".selectAll").addClass("markedSeleted");
			$(parentForm).find(".unSelectAll").removeClass("markedSeleted");
		} else {
			$(parentForm).find(".selectAll").removeClass("markedSeleted");
			$(parentForm).find(".unSelectAll").removeClass("markedSeleted");		
		}
				
	});	

}


function setChoixAgenda() {

	$(".lienAjouterCal img").live('click', function() {	
		//Positionnement du popup pour l'ajout au calendrier							
		$("#agenda_popup").prepend($(this).parent('.lienAjouterCal').find('div').clone());		
		var myAgenda = $("#agenda_popup").detach();	
		$("#page").prepend($(myAgenda));		
		$("#agenda_popup").css('top', ($(this).offset().top-88)+'px');		
		$("#agenda_popup").css('left', ($(this).offset().left-312)+'px');				
		$("#agenda_popup").gbxShow();			
	});
	
	$(".lienAjouterCal span").live('click', function() {	
		//Positionnement du popup pour l'ajout au calendrier							
		$("#agenda_popup").prepend($(this).parent('.lienAjouterCal').find('div').clone());		
		var myAgenda = $("#agenda_popup").detach();	
		$("#page").prepend($(myAgenda));		
		$("#agenda_popup").css('top', ($(this).offset().top-88)+'px');		
		$("#agenda_popup").css('left', ($(this).offset().left-164)+'px');				
		$("#agenda_popup").gbxShow();					
	});	
		
	$("#agenda_popup img, #agenda_popup span").mouseover(function(){	
		$(this).css('text-decoration', 'underline');		
	});
	$("#agenda_popup img, #agenda_popup span").mouseout(function(){	
		$(this).css('text-decoration', 'none');		
	});	
	
	$("#agenda_popup img.calIcone, #agenda_popup span").click(function(){
		
		var dateDebut = $("#agenda_popup div:first").attr('dateDebut');		
		var dateFin = $("#agenda_popup div:first").attr('dateFin');
		var titreEvent = $("#agenda_popup div:first").attr('titreEvent');
		var endroit = $("#agenda_popup div:first").attr('endroit');
		var resume = $("#agenda_popup div:first").html();
		resume = resume.replace('&nbsp;',' ');
		var idEvent = $("#agenda_popup div:first").attr('id');
		
		//alert($("#agenda_popup div:first").attr('endroit'));
		var lienLangue = _langue = "FR" ? "/fr/" : "/en/";
		
		if ( $(this).attr('title') == "Google") {			
			var GOOGLE_URL = "http://www.google.com/calendar/event?action=TEMPLATE&text=";
			var linkToGoogleCal = GOOGLE_URL;
			linkToGoogleCal += encodeURI(titreEvent);										
			linkToGoogleCal += "&dates=" + dateDebut +"/" + dateFin;			
			linkToGoogleCal += "&location=" + encodeURI(endroit);
			linkToGoogleCal += "&details=" + encodeURI(resume + "\n\nhttp://lotoquebec.com/rendezvous/nav" + lienLangue + idEvent);			
			linkToGoogleCal += "&sprop%3Dwebsite%3Ahttp%3A%2F%2Fwww.lotoquebec.com";
			window.open(linkToGoogleCal, 'open_window', 'menubar=no, toolbar=no, location=no, directories, status, scrollbars, width=900, height=1200, left=0, top=0');						
		} else if ($(this).attr('title') == "Yahoo") {
			var YAHOO_URL = "http://calendar.yahoo.com/?title=";
			var linkToYahooCal = YAHOO_URL;			
			linkToYahooCal += encodeURI(titreEvent);						
			linkToYahooCal += "&st=" + dateDebut;			
			linkToYahooCal += "&in_loc=" + encodeURI(endroit);
			linkToYahooCal += "&desc=" + encodeURI(resume);
			linkToYahooCal += "&URL=" + escape("http://lotoquebec.com/rendezvous/nav" + lienLangue + idEvent);
			linkToYahooCal += "&v=60";							
			window.open(linkToYahooCal, 'open_window', 'menubar=no, toolbar=no, location=no, directories, status, scrollbars, width=640, height=480, left=0, top=0');		
		} else if ($(this).attr('title') == "Outlook") {
			location.href="/rendezvous/nav/ajoutCalendrier?caltype=outlook&idEvent=" + idEvent;
		} else if ($(this).attr('title') == "Ical") {
			location.href="/rendezvous/nav/ajoutCalendrier?caltype=ical&idEvent=" + idEvent;
		}
		
		$("#agenda_popup").gbxHide();	
	});			
	
}		


function titleEventClick() {
	$("div.encadreEvenement_desc h2").live('click', function() {	
		var localLink = $(this).parents(".encadreEvenement_desc").find("a").attr('href');
		if (localLink.indexOf("http://") != -1) {
			location.href = localLink;
		} else {
			location.href = _domaine + localLink;
		}		
	});
}

function refreshActivitesInputBox() {
	
	var nbSelection = 0;
	var nbChoix = $("#formActivites input").length;
	myActivites = new Array();	
	var myActivitesLabel = "";

	$("#formActivites input:checked").each(function(index){	
		nbSelection = index + 1;			
		myActivites[index] = $(this).attr('value');
		if (index == 0) {
			myActivitesLabel = $(this).parents('.checkboxListElement').find('label').html();	
		}				
	});
	
	var msg;	
	
	switch(nbSelection)
	{
	case 0:	
		_langue == "FR" ? msg = "Aucune sélection" : msg = "No selection";			
		break;
	case 1:	
		msg = myActivitesLabel;		
		break;	
	case nbChoix:
		_langue == "FR" ? msg = "Tous les types d'activités" : msg = "All types of activities";					
		break;			
	default:
		_langue == "FR" ? msg = nbSelection + " activités choisies" :msg = nbSelection + " selected activities";				
	}
	
	$("#typesActiveSelectionnees").html(msg);	
}

function refreshRegionsInputBox() {
	
	var nbSelection = 0;
	var nbChoix = $("#formRegions input").length;
	myRegions = new Array();
	var myRegionsLabel = "";

	$("#formRegions input:checked").each(function(index){	
		nbSelection = index + 1;			
		myRegions[index] = $(this).attr('value');
		if (index == 0) {
			myRegionsLabel = $(this).parents('.checkboxListElement').find('label').html();	
		}				
	});
	
	var msg;	
	
	switch(nbSelection)
	{
	case 0:	
		_langue == "FR" ? msg = "Aucune sélection" : msg = "No selection";				
		break;
	case 1:	
		msg = myRegionsLabel;		
		break;	
	case nbChoix:
		_langue == "FR" ? msg = "Toutes les régions" : msg = "All regions";					
		break;			
	default:
		_langue == "FR" ? msg = nbSelection + " régions choisies" : msg = nbSelection + " selected regions";			
	}
	
	$("#regionsSelectionnees").html(msg);	
}


	
// fonction qui vérifie la présence de certains fureteur pour optimiser la fonctionnalité sur chacun de ces fureteurs
// en théorie, Netscape 6.22 et plus, Mozilla 1.0 et plus, Opera 7 et plus, et Ie 5.5 et plus
// sur Mac, Windows et Linux

function lib_bwcheck(){
	var bw = new Object();
	bw.ver=navigator.appVersion;
	bw.agent=navigator.userAgent;
	bw.dom=document.getElementById?1:0;
	bw.win=bw.agent.indexOf("Win")>-1;
	bw.operaOld=((!bw.dom)&&bw.agent.indexOf("Opera")>-1);
	bw.opera5=bw.agent.indexOf("Opera 5")>-1;
	bw.opera5=bw.agent.indexOf("Opera/5")>-1;
	bw.opera6=bw.agent.indexOf("Opera 6")>-1;
	bw.opera6=bw.agent.indexOf("Opera/6")>-1;
	bw.operaM=(bw.opera5||bw.opera6);	
	bw.opera7p=(!bw.operaOld)&&(!bw.operaM)&&(bw.agent.indexOf("Opera")>-1);
	bw.opera=(bw.opera5||bw.opera6||bw.opera7p);
	bw.ie5=(bw.ver.indexOf("MSIE 5")>-1 && bw.dom && !bw.opera)?1:0; 
	bw.ie5_5=(bw.ver.indexOf("MSIE 5.5")>-1 && bw.dom && !bw.opera)?1:0; 	
	bw.ie6=(bw.ver.indexOf("MSIE 6")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie7=(bw.ver.indexOf("MSIE 7")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie8=(bw.ver.indexOf("MSIE 8")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie4=(document.all && !bw.dom && !bw.opera5)?1:0;
	bw.ie6p=(bw.dom && (bw.ver.indexOf("MSIE")>-1))?1:0 
	bw.ie=bw.ie4||bw.ie5||bw.ie6||bw.ie7||bw.ie8||bw.ie6p;
	bw.mac=bw.agent.indexOf("Mac")>-1;
	bw.ns6=(bw.dom && parseInt(bw.ver) >= 5 &&!bw.opera) ?1:0;
	bw.ns6p = bw.ns6; 
	bw.ns4=(document.layers && !bw.dom)?1:0;
	bw.bw=(bw.ie8 || bw.ie7 || bw.ie6 || bw.ie5 || bw.ie5_5  || bw.ns6 || bw.opera);
	return bw;
}
var bw = lib_bwcheck();

var tabImg = new Array();


function preloadImg() {
	preload("img");
	preload("input");
}

function preload(tag) { 
  var elements = document.getElementsByTagName(tag);
  var objA;
  for (i=0;i<elements.length;i++) {
  	if (elements[i].src) {
  		//alert(elements[i].id);
  		//alert(elements[i].src);
	  	if (regExpPatternImgOff.test(elements[i].src)) {
	  		tabImg[i] = new Image();
	  		tabImg[i].src = elements[i].src.replace(regExpPatternImgOff, patternImgOn);
			if (!regExpImgMenu.test(elements[i].id)) {  
				objA = chercheElementParent("a", elements[i]);	
				if (bw.ie && !bw.opera) {
					elements[i].onmouseover=swap;
					elements[i].onmouseout=restore;	
					if (objA) {
						objA.onfocus=swapChildImg;
						objA.onblur=restoreChildImg;			
					}
				} else  {
					elements[i].setAttribute("onmouseover", "swap(this)");	
					elements[i].setAttribute("onmouseout", "restore(this)");	
					if(objA) {
						objA.setAttribute("onfocus", "swapChildImg(this)");	
						objA.setAttribute("onblur", "restoreChildImg(this)");				
					}
				}	
			}
	  	}
	  }	
  } 
} 
// fonction pour mouseover sur images
function swap(imgSwpObj) {
	if (imgSwpObj) {
		imgSwpObj.src = imgSwpObj.src.replace(regExpPatternImgOff, patternImgOn);
	} else {
		if (this) swap(this); 
	}
}

function restore(imgSwpObj) {
	if (imgSwpObj) {
		imgSwpObj.src = imgSwpObj.src.replace(regExpPatternImgOn, patternImgOff);
	} else {
		if (this) restore(this); 	
	}
}

function swapChildImg(aSwpObj) {
	var imgSwpObj;
	if (aSwpObj) {
		imgSwpObj = chercheElementEnfant("img", aSwpObj);
		swap(imgSwpObj);
	} else {
		if (this) swapChildImg(this); 
	}
}

function restoreChildImg(aSwpObj) {
	var imgSwpObj;
	if (aSwpObj) {
		imgSwpObj = chercheElementEnfant("img", aSwpObj);
		restore(imgSwpObj);
	} else {
		if (this) restoreChildImg(this); 
	}
}

var regExpPatternImgOff;
var regExpPatternImgOn;
var patternImgOn;
var patternImgOff;

function setPatternImgOver(patternOff, patternOn) {
	regExpPatternImgOff = new RegExp(patternOff);
	regExpPatternImgOn = new RegExp(patternOn);	
	patternImgOn = patternOn;
	patternImgOff = patternOff;	
}

setPatternImgOver("_0", "_1"); // pattern des url des images ayant un mouseover et devant etre preloadée
regExpImgMenu = new RegExp("^im"); // pattern des id des images faisant parties d'un menu

// les recherches se font sur un seul niveau, pas de recursivite pour questions de perf

function chercheElementParent(nomElement, domObj) {
	var objCourant = domObj.parentNode;
	// on essai juste avec le premier
	if (objCourant.nodeName.toLowerCase() == nomElement.toLowerCase()) return objCourant;
	else return false;	
}

function chercheElementEnfant(nomElement, domObj) {
	var objEnfants = domObj.childNodes;
	var objRech = false;
	for (i=0;i<objEnfants.length;i++) {
	   if (objEnfants[i].nodeType==1) {
			if (objEnfants[i].nodeName.toLowerCase() == nomElement.toLowerCase()) {
				objRech = objEnfants[i];
			}
		}
	}	
	return objRech;	
}


/************************************************************/
/* FONCTIONS POUR GOOGLEMAP                                 */
/* (page festivals et evenements ainsi que fiche evenement)	*/
/************************************************************/
	
/*******************************************************/
/* Pour un événement, crée la carte et met le marqueur */
/*******************************************************/
var evenementDetail='';
var evenementNom='';
var evenementDate='';
var evenementAdresse='';
function setCarte() {
		if (!window.google) {
			return;
		}
		
		var latlng;		
		var positionIsSet = new Boolean();
		positionIsSet = false;
		
		//Vérification à savoir si les variables latitude et longitude ont été définies par Rhythmyx
		if (typeof( window['latitude'] ) != "undefined" && typeof( window['longitude'] ) != "undefined") {			
			latlng = new google.maps.LatLng(latitude, longitude); //Coordonnées de l'événement					
			latlngMap = new google.maps.LatLng(parseFloat(latitude) + 0.0011, longitude); //Coordonnées du centre de la carte (On décale pour laisser de la place à la bulle)
			positionIsSet = true;
		} 
		
		if (positionIsSet) {				
		    var myOptions = {
		      zoom: 16,
		      center: latlngMap,
		      disableDefaultUI: true,
		      mapTypeControl: false,    
		      mapTypeId: google.maps.MapTypeId.ROADMAP
		    };
		       
		    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
		     
			var eventIcon = "images/img_marquer_carte.gif";	
			   	
			var eventMarker = new google.maps.Marker({				
						position: latlng,
						icon: eventIcon					
			});
			eventMarker.setMap(map);
			
			var windowContent = '<div id="infoBoxContent" style="padding-left: 5px;">' + 						
						'<p style="font-size: 11px; line-height: 14px;">' + evenementAdresse + '</p></div>';						
			var infowindow = new google.maps.InfoWindow({ content: windowContent });
			
			google.maps.event.addListener(eventMarker, 'mouseover', function() {
  				infowindow.open(map, eventMarker);
			});
			
			infowindow.open(map,eventMarker);
			
		}
}

/******************************************************************/
/* Crée la carte avec tous les événements (et toutes les régions) */
/* à partir d'un json recu du serveur (appel ajax)                */
/******************************************************************/
function setCarteEvenements() {
	if (!window.google) {
		return;
	}
	var infoWindow = new google.maps.InfoWindow();		
	var clusterInfoWindow = new google.maps.InfoWindow();;
    //Ici qu'on centre la carte en fixant des coordonnées
    //var latlng = new google.maps.LatLng(54.599999, -69.294344); //Centre de la carte
    var latlng = new google.maps.LatLng(52.000000, -69.294344); //Centre de la carte
    
    var myOptions = {
      zoom: 5,
      center: latlng,
      disableDefaultUI: false,
      mapTypeControl: false,   
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
       
    map = new google.maps.Map(document.getElementById("mapEvenements_canvas"), myOptions);
     	    
	google.maps.event.addListener(map, 'zoom_changed', function() {
		
		var currentZoom = map.getZoom();
		clusterInfoWindow.close();
		//Application du range de zoom (minZoom à maxZoom)
		if (currentZoom > maxZoom){map.setZoom(maxZoom);}
		if (currentZoom < minZoom){map.setZoom(minZoom);}
	
		//Activation des marqueurs d'événements
		if (currentZoom > 5 && regionLayerActive) {	
			regionLayerActive = false;		
			clearOverlays(myRegionMarkers);			
			mc.addMarkers(myEvenementMarkers);		

		}
		
		//Activation des marqueurs de régions
		if (currentZoom < 7) {
			regionLayerActive = true;						
			mc.clearMarkers();
			showOverlays(myRegionMarkers);								
		}		
		
		//Si on a quelque chose de spécifique à faire à un niveau prédéterminé	     
		switch(map.getZoom()) {
		case 7:
		  //alert("Niveau 7");
		  break;
		case 9:
		  //alert("Niveau 9");
		  break;
		case 10:
		  //alert("Niveau 10");
		  break;		  
		default:
		 // code to be executed if case is different 
		}	    
	    	    
	});        
	  			 	  	  	
	var myEvenements;
	var lienLangue = _langue == "FR" ? "/fr/" : "/en/";		
	var action = "nav" + lienLangue + "mapevenements.json";
	 
	$.ajaxSetup({
        error:function(x, e){   
           
            if (x.status === 0){
                printError("Ajax: You are offline.", "bad");                
            }
            else if(x.status === 404){
                printError("Ajax: 404 file not found error", "bad");
            }
            else if(x.status === 500){
                printError("Ajax: 500 internal server error", "bad");
            }
            else if(e === 'parsererror'){
                printError("200 but can't parse json response", "bad");
            }
            else if(e === 'timeout'){
                printError("Request timed out.", "bad");
            }
            else {
                printError("Unknown AJAX error", "bad");
            }
        }
    });	
	
	$.ajax({ url: action, dataType: "json", context: document.body, success: function(data){       
		myEvenements = data;				
		var i = 0;	
		while (myEvenements.region[i])
		{										
			var myLatlng = new google.maps.LatLng(myEvenements.region[i].lat, myEvenements.region[i].long);			
			 			
			var regionMarker = new google.maps.Marker({				
				position: myLatlng								
			});	
														
			var nbEvenements=0;
			
			var j = 0;
			while (myEvenements.region[i].evenements[j])
			{				
				
				nbEvenements++;
				var myEvenementLatlng = new google.maps.LatLng(myEvenements.region[i].evenements[j].lat, myEvenements.region[i].evenements[j].long);				
				
				//Marqueur pour les événements		        
				var markerImage = "images/img_marquer_carte.gif";	 
	
				var evenementMarker = new google.maps.Marker({							
					position: myEvenementLatlng,
					icon: markerImage											
				});			
														
				myEvenementMarkers.push(evenementMarker);
				
				
				var eventInfoString = '<div id="infoBoxContent" style="height: 80px; padding-left: 5px;">'+       
								'<p><a class="surligne" href="' + myEvenements.region[i].evenements[j].url + '" onclick="saveStats(\'carte_evenements\', \'' +  myEvenements.region[i].evenements[j].nom + '\', _langue)">'  + myEvenements.region[i].evenements[j].nom + ' </a></p><p style="font-size: 10px; line-height: 14px; margin-top: 0px;"><strong>Date:</strong> ' + myEvenements.region[i].evenements[j].date + '</p>' +
								'<div style="height: 1px;  margin-top: 5px; border-top: 1px dashed #a6a7a8;"></div>' + 
								'<p style="font-size: 11px; line-height: 14px; margin-top: 5px;">' + myEvenements.region[i].evenements[j].adresse + '</p>' +
								//'<p style="font-size: 11px; line-height: 14px; margin-top: 2px;">' + "187 14e avenue St-Eustache<br/>H3T 1S2<br/>H3T 1S2" + '</p>' +
								'</div>';					
				
				setMarkerListener(evenementMarker, eventInfoString, myEvenementLatlng, map, maxZoom);
																				
				j++;
			}
				
			regionMarker.setIcon(ICON_BASE + nbEvenements + ICON_DESC);
			
			//On n'affiche pas la région si elle ne contient pas d'evenements
			/*if (nbEvenements != 0) {
				myRegionMarkers.push(regionMarker); 
			}*/
			myRegionMarkers.push(regionMarker);
			
			var contentString;
							
			var contentStringFR = '<div id="infoBoxContent" style="height: 50px;">'+       
								'<p>Zoomer sur '  + myEvenements.region[i].label + ' pour découvrir les événements</p></div>';
			var contentStringEN = '<div id="infoBoxContent" style="height: 50px;">'+       
								'<p>Zoom on '  + myEvenements.region[i].label + ' to get more information</p></div>';	
											
			_langue == "FR" ? contentString = contentStringFR : contentString = contentStringEN;													
						
			setMarkerListener(regionMarker, contentString, myLatlng, map, myEvenements.region[i].zoomLevel);			
			
			i=i+1;
		} 
			
		var _imagePath = "/rendezvous/images/m";	
       
		var _styles = {					
			textColor: 'ffffff',	
			textSize: 14		
		};
		//var mcOptions = {imagePath: _imagePath, maxZoom: maxClusterZoom, styles: _styles};	
		var mcOptions = {imagePath: _imagePath, maxZoom: maxClusterZoom};	
		mc = new MarkerClusterer(map, [], mcOptions);
		

		showOverlays(myRegionMarkers);
		
		
 		google.maps.event.addListener(mc, 'mouseover', function (cluster) {
 				var clusterPos = cluster.getCenter(); 	 			     			       
		         //clusterInfoWindow = new google.maps.InfoWindow();	
		         var myClusterSize = new google.maps.Size(10, -10 , 'px', 'px');		         
		         clusterInfoWindow.setOptions({disableAutoPan: false, maxWidth: 400, pixelOffset: myClusterSize});
		         _langue == "FR" ? clusterInfoWindow.setContent("<p>Zoomer pour découvrir les évènements</p>") : clusterInfoWindow.setContent("<p>Zoom to get information on events</p>");			         
		         clusterInfoWindow.setPosition(clusterPos);
		         clusterInfoWindow.open(map);			
    	}); 		
		
										
	}});	


	function setMarkerListener(marker, popupContent, myLatlng, myMap, zoomLevel) {	
	
	     google.maps.event.addListener(marker, 'mouseover', function () {
	     	
	         if (infoActive == false) {         	
		         //clearInterval(timer);
		         var mySize = new google.maps.Size(10, 0 , 'px', 'px');		         		        
		         infoWindow.setOptions({disableAutoPan: false, maxWidth: 350, pixelOffset: mySize});		        
		         infoWindow.setContent(popupContent);
		         infoWindow.setPosition(myLatlng);
		         infoWindow.open(map, this);
		         //infoActive = true;
	         }
	     });
	     
	     /*google.maps.event.addListener(marker, 'mouseout', function () {
	       //timer = setTimeout("infoWindow.close();infoActive=false;", 1500);  
	       infoWindow.close();
	       infoActive=false;
	              
	     });   */ 
	     
	     google.maps.event.addListener(marker, 'click', function () { 
	     	if (infoActive){infoWindow.close();}    
	     	clusterInfoWindow.close();
	         myMap.setZoom(parseInt(zoomLevel));
	         myMap.setCenter(myLatlng);
	         //alert("zoomLevel: " + zoomLevel);
	     });          
	}
	
	// Removes the overlays from the map, but keeps them in the array
	function clearOverlays(pMarkersArray) {
	  if (pMarkersArray) {
	  	//alert("clearOverlays");
	    for (i in pMarkersArray) {
	      pMarkersArray[i].setMap(null);
	    }
	  }
	}
	
	// Shows any overlays currently in the array
	function showOverlays(pMarkersArray) {
	  if (pMarkersArray) {
	    for (i in pMarkersArray) {
	      pMarkersArray[i].setMap(map);
	    }
	  }
	}
	
}

/************************************************************/
/* FIN FONCTIONS POUR GOOGLEMAP                             */
/************************************************************/
/*----------------------------------------------------------*/



function setCookieVal(nom, valeur){
	
	var argv=setCookieVal.arguments;
	var argc=setCookieVal.arguments.length;
	
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	/******************************************************/
	// On peut maintenant changer la date d'expiration du cookie (au lieu de la fin de la session)
	// Si on entre "never", le cookie expire dans un an.
	if (expires != null && expires.length > 0) {
		if (expires.indexOf("never") >= 0) {
			date=new Date;
			date.setYear(date.getFullYear()+1);
			expires=date;
		} else {
			expires = new Date( expires );  // mm/dd/yyyy [IE, FF]
		}
	}
	/******************************************************/
	
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	//En commentaire pour fixer le cookie de session
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "/" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}

function getCookieVal(pName) {
	var search = pName + "="
	var returnvalue = "";
	if (document.cookie.length > 0) {
		offset = document.cookie.indexOf(search)
		// if cookie exists
		if (offset != -1) {
			offset += search.length
			// set index of beginning of value
			end = document.cookie.indexOf(";", offset);
			// set index of end of cookie value
			if (end == -1) 
				end = document.cookie.length;
			returnvalue=unescape(document.cookie.substring(offset, end));
		}
	}
	return returnvalue;
}

function chercheTout() {
		
	var requestForm;
	//alert($("input#dateFin").attr('value'));
	requestForm = "<input name='dateDebut' type='text' value='" + $("input#dateDu").attr('value') + "' />";		
	requestForm += "<input name='dateFin' type='text' value='" + $("input#dateFin").attr('value') + "' />";
	requestForm += "<input name='sort' type='text' value='' />";
	
	
	
	var i=0;
	for (i=0;i<=myRegions.length-1;i++) {						
		requestForm += "<input name='region' type='checkbox' value='" + myRegions[i] + "' checked/>";
	}			
	var j=0;
	for (j=0;j<=myActivites.length-1;j++) {			
		requestForm += "<input name='typeActivite' type='checkbox' value='" + myActivites[j] + "' checked/>";
	}		
					
	$("#findEvents").html(requestForm);
	$("#findEvents").submit();		
		
}


/*******************************************************************************/
/* TRI DES ÉVÉNEMENTS DANS LA LISTES (PAR DATES, PAR REGIONS ET PAR ACTIVITES) */
/*******************************************************************************/
var regions_sortedAsc = new Boolean(true);
var activites_sortedAsc = new Boolean(true);
var dates_sortedAsc = new Boolean(true);
var HTML_sep = "<div class='separateurEvenement'><div class='separateurEvenement_gauche'></div><div class='separateurEvenement_droit'></div></div>";
var HTML_rechercheSep = "<div class='separateurRecherche'><div class='separateurEvenement_gauche'></div><div class='separateurEvenement_droit'></div></div>";

function EventObject () {
    this.date;
    this.activite;
    this.region;
    this.html;
}	

function sortEventByActivites() {
	unselectTriButton();		
	$("#colActivitees").addClass("selectedTri");	
	var listEvent = new Array();	
	listEvent = makeEventsList();		

	listEvent.sort(function(a, b){						
		 var activiteA = a.activite.toLowerCase();			 
		 var activiteB = b.activite.toLowerCase();
		 if (activiteA < activiteB) //sort string ascending
		 	return -1
		 if (activiteA > activiteB)
		 	return 1
		 return 0 //default return value (no sorting)
	});
			
	if (!activites_sortedAsc) {
		listEvent.reverse();
		activites_sortedAsc = true;
	} else {
		activites_sortedAsc = false;
	}	
	
	if ($("div").is("#ResultatsRecherche")) {
		selectDropDown("activites");
		sortRechercheOutput(listEvent);
	} else {
		sortOutput(listEvent);
	}		

}

function sortEventByDates() {

	unselectTriButton();
	$("#colDate").addClass("selectedTri");
	var listEvent = new Array();	
	listEvent = makeEventsList();					
	
	listEvent.sort(function(a, b){						
		 var dateA = a.date;			 
		 var dateB = b.date;
		 if (dateA < dateB) //sort string ascending
		 	return -1
		 if (dateA > dateB)
		 	return 1
		 return 0 //default return value (no sorting)
	});
	
	if (!dates_sortedAsc) {
		listEvent.reverse();
		dates_sortedAsc = true;
	} else {
		dates_sortedAsc = false;
	}	

	if ($("div").is("#ResultatsRecherche")) {
		selectDropDown("dates")
		sortRechercheOutput(listEvent);
	} else {
		sortOutput(listEvent);
	}				

}

function sortEventByRegions() {
	unselectTriButton();
	$("#colRegion").removeClass("unselectedTri");
	$("#colRegion").addClass("selectedTri");	
	
	var listEvent = new Array();		
	listEvent = makeEventsList();					
	
	listEvent.sort(function(a, b){						
		 var regionA = a.region.toLowerCase();			 
		 var regionB = b.region.toLowerCase();
		 if (regionA < regionB) //sort string ascending
		 	return -1
		 if (regionA > regionB)
		 	return 1
		 return 0 //default return value (no sorting)
	});
			
	if (!regions_sortedAsc) {
		listEvent.reverse();
		regions_sortedAsc = true;
	} else {
		regions_sortedAsc = false;
	}	

	if ($("div").is("#ResultatsRecherche")) {
		selectDropDown("regions");
		sortRechercheOutput(listEvent);
	} else {
		sortOutput(listEvent);
	}	
}

function selectDropDown(theValue) {
	$("#triRecherche").val(theValue).attr('selected',true);
}

function sortOutput(pListEvent) {
	
	var listIsOpen = new Boolean();
	listIsOpen = checkIfListIsOPen();
	
	var newList = "";		
	var i=0;
	for (i=0;i < pListEvent.length; i++) {			
		
		newList += pListEvent[i].html;						
		
		if (i == NB_VISIBLE_EVENT - 1) {
			if (listIsOpen) {
				newList += "<div id='expandEventsContent' style='display: block;'>"; 
			} else {
				newList += "<div id='expandEventsContent' style='display: none;'>"; 
			}									
		}
						
		if (i != pListEvent.length - 1)
			newList += HTML_sep;													
	}
	if (pListEvent.length > NB_VISIBLE_EVENT)	
		newList += "</div>";

	$("#eventContainer").html("");
	$("#eventContainer").append(newList);							
}

				
function sortRechercheOutput(pListEvent) {
	
	var listIsOpen = new Boolean();
	listIsOpen = checkIfListIsOPen();
	
	var newList = "";		
	var i=0;
	for (i=0;i < pListEvent.length; i++) {			
		
		newList += pListEvent[i].html;						
							
		if (i != pListEvent.length - 1)
			newList += HTML_rechercheSep;
	}
	
	$("#eventContainer").html("");
	$("#eventContainer").append(newList);							
}

function makeEventsList() {

	var lListEvent = new Array();		
	$(".encadreEvenement").each(function(index) {			

		var eventObject = new EventObject();									
		if ($("div").is(".lienAjouterCal")) {
			eventObject.date = convertToDate($(this).find(".lienAjouterCal div").attr('dateDebut'));		
		}
		eventObject.region = $(this).find(".lieuEvenement span").html();			
		eventObject.html = $('<div>').append($(this).clone()).remove().html();
		if ($("div").is(".typeActivitees")) { //Si on est dans un page de résultat de recherche
			eventObject.activite = $(this).find("div.typeActivitees").html();
		} 				
		lListEvent.push(eventObject);			
	});		
							
	return lListEvent;
	
}

function unselectTriButton() {
	$("#evenementsDeLaSemaine").find("div").removeClass("selectedTri").addClass("unselectedTri");
	$("#ResultatsRecherche").find("div").removeClass("selectedTri").addClass("unselectedTri");
}

function checkIfListIsOPen() {

	var listIsOpen = new Boolean();
	listIsOpen = false;
	
	if ($("#expandEventsContent").css('display') == "block")
		listIsOpen = true;

	return listIsOpen;
	
}

function convertToDate(dateToConvert) {			
	var yyyy = dateToConvert.substring(0, 4);
	var mm = dateToConvert.substring(4, 6);
	var jj = dateToConvert.substring(6, 8);		
	var myDate = new Date(yyyy, mm-1, jj);	
	return myDate;		
}

function setPageRecherche() {	
	var lien = location.href;	
	if (lien.indexOf('?')!= -1) {
		var nouveauLien =  $("#lienLangue").attr('href') + lien.substring(lien.indexOf('?',0));					
		$("#lienLangue").attr('href', nouveauLien);
	}

	$("#triRecherche").change(function() { 
		var sortType = $("#triRecherche option:selected").attr('value');	      
	    if (sortType == "dates")
	       	sortEventByDates();
	    if (sortType == "regions")
	       	sortEventByRegions();
	    if (sortType == "activites")
	       	sortEventByActivites();	       	
	}); 		
}

function startBlackOut() {
	if (location.href.indexOf("/nav/fr/accueil") >= 0 || location.href.indexOf("/nav/en/home") >= 0) {
		setCookieVal("blackout", "");
		if (getCookieVal("blackout").length == 0) {
			// Le cookie n'est pas défini, alors on exécute
			setCookieVal("blackout", "true");
			$("#carousel").addClass("blackout");
			for (i=0;i<=100;i++) {
				setTimeout('customFadeIn(' + i + ', ' + 100 + ')',i*100);
			}
		}
	}		
}

function customFadeIn(i, nb) {
	var ratio = (i) / nb
	$('.blackout').css('opacity', ratio);
	$('.blackout').css('-ms-filter', '"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + (100 * ratio) + ')'); // first!
	$('.blackout').css('filter', 'alpha(opacity = ' + (100 * ratio) + ')');	// second!
}

//Fonction generique pour ecrire un message d'erreur a la console Firebug
function printError(msg) {
	if(typeof window.console != 'undefined'
	    && typeof window.console.log != 'undefined')
	{
	    console.error(msg)
	}
}

/************************************************************************
//Ajoute le code sur tous les objets à suivre avec google analytics
/************************************************************************/
function initGoogleAnalytics() {
		
	//Suivi carroussel accueil
	if ($("div").is("#carousel")) {
		var catCarous = "Accueil_carroussel";		
		//On ajoute l'evenement clic sur chaque lien...
		$("#carousel a").live('click', function() {	
			var nameEventCarous = $(this).parentsUntil('li').find('h2').html();				
			saveStats(catCarous, 'savoir_plus', nameEventCarous);	
		});						
	}	
	
	//Suivi encart nouvelles
	if ($("div").is(".accueilNouvelle")) {		
		var catNews = "Accueil_nouvelles";		
		//On ajoute l'evenement clic sur chaque lien...
		$(".encartNouvelle a").live('click', function() {	
			var nameEventNews = $(this).attr('href');							
			saveStats(catNews, 'savoir_plus', nameEventNews);	
		});
		$("#encartNouvelleAfficher span.libelle, #encartNouvelleAfficher img").live('click', function() {	
			if ($(this).parent().find('img').attr("src").indexOf('bt_ouvrir') != -1) {													
				saveStats(catNews, 'plus_nouvelles');				
			}				
		});								
	}	
	
	//Suivi evenements en accueil et en resultats de recherche		
	if ($("div").is(".encadreEvenement")) {
	
		var catEvent;
		$("div").is(".encadreEvenement_recherche") ? catEvent = "Recherche" : catEvent = "Accueil_evenements";
					
		$(".encadreEvenement").each(function(index) {	
			var nameSelectedEvent = $(this).find('h2').html() + "_" + _langue;	
							
			//Clic sur image de l'evenement					
			var eventImage = $(this).find(".encadreEvenement_desc img:first");				
			eventImage.live('click', function() {				
				saveStats(catEvent, 'image', nameSelectedEvent);					
			});		
			
			//Clic sur le titre de l'evenement
			var eventTitre = $(this).find(".encadreEvenement_desc h2");				
			eventTitre.live('click', function() {				
				saveStats(catEvent, 'titre', nameSelectedEvent);				
			});	
			
			//Clic sur bouton commentaire de l'evenement
			var eventCommentaire = $(this).find(".texteEvenement_comments img");					
			eventCommentaire.live('click', function() {				
				saveStats(catEvent, 'commentaire', nameSelectedEvent);					
			});			
			
			//Clic sur lien En savoir plus de l'evenement
			var eventSavoirPlus = $(this).find(".texteEvenement a.symbole");					
			eventSavoirPlus.live('click', function() {				
				saveStats(catEvent, 'savoir_plus', nameSelectedEvent);					
			});	
							
			//Clic sur lien Ajouter au calendrier de l'evenement
			var eventCalendrier = $(this).find(".lienAjouterCal img, .lienAjouterCal span");					
			eventCalendrier.live('click', function() {				
				saveStats(catEvent, 'ajouter_calendrier', nameSelectedEvent);					
			});																							
			
		});				
		
		//On ajoute l'evenement clic sur chaque lien...
		$("#expandEvents span.libelle, #expandEvents img").live('click', function() {
			if ($(this).parent().find('img').attr("src").indexOf('bt_ouvrir') != -1) {													
				saveStats(catEvent, 'tous_evenement', _langue);				
			}
		});						
	}	
	
	//Bouton Recherche appuyé
	if ($("img").is("#submitRecherche")) {
		$("#submitRecherche").live('click', function() {															
			saveStats('Recherche', 'outils_recherche', _langue);						
		});	
	}		
	
	//Suivi de la fiche d'un evenement
	if ($("div").is("#ficheEvent")) {
		var myFiche = $("#ficheEvent");
		var catFicheEvent = "evenement";
		var ficheEventName = $(myFiche).find('h1').html() + "_" + _langue;
		
		//Clic sur nombre de commentaires dans la fiche de l'evenement
		var nombre_commentaires = $(myFiche).find(".ficheComments img");					
		nombre_commentaires.live('click', function() {				
			saveStats(catFicheEvent, 'nombre_commentaires', ficheEventName);					
		});		
		
		//Clic sur le bouton d'impression dans la fiche de l'evenement
		var outils_imprimer = $(myFiche).find(".btnImprimer img");					
		outils_imprimer.live('click', function() {				
			saveStats(catFicheEvent, 'outils_imprimer', ficheEventName);					
		});					
		
		//Clic sur le bouton de partage (courriel) dans la fiche de l'evenement
		var outils_courriel = $(myFiche).find("img.partageMail");					
		outils_courriel.live('click', function() {				
			saveStats(catFicheEvent, 'outils_courriel', ficheEventName);					
		});	
		
		//Clic sur le bouton de partage twitter dans la fiche de l'evenement
		var outils_twitter = $(myFiche).find("a.partageTwitter img");					
		outils_twitter.live('click', function() {				
			saveStats(catFicheEvent, 'outils_twitter', ficheEventName);					
		});				
		
		//Clic sur le bouton d'ajout au calendrier dans la fiche de l'evenement
		var outils_calendrier = $(myFiche).find("div.lienAjouterCal img, div.lienAjouterCal span");					
		outils_calendrier.live('click', function() {				
			saveStats(catFicheEvent, 'outils_calendrier', ficheEventName);					
		});				
		
		//Clic sur le bouton commenter dans la fiche de l'evenement
		var outils_commenter = $(myFiche).find("div.lienCommenter img, div.lienCommenter span");					
		outils_commenter.live('click', function() {				
			saveStats(catFicheEvent, 'outils_commenter', ficheEventName);	
			location.href=location.href+"#blocCommentaires";
		});		
		
		//Clic sur la publicité dans la fiche de l'evenement
		var publicite = $(myFiche).find("div#encartBigBox a");					
		publicite.live('click', function() {				
			saveStats(catFicheEvent, 'publicite', $(publicite).attr('href'));				
		});		
		
		//Clic sur le lien "consulter la carte" la fiche de l'evenement
		var consulter_carte = $(myFiche).find("div#encartMap a");					
		consulter_carte.live('click', function() {				
			saveStats(catFicheEvent, 'consulter_carte', ficheEventName);				
		});		
		
		//Clic sur la gallerie de la fiche de l'evenement
		var gallerie = $(myFiche).find("div#zonepromo .promo");					
		gallerie.live('click', function() {				
			saveStats(catFicheEvent, 'gallerie', $(this).find('img').attr('src') + "_" + _langue);				
		});	
		
		//Clic sur le lien "planifier séjour" de la fiche de l'evenement
		var planifier_sejour_lien = $(myFiche).find("div#blocPlanifierSejour a");					
		planifier_sejour_lien.live('click', function() {				
			saveStats(catFicheEvent, 'planifier_sejour_lien', ficheEventName);				
		});		
		
		//Suivi de la section "vous aimerez découvrir" de la fiche de l'evenement	
		var suggestion = $(myFiche).find('div#fondVousAimerez a');
		suggestion.live('click', function() {										
			saveStats(catFicheEvent, 'suggestion', $(this).attr('href'));				
		});										
		
		//Suivi Clic sur le bouton publier commentaire de la fiche de l'evenement					
		$("input#createcomment").live('click', function() {						
			saveStats('evenement', 'publier_commentaire', ficheEventName);				
		});									
		
		//Suivi de la section "vous aimerez découvrir" de la fiche de l'evenement	
		var lien_externe_lien = $(myFiche).find('div#blocEnSavoirPlus a');
		lien_externe_lien.live('click', function() {										
			saveStats(catFicheEvent, 'lien_externe_lien', ficheEventName);				
		});									
			
	}			
				
	//Suivi du lien "participer" dans la page à gagner
	if ($("div").is("div#gagner")) {	
		$("p.lienParticiper a").live('click', function() {										
			saveStats("a_gagner", 'lien_participer', _langue);				
		});								
	}
	
	//Suivi du lien "soumettre" dans la page commandites
	if ($("div").is("div#boutonHolder")) {	
		$("div#boutonHolder div.bouton a").live('click', function() {										
			saveStats("commandites", 'lien_soumission', _langue);				
		});								
	}
	
	//Suivi du lien "consulterliste" dans la page a propos
	if ($("div").is("div#apropos")) {	
		$("a.surligne").live('click', function() {										
			saveStats("apropos", 'consulterliste', _langue);				
		});								
	}		

}

//*********************************************************
//Fonction générique pour le suivi d'événement dans GA
//Params: categorie(obligatoire), action(obligatoire), label(optionnel)
//Les paramètres correspondent à l'arborescence des événements dans GA:
//le label x sous l'action y de la catégorie z (voir GA)
//.
//**********************************************************
function saveStats(categorie, action, label) {	 
	
	if (typeof pageTracker != "undefined") {
		
		if (typeof(label) != "undefined") {		
			pageTracker._trackEvent(categorie, action, label);
			//alert(action);
		} else {		
			pageTracker._trackEvent(categorie, action);
			//alert(label);
		}		
		
	}    	
}



//*********************************************************
// Fonctions nécessaires pour repositionner le Background principal
// lorsqu'on diminue la fenêtre
//*********************************************************

function largeur_fenetre() {
	if (window.innerWidth) return window.innerWidth;
	else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
	else return 0;
}

function hauteur_fenetre() {
	if (window.innerHeight) return window.innerWidth;
	else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
	else return 0;
}

function moveBackground() {
	var backg = document.getElementById("background");
	if (largeur_fenetre() < 980) {
		backg.style.backgroundPosition = "-520px top";
		backg.style.width = "960px";
	} else {
		backg.style.backgroundPosition = "center top";
		backg.style.width = "100%";
	}
}

window.onresize = moveBackground;
window.onload = moveBackground;
$(document).ready( function () {
	moveBackground();
});	
