﻿function CreateEvent(divId) {
    this.DivID = divId;
        this.RootUrl = "http://" + window.location.hostname;
    if(window.location.port != "") {
		this.RootUrl += ":" + window.location.port;
    }
    this.ImageValide = this.RootUrl + "/image/ok.gif";
    this.ImageInvalid = this.RootUrl + "/image/attention.gif";
    this.IsNew = true;
    this.FirstPseudo = '';
    this.UserID = -1;
    this.EventXML = null;
    this.wymShort = null;
    this.wymLong = null;
    this.messageObj = new DHTML_modalMessage();

    this.swfu = new SWFUpload({
        // Backend Settings
        upload_url: this.RootUrl + "/js/SWFUpload/UploadForEvent.ashx", // Relative to the SWF file
        post_params: {
            "ASPSESSID": "<%=Session.SessionID %>"
        },

        // File Upload Settings
        file_size_limit: "250", // 2MB
        file_types: "*.jpg;*.gif;*.png",
        file_types_description: "JPG Images; GIF Images; PNG Images",
        file_upload_limit: 5,    // Zero means unlimited
        file_queue_limit: 1,

        // Button settings
        button_image_url: this.RootUrl + "/image/XPButtonNoText_250x22.png", // Relative to the SWF file
        button_placeholder_id: "spanButtonPlaceholder",
        button_width: 250,
        button_height: 22,
        button_text: '<span class="button">Télécharger une image <span class="buttonSmall">(250 kb Max)</span></span>',
        button_text_style: '.button { font-family: Helvetica, Arial, sans-serif; font-size: 14pt;text-align:center; } .buttonSmall { font-size: 10pt; }',
        button_text_top_padding: 1,
        button_text_left_padding: 1,

        // Event Handler Settings - these functions as defined in Handlers.js
        //  The handlers are not part of SWFUpload but are part of my website and control how
        //  my website reacts to the SWFUpload events.
        file_queue_error_handler: fileQueueError,
        file_dialog_complete_handler: fileDialogComplete,
        upload_progress_handler: uploadProgress,
        upload_error_handler: uploadError,
        upload_success_handler: uploadSuccess,
        upload_complete_handler: uploadComplete,

        // Flash Settings
        flash_url: this.RootUrl + "/js/SWFUpload/swfupload.swf", // Relative to this file

        custom_settings: {
            upload_target: "divFileProgressContainer"
        },

        // Debug Settings
        debug: false
    });
}

