﻿//var serviceUrl = "http://localhost/Synexie.SyTags.MobileServices/VarEnFeteService.svc/";
var serviceUrl = "http://www.visitvar.fr/MobileServices/VarEnFeteService.svc/";

//Pages
var splashVEF,splashPortail,portail,appli,vef,content;
//Ecrans
var ecrans,listeEvenements,detailEvenement,selectLieu,lieuContent,selectThemes,selectLieuTerritoire,selectLieuCommune,selectLieuCarte,selectDates;
//Menu
var header,menu,menus,menuLieu,menusLieu,evenements,themes,lieux,dates,favoris;
//Elements interface
var titre,loader,slider;
var btnPortail,btnVEF,btnCarnet,btnBack,titreBack,btnNext,btnSearch,btnLoc;
var detailEvent,detailEventAlternate;
var mapdiv,localisation;

/////////////////////////
//Variables pour le code
var canHidePortailSplash = false;
var idxUneEvent = 0;
var pageCount = 25;
var currentPageIdx = 1;
var totalPage = 1;
var totalCurrentListe = 0;
function getNextPageCount()
{
    nbCurrent = currentPageIdx * pageCount;
    if (nbCurrent > totalCurrentListe) return 0;
    else return Math.min(pageCount, totalCurrentListe - nbCurrent)
}
var alternate = false;

var currentSection = "EVENEMENTS"; //EVENEMENTS - THEMES - LIEUX - DATES - FAVORIS - permet de connaitre la section sélectionné
var evenementCurrentScreen = "LISTE"; //LISTE - DETAIL
var themesCurrentScreen = "THEMES"; //THEMES - LISTE - DETAIL
var lieuCurrentScreen = "TERRITOIRE";//TERRITOIRE - COMMUNE - CARTE
var territoireScreen = "TERRITOIRES" //TERRITOIRES - LISTE - DETAIL
var communesScreen = "COMMUNES" //COMMUNES - LISTE - DETAIL
var carteScreen = "MAP" //MAP - LISTE - DETAIL
var datesCurrentScreen = "DATES";//DATES - LISTE - DETAIL
var favorisCurrentScreen = "LISTE"; //LISTE - DETAIL

var listeUneEvent = []; 
var scrollUneEventPos = 0;
var pageIdxUne = 1;
var currentUneEvent;
var totalUneEvent = 0;
var processingUne = false;

var hasListeThemes = false;
var listeThemes = [];
var scrollThemesPos = 0;
var listeThemesEvent = [];
var scrollThemesEventPos = 0;
var pageIdxTheme = 1;
var currentThemes;
var currentThemesId;
var currentThemesEvent;
var totalThemesEvent = 0;
var processingThemes = false;

var hasListeTerritoires = false;
var listeTerritoires = [];
var scrollTerritoiresPos = 0;
var listeTerritoiresEvent = [];
var scrollTerritoiresEventPos = 0;
var pageIdxTerritoires = 1;
var currentTerritoires;
var currentTerritoiresId;
var currentTerritoiresEvent;
var totalTerritoiresEvent = 0;
var processingTerritoires = false;

var hasListeCommunes = false;
var listeCommunes = [];
var scrollCommunesPos = 0;
var listeCommunesEvent = [];
var scrollCommunesEventPos = 0;
var pageIdxCommunes = 1;
var currentCommunes;
var currentCommunesId;
var currentCommunesEvent;
var totalCommunesEvent = 0;
var processingCommunes = false;

var listeCarteEvent = [];
var scrollCarteEventPos = 0;
var pageIdxCarte = 1;
var currentCarteEvent;
var totalCarteEvent = 0;
var processingCarte = false;

var hasListeDates = false;
var listeDates = [];
var scrollDatesPos = 0;
var listeDatesEvent = [];
var scrollDatesEventPos = 0;
var pageIdxDates = 1;
var currentDates;
var currentDatesId;
var currentDatesEvent;
var totalDatesEvent = 0;
var processingDates = false;

var listeFavorisEvents = new Array();
var scrollFavorisEventsPos = 0;
var currentFavorisEvent; 

var isMenuChanging = false;;
var isListeStaticLoaded = true;
var cw;
var useragent = navigator.userAgent;    

var scbW = 0;
var mapInitialized = false;

$(document).ready(function()
{
    //Pages
    splashPortail = $('#splashPortail');
    portail = $('#portail');
    splashVEF = $('#splashVEF');
    content = $('#content');
    //Ecrans
    vef = $('#vef');
    ecrans = content.find('div.ecran');

    listeEvenements = $('#listeEvenements');
    listeEvenements.setTemplateElement("listeEventTemplate", [], { filter_data: false });
    detailEvenement = $('#detailEvenement');
    detailEvenement.setTemplateElement("detailEventTemplate", [], { filter_data: false });
    selectThemes = $('#selectThemes');
    selectThemes.setTemplateElement("listeThemesTemplate", [], { filter_data: false });
    selectLieu = $('#selectLieu');
    lieuContent = $('#lieuContent');
    selectLieuTerritoire = $('#selectLieuTerritoire');
    selectLieuTerritoire.setTemplateElement("listeTerritoiresTemplate", [], { filter_data: false });
    selectLieuCommune = $('#selectLieuCommune');
    selectLieuCommune.setTemplateElement("listeCommunesTemplate", [], { filter_data: false });
    selectLieuCarte = $('#selectLieuCarte');
    selectDates = $('#selectDates');
    selectDates.setTemplateElement("listeDatesTemplate", [], { filter_data: false });
    //Menu
    header = $('#header');
    menu = $('#menu');
    menus = $('#menu a');
    menus.click(menuClick);

    menuLieu = $('#menuLieu');
    menusLieu = $('#menuLieu a');
    menusLieu.click(menuLieuClick);

    //Elements interface
    detailEvent = $('#detailEvent');
    detailEventAlternate = $('#detailEventAlternate');
    detailEvent.setTemplateElement("uneTemplate", [], { filter_data: false });
    detailEventAlternate.setTemplateElement("uneTemplate", [], { filter_data: false });
	btnPortail = $('#btnPortail');
	btnPortail.click(function() { showPortail(); });
    btnBackUne = $('.backUne');
	btnBackUne.click(function() { moveUne(-1); });
    btnNextUne = $('.nextUne');  
    btnNextUne.click(function() { moveUne(1); });
    btnVEF = $('#btnVEF');
    btnVEF.click(showVEF);
    btnCarnet = $('#btnCarnet');

    titre = $('#titre');
    loader = $('#loader');
    btnBack = $('#btnBack');
    btnBack.click(goBack);
    titreBack = $('#center');
    btnSearch = $('#btnSearch');
    btnSearch.click(GetEventsByDistance);
    btnLoc = $('#btnLoc');
    btnLoc.click(GeolocMe);
    slider = $('#slider');
    slider.slider({
        value: 5,
        range: "min",
        min: 0,
        max: 50,
        step: 1,
        slide: function(event, ui)
        {
            $("#distance").html(ui.value);
            drawCircle();
        }
    });

    mapdiv = $('#map_canvas');

    GetUneEvents();
    scbW = scrollbarWidth();
	detectBrowser();
    $(window).resize(doLayout);
	detectBrowser();
    doLayout();
    setTimeout(SplashPortailTimeoutEnded, 1500);
});

function getCurrentPath()
{
	if(selectLieu.is(':visible'))
	{
	    return currentSection+":"+lieuCurrentScreen;
	}
	else
	{
	    return currentSection;
	}
}

function scrollbarWidth() {
    var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>');
    //<div style="height:100px;">
    // Append our div, do our calculation and then remove it 
    $('body').append(div); 
    var w1 = $('div', div).innerWidth(); 
    div.css('overflow-y', 'scroll'); 
    var w2 = $('div', div).innerWidth(); 
    $(div).remove(); 
    return (w1 - w2); 
}


