﻿var timerMenu;

(function($) {
    $.widget("ui.menu", {
        _init: function() {
            var self = this;
            var options = this.options;
            if (!options.delay)
                options.delay = 300;

            $('body').mouseover(function(e) {
                clearTimeout(timerMenu);
              
                timerMenu = setTimeout(function() {
                    $('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;
            $('>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);
