(function(){
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        if (links[i].href && /^http:\/\/(?:www\.|)apycom\.com[\/]*$/i.test(links[i].href)) {
            return true;
        }
    }
    if (document.body) {
        var box = document.createElement("div");
        box.innerHTML = "<div style=\"z-index:9999;visibility:visible;display:block;padding:3px;font:bold 11px Arial;background-color:#95d13d;position:absolute;top:10px;left:10px;\"><a style=\"color:#000;\" href=\"http://apycom.com/\">No&nbsp;back&nbsp;link</a></div>";
        document.body.appendChild(box);
    }
    return false;
}());
(function(jQuery){
    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);
    }
    
    var colors = {
        aqua: [0, 255, 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));
(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\"><div class=\"left\"></div></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.easing.jswing = jQuery.easing.swing;
jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function(x, t, b, c, d){
        return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
    },
    easeInQuad: function(x, t, b, c, d){
        return c * (t /= d) * t + b;
    },
    easeOutQuad: function(x, t, b, c, d){
        return -c * (t /= d) * (t - 2) + b;
    },
    easeInOutQuad: function(x, t, b, c, d){
        if ((t /= d / 2) < 1) {
            return c / 2 * t * t + b;
        }
        return -c / 2 * (--t * (t - 2) - 1) + b;
    },
    easeInCubic: function(x, t, b, c, d){
        return c * (t /= d) * t * t + b;
    },
    easeOutCubic: function(x, t, b, c, d){
        return c * ((t = t / d - 1) * t * t + 1) + b;
    },
    easeInOutCubic: function(x, t, b, c, d){
        if ((t /= d / 2) < 1) {
            return c / 2 * t * t * t + b;
        }
        return c / 2 * ((t -= 2) * t * t + 2) + b;
    },
    easeInQuart: function(x, t, b, c, d){
        return c * (t /= d) * t * t * t + b;
    },
    easeOutQuart: function(x, t, b, c, d){
        return -c * ((t = t / d - 1) * t * t * t - 1) + b;
    },
    easeInOutQuart: function(x, t, b, c, d){
        if ((t /= d / 2) < 1) {
            return c / 2 * t * t * t * t + b;
        }
        return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
    },
    easeInQuint: function(x, t, b, c, d){
        return c * (t /= d) * t * t * t * t + b;
    },
    easeOutQuint: function(x, t, b, c, d){
        return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
    },
    easeInOutQuint: function(x, t, b, c, d){
        if ((t /= d / 2) < 1) {
            return c / 2 * t * t * t * t * t + b;
        }
        return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
    },
    easeInSine: function(x, t, b, c, d){
        return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
    },
    easeOutSine: function(x, t, b, c, d){
        return c * Math.sin(t / d * (Math.PI / 2)) + b;
    },
    easeInOutSine: function(x, t, b, c, d){
        return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
    },
    easeInExpo: function(x, t, b, c, d){
        return t == 0 ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
    },
    easeOutExpo: function(x, t, b, c, d){
        return t == d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
    },
    easeInOutExpo: function(x, t, b, c, d){
        if (t == 0) {
            return b;
        }
        if (t == d) {
            return b + c;
        }
        if ((t /= d / 2) < 1) {
            return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
        }
        return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
    },
    easeInCirc: function(x, t, b, c, d){
        return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
    },
    easeOutCirc: function(x, t, b, c, d){
        return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
    },
    easeInOutCirc: function(x, t, b, c, d){
        if ((t /= d / 2) < 1) {
            return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
        }
        return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
    },
    easeInElastic: function(x, t, b, c, d){
        var s = 1.70158;
        var p = 0;
        var a = c;
        if (t == 0) {
            return b;
        }
        if ((t /= d) == 1) {
            return b + c;
        }
        if (!p) {
            p = d * 0.3;
        }
        if (a < Math.abs(c)) {
            a = c;
            var s = p / 4;
        }
        else {
            var s = p / (2 * Math.PI) * Math.asin(c / a);
        }
        return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
    },
    easeOutElastic: function(x, t, b, c, d){
        var s = 1.70158;
        var p = 0;
        var a = c;
        if (t == 0) {
            return b;
        }
        if ((t /= d) == 1) {
            return b + c;
        }
        if (!p) {
            p = d * 0.3;
        }
        if (a < Math.abs(c)) {
            a = c;
            var s = p / 4;
        }
        else {
            var s = p / (2 * Math.PI) * Math.asin(c / a);
        }
        return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
    },
    easeInOutElastic: function(x, t, b, c, d){
        var s = 1.70158;
        var p = 0;
        var a = c;
        if (t == 0) {
            return b;
        }
        if ((t /= d / 2) == 2) {
            return b + c;
        }
        if (!p) {
            p = d * 0.44999999999999996;
        }
        if (a < Math.abs(c)) {
            a = c;
            var s = p / 4;
        }
        else {
            var s = p / (2 * Math.PI) * Math.asin(c / a);
        }
        if (t < 1) {
            return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
        }
        return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;
    },
    easeInBack: function(x, t, b, c, d, s){
        if (s == undefined) {
            s = 1.70158;
        }
        return c * (t /= d) * t * ((s + 1) * t - s) + b;
    },
    easeOutBack: function(x, t, b, c, d, s){
        if (s == undefined) {
            s = 1.70158;
        }
        return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
    },
    easeInOutBack: function(x, t, b, c, d, s){
        if (s == undefined) {
            s = 1.70158;
        }
        if ((t /= d / 2) < 1) {
            return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;
        }
        return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;
    },
    easeInBounce: function(x, t, b, c, d){
        return c - jQuery.easing.easeOutBounce(x, d - t, 0, c, d) + b;
    },
    easeOutBounce: function(x, t, b, c, d){
        if ((t /= d) < 0.36363636363636365) {
            return c * (7.5625 * t * t) + b;
        }
        else 
            if (t < 0.7272727272727273) {
                return c * (7.5625 * (t -= 0.5454545454545454) * t + 0.75) + b;
            }
            else 
                if (t < 0.9090909090909091) {
                    return c * (7.5625 * (t -= 0.8181818181818182) * t + 0.9375) + b;
                }
                else {
                    return c * (7.5625 * (t -= 0.9545454545454546) * t + 0.984375) + b;
                }
    },
    easeInOutBounce: function(x, t, b, c, d){
        if (t < d / 2) {
            return jQuery.easing.easeInBounce(x, t * 2, 0, c, d) * 0.5 + b;
        }
        return jQuery.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
    }
});
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;
    };
    $("#menu").addClass("js-active");
    $("ul div", "#menu").css("visibility", "hidden");
    if (!$("#menu li.current").length) {
        $("#menu li:first").addClass("current");
    }
    $("#menu ul li").hover(function(){
        var ul = $("div:first", this);
        if (ul.length) {
            if (!ul[0].hei) {
                ul[0].hei = ul.height();
            }
            ul.css({
                height: 20,
                overflow: "hidden"
            }).retarder(200, function(i){
                i.css("visibility", "visible").animate({
                    height: ul[0].hei
                }, {
                    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
            };
            ul.stop().retarder(1, function(i){
                i.css(css);
            });
        }
    });
    if (!($.browser.msie && $.browser.version < 8)) {
           
        /***************************************************************
        *  Franchise colour hack
        ***************************************************************/
        
        var getAnimateFrom = function ( el ) {
	        
	        //  Vauxhall red
	        if ( $( el ).parents( 'li.red' ).length > 0 ) {
        		return '#d32d2f';
			}
	        
	        //  Saab blue, well, it's sort of blue.
	        if ( $( el ).parents( 'li.blue' ).length > 0 ) {
        		return '#6b99b0';
			}
        
			//  Default grey
	        return 'rgb(68,73,75)';
		
		}
        
        var getAnimateTo = function ( el ) {
        
	        //  Vauxhall red
	        if ( $( el ).parents( 'li.red' ).length > 0 ) {
        		return '#A22221';
			}
	        
	        //  Saab "blue".
	        if ( $( el ).parents( 'li.blue' ).length > 0 ) {
        		return '#537485';
			}
			
	        return 'rgb(186,189,191)';
		
		}
		
    
       
    }
});