function doLayout()
{		
		
	widthPage = Math.max(1008,$(window).width());
	heightPage = $(window).height();	
	var heightContent = (isIphone && ((heightPage <= 356 && heightPage > 300) || (heightPage <= 208)) )? (heightPage-38):(heightPage-98);
	//On limite la zone central que si l'ecran est capable d'afficher au moins un item de la liste
	var curentVisibleScreen = ecrans.filter(':visible');
	if(curentVisibleScreen.length > 0)
	{
		heightContent = Math.max(curentVisibleScreen[0].scrollHeight,heightContent);
		lieuContent.css('height',heightContent).css('overflow','auto');
		if(menuLieu.is(':visible'))
		{
			if(selectLieuCarte.is(':visible'))
			{
				mapdiv.css('width',content.width());
				mapdiv.css('height',heightContent-105);					
				lieuContent.css('overflow','hidden');					
			}
			content.css('height',heightContent+29).css('overflow','auto');
		}
		else
		{			
			content.css('height',heightContent).css('overflow','auto');			
		}
	}			
	cw = content.width();
	//$(window).scrollTop(1);
}


/************************/
/*Menu*/
function menuLieuClick()
{
	selectMenuLieu($(this).attr('rel'));
	doLayout();
}

function selectMenuLieu(sectionLieu)
{
	if(!isMenuChanging && isListeStaticLoaded)
	{
		isMenuChanging = true;
		var changeScreen = lieuCurrentScreen != sectionLieu;		
		menusLieu.removeClass('selected')		
		menusLieu.filter('[rel|='+sectionLieu+']').addClass('selected');
		if(changeScreen)
		{
			lieuCurrentScreen = sectionLieu;
			updateBackButton();
			lieuContent.find('div.ecran').hide();			
			if(lieuCurrentScreen == "CARTE")
			{
				if(carteScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentCarteEvent);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else if(carteScreen == "LISTE")
				{
				    currentPageIdx = pageIdxCarte;
				    totalPage = Math.ceil(totalCarteEvent / pageCount);
				    totalCurrentListe = totalCarteEvent;
					listeEvenements.processTemplate(listeCarteEvent[pageIdxCarte]);
					$('.listeEventItem').click(showDetail);
					$('#next').click(function() { NavigateEventsByDistance(1); });
					$('#prev').click(function() { NavigateEventsByDistance(-1); });
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollCarteEventPos);
													});
				}				 
				else //MAP
				{
					if(!mapInitialized)
					{
						mapInitialized = true;
						initializeMap();
					}
					selectLieuCarte.fadeIn('medium',function(){isMenuChanging = false;});
				}
			}	
			else if(lieuCurrentScreen == "COMMUNE")
			{
				if(communesScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentCommunesEvent[currentCommunesId][pageIdxCommunes]);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else if(communesScreen == "LISTE")
				{
				    currentPageIdx = pageIdxCommunes;
				    totalPage = Math.ceil(totalCommunesEvent / pageCount);
				    totalCurrentListe = totalCommunesEvent;
					listeEvenements.processTemplate(listeCommunesEvent);
					$('.listeEventItem').click(showDetail);
					$('#next').click(function() { NavigateEventsByCommune(1); });
					$('#prev').click(function() { NavigateEventsByCommune(-1); });
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollCommunesEventPos);
													});
				}				 
				else //COMMUNES
				{					
					if(!hasListeCommunes) GetCommunes();
					selectLieuCommune.fadeIn('medium',function()
													{
													    isMenuChanging = false;
														$(window).scrollTop(scrollCommunesPos);
													});
				}
			}
			else if(lieuCurrentScreen == "TERRITOIRE")
			{
				if(territoireScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentTerritoiresEvent);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else if(territoireScreen == "LISTE")
				{
				    currentPageIdx = pageIdxTerritoires;
				    totalPage = Math.ceil(totalTerritoiresEvent / pageCount);
				    totalCurrentListe = totalTerritoiresEvent;
					listeEvenements.processTemplate(listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]);
					$('.listeEventItem').click(showDetail);
					$('#next').click(function() { NavigateEventsByTerritoire(1); });
					$('#prev').click(function() { NavigateEventsByTerritoire(-1); });
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollTerritoiresEventPos);
													});
				}				 
				else //TERRITOIRES
				{		
					selectLieuTerritoire.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollTerritoiresPos);
													});
				}
			}					
		}
		else
		{
			isMenuChanging = false;
		}
	}
}

function menuClick()
{
	selectMenu($(this).attr('rel'));	
	doLayout();
}

function selectMenu(section)
{
	if(!isMenuChanging && isListeStaticLoaded)
	{		
		isMenuChanging = true;
		var changeScreen = currentSection != section;			
		menus.parent().removeClass('selected')		
		menus.filter('[rel|='+section+']').parent().addClass('selected');
		if(changeScreen)
		{
			currentSection = section;
			updateBackButton();
			ecrans.hide();		
			selectLieu.hide();		
			if(currentSection == "EVENEMENTS")
			{						
				if(evenementCurrentScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentUneEvent);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else //LISTE
				{
				    currentPageIdx = pageIdxUne;
					totalPage = Math.ceil(totalUneEvent / pageCount);	
					totalCurrentListe = totalUneEvent;				
					listeEvenements.processTemplate(listeUneEvent[pageIdxUne]);
					$('.listeEventItem').click(showDetail);
					$('#next').click(function() { NavigateEventsUne(1); });
					$('#prev').click(function() { NavigateEventsUne(-1); });
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollUneEventPos);
													});
				}
			}
			else if(currentSection == "THEMES")
			{					
				
				if(themesCurrentScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentThemesEvent);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else if(themesCurrentScreen == "LISTE")
				{
				    currentPageIdx = pageIdxTheme;
				    totalPage = Math.ceil(totalThemesEvent / pageCount);			
				    totalCurrentListe = totalThemesEvent;		
					listeEvenements.processTemplate(listeThemesEvent[currentThemesId][pageIdxTheme]);
					$('.listeEventItem').click(showDetail);
					$('#next').click(function() { NavigateEventsByTheme(1); });
					$('#prev').click(function() { NavigateEventsByTheme(-1); });
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollThemesEventPos);
													});
				}
				else //THEMES
				{
					if(!hasListeThemes) GetThemes();
					selectThemes.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollThemesPos);
													});
				}
			}
			else if(currentSection == "LIEUX")
			{				
				if(lieuCurrentScreen == "CARTE")
				{	
					if(carteScreen == "DETAIL")
					{
						detailEvenement.processTemplate(currentCarteEvent);
						detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
					}
					else if(carteScreen == "LISTE")
					{
					    currentPageIdx = pageIdxCarte;
					    totalPage = Math.ceil(totalCarteEvent / pageCount);	
					    totalCurrentListe = totalCarteEvent;	
						listeEvenements.processTemplate(listeCarteEvent[pageIdxCarte]);
						$('.listeEventItem').click(showDetail);
						$('#next').click(function() { NavigateEventsByDistance(1); });
						$('#prev').click(function() { NavigateEventsByDistance(-1); });
						listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollCarteEventPos);
													});
					}					 
					else //MAP
					{
						selectLieu.fadeIn('medium');
						selectLieuCarte.fadeIn('medium',function(){isMenuChanging = false;});
					}
				}
				else if(lieuCurrentScreen == "COMMUNE")
				{
					if(communesScreen == "DETAIL")
					{
						detailEvenement.processTemplate(currentCommunesEvent);
						detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
					}
					else if(communesScreen == "LISTE")
					{
					    currentPageIdx = pageIdxCommunes;
					    totalPage = Math.ceil(totalCommunesEvent / pageCount);	
					    totalCurrentListe = totalCommunesEvent;	
						listeEvenements.processTemplate(listeCommunesEvent[currentCommunesId][pageIdxCommunes]);
						$('.listeEventItem').click(showDetail);
						$('#next').click(function() { NavigateEventsByCommune(1); });
						$('#prev').click(function() { NavigateEventsByCommune(-1); });
						listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollCommunesEventPos);
													});
					}					 
					else //COMMUNES
					{		
						selectLieu.fadeIn('medium');
						selectLieuCommune.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollCommunesPos);
													});
					}
				}				 
				else //TERRITOIRE
				{
					
					if(territoireScreen == "DETAIL")
					{
						detailEvenement.processTemplate(currentTerritoiresEvent);
						detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
					}
					else if(territoireScreen == "LISTE")
					{
					    currentPageIdx = pageIdxTerritoires;
					    totalPage = Math.ceil(totalTerritoiresEvent / pageCount);	
					    totalCurrentListe = totalTerritoiresEvent;	
						listeEvenements.processTemplate(listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]);
						$('.listeEventItem').click(showDetail);
						$('#next').click(function() { NavigateEventsByTerritoire(1); });
						$('#prev').click(function() { NavigateEventsByTerritoire(-1); });
						listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollTerritoiresEventPos);
													});
					}
					else //TERRITOIRES
					{		
						selectLieu.fadeIn('medium');
						if(!hasListeTerritoires) GetTerritoires();
						selectLieuTerritoire.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollTerritoiresPos);
													});
					}
				}
				
			}
			else if(currentSection == "DATES")
			{
				if(datesCurrentScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentDatesEvent);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else if(datesCurrentScreen == "LISTE")
				{
				    currentPageIdx = pageIdxDates;
				    totalPage = Math.ceil(totalDatesEvent / pageCount);	
				    totalCurrentListe = totalDatesEvent;
					listeEvenements.processTemplate(listeDatesEvent[currentDatesId][pageIdxDates]);
					$('.listeEventItem').click(showDetail);
					$('#next').click(function() { NavigateEventsByDate(1); });
					$('#prev').click(function() { NavigateEventsByDate(-1); });
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollDatesEventPos);
													});
				}				 
				else //DATES
				{		
					if(!hasListeDates) GetDates();
					selectDates.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollDatesPos);
													});
				}
			}
			else if(currentSection == "FAVORIS")
			{
				if(favorisCurrentScreen == "DETAIL")
				{
					detailEvenement.processTemplate(currentFavorisEvent);
					detailEvenement.fadeIn('medium',function(){isMenuChanging = false;});
				}
				else //LISTE
				{
					listeEvenements.processTemplate(listeFavorisEvents);
					$('.listeEventItem').click(showDetail);
					listeEvenements.fadeIn('medium',function()
													{
														isMenuChanging = false;
														$(window).scrollTop(scrollFavorisEventsPos);
													});
				}
			}		
		}
		else
		{
			isMenuChanging = false;
		}
	}
}