CreateEvent.prototype.Init = function() {
    // Get AvatarSelect and add click
    if (this.DivID && document.getElementById(this.DivID)) {
        var createEventTmp = this;

        if (document.getElementById("txtShortDesc")) {
            jQuery(function() {

                jQuery('#txtShortDesc').wymeditor({
                    toolsItems: [
                    { 'name': 'Bold', 'title': 'Strong', 'css': 'wym_tools_strong' },
                    { 'name': 'Italic', 'title': 'Emphasis', 'css': 'wym_tools_emphasis' },
                    { 'name': 'Superscript', 'title': 'Superscript', 'css': 'wym_tools_superscript' },
                    { 'name': 'Subscript', 'title': 'Subscript', 'css': 'wym_tools_subscript' },
                    { 'name': 'InsertOrderedList', 'title': 'Ordered_List', 'css': 'wym_tools_ordered_list' },
                    { 'name': 'InsertUnorderedList', 'title': 'Unordered_List', 'css': 'wym_tools_unordered_list' },
                    { 'name': 'Indent', 'title': 'Indent', 'css': 'wym_tools_indent' },
                    { 'name': 'Outdent', 'title': 'Outdent', 'css': 'wym_tools_outdent' },
                    { 'name': 'Undo', 'title': 'Undo', 'css': 'wym_tools_undo' },
                    { 'name': 'Redo', 'title': 'Redo', 'css': 'wym_tools_redo' },
                    { 'name': 'CreateLink', 'title': 'Link', 'css': 'wym_tools_link' },
                    { 'name': 'Unlink', 'title': 'Unlink', 'css': 'wym_tools_unlink' },
                    { 'name': 'InsertTable', 'title': 'Table', 'css': 'wym_tools_table' },
                    { 'name': 'Paste', 'title': 'Paste_From_Word', 'css': 'wym_tools_paste' },
                    { 'name': 'ToggleHtml', 'title': 'HTML', 'css': 'wym_tools_html' },
                    { 'name': 'Preview', 'title': 'Preview', 'css': 'wym_tools_preview' }
                    ],
                    postInit: function(wym) { createEventTmp.wymShort = wym;  }
                });
            });
        }

        if (document.getElementById("txtDesc")) {
            jQuery(function() {
                jQuery('#txtDesc').wymeditor({ postInit: function(wym) { createEventTmp.wymLong = wym; } });
            });
        }

        if (document.getElementById("cbxSelect")) {
            document.getElementById("cbxSelect").onchange = function(event) { createEventTmp.OnChangeCombobox(event); }
        }

        if (document.getElementById('txtTitle1')) {
            document.getElementById('txtTitle1').onkeyup = function(event) { OnChangeTextEvent(event, 'txtTitle1', 'ImgTitre1', 1, createEventTmp) };
        }
        if (document.getElementById('txtDuration')) {
            document.getElementById('txtDuration').onkeyup = function(event) { OnDurationChange(event, 'txtDuration', 'ImgDuration', 1, createEventTmp) };
        }
        if (document.getElementById('txtICSDesc')) {
            document.getElementById('txtICSDesc').onkeyup = function(event) { OnChangeTextEvent(event, 'txtICSDesc', 'ImgICSDesc', 0, createEventTmp) };
        }
        if (document.getElementById('txtLocation')) {
            document.getElementById('txtLocation').onkeyup = function(event) { OnChangeTextEvent(event, 'txtLocation', 'ImgLocation', 0, createEventTmp) };
        }
        if (document.getElementById('txtEventDate')) {
            document.getElementById('txtEventDate').onchange = function(event) { OnDateChange(event, "txtEventDate", "ImgEventDate", createEventTmp); };
            document.getElementById('txtEventDate').onkeyup = function(event) { OnDateChange(event, "txtEventDate", "ImgEventDate", createEventTmp); };
        }
        if (document.getElementById('txtStartDate')) {
            document.getElementById('txtStartDate').onchange = function(event) { OnDateChange(event, "txtStartDate", "ImgStartDate", createEventTmp); };
            document.getElementById('txtStartDate').onkeyup = function(event) { OnDateChange(event, "txtStartDate", "ImgStartDate", createEventTmp); };
        }
        if (document.getElementById('txtEndDate')) {
            document.getElementById('txtEndDate').onchange = function(event) { OnDateChange(event, "txtEndDate", "ImgEndDate", createEventTmp); };
            document.getElementById('txtEndDate').onkeyup = function(event) { OnDateChange(event, "txtEndDate", "ImgEndDate", createEventTmp); };
        }

        if (document.getElementById("btnSubmit")) {
            document.getElementById("btnSubmit").onclick = function() { SaveEvent(createEventTmp) };
        }
        
        if (document.getElementById("btnDelete")) {
            document.getElementById("btnDelete").onclick = function() { DelEvent(createEventTmp) };
        }
        
        if (document.getElementById('txtImageLink')) {
            document.getElementById('txtImageLink').onkeyup = function(event) { OnImageLinkChange(event, "txtImageLink", "ImgImageLink", "ImgThumb", createEventTmp); };
        }

        if (document.getElementById("ImageSelect")) {
            document.getElementById("ImageSelect").onclick = function() { GetThumbnailEvent(createEventTmp) };
        }

        this.LoadCombobox();
    }
}

CreateEvent.prototype.LoadCombobox = function() {
    var createEventTmp = this;
    
    new Ajax.Request(this.RootUrl + "/ashx/AgendaForAdmin.ashx",
     {
         method: 'POST',
         onSuccess: function(transport) {
            createEventTmp.OnLoadComboboxSucceed(transport);
         },
         onFailure: function(transport) {
             createEventTmp.OnLoadComboboxFailed(transport);
         }
     });
}

CreateEvent.prototype.OnLoadComboboxSucceed = function(transport) {
    if (transport && transport.responseXML) {
        this.EventXML = transport.responseXML;

        var combobox = document.getElementById("cbxSelect");
        if (combobox) {
            if (combobox.hasChildNodes()) {
                while (combobox.childNodes.length >= 1) {
                    combobox.removeChild(combobox.firstChild);
                }
            }
            var optionNew = document.createElement('option');
            optionNew.value = 0;
            optionNew.appendChild(document.createTextNode('Nouvel évènement'));
            combobox.appendChild(optionNew);

            var agendaEventNodes = this.EventXML.getElementsByTagName('AgendaEvents');
            if (agendaEventNodes && agendaEventNodes.length > 0) {
                for (var i = 0; i < agendaEventNodes.length; i++) {
                    var eventDateNode = "";
                    var eventTitleNode = "";
                    var eventIDNode = -1;
                    if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                            agendaEventNodes[i].attributes.getNamedItem("EventDate")) {
                        eventDateNode = agendaEventNodes[i].attributes.getNamedItem("EventDate").nodeValue;
                    }
                    if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                            agendaEventNodes[i].attributes.getNamedItem("Title1")) {
                        eventTitleNode = htmlToAccent(agendaEventNodes[i].attributes.getNamedItem("Title1").nodeValue);
                    }
                    if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                            agendaEventNodes[i].attributes.getNamedItem("ID")) {
                        eventIDNode = agendaEventNodes[i].attributes.getNamedItem("ID").nodeValue;
                    }
                    if (eventIDNode != -1 && eventDateNode != "") {
                        year = eventDateNode.substr(0, 4);
                        month = eventDateNode.substr(5, 2);
                        if (month.indexOf('0') == '0')
                            month = month.substr(1, 1);
                        day = eventDateNode.substr(8, 2);
                        if (day.indexOf('0') == '0')
                            day = day.substr(1, 1);
                        hour = eventDateNode.substr(11, 2);
                        if (hour.indexOf('0') == '0')
                            hour = hour.substr(1, 1);
                        minute = eventDateNode.substr(14, 2);
                        if (minute.indexOf('0') == '0')
                            minute = minute.substr(1, 1);

                        var date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hour), parseInt(minute), 0, 0);

                        var option = document.createElement('option');
                        option.value = parseInt(eventIDNode);
                        option.appendChild(document.createTextNode(date.format("dd/mm/yyyy HH:MM") + "-" + eventTitleNode));
                        if (eventIDNode == this.EventID) {
                            option.selected = "selected"
                        }
                        combobox.appendChild(option);
                    }
                }
            }
            if (!this.EventID) {
                combobox.firstChild.selected = 'selected';
            }
            this.EventID = null;

        }
    }
    if (document.getElementById('cbxSelect')) {
        var createEventTmp = this;
        setTimeout(function() { SelectIndexChangedAsync(createEventTmp, "cbxSelect"); }, 500);

    }
}

