﻿(function() {
    if (typeof (this.ModuleSchedulePublic.Common) == "undefined") {
        this.ModuleSchedulePublic.Common = {};
    }
    if (typeof (this.ModuleSchedulePublic.Common.SessionArea) == "undefined") {
        this.ModuleSchedulePublic.Common.SessionArea = {};
    }

    //Affichage d'une information de chargement sur la zone d'affichage des interventions d'une session
    ModuleSchedulePublic.Common.SessionArea.DisplayLoadingOnPresentations = function(sessionAbout) {
        document.getElementById('presentations_' + sessionAbout).innerHTML = '';
        dojo.addClass(document.getElementById('presentations_' + sessionAbout), 'mLoadingPresentation');
    }

    //Affichage des interventions d'une session
    //Les interventions affichées correspondent aux filtres spécifiés dans le formulaire
    ModuleSchedulePublic.Common.SessionArea.DisplayPresentations = function(sessionAbout, url, refresh) {

        //on masque les présentations si elles sont déja affichées
        if ((!ModuleSchedulePublic.Common.SessionArea.PresentationsDisplayed(sessionAbout)) || refresh) {

            //Msg de chargement
            ModuleSchedulePublic.Common.SessionArea.DisplayLoadingOnPresentations(sessionAbout);

            //l'emplacement où placer le contenu raffraichi
            var sessionPresentations = document.getElementById('presentations_' + sessionAbout)

            var d = cyim.ajax.xhrPost({ form: dojo.byId('sessionForm'), url: url, handleAs: "text" });
            d.addCallback(dojo.hitch(cyim.ajax, "getDataBack", sessionPresentations,
                function() {
                    dojo.removeClass(document.getElementById('presentations_' + sessionAbout), 'mLoadingPresentation');
                    document.getElementById('presentations_' + sessionAbout).className = 'mPresentations';
                    document.getElementById('sessionDetailsLnk_' + sessionAbout).className = 'mSessionDetailsLnkDisplayed';
                }
            ));
            d.addErrback(function() { ModuleSchedulePublic.Common.Manage.ErrorLog(); });

        } else {
            document.getElementById('presentations_' + sessionAbout).className = 'mPresentationsHidden';
            document.getElementById('presentations_' + sessionAbout).innerHTML = '';
            document.getElementById('sessionDetailsLnk_' + sessionAbout).className = 'mSessionDetailsLnk';
        }

    }

    //On affiche toutes les interventions de la session
    //Les interventions affichées ne sont pas liées aux filtres spécifiés dans le formulaire
    ModuleSchedulePublic.Common.SessionArea.DisplayAllPresentations = function(sessionAbout, url) {

        //Msg de chargement
        ModuleSchedulePublic.Common.SessionArea.DisplayLoadingOnPresentations(sessionAbout);

        //l'emplacement où placer le contenu raffraichi
        var sessionPresentations = document.getElementById('presentations_' + sessionAbout)

        //on soumet un formulaire crée à la volée pour que les interventions relatives à la session
        //ne soient pas filtrées par les valeurs du formulaire sessionForm
        ModuleSchedulePublic.CreateDummyForm('emptyAjaxForm', url);

        //requête asynchrone de traitement
        var d = cyim.ajax.xhrPost({ form: dojo.byId('emptyAjaxForm'), url: url, handleAs: "text" });
        d.addCallback(dojo.hitch(cyim.ajax, "getDataBack", sessionPresentations,
            function() {
                dojo.removeClass(document.getElementById('presentations_' + sessionAbout), 'mLoadingPresentation');
            }
        ));
        d.addErrback(function() { ModuleSchedulePublic.Common.Manage.ErrorLog(); });

    }

    //Teste si les interventions sont dépliées
    ModuleSchedulePublic.Common.SessionArea.PresentationsDisplayed = function(sessionURI) {
        if (document.getElementById('sessionDetails_' + sessionURI) == null) { return false; }
        if (typeof (document.getElementById('sessionDetails_' + sessionURI)) == 'undefined') { return false; }
        return true;
    }

})();