﻿
    if (typeof (this.ModuleSchedulePublic.MySchedule) == "undefined") {
        this.ModuleSchedulePublic.MySchedule = {};
    }

    if (typeof (this.ModuleSchedulePublic.MySchedule.Manage) == "undefined") {
        this.ModuleSchedulePublic.MySchedule.Manage = {};
    }

    //Ajoute ou supprime une session des données de l'utilisateur enregistré
    //  si l'utilisateur n'est pas enregistré, une popup de connexion est affichée
    ModuleSchedulePublic.MySchedule.Manage.SelectSession = function(sessionURI, authenticated, hasTimeRangeConflict) {
        ModuleSchedulePublic.Common.Manage.SelectSession(sessionURI, authenticated, hasTimeRangeConflict);
    }

    //Ajoute ou supprime une session des données de l'utilisateur enregistré
    //  si l'utilisateur n'est pas enregistré, une popup de connexion est affichée
    ModuleSchedulePublic.MySchedule.Manage.SelectPresentation = function(presentationURI, sessionURI, authenticated, hasTimeRangeConflict) {
        ModuleSchedulePublic.Common.Manage.SelectPresentation(presentationURI, sessionURI, authenticated, hasTimeRangeConflict);
    }

    //Ajoute ou supprime une session des données de l'utilisateur enregistré
    ModuleSchedulePublic.MySchedule.Manage.LaunchUpdate = function(url, callbackFunction) {
        ModuleSchedulePublic.Common.Manage.LaunchUpdate(url, callbackFunction);
    }

    //Modifie l'affichage de l'état d'une présentation sélectionnée ou non
    ModuleSchedulePublic.MySchedule.Manage.ChangeStateSelectedPresentation = function(presentationURI, sessionURI) {
        ModuleSchedulePublic.Common.Manage.ChangeStateSelectedPresentation(presentationURI, sessionURI);
    }

    //Teste si la session est déja sélectionnée
    ModuleSchedulePublic.MySchedule.Manage.IsAlreadySelectedSession = function(sessionURI) {
        return ModuleSchedulePublic.Common.Manage.IsAlreadySelectedSession(sessionURI);
    }

    //Teste si la session est déja sélectionnée
    ModuleSchedulePublic.MySchedule.Manage.IsAlreadySelectedPresentation = function(presentationURI) {
        return ModuleSchedulePublic.Common.Manage.IsAlreadySelectedPresentation(presentationURI);
    }

    //Ajoute ou supprime une session des données de l'utilisateur enregistré
    ModuleSchedulePublic.MySchedule.Manage.AddOrRemovePresentation = function(presentationURI, sessionURI) {
        ModuleSchedulePublic.Common.Manage.AddOrRemovePresentation(presentationURI, sessionURI);
    }

    //Ajoute ou supprime une session des données de l'utilisateur enregistré
    ModuleSchedulePublic.MySchedule.Manage.AddOrRemoveSession = function(sessionURI) {
        ModuleSchedulePublic.Common.Manage.AddOrRemoveSession(sessionURI);
    }

    //Charge la popup de login
    ModuleSchedulePublic.MySchedule.Manage.LoadLogin = function() {
        ModuleSchedulePublic.Common.Manage.LoadLogin();
    }

    //Modifie l'affichage de l'état d'une session sélectionnée ou non
    ModuleSchedulePublic.MySchedule.Manage.ChangeStateSelectedSession = function(sessionURI, select) {
        //modifie l'état d'affichage de la session choisie
        if (ModuleSchedulePublic.MySchedule.Manage.IsAlreadySelectedSession(sessionURI)) {
            document.getElementById('selectSession_' + sessionURI).className = ModuleSchedulePublic.Common.Manage.SessionNotSelectedClassName;
        } else {
            document.getElementById('selectSession_' + sessionURI).className = ModuleSchedulePublic.Common.Manage.SessionSelectedClassName;
        }
         //si les présentations de cette session sont affichées, on les place dans le même état que la session
        dojo.query('#presentations_' + sessionURI + ' .mPresentationList .mMyScheduleSession a span').forEach(
            function(tag) {
                if (ModuleSchedulePublic.MySchedule.Manage.IsAlreadySelectedSession(sessionURI)) {
                    tag.className = ModuleSchedulePublic.MySchedule.Manage.PresentationSelectedClassName;
                } else {
                    tag.className = ModuleSchedulePublic.MySchedule.Manage.PresentationNotSelectedClassName;
                }
            }
        );
    }
    ModuleSchedulePublic.MySchedule.Manage.printSession = function(sessionURI) {
        dojo.require("dijit.Dialog");

        //création et ajout au DOM de l'emplacement correspondant à la modalPopup
        var divPrint = document.createElement('div');
        divPrint.id = 'divPrint';
        divPrint.name = 'divPrint';

        var divPrintChild = document.createElement('div');
        divPrintChild.id = 'divPrintChild';
        divPrintChild.name = 'divPrintChild';
        divPrint.appendChild(divPrintChild);

        document.getElementsByTagName('body')[0].appendChild(divPrint);

        //création de la modalPopup
        if (dijit.byId('divPrint') != undefined) {
            dijit.byId("divPrint").destroy();
        }
        var PrintDialog = new dijit.Dialog({ title: "Choix de l'impression" }, dojo.byId('divPrint'));

        //affichage de la liste des sessions
        var url = 'mySchedulePrintBox.phtml?sessionAbout=' + sessionURI;
        var form = ModuleSchedulePublic.CreateDummyForm('dummyForm', url);
        var d = cyim.ajax.xhrPost({ form: dojo.byId('dummyForm'), url: url, handleAs: "text" });
        d.addCallback(dojo.hitch(cyim.ajax, "getDataBack", document.getElementById('divPrintChild'),
                function() {
                    PrintDialog.show();
                }
            ));
        d.addErrback(function() { ModuleSchedulePublic.Common.Manage.ErrorLog(); });
    }