SelectIndexChangedAsync = function(createEventTmp, cbxID) {
    createEventTmp.SelectedIndexChanged(document.getElementById(cbxID));
}

CreateEvent.prototype.OnLoadComboboxFailed = function(transport) {
    var combobox = document.getElementById("cbxSelect");
    if (combobox) {
        if (combobox.hasChildNodes()) {
            while (combobox.childNodes.length >= 1) {
                combobox.removeChild(combobox.firstChild);
            }
        }
    }
    if (document.getElementById("ErrorDiv")) {
        document.getElementById("ErrorDiv").innerHTML = 'Erreur de chargement des évènements';
        document.getElementById("ErrorDiv").style.display = 'block';
    }
    if (document.getElementById('cbxSelect')) {
        createEventTmp.SelectedIndexChanged(document.getElementById("cbxSelect"));
    }
}

CreateEvent.prototype.OnChangeCombobox = function(e) {
    var createEventTmp = this;
    userid = -1;
    var cbx = null;

    if (!e) { e = window.event; }
    var elt = undefined;
    if (e && e.srcElement) {
        elt = e.srcElement;
    }
    else {
        elt = e.target;
    }

    if (elt != undefined) {
        createEventTmp.SelectedIndexChanged(elt);
    }
}

CreateEvent.prototype.SelectedIndexChanged = function(combobox) {
    var selectedValue = -1;
    var selectedValueStr = '';
    var createEventTmp = this;
    for (var i = 0; i < combobox.childNodes.length; i++) {
        if (combobox.childNodes[i].selected && combobox.childNodes[i].firstChild) {
            selectedValue = parseInt(combobox.childNodes[i].value);
            selectedValueStr = combobox.childNodes[i].firstChild.nodeValue;
            break;
        }
    }
    var event = null;
    if (selectedValue == 0 || selectedValue == -1) {
        // Set to empty
        if (document.getElementById('txtTitle1')) {
            document.getElementById('txtTitle1').value = '';
            OnChangeTextEvent(event, 'txtTitle1', 'ImgTitre1', 1, createEventTmp);
        }
        if (document.getElementById('txtTitle2')) {
            document.getElementById('txtTitle2').value = '';
        }
        if (document.getElementById('txtEventDate')) {
            document.getElementById('txtEventDate').value = '';
            OnDateChange(event, "txtEventDate", "ImgEventDate", createEventTmp);
        }
        if (document.getElementById('txtDuration')) {
            document.getElementById('txtDuration').value = '';
            OnDurationChange(event, 'txtDuration', 'ImgDuration', 1, createEventTmp);
        }
        if (document.getElementById('txtShortDesc')) {
            if (createEventTmp.wymShort) {
                createEventTmp.wymShort.html('');
            }
            else {
                document.getElementById('txtShortDesc').value = '';
            }
        }
        if (document.getElementById('txtDesc')) {
            if (createEventTmp.wymLong) {
                createEventTmp.wymLong.html('');
            }
            else {
                document.getElementById('txtDesc').value = '';
            }
        }
        if (document.getElementById('txtICSDesc')) {
            document.getElementById('txtICSDesc').value = '';
            OnChangeTextEvent(event, 'txtICSDesc', 'ImgICSDesc', 0, createEventTmp);
        }
        if (document.getElementById('txtLocation')) {
            document.getElementById('txtLocation').value = '';
            OnChangeTextEvent(event, 'txtLocation', 'ImgLocation', 0, createEventTmp)
        }
        if (document.getElementById('txtLink')) {
            document.getElementById('txtLink').value = '';
        }
        if (document.getElementById('txtStartDate')) {
            document.getElementById('txtStartDate').value = new Date().format("dd/mm/yyyy") + " 00:00";
            OnDateChange(event, "txtStartDate", "ImgStartDate", createEventTmp);
        }
        if (document.getElementById('txtEndDate')) {
            document.getElementById('txtEndDate').value = new Date(2099, 12, 31, 23, 59, 59, 0).format("dd/mm/yyyy HH:MM"); ;
            OnDateChange(event, "txtEndDate", "ImgEndDate", createEventTmp);
        }
        if (document.getElementById('txtImageLink')) {
            document.getElementById('txtImageLink').value = ''
            OnImageLinkChange(event, 'txtImageLink', 'ImgImageLink', 'ImgThumb', createEventTmp);
        }
        if (document.getElementById('chxAlways')) {
            document.getElementById('chxAlways').checked = false;
        }
        if (document.getElementById('chkDraft')) {
            document.getElementById('chkDraft').checked = false;
        }
    }
    else {
        // read XML
        if (this.EventXML) {
            var agendaEventNodes = this.EventXML.getElementsByTagName('AgendaEvents');
            if (agendaEventNodes && agendaEventNodes.length > 0) {
                for (var i = 0; i < agendaEventNodes.length; i++) {
                    if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                    agendaEventNodes[i].attributes.getNamedItem("ID") && agendaEventNodes[i].attributes.getNamedItem("ID").nodeValue &&
                                    parseInt(agendaEventNodes[i].attributes.getNamedItem("ID").nodeValue) == selectedValue) {
                        if (document.getElementById('txtTitle1')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("Title1")) {
                                document.getElementById('txtTitle1').value = htmlToAccent(agendaEventNodes[i].attributes.getNamedItem("Title1").nodeValue);
                            }
                            else {
                                document.getElementById('txtTitle1').value = '';
                            }
                            OnChangeTextEvent(event, 'txtTitle1', 'ImgTitre1', 1, createEventTmp);
                        }

                        if (document.getElementById('txtTitle2')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("Title2")) {
                                document.getElementById('txtTitle2').value = htmlToAccent(agendaEventNodes[i].attributes.getNamedItem("Title2").nodeValue);
                            }
                            else {
                                document.getElementById('txtTitle2').value = '';
                            }
                        }

                        if (document.getElementById('txtEventDate')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("EventDate")) {
                                year = agendaEventNodes[i].attributes.getNamedItem("EventDate").nodeValue.substr(0, 4);
                                month = agendaEventNodes[i].attributes.getNamedItem("EventDate").nodeValue.substr(5, 2);
                                if (month.indexOf('0') == '0')
                                    month = month.substr(1, 1);
                                day = agendaEventNodes[i].attributes.getNamedItem("EventDate").nodeValue.substr(8, 2);
                                if (day.indexOf('0') == '0')
                                    day = day.substr(1, 1);
                                hour = agendaEventNodes[i].attributes.getNamedItem("EventDate").nodeValue.substr(11, 2);
                                if (hour.indexOf('0') == '0')
                                    hour = hour.substr(1, 1);
                                minute = agendaEventNodes[i].attributes.getNamedItem("EventDate").nodeValue.substr(14, 2);
                                if (minute.indexOf('0') == '0')
                                    minute = minute.substr(1, 1);

                                var date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hour), parseInt(minute), 0, 0);
                                document.getElementById('txtEventDate').value = date.format("dd/mm/yyyy HH:MM");
                            }
                            else {
                                document.getElementById('txtEventDate').value = '';
                            }
                            OnDateChange(event, "txtEventDate", "ImgEventDate", createEventTmp);
                        }

                        if (document.getElementById('txtDuration')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("Duration")) {
                                document.getElementById('txtDuration').value = agendaEventNodes[i].attributes.getNamedItem("Duration").nodeValue;
                            }
                            else {
                                document.getElementById('txtDuration').value = '';
                            }
                            OnDurationChange(event, 'txtDuration', 'ImgDuration', 1, createEventTmp);
                        }

                        if (document.getElementById('txtShortDesc')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("EventDetail")) {
                                document.getElementById('txtShortDesc').value = agendaEventNodes[i].attributes.getNamedItem("EventDetail").nodeValue;
                                if (this.wymShort) {
                                    this.wymShort.html(agendaEventNodes[i].attributes.getNamedItem("EventDetail").nodeValue);
                                }
                                //this.wymShort.update();
                            }
                            else {
                                this.wymShort.html('');
                                //this.wymShort.update();
                            }
                        }

                        if (document.getElementById('txtDesc')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("LongEventDetail")) {
                                document.getElementById('txtDesc').value = agendaEventNodes[i].attributes.getNamedItem("LongEventDetail").nodeValue;
                                if (this.wymLong) {
                                    this.wymLong.html(agendaEventNodes[i].attributes.getNamedItem("LongEventDetail").nodeValue);
                                }
                                //this.wymLong.update();
                            }
                            else {
                                this.wymLong.html('');
                                //this.wymLong.update();                                            
                            }
                        }

                        if (document.getElementById('txtICSDesc')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("AgendaEventDetail")) {
                                document.getElementById('txtICSDesc').value = htmlToAccent(agendaEventNodes[i].attributes.getNamedItem("AgendaEventDetail").nodeValue);
                            }
                            else {
                                document.getElementById('txtICSDesc').value = '';
                            }
                            OnChangeTextEvent(event, 'txtICSDesc', 'ImgICSDesc', 0, createEventTmp);
                        }

                        if (document.getElementById('txtLocation')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("Location")) {
                                document.getElementById('txtLocation').value = htmlToAccent(agendaEventNodes[i].attributes.getNamedItem("Location").nodeValue);
                            }
                            else {
                                document.getElementById('txtLocation').value = '';
                            }
                            OnChangeTextEvent(event, 'txtLocation', 'ImgLocation', 0, createEventTmp)
                        }

                        if (document.getElementById('txtLink')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("EventLink")) {
                                document.getElementById('txtLink').value = agendaEventNodes[i].attributes.getNamedItem("EventLink").nodeValue;
                            }
                            else {
                                document.getElementById('txtLink').value = '';
                            }
                        }

                        if (document.getElementById('txtStartDate')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("StartDate")) {
                                year = agendaEventNodes[i].attributes.getNamedItem("StartDate").nodeValue.substr(0, 4);
                                month = agendaEventNodes[i].attributes.getNamedItem("StartDate").nodeValue.substr(5, 2);
                                if (month.indexOf('0') == '0')
                                    month = month.substr(1, 1);
                                day = agendaEventNodes[i].attributes.getNamedItem("StartDate").nodeValue.substr(8, 2);
                                if (day.indexOf('0') == '0')
                                    day = day.substr(1, 1);
                                hour = agendaEventNodes[i].attributes.getNamedItem("StartDate").nodeValue.substr(11, 2);
                                if (hour.indexOf('0') == '0')
                                    hour = hour.substr(1, 1);
                                minute = agendaEventNodes[i].attributes.getNamedItem("StartDate").nodeValue.substr(14, 2);
                                if (minute.indexOf('0') == '0')
                                    minute = minute.substr(1, 1);

                                var date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hour), parseInt(minute), 0, 0);
                                document.getElementById('txtStartDate').value = date.format("dd/mm/yyyy HH:MM");
                            }
                            else {
                                document.getElementById('txtStartDate').value = '';
                            }
                            OnDateChange(event, "txtStartDate", "ImgStartDate", createEventTmp);
                        }

                        if (document.getElementById('txtEndDate')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("EndDate")) {
                                year = agendaEventNodes[i].attributes.getNamedItem("EndDate").nodeValue.substr(0, 4);
                                month = agendaEventNodes[i].attributes.getNamedItem("EndDate").nodeValue.substr(5, 2);
                                if (month.indexOf('0') == '0')
                                    month = month.substr(1, 1);
                                day = agendaEventNodes[i].attributes.getNamedItem("EndDate").nodeValue.substr(8, 2);
                                if (day.indexOf('0') == '0')
                                    day = day.substr(1, 1);
                                hour = agendaEventNodes[i].attributes.getNamedItem("EndDate").nodeValue.substr(11, 2);
                                if (hour.indexOf('0') == '0')
                                    hour = hour.substr(1, 1);
                                minute = agendaEventNodes[i].attributes.getNamedItem("EndDate").nodeValue.substr(14, 2);
                                if (minute.indexOf('0') == '0')
                                    minute = minute.substr(1, 1);

                                var date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hour), parseInt(minute), 0, 0);
                                document.getElementById('txtEndDate').value = date.format("dd/mm/yyyy HH:MM");
                            }
                            else {
                                document.getElementById('txtEndDate').value = '';
                            }
                            OnDateChange(event, "txtEndDate", "ImgEndDate", createEventTmp);
                        }

                        if (document.getElementById('txtImageLink')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("ImageLink")) {
                                document.getElementById('txtImageLink').value = agendaEventNodes[i].attributes.getNamedItem("ImageLink").nodeValue;
                            }
                            else {
                                document.getElementById('txtImageLink').value = '';
                            }
                            OnImageLinkChange(event, 'txtImageLink', 'ImgImageLink', 'ImgThumb', createEventTmp);
                        }

                        if (document.getElementById('chxAlways')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("AlwaysShow")) {
                                document.getElementById('chxAlways').checked = (agendaEventNodes[i].attributes.getNamedItem("AlwaysShow").nodeValue == "0" ? false : true);
                            }
                            else {
                                document.getElementById('chxAlways').checked = false;
                            }
                        }

                        if (document.getElementById('chkDraft')) {
                            if (agendaEventNodes[i].attributes && agendaEventNodes[i].attributes.length > 0 &&
                                            agendaEventNodes[i].attributes.getNamedItem("Draft")) {
                                document.getElementById('chkDraft').checked = (agendaEventNodes[i].attributes.getNamedItem("Draft").nodeValue == "0" ? false : true);
                            }
                            else {
                                document.getElementById('chkDraft').checked = false;
                            }
                        }
                        break;
                    }
                }
            }
        }

    }
}

