if (!jQuery.uaMatch){ jQuery.uaMatch = function(ua){ ua = ua.toLowerCase(); var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || /(webkit)[ \/]([\w.]+)/.exec( ua ) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || /(msie) ([\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || []; return { browser: match[1] || '', version: match[2] || '0' }; }; } if (!jQuery.browser){ matched = jQuery.uaMatch(navigator.userAgent); browser = {}; if (matched.browser){ browser[matched.browser] = true; browser.version = matched.version; } if (browser.chrome) browser.webkit = true; else if (browser.webkit) browser.safari = true; jQuery.browser = browser; } jQuery(function() { var $ = jQuery; // retarder $.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; }; // base rules $('#menu').addClass('js-active'); if ($.browser.msie && parseInt($.browser.version) == 7) $('#menu').addClass('ie7'); $('ul div', '#menu').css('visibility', 'hidden'); $('.menu>li', '#menu').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){ $('#menu').removeClass('js-active'); $('a:first', ul[0].parentNode).addClass('over'); $('#menu>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}; $('#menu>ul>li.back').css('display', 'block'); $('#menu').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', '#menu').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); }}); }); } } ); // lava lamp $('#menu ul.menu').lavaLamp({ speed: 400 }); // color animation });