﻿
    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) {
        ModuleSchedulePublic.Common.Manage.SelectPresentation(presentationURI, sessionURI, authenticated);
    }

    //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;
                }
            }
        );
    }

