(
    function(jQuery){
        jQuery.fn.jmenu = function(settings){
            var config = {
                easing:'linear',
                speed:200
            };
            if(settings) jQuery.extend(config,settings);
            var mainobj = this;
            jQuery('.ul>.li .ul',mainobj).each(function(){
                jQuery(this).hide();
                var isFirst = (jQuery(this).parent().parent().parent().attr('id')==jQuery(mainobj).attr('id'))?true:false;
                if(isFirst){
                    jQuery(this).css({
                        top:jQuery('a',jQuery(this).parent()).outerHeight()-3+'px',
                        left:'0px'
                    });
                    jQuery('a',jQuery(this).parent()).css({
                        position:'relative',
                        zIndex:'1000'
                    });
                    var width = jQuery('a',jQuery(this).parent()).width()+'px';
                }
                else{
                    jQuery(this).css({
                        top:'0px',
                        left:jQuery('a',jQuery(this).parent()).outerWidth()+'px',
                        zIndex:'999'
                    });
                }
            });
            jQuery('.li',mainobj).hover(
                function(e){
//                    e.stopPropagation();
                    var isFirst = (jQuery(this).parent().parent().attr('id')==jQuery(mainobj).attr('id'))?true:false;
                    if(jQuery(this).children('.ul').length>0){
                        if(isFirst){
                            jQuery('.ul .li .ul',mainobj).hide();
                            jQuery(this).children('.ul').stop(false,true).css({visibility:'visible'}).slideDown(config.speed);
                        }
                        else{
                            jQuery(this).children('.ul').stop(false,true).show().animate({
                                left:jQuery('a',jQuery(this)).outerWidth(true)+'px'
                            },config.speed,config.easing).css({visibility:'visible'});
                        }
                    }
                },
                function(e){
                    var isFirst = (jQuery(this).parent().parent().attr('id')==jQuery(mainobj).attr('id'))?true:false;
                    if(isFirst){
                        if(jQuery(this).children('.ul').length>0){
                            jQuery(this).children('.ul').stop(false,true).css({visibility:'hidden'}).slideUp(config.speed);
                        }
                    }
                    else{
//                        e.stopPropagation();
                        if(jQuery(this).children('.ul').length>0){
                            jQuery(this).children('.ul').stop(false,true).animate({
                                left:'0px'
                            },config.speed,config.easing).hide(config.speed,function(){
                                jQuery(this).children('.ul').css({visibility:'hidden'})
                            });
                        }
                    }
                }
            );
        }
    }
    )(jQuery);
