﻿(function() {
    if (typeof (this.ModuleSchedulePublic.Search) == "undefined") {
        this.ModuleSchedulePublic.Search = {};
    }
    if (typeof (this.ModuleSchedulePublic.Search.TimeSlider) == "undefined") {
        this.ModuleSchedulePublic.Search.TimeSlider = {};
    }

    dojo.require("dojox.form.RangeSlider");
    dojo.require("dijit.form.HorizontalRule");
    dojo.require("dijit.form.HorizontalRuleLabels");

    ModuleSchedulePublic.Search.TimeSlider.InitSlider = function(sliderRule, sliderCount) {
        dojo.addOnLoad(function() {
            var vertical = dojo.byId("horizontalSlider");
            var sliderRules = new dijit.form.HorizontalRule({
                count: sliderCount,
                'class': 'mSlideRule',
                labelStyle: 'width:16.5%'
            }, 'rule');
            var sliderRules = new dijit.form.HorizontalRuleLabels({
                labels: sliderRule,
                'class': 'mSlideLabelRule'
            }, 'ruleLabels');
            var slider = new dojox.form.HorizontalRangeSlider({
                value: [1, sliderCount],
                showButtons: false,
                pageIncrement: 1,
                maximum: sliderCount,
                minimum: 1,
                showButtons: true,
                activeDrag: true,
                discreteValues: sliderCount,
                intermediateChanges: false,
                onChange: function() {
                    ModuleSchedulePublic.Search.TimeSlider.SetHiddenValues();
                }
            }, dojo.byId('horizontalSlider'));
            //désactivation de l'action sur la molette de la souris
            //slider._mouseWheeled = function() { };
            ModuleSchedulePublic.Search.TimeSlider.InitHiddenValues(1, sliderCount);
        });
    }

    //Initialisation des valeurs du slider
    ModuleSchedulePublic.Search.TimeSlider.InitHiddenValues = function(minValue, maxValue) {

        var sessionForm = document.getElementById('sessionForm');

        var hiddenMinValue = document.createElement('input');
        hiddenMinValue.type = 'hidden';
        hiddenMinValue.id = 'minValue';
        hiddenMinValue.name = 'minValue';
        hiddenMinValue.value = minValue;
        sessionForm.appendChild(hiddenMinValue);

        var hiddenMaxValue = document.createElement('input');
        hiddenMaxValue.type = 'hidden';
        hiddenMaxValue.id = 'maxValue';
        hiddenMaxValue.name = 'maxValue';
        hiddenMaxValue.value = maxValue;
        sessionForm.appendChild(hiddenMaxValue);

    }

    //Mise à jour de la liste avec les valeurs du slider
    ModuleSchedulePublic.Search.TimeSlider.SetHiddenValues = function() {

        var sessionForm = document.getElementById('sessionForm');

        var minValue = dijit.byId('horizontalSlider').value[0];
        var maxValue = dijit.byId('horizontalSlider').value[1];

        var hiddenMinValue = document.getElementById('minValue');
        var minValueChanged = true;
        if (hiddenMinValue.value == minValue) {
            minValueChanged = false;
        }
        hiddenMinValue.value = minValue;

        var hiddenMaxValue = document.getElementById('maxValue');
        var maxValueChanged = true;
        if (hiddenMaxValue.value == maxValue) {
            maxValueChanged = false;
        }
        hiddenMaxValue.value = maxValue;

        //rafraichissement de la liste
        if (maxValueChanged || minValueChanged) {
            console.log(hiddenMaxValue.value, ' - ', maxValue);
            ModuleSchedulePublic.RefreshSessionList();
        }
    }

})();