(function($) {
    $.fn.lavaLamp = function(o) {
        o = $.extend({
            fx: "linear",
            speed: 500,
            click: function(){}
        }, o || {});

    return this.each(function() {
        var me = $(this), noop = function(){},
        $back = $('<li class="back"></li>').appendTo(me),
        $li = $(">li", this), curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];

        $li.not(".back").hover(function() {
            move(this);
        }, noop);

        $(this).hover(noop, function() {
            move(curr);
        });

        $li.click(function(e) {
            setCurr(this);
            return o.click.apply(this, [e, this]);
        });

        setCurr(curr);

        function setCurr(el) {
            $back.css({
                "left": el.offsetLeft+"px",
                "width": el.offsetWidth+"px"
            });
            curr = el;
        };

        function move(el) {
            $back.each(function() {
                $.dequeue(this, "fx");
            }
            ).animate({
                width: el.offsetWidth,
                left: el.offsetLeft
            }, o.speed, o.fx);
        };

    });
};
})(jQuery);



////

jQuery(function(){
    var $=jQuery;
    $.fn.retarder=function(delay,method){
        var node=this;
        if(node.length){
            if(node[0]._timer_)clearTimeout(node[0]._timer_);
            node[0]._timer_=setTimeout(function(){
                method(node)
                },delay)
            }
            return this
        };

    $('#menus').addClass('js-active');


    if($.browser.msie&&parseInt($.browser.version)==7)$('#menus').addClass('ie7');

    $('ul div','#menus').css('visibility','hidden');

    $('.menus>li','#menus').hover(function(){
        var ul=$('div:first',this);
        if(ul.length){
            if(!ul[0].hei)ul[0].hei=ul.height();
            ul.css({
                height:1,
                overflow:'hidden'
            }).retarder(150,function(i){
                $('#menus').removeClass('js-active');
                $('a:first',ul[0].parentNode).addClass('over');
                $('#menus>ul>li.back').css('display','none');
                if($.browser.msie)i.css('visibility','visible').animate({
                    height:ul[0].hei
                    },{
                    duration:200,
                    complete:function(){
                        ul.css('overflow','visible')
                        }
                    });else i.css({
                visibility:'visible',
                opacity:0
            }).animate({
                height:ul[0].hei,
                opacity:1
            },{
                duration:200,
                complete:function(){
                    ul.css('overflow','visible')
                    }
                })
            })
    }
    },function(){
    var ul=$('div:first',this);
    if(ul.length){
        var css={
            visibility:'hidden',
            height:ul[0].hei
            };

        $('#menus>ul>li.back').css('display','block');
        $('#menus').addClass('js-active');
        $('a:first',ul[0].parentNode).removeClass('over');
        ul.stop().retarder(50,function(i){
            if($.browser.msie)i.animate({
                height:1
            },{
                duration:150,
                complete:function(){
                    ul.css(css)
                    }
                });else i.css({
            opacity:1
        }).animate({
            height:1,
            opacity:0
        },{
            duration:150,
            complete:function(){
                ul.css(css)
                }
            })
        })
}
});



$('ul ul li','#menus').hover(function(){
    var ul=$('div:first',this);
    if(ul.length){
        if(!ul[0].wid)ul[0].wid=ul.width();
        ul.css({
            width:0,
            overflow:'hidden'
        }).retarder(100,function(i){
            if($.browser.msie||$.browser.opera)i.css('visibility','visible').animate({
                width:ul[0].wid
                },{
                duration:200,
                complete:function(){
                    ul.css('overflow','visible')
                    }
                });else i.css({
            visibility:'visible',
            opacity:0
        }).animate({
            width:ul[0].wid,
            opacity:1
        },{
            duration:200,
            complete:function(){
                ul.css('overflow','visible')
                }
            })
        })
}
},function(){
    var ul=$('div:first',this);
    if(ul.length){
        var css={
            visibility:'hidden',
            width:ul[0].wid
            };

        ul.stop().retarder(50,function(i){
            if($.browser.msie||$.browser.opera)i.animate({
                width:1
            },{
                duration:150,
                complete:function(){
                    ul.css(css)
                    }
                });else i.css({
            opacity:1
        }).animate({
            width:1,
            opacity:0
        },{
            duration:150,
            complete:function(){
                ul.css(css)
                }
            })
        })
}
});


    $('#menus ul.menus').lavaLamp({ speed:400});
});



