var jmenu={
    effect: 'fade',         /* default animation effect */
    duration: 400,         /* default duration */
    set: function (settings)
    {
       try
        {
            if (settings.animation == 'show') { this.effect='show'; }
            if (settings.animation == 'slide') { this.effect='slide'; }
            if (settings.animation == 'fade') { this.effect='fade'; }
        } catch (e) {}
        
        try
        {
            this.duration=settings.duration;
        } catch (e) {} 
    },
    fix_pos:function(elem)
    {
        if ($(elem).parent('ul').parent('li').length)
        {
            $(elem).children('ul').eq(0).css({marginTop:-$(elem).height()-1,marginLeft:$(elem).parent().width()+2});
        } else
        {
           $(elem).children('ul').eq(0).css({'top':$(elem).offset().top+$(elem).height(),'left':$(elem).offset().left});
        }
    },
    show:function(elem)
    {
		$(elem).addClass("on");
		if ($(elem).prev()) $(elem).prev().addClass("prev");
		if ($(elem).next()) $(elem).next().addClass("next");
        if (this.effect=='fade') { $(elem).children('ul').eq(0).stop(1,1).fadeIn(this.duration); }
        else if (this.effect=='slide') {$(elem).addClass("on").children('ul').eq(0).stop(1,1).slideDown(this.duration); }
        else if (this.effect=='show') { $(elem).children('ul').eq(0).stop(1,1).show(this.duration); }
		if ($(".ie6").is("body")) // IE6 fix
			$(elem).children('ul').eq(0).find("li").not($(elem).find("li li")).css({width:$(elem).children('ul').eq(0).innerWidth()});
		//else $(elem).find('ul').css("opacity", "0.75").find('li').css("opacity", "1");
    },
    hide: function(elem)
    {
        $(elem).removeClass("on").children('ul').eq(0).stop(1,1).fadeOut(100);
		if ($(elem).prev()) $(elem).prev().removeClass("prev");
		if ($(elem).next()) $(elem).next().removeClass("next");
    }
}

jQuery.fn.jmenu=function(settings)
{
    jmenu.set(settings);
	
    $(this).find('li').each(function()
    {
            $(this).hover(
                function()
                {
                    jmenu.fix_pos(this);
                    jmenu.show(this);
                },
                function()
                {
                    jmenu.hide(this);
                }
            );
    });
}
