﻿
//
// SlideDownMenu.js
// for ~/Controls/SlideDownMenu.ascx
//

/// <reference path="../Edentity.Global.js" />
/// <reference path="../External/jquery-1.3.2-vsdoc2.js" />


Edentity.RegisterNamespace("Whiskas.Controls.SlideDownMenu");

(function(SDM, $) {

    var timeout = 500;
    var closetimer = null;
    var slidedownMenu = null;

    SDM.OnTimer = function() {
        var bottom = $('a.Bottom', slidedownMenu);
        //alert(bottom.attr('state'));
        if (bottom.attr('state') != 'closed') {
            closetimer = window.setTimeout("Whiskas.Controls.SlideDownMenu.OnClose()", timeout);
        }
    };

    SDM.OffTimer = function() {
        if (closetimer != null) {
            window.clearTimeout(closetimer);
            closetimer = null;
        }
    };

    SDM.OnClose = function() {

        Whiskas.Controls.SlideDownMenu.OffTimer();

        var bottom = $('a.Bottom', slidedownMenu);
        var attr = bottom.attr('state');
        if (attr == 'closed') {
            bottom.attr('state', '');
        }
        else {
            bottom.attr('state', 'closed');
        }
        $('div', slidedownMenu).slideToggle('fast', function() {
            if (attr == 'closed') {
                $('img', bottom).eq(0).hide();
                $('img', bottom).eq(1).show();
            }
            else {
                $('img', bottom).eq(0).show();
                $('img', bottom).eq(1).hide();
            }
        });
    };

    SDM.OnInit = function(pnlSlideDownMenuID) {

        slidedownMenu = $('#' + pnlSlideDownMenuID);

        var bottom = $('a.Bottom', slidedownMenu);
        bottom.attr('state', 'closed');
        $('img', bottom).eq(1).hide();
        bottom.bind('click', Whiskas.Controls.SlideDownMenu.OnClose);

        slidedownMenu.bind('mouseover', Whiskas.Controls.SlideDownMenu.OffTimer);
        slidedownMenu.bind('mouseout', Whiskas.Controls.SlideDownMenu.OnTimer);

        $('div', slidedownMenu).hide();

        // SlideDownMenuLeft is the adjustment for the diferent templates
        //  the template must define it
        if (typeof (SlideDownMenuShift) !== 'undefined') {
            slidedownMenu.css('left', SlideDownMenuShift + 'px');
        }

        slidedownMenu.show();
    };

})(Whiskas.Controls.SlideDownMenu, jQuery);
