// menu shiz - tom_bmx
var colors={aqua:[255,0,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]};

    jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function (i, attr) {
        jQuery.fx.step[attr] = function (fx) {
            if (fx.state == 0) {
                fx.start = getColor(fx.elem, attr);
                fx.end = getRGB(fx.end)
            }
            if (fx.start) fx.elem.style[attr] = "rgb(" + 
		[Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0), 
		Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0), 
		Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)].join(",") + ")"
        }
    });

    function getRGB(color) {
        var result;
        if (color && color.constructor == Array && color.length == 3) return color;
        if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
        if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) return [parseFloat(result[1]) * 2.55, parseFloat(result[2]) * 2.55, parseFloat(result[3]) * 2.55];
        if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];
        if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) return [parseInt(result[1] + result[1], 16), parseInt(result[2] + result[2], 16), parseInt(result[3] + result[3], 16)];
        return colors[jQuery.trim(color).toLowerCase()]
    }
    function getColor(elem, attr) {
        var color;
        do {
            color = jQuery.curCSS(elem, attr);
            if (color != '' && color != 'transparent' || jQuery.nodeName(elem, "body")) break;
            attr = "backgroundColor"
        } while (elem = elem.parentNode);
        return getRGB(color)
    };
(function(jQuery){jQuery.fn.lavaLamp=function(o){o=jQuery.extend({fx:"linear",speed:500,click:function(){}},o||{});return this.each(function(index){var me=jQuery(this),noop=function(){},$back=jQuery('<li class="back"><div class="left"></div></li>').appendTo(me),$li=jQuery(">li",this),curr=jQuery("li.current",this)[0]||jQuery($li[0]).addClass("current")[0];$li.not(".back").hover(function(){move(this)},noop);jQuery(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(){jQuery.dequeue(this,"fx")}).animate({width:el.offsetWidth,left:el.offsetLeft},o.speed,o.fx)};if(index==0){jQuery(window).resize(function(){$back.css({width:curr.offsetWidth,left:curr.offsetLeft})})}})}})(jQuery);

// retarder
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;
};
jQuery(function () {
    jQuery('#menu').addClass('js-active');
    jQuery('ul div', '#menu').css('visibility', 'hidden');
    jQuery('#menu .menu>li').hover(function () {
        jQuery(this).css({color: 'rgb(255,0,0)'});
        var ul = jQuery('div:first', this);
        if (ul.length) {
            if (!ul[0].hei) ul[0].hei = ul.height();
            ul.css({
                height: 20,
                overflow: 'hidden'
            }).retarder(50, function (i) {
                i.css('visibility', 'visible').animate({
                    height: ul[0].hei
                }, {
                    duration: 150,
                    complete: function () {
                        ul.css('overflow', 'visible')
                    }
                })
            })
        }
    }, function () {
        var ul = jQuery('div:first', this);
        if (ul.length) {
            var css = {
                visibility: 'hidden',
                height: ul[0].hei
            };
            ul.stop().retarder(1, function (i) {
                i.css(css)
            })
        }
    });
    
    jQuery('#menu ul li').hover(function () {
        var ul = jQuery('div:first', this);
        if (ul.length) {
            if (!ul[0].wid) ul[0].wid = ul.width();
            ul.css({
                width: 0,
                overflow: 'hidden'
            }).retarder(50, function (i) {
                i.css('visibility', 'visible').animate({
                    width: ul[0].wid
                }, {
                    duration: 150,
                    complete: function () {
                        ul.css('overflow', 'visible')
                    }
                })
            })
        }
    }, function () {
        var ul = jQuery('div:first', this);
        if (ul.length) {
            var css = {
                visibility: 'hidden',
                width: ul[0].wid
            };
            ul.stop().retarder(1, function (i) {
                i.css(css)
            })
        }
    });
    
    
    
    
    var links = jQuery('.menu>li>a, .menu>li>a span', '#menu').css({
        background: 'none',
        color: 'rgb(255,0,0)'
    });
    jQuery('#menu ul.menu').lavaLamp({
        speed: 150
    });
    if (jQuery.browser.msie && jQuery.browser.version.substr(0, 1) == '6') {
        jQuery('#menu ul a span').css({
            color: 'rgb(255,255,255)'
        }).hover(function () {
            jQuery(this).animate({
                color: 'rgb(255,0,0)'
            })
        }, function () {
            jQuery(this).animate({
                color: 'rgb(255,255,255)'
            })
        })
    } else {
        jQuery('#menu ul a span').css({
            color: 'rgb(255,255,255)'
        }).hover(function () {
            jQuery(this).animate({
                color: 'rgb(255,0,0)'
            }, 100)
        }, function () {
            jQuery(this).animate({
                color: 'rgb(255,255,255)'
            }, 100)
        })
    }
});