/************************/
/*Ecrans listeEvenements*/

function GetUneEvents()
{		
	if(!processingUne)
	{
		loader.show(0);
		pageIdxUne = 1;
		currentPageIdx = pageIdxUne;
		processingUne = true;
		$.getJSON(serviceUrl+'GetUneEvents?count='+pageCount+'&page='+pageIdxUne+'&method=?', GetUneEventsResult);				
		evenementCurrentScreen = "LISTE";	
		updateBackButton();
	}
}


function NavigateEventsUne(offset)
{
    if (!processingUne)
    {
        pageIdxUne += offset;
        currentPageIdx = pageIdxUne;
        scrollUneEventPos = 0;
		$(window).scrollTop(0);
        if (listeUneEvent[pageIdxUne])
        {
            totalPage = Math.ceil(totalUneEvent / pageCount);
            totalCurrentListe = totalUneEvent;
            listeEvenements.processTemplate(listeUneEvent[pageIdxUne]);
            $('.listeEventItem').click(showDetail);
            $('#next').click(function() { NavigateEventsUne(1); });
            $('#prev').click(function() { NavigateEventsUne(-1); });
            doLayout();
        }
        else
        {
            processingUne = true;
            loader.show(0);         
            $.getJSON(serviceUrl+'GetUneEvents?count='+pageCount+'&page='+pageIdxUne+'&method=?', NavigateUneEventsResult);
        }
    }
}

function GetUneEventsResult(result)
{
    totalUneEvent = result.count;
    listeUneEvent[pageIdxUne] = result.liste;
    processingUne = false;
    loader.hide();
    //Affiche l'ecran du portail avec les événements
    if (canHidePortailSplash)
    {
		splashPortail.hide();
        portail.show();        
    }
    else {canHidePortailSplash = true; }
    if (listeUneEvent[1].length > 0)
    {
        detailEvent.processTemplate(listeUneEvent[1][idxUneEvent]);
		$('.btnDetailEvent').click(showDetailFromHome);
        btnBackUne.show();
        btnNextUne.show();
    }
}

function SplashPortailTimeoutEnded()
{
    if (canHidePortailSplash)
    {
		splashPortail.hide();
        portail.show(0);        
    }
    else { canHidePortailSplash = true; }
}
 
function moveUne(offset)
{
    alternate = !alternate;
    idxUneEvent += offset;
    if (idxUneEvent < 0) idxUneEvent += listeUneEvent[1].length;
    if (alternate)
    {
        detailEventAlternate.processTemplate(listeUneEvent[1][idxUneEvent % listeUneEvent[1].length]);
		$('.btnDetailEvent').click(showDetailFromHome);
        detailEvent.animate({ left: -526 * offset + 'px' }, "medium");
        detailEventAlternate.show().css("left", 526 * offset + "px").animate({ left: "5px" }, "medium");
    }
    else
    {
        detailEvent.processTemplate(listeUneEvent[1][idxUneEvent % listeUneEvent[1].length]);
		$('.btnDetailEvent').click(showDetailFromHome);
        detailEventAlternate.animate({ left: -526 * offset + 'px' }, "medium");
        detailEvent.show().css("left", 526 * offset + "px").animate({ left: "5px" }, "medium");
    }
}

function showPortail()
{
	vef.hide();
	portail.show(0); 
}

function showVEF()
{
    setTimeout(startVEF, 1500);
    splashVEF.show(0);
    portail.hide();   
}

function startVEF()
{
    splashVEF.hide();
	NavigateEventsUne(0);
    vef.show(0);
    doLayout();
}

function NavigateUneEventsResult(result)
{
    totalUneEvent = result.count;
    totalPage = Math.ceil(totalUneEvent / pageCount);
    totalCurrentListe = totalUneEvent;
	listeUneEvent[pageIdxUne] = result.liste;	
	processingUne = false;
	loader.hide();	
	listeEvenements.processTemplate(listeUneEvent[pageIdxUne]);
	$('.listeEventItem').click(showDetail);
	$('#next').click(function() { NavigateEventsUne(1); });
	$('#prev').click(function() { NavigateEventsUne(-1); });		
	doLayout();
}

function showDetailFromHome()
{
	pageIdxUne = 1;
	NavigateEventsUne(0);
	portail.hide();
    vef.show(0);	
	doLayout();
	var id = $(this).attr('rel');
	$('.listeEventItem[rel='+id+']').trigger('click');
}

/************************/
/*Ecrans listeThemes*/
function GetThemes()
{	
	if(!hasListeThemes)
	{
		loader.show(0);
		hasListeThemes = true;
		$.getJSON(serviceUrl+'GetMetaCategories?method=?',GetThemesResult);
	}
}

function GetThemesResult(result)
{		
	loader.hide();
	listeThemes = result;	
	selectThemes.processTemplate(listeThemes);		
	doLayout();
	selectThemes.find('a').click(GetEventsByTheme);
}

