jQuery.easing = {

	easein: function(x, t, b, c, d) {

		return c*(t/=d)*t + b; // in

	},

	easeinout: function(x, t, b, c, d) {

		if (t < d/2) return 2*c*t*t/(d*d) + b;

		var ts = t - d/2;

		return -2*c*ts*ts/(d*d) + 2*c*ts/d + c/2 + b;

	},

	easeout: function(x, t, b, c, d) {

		return -c*t*t/(d*d) + 2*c*t/d + b;

	},

	expoin: function(x, t, b, c, d) {

		var flip = 1;

		if (c < 0) {

			flip *= -1;

			c *= -1;

		}

		return flip * (Math.exp(Math.log(c)/d * t)) + b;

	},

	expoout: function(x, t, b, c, d) {

		var flip = 1;

		if (c < 0) {

			flip *= -1;

			c *= -1;

		}

		return flip * (-Math.exp(-Math.log(c)/d * (t-d)) + c + 1) + b;

	},

	expoinout: function(x, t, b, c, d) {

		var flip = 1;

		if (c < 0) {

			flip *= -1;

			c *= -1;

		}

		if (t < d/2) return flip * (Math.exp(Math.log(c/2)/(d/2) * t)) + b;

		return flip * (-Math.exp(-2*Math.log(c/2)/d * (t-d)) + c + 1) + b;

	},

	bouncein: function(x, t, b, c, d) {

		return c - jQuery.easing['bounceout'](x, d-t, 0, c, d) + b;

	},

	bounceout: function(x, t, b, c, d) {

		if ((t/=d) < (1/2.75)) {

			return c*(7.5625*t*t) + b;

		} else if (t < (2/2.75)) {

			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;

		} else if (t < (2.5/2.75)) {

			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;

		} else {

			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;

		}

	},

	bounceinout: function(x, t, b, c, d) {

		if (t < d/2) return jQuery.easing['bouncein'] (x, t*2, 0, c, d) * .5 + b;

		return jQuery.easing['bounceout'] (x, t*2-d,0, c, d) * .5 + c*.5 + b;

	},

	elasin: 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*.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;

	},

	elasout: 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*.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;

	},

	elasinout: 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*(.3*1.5);

		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 -.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 )*.5 + c + b;

	},

	backin: function(x, t, b, c, d) {

		var s=1.70158;

		return c*(t/=d)*t*((s+1)*t - s) + b;

	},

	backout: function(x, t, b, c, d) {

		var s=1.70158;

		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;

	},

	backinout: function(x, t, b, c, d) {

		var 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;

	},

	linear: function(x, t, b, c, d) {

		return c*t/d + b; //linear

	}

};



(function($) {

$.fn.jReveal = function(o) {

    o = $.extend({

        min: 0,             // Minimum size of each element. All other elements other than the currently hovered element get this size

        max: 0,             // Maximum size of the element. The element that is currently hovered gets this size

        mid: 0,             // Middle size of each element. All the elements get this size when no element is hovered upon

		def: null,			// List item that is open by default.  If default is selected, will snap back to this element if none is chosen.

        speed: 150,         // Speed with which the animation should be applied while moving the focus for the element - bigger number == slower movement

        easing: "linear"    // The easing effect to be applied to the animation that moves the element's focus  

    }, o || {});



    var $ul = $("ul", this), $li = $("li", $ul), liLength = $li.length, $old = null, $new = null, first = true, running = false, noop = function() {};

    $li.hover(function() {

        if(!running) {

            running = true; $new = $(this);

            if(first) {

                $new.animate({width: o.max}, o.speed);

                $li.not(this).animate({width: o.min}, o.speed, function() {

                    $old = $new;

                    first = running = false;

                });

            } else {

                var newWidth = $new.width(), oldWidth = $old.width();

                $new.animate( { width: o.max }, { duration: o.speed, easing: o.easing,

                    step: function(n) {

                        $old.width(Math.ceil( oldWidth - (n-newWidth)));

                    },

                    complete: function() {

                        $old = $new; running = false;

                    }

                });

            }

        }

    }, noop);



    $ul.hover(noop, function() {

        if(o.def == null) {

			$li.animate({width: o.mid}, o.speed); first = true;

		} else {

			$("li:not(.defaultImageSelected)", $ul).animate({width: o.min}, o.speed);

			$li.eq(o.def).animate({width: o.max}, o.speed); first = true;

		}

    });

	

	if(o.def!=null) {

		//$li.eq(o.def).trigger("mouseover");

		$li.eq(o.def).addClass("defaultImageSelected");

		$("li:not(.defaultImageSelected)", $ul).animate({width: o.min}, o.speed);

		$li.eq(o.def).animate({width: o.max}, o.speed); first = true;

	}

};

})(jQuery);



$(document).ready(function(){

	$("#subnav a").each(function() {

		if(this.href==window.location) {

			$(this).addClass("active");

		}

		var that=this;

		$("#nav a").each(function() {

			if(this.href==that.href) {

				$(this).addClass("active");

			}

		});

	});

	$(function() {

		var xlen=$("#gallery li").length;

		var midRange=Math.round(925/xlen)-5;

		var maxRange=($(".team").length>0 || $(".team-member").length>0)?210:430;
		
		var minRange=Math.round(((925-maxRange)/(xlen-1))-5);
		
		midRange=(midRange>210)?210:midRange;
		
		minRange=(minRange>150)?150:minRange;
		
		var def=null;

		var i=0;

		/*$("#gallery li a").each(function() {

			if(this.href==window.location) {

				def=i;

			}

			i++;

		});*/

		//$("#gallery").css("width", minRange*(xlen-1)+430+(10*xlen)+"px");

		$("#gallery li").css("width", midRange+"px");

		if($("#gallery li").length>1) {

			$("#gallery").jReveal({min: minRange, max: maxRange, mid: midRange/*, def: def*/});

		} else {

			$("#gallery li").css("width", maxRange+"px");

		}

		/*function check() {

			$("#gallery li a").each(function() {

				if(this.href==window.location) {

					$(this).parents("li").eq(0).trigger("mouseover");

				}

			});

		}

		$("#gallery").hover(function() {return null;}, function() {

			check();

		});

		check();*/

	});

});

