﻿//Initialisé hors du script par le template
var $meteo;
var $mail;

////////////////////////////////////////////////
//Fonction permetant de charger la météo        
function loadMeteo(params)
{
    $.ajax({
        type: "POST",
        url: '/fr/DesktopModules/Synexie/mods/Synexie.st.WS/StServices.svc/GetWeather',
        contentType: "application/x-www-form-urlencoded",
        dataType: "json",
        //data: params,
        success: function (result)
        {            
            $meteo.processTemplate(result);
        },
        error: function (xhr)
        {            
            $meteo.processTemplate(null);
        }
    });
}

////////////////////////////////////////////////
//Fonction permetant de construire un pageur    
function makeNav(strSelection, fixeContainer, content, scrollVertical, useAutoPaging, timeAutoPaging)
{        
    var $fixeContainer = $(fixeContainer); //Récupère le container fixe (overflow hidden)
    var $content = $(content); //Récupère le container absolu qui contient les items 
    var largeur = $fixeContainer.width(); //Calcul de la largeur du scroll
    var hauteur = $fixeContainer.height(); //Calcul de la hauteur du scroll
    var $navbtnCont = $(strSelection); //recupère le container contenant les éléments du pageur
    var $goBtns = $navbtnCont.find('.go'); //recupère la liste des boutons de navigation

    var intervalId;

    var nbItem = $content.find('.item').length; //Nombre d'item dans le paging
    if (scrollVertical)
    {
        $content.height(hauteur * nbItem);
        $content.width(largeur);
    }
    else
    {
        $content.width(largeur * nbItem); //définition de la largeur du container en absolute
        $content.height(hauteur);
    }
    if (nbItem <= 1) //Masque les boutons de navigation si il n'y a qu'un seul éléments
    {
        $navbtnCont.hide();
    }


    var startAutoPaging = function ()
    {
        intervalId = setTimeout(next, timeAutoPaging);
    }

    var resetAutoPaging = function ()
    {
        clearTimeout(intervalId);
        startAutoPaging();
    }

    var curPos = function ()
    {
        var idx = 0;
        if(scrollVertical){
        idx =  - parseInt($content.css('top').replace('px', '')) / hauteur; 
        }
        else{
        idx = - parseInt($content.css('left').replace('px', '')) / largeur;
        }
        return idx;//retourne la position courante du pageur
    };

    var next = function () //page à la page suivante
    {
        var newIdx = (curPos() + nbItem + 1) % nbItem;
        go(newIdx);
    };

    var prev = function () //page à la page précédante
    {
        var newIdx = (curPos() + nbItem - 1) % nbItem;
        go(newIdx);
    };

    var go = function (idx) //page à la position demandée
    {
        if (scrollVertical)
        {
            $content.animate({ top: -idx * hauteur }, 'medium');
        }
        else
        {
            $content.animate({ left: -idx * largeur }, 'medium');
        }
        //affiche les styles pour le pageur à l'index courant
        $goBtns.removeClass('selected');
        $navbtnCont.find('.go[rel=' + (idx + 1) + ']').addClass('selected');
        if (useAutoPaging)
        {
            resetAutoPaging();
        }
    };

    //affectation des events aux eléménts du pageur
    $navbtnCont.find('.prev').click(function ()
    {
        prev();
    });

    $navbtnCont.find('.next').click(function ()
    {
        next();        
    });

    $goBtns.click(function ()
    {
        go(parseInt($(this).attr('rel'))-1);
    });

    //sémectionne le premier élément
    $goBtns.first().addClass('selected');

    if (useAutoPaging)
    {
        startAutoPaging();
    }    
    
}


$(document).ready(function ()
{

    //METEO
    $meteo = $("#meteo").setTemplateURL("/fr/DesktopModules/Synexie/templates/meteo.tpl", [], { filter_data: false });
    loadMeteo('{"meteoCode":"FRXX0215","lang":"fr"}');

    //NewsLetter
    $mail = $("#mail").focus(function (event) { $(this).select(); }).mouseup(function (e) { e.preventDefault(); });
    $('.btnNews').click(function () { document.location = $(this).attr('href') + '?mail=' + $mail.val(); return false; });

    //Videos
    $apercuVideo = $("#apercuVideo").setTemplateURL("/fr/DesktopModules/Synexie/templates/video.tpl", [], { filter_data: false });
    $('.videos').click(function () {$apercuVideo.processTemplate({ url: $(this).attr('rel') }); return false; });

    ///////////
    //Navigation    
    makeNav('.modActusMunicipale .nav', '.modActusMunicipale .fixeContent', '.modActusMunicipale .slider', false, true, 10000);
    makeNav('.modInfos .nav', '.modInfos .fixeContent', '.modInfos .slider', true, true, 6000);
    makeNav('.modSlideLastPublication .nav', '.modSlideLastPublication .fixeContent', '.modSlideLastPublication .slider', false, true, 8000);
    makeNav('.modAffiche .nav', '.modAffiche .fixeContent', '.modAffiche .slider', false, true, 8000);

    //lightBox
    $("a[rel*=lightbox]").lightbox();

    // truncate
    $('.truncateActu22Title').jTruncate({
        length: 40,
        minTrail: 10,
        ellipsisText: " [...]"
    });
    $('.truncateActu22').jTruncate({
        length: 120,
        minTrail: 10,
        ellipsisText: " [...]"
    });
    $('.truncateActuImg').jTruncate({
        length: 200,
        minTrail: 10,
        ellipsisText: " [...]"
    });
    
});