function GetEventsByTheme()
{	
	if(!processingThemes)
	{
	    scrollThemesPos = $(window).scrollTop();
	    scrollThemesEventPos = 0;
		$(window).scrollTop(0);
		currentThemes = $(this).find('span.name').html();
		currentThemesId = $(this).attr('rel');
		totalThemesEvent = $(this).find('span.count').html();
		totalPage = Math.ceil(totalThemesEvent / pageCount);
		totalCurrentListe = totalThemesEvent;
		pageIdxTheme = 1;
		currentPageIdx = pageIdxTheme;
		
		if(!listeThemesEvent[currentThemesId] || !listeThemesEvent[currentThemesId][pageIdxTheme])	
		{
			processingThemes = true;
			loader.show(0);
			$.getJSON(serviceUrl+'GetEventsByMetaCategorie?metaCategorieId='+currentThemesId+'&count='+pageCount+'&page='+pageIdxTheme+'&method=?', GetEventsByThemeResult);
		}
		
		//realise l'animation	
		selectThemes.animate({left:-cw},'medium',function(){$(this).hide().css('left',0)});
		if(processingThemes)
		{
		    totalPage = 1;
		    listeEvenements.processTemplate([]);
		    totalPage = Math.ceil(totalThemesEvent / pageCount);		
		}
		else
		{
			listeEvenements.processTemplate(listeThemesEvent[currentThemesId][pageIdxTheme]);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByTheme(1); });
			$('#prev').click(function() { NavigateEventsByTheme(-1); });
		}
		listeEvenements.css('left',cw).show(0).animate({left:'0'},'medium');
		themesCurrentScreen = "LISTE";	
		updateBackButton();
		doLayout();
	}
}

function NavigateEventsByTheme(offset)
{
    if (!processingThemes)
    {
        pageIdxTheme += offset;
        currentPageIdx = pageIdxTheme;
        scrollThemesEventPos = 0;
		$(window).scrollTop(0);
        if (listeThemesEvent[currentThemesId] && listeThemesEvent[currentThemesId][pageIdxTheme])
        {
            listeEvenements.processTemplate(listeThemesEvent[currentThemesId][pageIdxTheme]);
            $('.listeEventItem').click(showDetail);
            $('#next').click(function() { NavigateEventsByTheme(1); });
            $('#prev').click(function() { NavigateEventsByTheme(-1); });
            doLayout();
        }
        else
        {
            processingThemes = true;
            loader.show(0);
            $.getJSON(serviceUrl + 'GetEventsByMetaCategorie?metaCategorieId=' + currentThemesId + '&count=' + pageCount + '&page=' + pageIdxTheme + '&method=?', GetEventsByThemeResult);
        }
    }
}

function GetEventsByThemeResult(result)
{    
	if(listeThemesEvent[currentThemesId])
	{
		listeThemesEvent[currentThemesId][pageIdxTheme] = result;	
	}
	else
	{
		listeThemesEvent[currentThemesId] = [];	
		listeThemesEvent[currentThemesId][pageIdxTheme] = result;			
	}	
	processingThemes = false;
	loader.hide();
	listeEvenements.processTemplate(listeThemesEvent[currentThemesId][pageIdxTheme]);
	$('.listeEventItem').click(showDetail);
	$('#next').click(function() { NavigateEventsByTheme(1); });
	$('#prev').click(function() { NavigateEventsByTheme(-1); });
	doLayout();
}

/************************/
/*Ecrans listeTerritoire*/
function GetTerritoires()
{	
	if(!hasListeTerritoires)
	{
		loader.show(0);
		hasListeTerritoires = true;
		$.getJSON(serviceUrl+'GetTerritoires?method=?',GetTerritoiresResult);
	}
}

function GetTerritoiresResult(result)
{		
	loader.hide();
	listeTerritoires = result;	
	selectLieuTerritoire.processTemplate(listeTerritoires);	
	doLayout();
	selectLieuTerritoire.find('a').click(GetEventsByTerritoire);
}

function GetEventsByTerritoire()
{	
	if(!processingTerritoires)
	{
	    scrollTerritoiresPos = $(window).scrollTop();
	    scrollTerritoiresEventPos = 0;
		$(window).scrollTop(0);
		currentTerritoires = $(this).find('span.name').html();
		currentTerritoiresId = $(this).attr('rel');
		totalTerritoiresEvent = $(this).find('span.count').html();
		totalPage = Math.ceil(totalTerritoiresEvent / pageCount);
		totalCurrentListe = totalTerritoiresEvent;
		pageIdxTerritoires = 1;
		currentPageIdx = pageIdxTerritoires;
		
		var getTerritoire = false;
		if(!listeTerritoiresEvent[currentTerritoiresId] || !listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires])	
		{
			processingTerritoires = true;
			loader.show(0);
			$.getJSON(serviceUrl+'GetEventsByTerritoire?territoireId='+currentTerritoiresId+'&count='+pageCount+'&page='+pageIdxTerritoires+'&method=?', GetEventsByTerritoireResult);
		}
		
		//realise l'animation	
		selectLieu.animate({left:-cw},'medium',function(){$(this).hide().css('left',0)});
		if(processingTerritoires)
		{
		    totalPage = 1;
		    listeEvenements.processTemplate([]);
		    totalPage = Math.ceil(totalTerritoiresEvent / pageCount);		
		}
		else
		{
			listeEvenements.processTemplate(listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByTerritoire(1); });
			$('#prev').click(function() { NavigateEventsByTerritoire(-1); });
		}
		listeEvenements.css('left',cw).show(0).animate({left:'0'},'medium');
		territoireScreen = "LISTE";	
		updateBackButton();
		doLayout();
	}
}

function NavigateEventsByTerritoire(offset)
{
    if (!processingTerritoires)
    {
        pageIdxTerritoires += offset;
        currentPageIdx = pageIdxTerritoires;
        scrollTerritoiresEventPos = 0;
        $(window).scrollTop(0);

        if (listeTerritoiresEvent[currentTerritoiresId] && listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires])
        {
            listeEvenements.processTemplate(listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]);
            $('.listeEventItem').click(showDetail);
            $('#next').click(function() { NavigateEventsByTerritoire(1); });
            $('#prev').click(function() { NavigateEventsByTerritoire(-1); });
            doLayout();
        }
        else
        {
            processingTerritoires = true;
            loader.show(0);
            $.getJSON(serviceUrl + 'GetEventsByTerritoire?territoireId=' + currentTerritoiresId + '&count=' + pageCount + '&page=' + pageIdxTerritoires + '&method=?', GetEventsByThemeResult);
        }
    }
	
}

function GetEventsByTerritoireResult(result)
{		
	if(listeTerritoiresEvent[currentTerritoiresId])
	{
		listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires] = result;	
	}
	else
	{
		listeTerritoiresEvent[currentTerritoiresId] = [];	
		listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires] = result;	
	}	
	processingTerritoires = false;
	loader.hide();
	listeEvenements.processTemplate(listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]);
	$('.listeEventItem').click(showDetail);
	$('#next').click(function() { NavigateEventsByTerritoire(1); });
	$('#prev').click(function() { NavigateEventsByTerritoire(-1); });
	doLayout();
}


/************************/
/*Ecrans listeCommunes*/
function GetCommunes()
{	
	if(!hasListeCommunes)
	{
		loader.show(0);
		hasListeCommunes = true;
		$.getJSON(serviceUrl+'GetCommunes?method=?',GetCommunesResult);
	}
}

function GetCommunesResult(result)
{		
	loader.hide();
	listeCommunes = result;	
	selectLieuCommune.processTemplate(listeCommunes);	
	doLayout();
	selectLieuCommune.find('a').click(GetEventsByCommune);
}

