﻿Type.registerNamespace("Lush");

/// DEALS WITH THE SETTING OF SORT ORDER DROPDOWNS ON THE CONTENTS PAGE
Lush.ListOptions = function(elementId) {
    this._selected = $get(elementId + '_Selected');
    this._container = $get(elementId + '_Container');

    this._selected._ListOptions = this;
    this._container._ListOptions = this;

    $addHandler(document, "click", this.blurHandler);
    $addHandler(this._selected, "click", this.focusHandler);
}

Lush.ListOptions.prototype = {
    focusHandler: function(e) {
        this._ListOptions._showOptions();
    },

    _showOptions: function() {
        document.Lush_ListOptions = this;
        Sys.UI.DomElement.addCssClass(this._selected, 'IEHover');
        Sys.UI.DomElement.removeCssClass(this._container, 'hidden');
    },

    blurHandler: function(e) {
        //if (!e) var e = window.event;
        //        var tg = (window.event) ? window.event.srcElement : e.target;
        //        if (tg.nodeName != 'SPAN') { alert(tg.parentNode.innerHTML); return; }
        //        var reltg = (window.event) ? window.event.toElement : e.relatedTarget;
        //        while (reltg != tg && reltg.nodeName != 'BODY')
        //            reltg = reltg.parentNode
        //        if (reltg == tg) { alert(tg.parentNode.innerHTML); return; }
        if (document.Lush_ListOptions)
            if (e.target.parentNode != document.Lush_ListOptions._selected)
        //            if (document.Lush_ListOptions._selected != e.target);
            {
            document.Lush_ListOptions._hideOptions();
        }
    },

    _hideOptions: function() {
        document.Lush_ListOptions = null;
        Sys.UI.DomElement.removeCssClass(this._selected, 'IEHover');
        Sys.UI.DomElement.addCssClass(this._container, 'hidden');
    },
    //    addField: function(dropdown) {
    //        //Add it to our list of controls
    //        Array.add(this._sortFields, dropdown);
    //        dropdown.sortMgr = this;
    //        dropdown.oldValue = parseInt(dropdown.value);
    //        
    //        //Register the change handler
    //        $addHandler(dropdown, "change", this.fieldChange);
    //    },
    //    
    //    fieldChange: function() {
    //        //Get our references
    //        var dropdown = this;
    //        var sortMgr = dropdown.sortMgr;
    //        
    //        //Update all the values in the range that changed
    //        for(var i=0; i < sortMgr._sortFields.length; i++) {
    //            var fld = sortMgr._sortFields[i];
    //            if(fld != dropdown)
    //                //Increased value
    //                if(parseInt(fld.value) <= parseInt(dropdown.value) && parseInt(fld.value) > dropdown.oldValue)
    //                    {fld.value = parseInt(fld.value) - 1; fld.oldValue = parseInt(fld.value);}
    //                //Decreased value
    //                else if(parseInt(fld.value) >= parseInt(dropdown.value) && parseInt(fld.value) < dropdown.oldValue)
    //                    {fld.value = parseInt(fld.value) + 1; fld.oldValue = parseInt(fld.value);}
    //        }
    //        dropdown.oldValue = parseInt(dropdown.value);
    //    },

    dispose: function() {
        $removeHandler(this._selected, "click", this.focusHandler);
        $removeHandler(document, "click", this.blurHandler);
    }
}
Lush.ListOptions.registerClass('Lush.ListOptions', null, Sys.IDisposable);

// Notify ScriptManager that this is the end of the script.
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
