    
    $.fn.wait = function(time, type) {
        time = time || 1000;
        type = type || "fx";
        return this.queue(type, function() {
            var self = this;
            setTimeout(function() {
                $(self).dequeue();
            }, time);
        });
    };

    $(document).ready(function() {
        $("#main_menu li").mouseenter(function() {
            clearTimeout($(this).data('timeoutId'));
            $(this).children("ul").show();
        });
        $("#main_menu > li").mouseleave(function() {
            //item = $(this);
            //var timeoutId = setTimeout(function() { item.find("ul").hide() },20);
            //item.data('timeoutId', timeoutId); 
            $(this).children("ul").hide();
        });
        $("#main_menu li.has_submenu").mouseleave(function() {
            submenuId = '#' + $(this).find('ul.popmenu').attr('id');
            var timeoutId = setTimeout(function() { $(submenuId).hide(); },500);
            $(this).data('timeoutId', timeoutId); 
            //$('#notification').prepend("<p>"+submenuId+"</p>");
        });
    });
    
    
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