function GetEventsByCommune()
{	
	if(!processingCommunes)
	{
	    scrollCommunesPos = $(window).scrollTop();
	    scrollCommunesEventPos = 0;
	    $(window).scrollTop(0);
		currentCommunes = $(this).find('span.name').html();
		currentCommunesId = $(this).attr('rel');
		totalCommunesEvent = $(this).find('span.count').html();
		totalPage = Math.ceil(totalCommunesEvent / pageCount);
		totalCurrentListe = totalCommunesEvent;
		pageIdxCommunes = 1;
		currentPageIdx = pageIdxCommunes;
		if(!listeCommunesEvent[currentCommunesId] || !listeCommunesEvent[currentCommunesId][pageIdxCommunes])	
		{
			processingCommunes = true;
			loader.show(0);
			$.getJSON(serviceUrl+'GetEventsByCommune?communeId='+currentCommunesId+'&count='+pageCount+'&page='+pageIdxCommunes+'&method=?', GetEventsByCommuneResult);
		}
		
		//realise l'animation		
		selectLieu.animate({left:-cw},'medium',function(){$(this).hide().css('left',0)});
		if(processingCommunes)
		{
		    totalPage = 1;
		    listeEvenements.processTemplate([]);
		    totalPage = Math.ceil(totalCommunesEvent / pageCount);	
		}
		else
		{
			listeEvenements.processTemplate(listeCommunesEvent[currentCommunesId][pageIdxCommunes]);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByCommune(1); });
			$('#prev').click(function() { NavigateEventsByCommune(-1); });
		}
		listeEvenements.css('left',cw).show(0).animate({left:'0'},'medium');
		communesScreen = "LISTE";	
		updateBackButton();
		doLayout();
	}
}

function NavigateEventsByCommune(offset)
{
    if (!processingCommunes)
    {
        pageIdxCommunes += offset;
        currentPageIdx = pageIdxCommunes;
        scrollCommunesEventPos = 0;
        $(window).scrollTop(0);
        if (listeCommunesEvent[currentCommunesId] && listeCommunesEvent[currentCommunesId][pageIdxCommunes])
        {
            listeEvenements.processTemplate(listeCommunesEvent[currentCommunesId][pageIdxCommunes]);
            $('.listeEventItem').click(showDetail);
            $('#next').click(function() { NavigateEventsByCommune(1); });
            $('#prev').click(function() { NavigateEventsByCommune(-1); });
            doLayout();
        }
        else
        {
            processingCommunes = true;
            loader.show(0);
            $.getJSON(serviceUrl + 'GetEventsByCommune?communeId=' + currentCommunesId + '&count=' + pageCount + '&page=' + pageIdxCommunes + '&method=?', GetEventsByCommuneResult);
        }
    }
}

function GetEventsByCommuneResult(result)
{				
	if(listeCommunesEvent[currentCommunesId])
	{
		listeCommunesEvent[currentCommunesId][pageIdxCommunes] = result;	
	}
	else
	{
		listeCommunesEvent[currentCommunesId] = [];	
		listeCommunesEvent[currentCommunesId][pageIdxCommunes] = result;	
	}	
	processingCommunes = false;
	loader.hide();
	listeEvenements.processTemplate(listeCommunesEvent[currentCommunesId][pageIdxCommunes]);
	$('.listeEventItem').click(showDetail);
	$('#next').click(function() { NavigateEventsByCommune(1); });
	$('#prev').click(function() { NavigateEventsByCommune(-1); });
	doLayout();
}


/************************/
/*Ecran Carte */
function GetEventsByDistance()
{
    if (!processingCarte)
	{
        processingCarte = true;
	    listeCarteEvent = new Array();
	    pageIdxCarte = 1;
	    currentPageIdx = pageIdxCarte;
		loader.show(0);
		$.getJSON(serviceUrl + 'GetEventsByDistance?longitude=' + marker.getPosition().lng() + '&latitude='+marker.getPosition().lat()+'&distance='+slider.slider("value")+'&count=' + pageCount + '&page=' + pageIdxCarte + '&method=?', GetEventsByDistanceResult);		
		
		//realise l'animation		
		selectLieu.animate({left:-cw},'medium',function(){$(this).hide().css('left',0)});
		if (processingCarte)
		{
		    totalPage = 1;
		    listeEvenements.processTemplate([]);		
		}
		else
		{
			listeEvenements.processTemplate(listeCarteEvent[pageIdxCarte]);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByDistance(1); });
			$('#prev').click(function() { NavigateEventsByDistance(-1); });
		}
		listeEvenements.css('left', cw).show(0).animate({ left: '0' }, 'medium');
		carteScreen = "LISTE";	
		updateBackButton();
		doLayout();
	}
}

function NavigateEventsByDistance(offset)
{
    if (!processingCarte)
    {
        pageIdxCarte += offset;
        currentPageIdx = pageIdxCarte;
        if (listeCarteEvent[pageIdxCarte])
        {
            listeEvenements.processTemplate(listeCarteEvent[pageIdxCarte]);
            $('.listeEventItem').click(showDetail);
            $('#next').click(function() { NavigateEventsByDistance(1); });
            $('#prev').click(function() { NavigateEventsByDistance(-1); });
            doLayout();
        }
        else
        {
            processingCarte = true;
            loader.show(0);
            $.getJSON(serviceUrl + 'GetEventsByDistance?longitude=' + marker.getPosition().lng() + '&latitude=' + marker.getPosition().lat() + '&distance=' + slider.slider("value") + '&count=' + pageCount + '&page=' + pageIdxCarte + '&method=?', GetEventsByDistanceResult);
        }
    }
}

function GetEventsByDistanceResult(result)
{
    totalCarteEvent = result.count;
    listeCarteEvent[pageIdxCarte] = result.liste;
    processingCarte = false;
	loader.hide();
	listeEvenements.processTemplate(listeCarteEvent[pageIdxCarte]);
	$('.listeEventItem').click(showDetail);
	$('#next').click(function() { NavigateEventsByDistance(1); });
	$('#prev').click(function() { NavigateEventsByDistance(-1); });
	doLayout();
}




/************************/
/*Ecrans listeDates*/
function GetDates()
{	
	if(!hasListeDates)
	{
		loader.show(0);
		hasListeDates = true;
		$.getJSON(serviceUrl+'GetPeriodes?method=?',GetDatesResult);
	}
}

function GetDatesResult(result)
{		
	loader.hide();
	listeDates = result;	
	selectDates.processTemplate(listeDates);	
	doLayout();
	selectDates.find('a').click(GetEventsByDate);
}

function GetEventsByDate()
{	
	if(!processingDates)
	{
	    scrollDatesPos = $(window).scrollTop();
	    scrollDatesEventPos = 0;
	    $(window).scrollTop(0);
		currentDates = $(this).find('span.name').html();
		currentDatesId = $(this).attr('rel');
		totalDatesEvent = $(this).find('span.count').html();
		totalPage = Math.ceil(totalDatesEvent / pageCount);
		totalCurrentListe = totalDatesEvent;
		pageIdxDates = 1;
		currentPageIdx = pageIdxDates;
		if(!listeDatesEvent[currentDatesId] || !listeDatesEvent[currentDatesId][pageIdxDates])	
		{
			processingDates = true;
			loader.show(0);
			$.getJSON(serviceUrl+'GetEventsByPeriode?periodId='+currentDatesId+'&count='+pageCount+'&page='+pageIdxDates+'&method=?', GetEventsByDateResult);
		}
		
		//realise l'animation		
		selectDates.animate({left:-cw},'medium',function(){$(this).hide().css('left',0)});
		if(processingDates)
		{
		    totalPage = 1;
		    listeEvenements.processTemplate([]);
		    totalPage = Math.ceil(totalDatesEvent / pageCount);		
		}
		else
		{
			listeEvenements.processTemplate(listeDatesEvent[currentDatesId][pageIdxDates]);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByDate(1); });
			$('#prev').click(function() { NavigateEventsByDate(-1); });
		}	
		listeEvenements.css('left',cw).show(0).animate({left:'0'},'medium');
		datesCurrentScreen = "LISTE";	
		updateBackButton();
		doLayout();
	}
}