OnDurationChange = function(e, txtid, imgId, minLength, createEventTmp) {
    if (document.getElementById(txtid) && document.getElementById(imgId)) {
        if (document.getElementById(txtid).value.length >= minLength && IntValidation(document.getElementById(txtid).value)) {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Valide";
            imgValide.src = createEventTmp.ImageValide;
            imgValide.alt = "Valide";
            imgValide.title = "Valide";
        }
        else {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Invalid";
            imgValide.src = createEventTmp.ImageInvalid;
            imgValide.alt = "Non Valide";
            imgValide.title = "Non Valide";
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}

OnVerifyImageSucceed = function(event, createEventTmp, imgImgLink, imgThumbId) {
    if (document.getElementById(imgImgLink)) {
        var imgValide = document.getElementById(imgImgLink);
        imgValide.className = "Valide";
        imgValide.src = createEventTmp.ImageValide;
        imgValide.alt = "Valide";
        imgValide.title = "Valide";
        if (document.getElementById(imgThumbId)) {
            document.getElementById(imgThumbId).onerror = "";
            document.getElementById(imgThumbId).onload = "";
            document.getElementById(imgThumbId).style.display = 'block';
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}

OnVerifyImageError = function(event, createEventTmp, imgImgLink, imgThumbId) {
    if (document.getElementById(imgImgLink)) {
        var imgValide = document.getElementById(imgImgLink);
        imgValide.className = "Invalid";
        imgValide.src = createEventTmp.ImageInvalid;
        imgValide.alt = "Non Valide";
        imgValide.title = "Non Valide";
        if (document.getElementById(imgThumbId)) {
            document.getElementById(imgThumbId).onerror = "";
            document.getElementById(imgThumbId).onload = "";
            document.getElementById(imgThumbId).style.display = 'none';
            document.getElementById(imgThumbId).src = '';
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}

OnImageLinkChange = function(event, txtid, imgId, imgThumbId, createEventTmp) {
    if (document.getElementById(txtid) && document.getElementById(imgId)) {
        if (document.getElementById(txtid).value.length == 0) {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Valide";
            imgValide.src = createEventTmp.ImageValide;
            imgValide.alt = "Valide";
            imgValide.title = "Valide";
            if (document.getElementById(imgThumbId)) {
                document.getElementById(imgThumbId).style.display = 'none';
                document.getElementById(imgThumbId).src = '';
            }

        }
        else if (ImgValidation(document.getElementById(txtid).value)) {
            if (document.getElementById(imgThumbId)) {
                document.getElementById(imgThumbId).onload = function(evt) {
                    OnVerifyImageSucceed(evt, createEventTmp, imgId, imgThumbId);
                }
                document.getElementById(imgThumbId).onerror = function(evt) {
                    OnVerifyImageError(evt, createEventTmp, imgId, imgThumbId);
                }
                document.getElementById(imgThumbId).src = document.getElementById(txtid).value;
            }
            /*VerifyImage(createEventTmp, txtid, imgId, imgThumbId);*/
        }
        else {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Invalid";
            imgValide.src = createEventTmp.ImageInvalid;
            imgValide.alt = "Non Valide";
            imgValide.title = "Non Valide";
            if (document.getElementById(imgThumbId)) {
                document.getElementById(imgThumbId).style.display = 'none';
                document.getElementById(imgThumbId).src = '';
            }
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}

OnHTMLChange = function(e, txtid, imgId, minLength, maxLength, createEventTmp) {
    if (document.getElementById(txtid) && document.getElementById(imgId)) {
        if (document.getElementById(txtid).value.length >= minLength && removeHTMLTags(document.getElementById(txtid).value).length <= maxLength) {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Valide";
            imgValide.src = createEventTmp.ImageValide;
            imgValide.alt = "Valide";
            imgValide.title = "Valide";
        }
        else {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Invalid";
            imgValide.src = createEventTmp.ImageInvalid;
            imgValide.alt = "Non Valide";
            imgValide.title = "Non Valide";
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}

OnDateChange = function(event, txtId, imgId, createEventTmp) {
    if (document.getElementById(txtId) && document.getElementById(imgId)) {
        if (document.getElementById(txtId).value.length > 0 && document.getElementById(txtId).value.length < 17 && DateValidation(document.getElementById(txtId).value)) {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Valide";
            imgValide.src = createEventTmp.ImageValide;
            imgValide.alt = "Valide";
            imgValide.title = "Valide";
        }
        else {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Invalid";
            imgValide.src = createEventTmp.ImageInvalid;
            imgValide.alt = "Non Valide";
            imgValide.title = "Non Valide";
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}


OnChangeTextEvent = function(e, txtid, imgId, minLength, createEventTmp) {
    if (document.getElementById(txtid) && document.getElementById(imgId)) {
        if (document.getElementById(txtid).value.length >= minLength && TextValidation(document.getElementById(txtid).value)) {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Valide";
            imgValide.src = createEventTmp.ImageValide;
            imgValide.alt = "Valide";
            imgValide.title = "Valide";
        }
        else {
            var imgValide = document.getElementById(imgId);
            imgValide.className = "Invalid";
            imgValide.src = createEventTmp.ImageInvalid;
            imgValide.alt = "Non Valide";
            imgValide.title = "Non Valide";
        }
    }
    ChangeButtonSubmit(createEventTmp);
    ChangeButtonDelete(createEventTmp);
}

ChangeButtonSubmit = function(createEventTmp) {
    if (document.getElementById('btnSubmit')) {
        if (getElementsByClassName('Invalid', document.getElementById(createEventTmp.DivID)).length > 0) {
            document.getElementById('btnSubmit').disabled = 'disabled';
        }
        else {
            document.getElementById('btnSubmit').disabled = '';
        }
    }
}

ChangeButtonDelete = function(createEventTmp) {
    var selectedValue = -1;
    for (var i = 0; i < document.getElementById("cbxSelect").childNodes.length; i++) {
        if (document.getElementById("cbxSelect").childNodes[i].selected && document.getElementById("cbxSelect").childNodes[i].firstChild) {
            selectedValue = parseInt(document.getElementById("cbxSelect").childNodes[i].value);
            break;
        }
    }
    if (document.getElementById('btnDelete')) {
        if (selectedValue > 0) {
            document.getElementById('btnDelete').disabled = '';
        }
        else {
            
            document.getElementById('btnDelete').disabled = 'disabled';
        }
    }
}

SaveEvent = function(createEventTmp) {
    var shortDesc = createEventTmp.wymShort.html();
    if (removeHTMLTags(shortDesc).length < 200) {
        if (createEventTmp.messageObj) {
            createEventTmp.messageObj.setHtmlContent('');
            createEventTmp.messageObj.setShadowOffset(3);
            createEventTmp.messageObj.setHtmlContent('<div class="ImageLoading"></div>');
            //messageObj.setSize(300, 150);
            createEventTmp.messageObj.setSource(false); // no html source since we want to use a static message here.
            createEventTmp.messageObj.setShadowDivVisible(false); // Disable shadow for these boxes
            //var tmpRegistration = this;
            createEventTmp.messageObj.display();
        }
        var params = '<CreateEvent>';
        if (document.getElementById("cbxSelect")) {
            var selectedValue = -1;
            var selectedValueStr = '';
            for (var i = 0; i < document.getElementById("cbxSelect").childNodes.length; i++) {
                if (document.getElementById("cbxSelect").childNodes[i].selected && document.getElementById("cbxSelect").childNodes[i].firstChild) {
                    selectedValue = parseInt(document.getElementById("cbxSelect").childNodes[i].value);
                    break;
                }
            }
            params += '<ID>' + selectedValue + '</ID>';
        }
        if (document.getElementById('txtTitle1') && document.getElementById('txtTitle1').value != '') {
            params += '<Title1>' + Base64.encode(accentToHTML(document.getElementById('txtTitle1').value)) + '</Title1>';
        }
        if (document.getElementById('txtTitle2') && document.getElementById('txtTitle2').value != '') {
            params += '<Title2>' + Base64.encode(accentToHTML(document.getElementById('txtTitle2').value)) + '</Title2>';
        }
        if (document.getElementById('txtEventDate') && document.getElementById('txtEventDate').value != '') {
            params += '<EventDate>' + document.getElementById('txtEventDate').value + '</EventDate>';
        }
        if (document.getElementById('txtDuration') && document.getElementById('txtDuration').value != '') {
            params += '<Duration>' + document.getElementById('txtDuration').value + '</Duration>';
        }
        if (createEventTmp.wymShort.html() != '') {
            //alert(createEventTmp.wymShort.html());
            //params += '<ShortDesc><![CDATA[' + createEventTmp.wymShort.html() + ']]></ShortDesc>';
            params += '<ShortDesc>' + Base64.encode(accentToHTML(replaceAll(createEventTmp.wymShort.html(), String.fromCharCode(8217), "'"))) + '</ShortDesc>';
        }
        if (createEventTmp.wymLong.html() != '') {
            params += '<LongDesc>' + Base64.encode(accentToHTML(replaceAll(createEventTmp.wymLong.html(), String.fromCharCode(8217), "'"))) + '</LongDesc>';
        }
        if (document.getElementById('txtICSDesc') && document.getElementById('txtICSDesc').value != '') {
            params += '<ICSDesc>' + Base64.encode(accentToHTML(document.getElementById('txtICSDesc').value)) + '</ICSDesc>';
        }
        if (document.getElementById('txtLocation') && document.getElementById('txtLocation').value != '') {
            params += '<Location>' + Base64.encode(accentToHTML(document.getElementById('txtLocation').value)) + '</Location>';
        }
        if (document.getElementById('txtLink') && document.getElementById('txtLink').value != '') {
            params += '<Link>' + encodeURI(document.getElementById('txtLink').value) + '</Link>';
        }
        if (document.getElementById('txtStartDate') && document.getElementById('txtStartDate').value != '') {
            params += '<StartDate>' + document.getElementById('txtStartDate').value + '</StartDate>';
        }
        if (document.getElementById('txtEndDate') && document.getElementById('txtEndDate').value != '') {
            params += '<EndDate>' + document.getElementById('txtEndDate').value + '</EndDate>';
        }
        if (document.getElementById('ImgThumb') && document.getElementById('ImgThumb').style.display != 'none' && document.getElementById('ImgThumb').src != '') {
            params += '<ImageLink>' + encodeURI(document.getElementById('ImgThumb').src) + '</ImageLink>';
        }
        if (document.getElementById('chxAlways')) {
            params += '<AlwaysShow>' + (document.getElementById('chxAlways').checked ? "1" : "0") + '</AlwaysShow>';
        }
        if (document.getElementById('chkDraft')) {
            params += '<Draft>' + (document.getElementById('chkDraft').checked ? "1" : "0") + '</Draft>';
        }
        params += '</CreateEvent>';

       
        params = Base64.encode(params);
        new Ajax.Request(createEventTmp.RootUrl + "/ashx/CreateEvent.ashx",
        {
            method: 'POST',
            onSuccess: function(transport) { 
                createEventTmp.OnCreateEventSucceed(transport);
            },
            onFailure: function(transport) {
                createEventTmp.OnCreateEventFailed(transport);
            },
            postBody: params
        });
    }
    else {
        alert("Le champ 'Description courte' contient trop de caractères. Le maximum autorisé est 200.");
    }
}

DelEvent = function(createEventTmp) {
    var selectedValue = -1;
    for (var i = 0; i < document.getElementById("cbxSelect").childNodes.length; i++) {
        if (document.getElementById("cbxSelect").childNodes[i].selected && document.getElementById("cbxSelect").childNodes[i].firstChild) {
            selectedValue = parseInt(document.getElementById("cbxSelect").childNodes[i].value);
            break;
        }
    }
    if(selectedValue > 0) {
        if(confirm("Voulez-vous supprimer cet événement?")) {
            new Ajax.Request(createEventTmp.RootUrl + "/ashx/DeleteEvent.ashx",
            {
                method: 'GET',
                onSuccess: function(transport) { 
                    window.location = window.location;
                },
                parameters:
                {
                    'event': selectedValue
                }
            });
        }
    }
}

CreateEvent.prototype.OnCreateEventSucceed = function(transport) {
    var createEventTmp = this;
    if (createEventTmp.messageObj) {
        createEventTmp.messageObj.close();
    }
    this.LoadCombobox();
}

CreateEvent.prototype.OnCreateEventFailed = function(transport) {
    var createEventTmp = this;
    if (createEventTmp.messageObj) {
        createEventTmp.messageObj.close();
    }
    if (document.getElementById("ErrorDiv")) {
        document.getElementById("ErrorDiv").innerHTML = transport.responseText;
        document.getElementById("ErrorDiv").style.display = 'block';
    }
}

GetThumbnailEvent = function(createEventTmp) {
    // Call thumbnail.ashx
    //alert('test');
    new Ajax.Request(createEventTmp.RootUrl + '/js/SWFUpload/thumbnail.ashx',
         {
             method: 'get',
             onSuccess: function(transport) { OnGetThumbnailEvent(transport, createEventTmp); },
             onFailure: function() {
                 //alert('Error during ajax request');
             },
             parameters:
            {
                'ms': new Date().getTime(),
                'Type': 'Event'
            }
         });
}

OnGetThumbnailEvent = function(transport, createEventTmp) {

    if (transport) {
        if (transport.responseText) {
            //registration.messageObj = new DHTML_modalMessage();
            createEventTmp.messageObj.setHtmlContent('');
            createEventTmp.messageObj.setShadowOffset(3);
            var title = '<div class=\'ImageGalleryTitle\' style=\'width:95%;\'><span style=\'float:left;\'>Gallerie d\'image</span><a href=\'#\' id=\'closeBtn\' style=\'float:right;\'><img src=\'' + createEventTmp.RootUrl + 'Images/ImageGallery/close.gif\'></img></a></div>';
            createEventTmp.messageObj.setHtmlContent(title + '<div style=\'overflow:auto;width=100%;heigth=100%;\'>' + transport.responseText + '</div>');
            //messageObj.setSize(300, 150);
            createEventTmp.messageObj.setSource(false); // no html source since we want to use a static message here.
            createEventTmp.messageObj.setShadowDivVisible(false); // Disable shadow for these boxes
            //var tmpRegistration = this;
            createEventTmp.messageObj.display();
            createEventTmp.messageObj.addEvent(document.getElementById('closeBtn'), 'click', function(e) { createEventTmp.CloseMessageObj(); });
            var nbCount = gal.init(createEventTmp, SelectThumbnailEvent);
            if (nbCount > 0) {
            }
            else {
                createEventTmp.messageObj.close();
                alert('Pas d\'image à selectionner');
            }
        }
    }
}

CreateEvent.prototype.CloseMessageObj = function() {
    if (this.messageObj) {
        this.messageObj.close();
    }
}

SelectThumbnailEvent = function(createEventTmp, filename) {
    if (createEventTmp.messageObj) {
        createEventTmp.messageObj.close();
    }
    if (document.getElementById("txtImageLink")) {
        document.getElementById("txtImageLink").value = filename;
        OnImageLinkChange(null, "txtImageLink", "ImgImageLink", "ImgThumb", createEventTmp);
    }
}
