﻿var timerMenu;

(function ($) {
    $.widget("ul.menu", {
        _init: function () {
            var self = this;
            var options = this.options;
            if (!options.delay)
                options.delay = 300;
            $('li.current ul', self.element).show();
            $('body').mouseover(function (e) {
                clearTimeout(timerMenu);

                timerMenu = setTimeout(function () {
                    $('ul', self.element).not('li.current ul', self.element).hide();
                    $('li>a', self.element).removeClass('selected');
                    $('li.current>a', self.element).addClass('selected');
                    $('li.alwaysShow>a', self.element).addClass('selected');
                    //$('li.alwaysShow ul', self.element).show();
                    $('li.current ul', self.element).show();
                }, options.delay);

                e.stopPropagation();
            });

            $('>li', this.element).mouseover(function (e) {
                var ele = $(this);
                clearTimeout(timerMenu);

                self._showMenu(ele);
                $('li>a', ele.parent().parent()).removeClass('selected');

                e.stopPropagation();
            });

            $('>li li', this.element).mouseover(function (e) {
                var ele = $(this);
                clearTimeout(timerMenu);

                self._showSubMenu(ele);

                $('>a', ele.parent().parent()).addClass('selected');


                e.stopPropagation();
            });
        },
        _showMenu: function (ele) {
            $('li ul', this.element).hide();
            if ($('>ul', ele).length <= 0) {
                return;
            }
            if ($('>ul', ele).children("li").size() == 0) {
                return;
            }
            $('>ul', ele).show();

        },
        _showSubMenu: function (ele) {

            $('ul', $(ele).parent()).hide();
            if ($('>ul>li', ele).length <= 0)
                return;
            var sele = $('>ul', ele);
            sele.parents('ul').show();
            sele.show();

            sele.css('left', sele.parent().position().left * -1);

        }
    });
})(jQuery);