function NavigateEventsByDate(offset)
{
    if (!processingDates)
    {
        pageIdxDates += offset;
        currentPageIdx = pageIdxDates;
        scrollDatesEventPos = 0;
        $(window).scrollTop(0);
        if (listeDatesEvent[currentDatesId] && listeDatesEvent[currentDatesId][pageIdxDates])
        {
            listeEvenements.processTemplate(listeDatesEvent[currentDatesId][pageIdxDates]);
            $('.listeEventItem').click(showDetail);
            $('#next').click(function() { NavigateEventsByDate(1); });
            $('#prev').click(function() { NavigateEventsByDate(-1); });
            doLayout();
        }
        else
        {
            processingDates = true;
            loader.show(0);
            $.getJSON(serviceUrl + 'GetEventsByCommune?periodId=' + currentDatesId + '&count=' + pageCount + '&page=' + pageIdxDates + '&method=?', GetEventsByDateResult);
        }
    }	
}

function GetEventsByDateResult(result)
{		
	if(listeDatesEvent[currentDatesId])
	{
		listeDatesEvent[currentDatesId][pageIdxDates] = result;	
	}
	else
	{
		listeDatesEvent[currentDatesId] = [];	
		listeDatesEvent[currentDatesId][pageIdxDates] = result;	
	}	
	processingDates = false;
	loader.hide();
	listeEvenements.processTemplate(listeDatesEvent[currentDatesId][pageIdxDates]);
	$('.listeEventItem').click(showDetail);
	$('#next').click(function() { NavigateEventsByDate(1); });
	$('#prev').click(function() { NavigateEventsByDate(-1); });
	doLayout();
}

/******************************/
/*Ecran Detail*/
function showDetail()
{	
	var id = $(this).attr('rel');
	if(currentSection == "EVENEMENTS")
	{
	    scrollUneEventPos = $(window).scrollTop();
		evenementCurrentScreen = "DETAIL";		
		currentUneEvent = findItem(id,listeUneEvent[pageIdxUne]);
		detailEvenement.processTemplate(currentUneEvent);
	}
	else if(currentSection == "THEMES")
	{
	    scrollThemesEventPos = $(window).scrollTop();
		themesCurrentScreen = "DETAIL";
		currentThemesEvent = findItem(id,listeThemesEvent[currentThemesId][pageIdxTheme]);
		detailEvenement.processTemplate(currentThemesEvent);
	}
	else if(currentSection == "LIEUX")
	{		
		if(lieuCurrentScreen == "CARTE")
		{
		    scrollCarteEventPos = $(window).scrollTop();
			carteScreen = "DETAIL";
			currentCarteEvent = findItem(id,listeCarteEvent[pageIdxCarte]);
			detailEvenement.processTemplate(currentCarteEvent);
		}
		else if(lieuCurrentScreen == "COMMUNE")
		{
		    scrollCommunesEventPos = $(window).scrollTop();
			communesScreen = "DETAIL";
			currentCommunesEvent = findItem(id,listeCommunesEvent[currentCommunesId][pageIdxCommunes]);
			detailEvenement.processTemplate(currentCommunesEvent);
		}
		else //TERRITOIRE
		{
		    scrollTerritoiresEventPos = $(window).scrollTop();
			territoireScreen = "DETAIL";
			currentTerritoiresEvent = findItem(id,listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]);
			detailEvenement.processTemplate(currentTerritoiresEvent);
		}		
	}
	else if(currentSection == "DATES")
	{
	    scrollDatesEventPos = $(window).scrollTop();
		datesCurrentScreen = "DETAIL";
		currentDatesEvent = findItem(id,listeDatesEvent[currentDatesId][pageIdxDates]);
		detailEvenement.processTemplate(currentDatesEvent);
	}
	else if(currentSection == "FAVORIS")
	{
	    scrollFavorisEventsPos = $(window).scrollTop();
		favorisCurrentScreen = "DETAIL";
		currentFavorisEvent = findItem(id,listeFavorisEvents);
		detailEvenement.processTemplate(currentFavorisEvent);
	}	
	detailEvenement.css('left',cw).show(0,function()
	{
		$(this).animate({left:'0'},'medium');
		listeEvenements.animate({left:-cw},'medium',function(){$(this).hide().css('left','0');doLayout();});	
		updateBackButton();
		$("a[rel*=lightbox]").lightbox();
		$(".addMemo").click(addToFavoris)
		$(".removeMemo").click(removeFromFavoris)
	});	
}

function addToFavoris()
{
	if(currentSection == "EVENEMENTS")
	{	
		listeFavorisEvents.push(currentUneEvent);
		detailEvenement.processTemplate(currentUneEvent);
	}
	else if(currentSection == "THEMES")
	{			
		listeFavorisEvents.push(currentThemesEvent);
		detailEvenement.processTemplate(currentThemesEvent);
	}
	else if(currentSection == "LIEUX")
	{				
		if(lieuCurrentScreen == "CARTE")
		{		
			listeFavorisEvents.push(currentCarteEvent);
			detailEvenement.processTemplate(currentCarteEvent);
		}
		else if(lieuCurrentScreen == "COMMUNE")
		{
			listeFavorisEvents.push(currentCommunesEvent);
			detailEvenement.processTemplate(currentCommunesEvent);
		}
		else //TERRITOIRE
		{
			listeFavorisEvents.push(currentTerritoiresEvent);
			detailEvenement.processTemplate(currentTerritoiresEvent);
		}		
	}
	else if(currentSection == "DATES")
	{
		listeFavorisEvents.push(currentDatesEvent);
		detailEvenement.processTemplate(currentDatesEvent);	
	}
	else if(currentSection == "FAVORIS")
	{
		listeFavorisEvents.push(currentFavorisEvent);
		detailEvenement.processTemplate(currentFavorisEvent);
	}
	$("a[rel*=lightbox]").lightbox();
	$(".addMemo").click(addToFavoris)
	$(".removeMemo").click(removeFromFavoris)
}

function removeFromFavoris()
{
	var id = $(this).attr('rel');
	var curIdx = 0;
	for(var idx in listeFavorisEvents)
	{		
		if(listeFavorisEvents[idx].EvenementId == id)
		{			
			listeFavorisEvents.splice(curIdx,1);
			if(currentSection == "EVENEMENTS")
			{	
				detailEvenement.processTemplate(currentUneEvent);
			}
			else if(currentSection == "THEMES")
			{			
				detailEvenement.processTemplate(currentThemesEvent);
			}
			else if(currentSection == "LIEUX")
			{				
				if(lieuCurrentScreen == "CARTE")
				{		
					detailEvenement.processTemplate(currentCarteEvent);
				}
				else if(lieuCurrentScreen == "COMMUNE")
				{
					detailEvenement.processTemplate(currentCommunesEvent);
				}
				else //TERRITOIRE
				{
					detailEvenement.processTemplate(currentTerritoiresEvent);
				}		
			}
			else if(currentSection == "DATES")
			{
				detailEvenement.processTemplate(currentDatesEvent);	
			}
			else if(currentSection == "FAVORIS") // impossible mais on sait jamais!!
			{
				detailEvenement.processTemplate(currentFavorisEvent);
			}
			$("a[rel*=lightbox]").lightbox();
			$(".addMemo").click(addToFavoris)
			$(".removeMemo").click(removeFromFavoris)
			return true;
		}
		curIdx++;
	}
	return false;
}

function findItem(id,collection)
{
	for(var idx in collection)
	{
		if(collection[idx].EvenementId == id)
		{
			return collection[idx];
		}
	}
	return null;
}

function formatAdresse(adresse)
{
	var ad = adresse.Adresse_L1;
	if(adresse.Adresse_L2.length > 0)
	{
		if(ad.length > 0) ad +=", ";
		ad += adresse.Adresse_L2;
	}
	if(adresse.Adresse_L3.length > 0)
	{
		if(ad.length > 0) ad +=", ";
		ad += adresse.Adresse_L3;
	}
	if(ad.length > 0) ad +=", ";
	ad += adresse.Adresse_CP+" "+adresse.Commune.CommuneName;	
	return ad;
}

