;(function($){
    $.fn.superfish=function(op){
        var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"></span>'].join('')),over=function(){
            var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl()
            },out=function(){
            var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){
                o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){
                    over.call(o.$path)
                    }
                },o.delay)
            },getMenu=function($menu){
            var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu
            },addArrow=function($a){
            $a.addClass(c.anchorClass).append($arrow.clone())
            };return this.each(function(){
            var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
                $(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass)
                });sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){
                if(o.autoArrows)addArrow($('>a:first-child',this))
                    }).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){
                var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){
                    over.call($li)
                    }).blur(function(){
                    out.call($li)
                    })
                });o.onInit.call(this)
            }).each(function(){
            menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '))
            })
        };var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){
        var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)this.toggleClass(sf.c.shadowClass+'-off')
            };sf.c={
        bcClass:'sf-breadcrumb',
        menuClass:'sf-js-enabled',
        anchorClass:'sf-with-ul',
        arrowClass:'sf-sub-indicator',
        shadowClass:'sf-shadow'
    };sf.defaults={
        hoverClass:'sfHover',
        pathClass:'overideThisToUse',
        pathLevels:1,
        delay:800,
        animation:{
            opacity:'show'
        },
        speed:'normal',
        autoArrows:true,
        dropShadows:true,
        disableHI:true,
        onInit:function(){},
        onBeforeShow:function(){},
        onShow:function(){},
        onHide:function(){}
        };$.fn.extend({
        hideSuperfishUl:function(){
            var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this
            },
        showSuperfishUl:function(){
            var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){
                sf.IE7fix.call($ul);o.onShow.call($ul)
                });return this
            }
        })
    })(jQuery);