jQuery(function(){
    var $=jQuery;
    $.fn.retarder=function(delay,method){
        var node=this;
        if(node.length){
            if(node[0]._timer_)clearTimeout(node[0]._timer_);
            node[0]._timer_=setTimeout(function(){
                method(node)
                },delay)
            }
            return this
        };

    $('#topnav').addClass('js-active');


    if($.browser.msie&&parseInt($.browser.version)==7)$('#topnav').addClass('ie7');

    $('ul div','#topnav').css('visibility','hidden');

    $('.topnav>li','#topnav').hover(function(){
        var ul=$('div:first',this);
        if(ul.length){
            if(!ul[0].hei)ul[0].hei=ul.height();
            ul.css({
                height:1,
                overflow:'hidden'
            }).retarder(150,function(i){
                $('#topnav').removeClass('js-active');
                $('a:first',ul[0].parentNode).addClass('over');
                $('#topnav>ul>li.back').css('display','none');
                if($.browser.msie)i.css('visibility','visible').animate({
                    height:ul[0].hei
                    },{
                    duration:200,
                    complete:function(){
                        ul.css('overflow','visible')
                        }
                    });else i.css({
                visibility:'visible',
                opacity:0
            }).animate({
                height:ul[0].hei,
                opacity:1
            },{
                duration:200,
                complete:function(){
                    ul.css('overflow','visible')
                    }
                })
            })
    }
    },function(){
    var ul=$('div:first',this);
    if(ul.length){
        var css={
            visibility:'hidden',
            height:ul[0].hei
            };

        $('#topnav>ul>li.back').css('display','block');
        $('#topnav').addClass('js-active');
        $('a:first',ul[0].parentNode).removeClass('over');
        ul.stop().retarder(50,function(i){
            if($.browser.msie)i.animate({
                height:1
            },{
                duration:150,
                complete:function(){
                    ul.css(css)
                    }
                });else i.css({
            opacity:1
        }).animate({
            height:1,
            opacity:0
        },{
            duration:150,
            complete:function(){
                ul.css(css)
                }
            })
        })
}
});



$('ul ul li','#topnav').hover(function(){
    var ul=$('div:first',this);
    if(ul.length){
        if(!ul[0].wid)ul[0].wid=ul.width();
        ul.css({
            width:0,
            overflow:'hidden'
        }).retarder(100,function(i){
            if($.browser.msie||$.browser.opera)i.css('visibility','visible').animate({
                width:ul[0].wid
                },{
                duration:200,
                complete:function(){
                    ul.css('overflow','visible')
                    }
                });else i.css({
            visibility:'visible',
            opacity:0
        }).animate({
            width:ul[0].wid,
            opacity:1
        },{
            duration:200,
            complete:function(){
                ul.css('overflow','visible')
                }
            })
        })
}
},function(){
    var ul=$('div:first',this);
    if(ul.length){
        var css={
            visibility:'hidden',
            width:ul[0].wid
            };

        ul.stop().retarder(50,function(i){
            if($.browser.msie||$.browser.opera)i.animate({
                width:1
            },{
                duration:150,
                complete:function(){
                    ul.css(css)
                    }
                });else i.css({
            opacity:1
        }).animate({
            width:1,
            opacity:0
        },{
            duration:150,
            complete:function(){
                ul.css(css)
                }
            })
        })
}
});


    $('#topnav ul.topnav').lavaLamp({ speed:400});
});