function hasTel(adresseCol)
{
	for(var idx in adresseCol)
	{
		if(adresseCol[idx].Adresse_tel.length > 0) return true;
	}
	return false;
}

function getTel(adresseCol)
{
	var tel = "";
	for(var idx in adresseCol)
	{
		if(adresseCol[idx].Adresse_tel.length > 0)
		{
			if(adresseCol[idx].AdresseType.AdresseTypeName == "bookingAdress") return adresseCol[idx].Adresse_tel;
			else tel = adresseCol[idx].Adresse_tel
		}		
	}
	return tel;
}

function getFormatTel(adresseCol)
{
	var tel = getTel(adresseCol);
	if(tel.length == 10)
	{
		tel = tel.substr(0,2)+" "+tel.substr(2,2)+" "+tel.substr(4,2)+" "+tel.substr(6,2)+" "+tel.substr(8,2);	
	}
	return tel;
	 
}

function isInFavoris(id)
{
	for(var idx in listeFavorisEvents)
	{
		if(listeFavorisEvents[idx].EvenementId == id) return true;
	}
	return false;
}

function getClassMemo(id)
{	
	return isInFavoris(id)?"removeMemo":"addMemo";
}

function getLibMemo(id)
{
	return isInFavoris(id)?"Retirer des favoris":"Mémoriser l'événement";
}

/************************/
/*Gestion Back Button*/
function animeEcranDetailBack()
{
	$(this).animate({left:'0'},'medium');
	detailEvenement.animate({left:cw},'medium',function(){$(this).hide().css('left',0);doLayout();});
	updateBackButton();	
}
function animeEcranListeBack()
{
	$(this).animate({left:'0'},'medium');
	listeEvenements.animate({left:cw},'medium',function(){$(this).hide().css('left',0);doLayout();});
	updateBackButton();
}

function goBack()
{
	loader.hide();
	if(currentSection == "EVENEMENTS")
	{		
		if(evenementCurrentScreen == "DETAIL")
		{
		    evenementCurrentScreen = "LISTE";
			listeEvenements.processTemplate(listeUneEvent[pageIdxUne]).css('left', -cw).show(0, animeEcranDetailBack);
			$(window).scrollTop(scrollUneEventPos);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsUne(1); });
			$('#prev').click(function() { NavigateEventsUne(-1); });
		}
		else //LISTE
		{
			//do nothing
		}
	}
	else if(currentSection == "THEMES")
	{	
		if(themesCurrentScreen == "DETAIL")
		{
			themesCurrentScreen = "LISTE";
			listeEvenements.processTemplate(listeThemesEvent[currentThemesId][pageIdxTheme]).css('left', -cw).show(0, animeEcranDetailBack);
			$(window).scrollTop(scrollThemesEventPos);	
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByTheme(1); });
			$('#prev').click(function() { NavigateEventsByTheme(-1); });
		}
		else if(themesCurrentScreen == "LISTE")
		{
			themesCurrentScreen = "THEMES";
			selectThemes.css('left', -cw).show(0, animeEcranListeBack);
			$(window).scrollTop(scrollThemesPos);
		}		 
		else //THEMES
		{
			//do nothing
		}
	}
	else if(currentSection == "LIEUX")
	{		
		if(lieuCurrentScreen == "CARTE")
		{		
			if(carteScreen == "DETAIL")
			{
				carteScreen = "LISTE";
				listeEvenements.processTemplate(listeCarteEvent[pageIdxCarte]).css('left', -cw).show(0, animeEcranDetailBack);
				$(window).scrollTop(scrollCarteEventPos);
				$('.listeEventItem').click(showDetail);
				$('#next').click(function() { NavigateEventsByDistance(1); });
				$('#prev').click(function() { NavigateEventsByDistance(-1); });
			}
			else if(carteScreen == "LISTE")
			{
				carteScreen = "MAP";
				selectLieuCarte.show(0);
				selectLieu.css('left',-cw).show(0,animeEcranListeBack);
			}
			else //MAP
			{
				//do nothing
			}
		}
		else if(lieuCurrentScreen == "COMMUNE")
		{
			if(communesScreen == "DETAIL")
			{
				communesScreen = "LISTE";
				listeEvenements.processTemplate(listeCommunesEvent[currentCommunesId][pageIdxCommunes]).css('left', -cw).show(0, animeEcranDetailBack);
				$(window).scrollTop(scrollCommunesEventPos);
				$('.listeEventItem').click(showDetail);
				$('#next').click(function() { NavigateEventsByCommune(1); });
				$('#prev').click(function() { NavigateEventsByCommune(-1); });
			}
			else if(communesScreen == "LISTE")
			{
				communesScreen = "COMMUNES";	
				selectLieuCommune.show(0);
				selectLieu.css('left', -cw).show(0, animeEcranListeBack);
				$(window).scrollTop(scrollCommunesPos);				
			}
			else //COMMUNES
			{	
				//do nothing
			}
		}
		else //TERRITOIRE
		{
			if(territoireScreen == "DETAIL")
			{
				territoireScreen = "LISTE";
				listeEvenements.processTemplate(listeTerritoiresEvent[currentTerritoiresId][pageIdxTerritoires]).css('left', -cw).show(0, animeEcranDetailBack);
				$(window).scrollTop(scrollTerritoiresEventPos);
				$('.listeEventItem').click(showDetail);
				$('#next').click(function() { NavigateEventsByTerritoire(1); });
				$('#prev').click(function() { NavigateEventsByTerritoire(-1); });
			}
			else if(territoireScreen == "LISTE")
			{
				territoireScreen = "TERRITOIRES";
				selectLieuTerritoire.show(0);
				selectLieu.css('left', -cw).show(0, animeEcranListeBack);
				$(window).scrollTop(scrollTerritoiresPos);
			}
			else //TERRITOIRES
			{	
				//do nothing
			}
		}
		
	}
	else if(currentSection == "DATES")
	{
		if(datesCurrentScreen == "DETAIL")
		{
			datesCurrentScreen = "LISTE";
			listeEvenements.processTemplate(listeDatesEvent[currentDatesId][pageIdxDates]).css('left', -cw).show(0, animeEcranDetailBack);
			$(window).scrollTop(scrollDatesEventPos);
			$('.listeEventItem').click(showDetail);
			$('#next').click(function() { NavigateEventsByDate(1); });
			$('#prev').click(function() { NavigateEventsByDate(-1); });
		}
		else if(datesCurrentScreen == "LISTE")
		{
			datesCurrentScreen = "DATES";
			selectDates.css('left', -cw).show(0, animeEcranListeBack);
			$(window).scrollTop(scrollDatesPos);
		}
		else //DATES
		{	
			//do nothing
		}
	}
	else if(currentSection == "FAVORIS")
	{
		if(favorisCurrentScreen == "DETAIL")
		{
			favorisCurrentScreen = "LISTE";
			listeEvenements.processTemplate(listeFavorisEvents).css('left', -cw).show(0, animeEcranDetailBack);
			$(window).scrollTop(scrollFavorisEventsPos);
			$('.listeEventItem').click(showDetail);
		}
		else //LISTE
		{
			//do nothing
		}
	}	
}

function updateBackButton()
{
	if(currentSection == "EVENEMENTS")
	{		
		if(evenementCurrentScreen == "DETAIL")
		{
			titre.html("Détail");
			titreBack.html("Var en Fête");
			btnBack.show(0);
		}
		else //LISTE
		{
			titre.html("Var en Fête");
			titreBack.html("");
			btnBack.hide();
		}
	}
	else if(currentSection == "THEMES")
	{							
		if(themesCurrentScreen == "DETAIL")
		{
			titre.html("Détail");
			titreBack.html(currentThemes);
			btnBack.show(0);
		}
		else if(themesCurrentScreen == "LISTE")
		{			
			titre.html(currentThemes);
			titreBack.html("Thèmes");
			btnBack.show(0);
		}
		else //THEMES
		{
			titre.html("Thèmes");
			titreBack.html("");
			btnBack.hide();
		}
	}
	else if(currentSection == "LIEUX")
	{		
		if(lieuCurrentScreen == "CARTE")
		{	
			if(carteScreen == "DETAIL")
			{
				titre.html("Localisation");
				titreBack.html(currentCommunes);
				btnBack.show(0);
			}
			else if(carteScreen == "LISTE")
			{
				titre.html("Localisation");
				titreBack.html("Lieux");
				btnBack.show(0);
			}
			else //MAP
			{
				titre.html("Lieux");
				titreBack.html("");
				btnBack.hide();
			}
		}
		else if(lieuCurrentScreen == "COMMUNE")
		{
			if(communesScreen == "DETAIL")
			{
				titre.html("Détail");
				titreBack.html(currentCommunes);
				btnBack.show(0);
			}
			else if(communesScreen == "LISTE")
			{
				titre.html(currentCommunes);
				titreBack.html("Lieux");
				btnBack.show(0);
			}
			else //COMMUNES
			{		
				titre.html("Lieux");
				titreBack.html("");
				btnBack.hide();
			}
		}		 
		else //TERRITOIRE
		{
			if(territoireScreen == "DETAIL")
			{
				titre.html("Détail");
				titreBack.html(currentTerritoires);
				btnBack.show(0);
			}
			else if(territoireScreen == "LISTE")
			{
				titre.html(currentTerritoires);
				titreBack.html("Lieux");
				btnBack.show(0);
			}			 
			else //TERRITOIRES
			{	
				titre.html("Lieux");
				titreBack.html("");
				btnBack.hide();
			}
		}
		
	}
	else if(currentSection == "DATES")
	{
		if(datesCurrentScreen == "DETAIL")
		{
			titre.html("Détail");
			titreBack.html(currentDates);
			btnBack.show(0);
		}
		else if(datesCurrentScreen == "LISTE")
		{
			titre.html(currentDates);
			titreBack.html("Dates");
			btnBack.show(0);
		}		 
		else //DATES
		{	
			titre.html("Dates");
			titreBack.html("");
			btnBack.hide();
		}
	}
	else if(currentSection == "FAVORIS")
	{
		if(favorisCurrentScreen == "DETAIL")
		{
			titre.html("Favoris");
			titreBack.html("Favoris");
			btnBack.show(0);
		}
		else //LISTE
		{
			titre.html("Favoris");
			titreBack.html("");
			btnBack.hide();
		}
	}	
}

/************************************/
/*Gestion de la localisation Google Map*/
var currentLocation; 
var zoneVar = new google.maps.LatLng(43.317, 6.089); 
var browserSupportFlag = new Boolean(); 
var map;


//Permetra de gérer les spécificité des plateformes
//Voir JQTouch pour iphone...
var isIphone = false;
function detectBrowser() 
{  	
	if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('iPhone') != -1) 
	{
		isIphone = true;
	}
	else if(useragent.indexOf('Android') != -1)
	{
		
	}
	else if (useragent.indexOf('Apple') || useragent.indexOf('firefox') || useragent.indexOf('chrome'))
	{
		scbW = 18;
	}	
}

 
function initializeMap() 
{ 
  var myOptions = 
  { 
    zoom: 8, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
  }; 
  
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
  google.maps.event.addListener(map,'dragend',function(event)
	{
		marker.setPosition(map.getCenter());
		drawCircle();
	}); 
  GeolocMe();
}

function GeolocMe()
{   
  // Try W3C Geolocation (Preferred) 
  if(navigator.geolocation) 
  { 
    browserSupportFlag = true; 
    navigator.geolocation.getCurrentPosition(function(position) 
		{ 
		  currentLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
		  drawCircleAt(currentLocation);
		}, function() { 
      		handleNoGeolocation(browserSupportFlag); 
    	}); 
  // Try Google Gears Geolocation 
  } 
  else if (google.gears) 
  { 
    browserSupportFlag = true; 
    var geo = google.gears.factory.create('beta.geolocation'); 
    geo.getCurrentPosition(function(position) { 
      currentLocation = new google.maps.LatLng(position.latitude,position.longitude); 
	  drawCircleAt(currentLocation);
    }, function() { 
      handleNoGeoLocation(browserSupportFlag); 
    }); 
  // Browser doesn't support Geolocation 
  } 
  else 
  { 
    browserSupportFlag = false; 
    handleNoGeolocation(browserSupportFlag); 
  }    
   
  function handleNoGeolocation(errorFlag) 
  { 
    if (errorFlag == true) 
	{ 
      currentLocation = zoneVar; 
    } 
	else 
	{ 
		btnLoc.hide();
    	currentLocation = zoneVar; 
    } 
	drawCircleAt(currentLocation);
  } 
}

var circle;
var marker;
function drawCircle(position) 
{	
	drawCircleAt(marker.getPosition());
}

function drawCircleAt(position) 
{	 			   
  	if(!marker)
	{
		var image = new google.maps.MarkerImage('ressources/images/charte/point.png',
		// This marker is 20 pixels wide by 32 pixels tall.
		new google.maps.Size(12, 25),
		// The origin for this image is 0,0.
		new google.maps.Point(0,0),
		// The anchor for this image is the base of the flagpole at 0,32.
		new google.maps.Point(6, 24));
		var shadow = new google.maps.MarkerImage('ressources/images/charte/pointShadow.png',
		// The shadow image is larger in the horizontal dimension
		// while the position and offset are the same as for the main image.
		new google.maps.Size(19, 22),
		new google.maps.Point(0,0),
		new google.maps.Point(1, 20));
	  
		marker = new google.maps.Marker({
			position: position,
			draggable:true,
			map: map,
			shadow: shadow,
			icon: image
		});
		new google.maps.event.addListener(marker,"dragend",drawCircle);				
	}
	else
	{
		marker.setPosition(position);
	}
  
	var radius = slider.slider("value");
	if(circle) circle.setMap(null);
	circle = new google.maps.Circle({center:position,
									 fillColor:"#000000",
									 fillOpacity:0.3,
									 radius:radius*1000,
									 strokeWeight:1,
									 strokeOpacity:1,
									 strokeColor:"#000000"});
	circle.setMap(map);
	map.setCenter(position); 
}

/***********************************/
/*Gestion de l'overflow pour iphone*/
/*var startY;
var startScroll;
var canNavigate = true;

function touchMove(event) 
{
    event.preventDefault();    
    var curentVisibleScreen = ecrans.filter(':visible');
    if (curentVisibleScreen.length > 0) 
    {                
        offsetY = startY - event.targetTouches[0].pageY;
        var scroll = startScroll + offsetY;
        if (scroll < 0) scroll = 0;
        if (Math.abs(offsetY) > 4)
        {
            canNavigate = false;
        }      
        
        if (menuLieu.is(':visible')) 
        {
            if (scroll + lieuContent.scrollHeight  > lieuContent.outerHeight()) scroll = lieuContent.outerHeight() - lieuContent.scrollHeight;
            lieuContent.scrollTop(scroll);
        }
        else 
        {
            if (scroll + content.scrollHeight  > content.outerHeight()) scroll = content.outerHeight() - content.scrollHeight;
            content.scrollTop(scroll);
        }     
    }       
}

function touchStart(event) {    
    event.preventDefault();
    canNavigate = true;
    //alert(curY + "--" + startY);    
    var curentVisibleScreen = ecrans.filter(':visible');
    if (curentVisibleScreen.length > 0) 
    {
        startY = event.targetTouches[0].pageY;
        if (menuLieu.is(':visible')) 
        {
            startScroll = lieuContent.scrollTop();
        }
        else 
        {
            startScroll = content.scrollTop();
        }        
    }
}

function touchEnd(event) {
    event.preventDefault();
    if (canNavigate) 
    {        
        var $target = $(event.target);
        $target.trigger('click');
    }
}*/
