/*
	 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
	 *
	 * Uses the built in easing capabilities added In jQuery 1.1
	 * to offer multiple easing options
	 *
	 * TERMS OF USE - jQuery Easing
	 * 
	 * Open source under the BSD License. 
	 * 
	 * Copyright Â© 2008 George McGinley Smith
	 * All rights reserved.
	 * 
	 * Redistribution and use in source and binary forms, with or without modification, 
	 * are permitted provided that the following conditions are met:
	 * 
	 * Redistributions of source code must retain the above copyright notice, this list of 
	 * conditions and the following disclaimer.
	 * Redistributions in binary form must reproduce the above copyright notice, this list 
	 * of conditions and the following disclaimer in the documentation and/or other materials 
	 * provided with the distribution.
	 * 
	 * Neither the name of the author nor the names of contributors may be used to endorse 
	 * or promote products derived from this software without specific prior written permission.
	 * 
	 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
	 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
	 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
	 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
	 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
	 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
	 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
	 * OF THE POSSIBILITY OF SUCH DAMAGE. 
	 *
	*/
	
	// t: current time, b: begInnIng value, c: change In value, d: duration
	jQuery.easing['jswing'] = jQuery.easing['swing'];
	
	jQuery.extend( jQuery.easing,
	{
		def: 'easeOutQuad',
		swing: function (x, t, b, c, d) {
			//alert(jQuery.easing.default);
			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*.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*.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*(.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;
		},
		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) < (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;
			}
		},
		easeInOutBounce: function (x, t, b, c, d) {
			if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
			return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
		}
	});
	
	/*
	 *
	 * TERMS OF USE - EASING EQUATIONS
	 * 
	 * Open source under the BSD License. 
	 * 
	 * Copyright © 2001 Robert Penner
	 * All rights reserved.
	 * 
	 * Redistribution and use in source and binary forms, with or without modification, 
	 * are permitted provided that the following conditions are met:
	 * 
	 * Redistributions of source code must retain the above copyright notice, this list of 
	 * conditions and the following disclaimer.
	 * Redistributions in binary form must reproduce the above copyright notice, this list 
	 * of conditions and the following disclaimer in the documentation and/or other materials 
	 * provided with the distribution.
	 * 
	 * Neither the name of the author nor the names of contributors may be used to endorse 
	 * or promote products derived from this software without specific prior written permission.
	 * 
	 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
	 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
	 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
	 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
	 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
	 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
	 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
	 * OF THE POSSIBILITY OF SUCH DAMAGE. 
	 *
	 */
	  // Profile Overlay
	var lightBoxVar = 0;
	var overlay_interval;
	var profiles_viewed = new Array();
	
	function overlaySize() {
		// Height calculations are not needed, overlay is the same color as the
		// background and can be controlled with css
		winW = document.body.offsetWidth;
		if(winW < 960) {
			document.getElementById('overlay').style.width = 960 + "px";
			document.getElementById('overlay_profile_wrap').style.width = 960 + "px";
		} else {
			document.getElementById('overlay').style.width = 100 + "%";
			document.getElementById('overlay_profile_wrap').style.width = 100 + "%";
		}
	}
	
	function closePhotoVideo() {
		//$("#photo_video_content").fadeOut(500, function() {
			$('#photo_video_content').animate({opacity: 0},600,function(){
				$("#photo_video_content").html("");
				$("#overlay_photo_video").hide();
			});
		//});
	}
	
	// Photo and Video Overlay
	function showPhotoVideo(type,user_id,id)
	{
		$("#photo_video_content").html("");
		
		//ajax
		$("#overlay_photo_video").slideDown(500, function()
		{
			$("#overlay_photo_video_loader").fadeIn();
			$.ajax({
				type: "GET",
				url: "/StrongerTogether/get-photo-video.php",
				data: "type=" + type + "&user_id=" + user_id + "&id=" + id,
				dataType: "html",
				cache: true,
				success: function(data)
				{
					$("#photo_video_content").show();
					$("#photo_video_content").html("" + data);
					$("#photo_video_content").css("opacity",0);
					$("#overlay_photo_video_loader").fadeOut(1000, function() {
						$('#photo_video_content').animate({opacity: 1}, 2500);
					});
				},
				error: function (XMLHttpRequest, textStatus, errorThrown)
				{
					alert("error " + textStatus);
				}
			});						
		});	
	}	
	
	
	function backupChainLink()
	{
		profiles_viewed.pop();
		previous_profile = profiles_viewed.pop();
		
		if (previous_profile)
		{
			openChainLink(previous_profile);
		}
	}
	
	
	function openChainLink(link_id)
	{
		$("#wrap_prev_next").hide();
		$("#btn_prev").hide();
		$("#btn_next").hide();
		
		
		$("#profile_content").css({visibility:"hidden"});
		$("#overlay_profile").fadeOut();
		
		$("#profile_loader").show();
		
		$("#overlay_profile").show()
		$("#overlay_profile").animate({width: "691px", height:"726px"}, 1200, "easeOutCirc");
		
		fill_profile_div(link_id);
	}
	
	// Overlay animation functions
	function showProfile() 
	{ 
		$("#profile_loader").fadeOut(1000);
		$("#profile").css({visibility:"visible"});
		$("#profile").removeClass("hidden");
		$("#profile").show();
		
		profile_id = profiles_viewed[profiles_viewed.length - 1];
		addthis.button('#rendered_add_btn', {}, {url: "http://" + document.location.host + "/StrongerTogether/profile.php?id=" + profile_id + "&referrer=AT", title: "Check out this Curves StrongerTogether Profile!", description: 'Check out this Curves StrongerTogether Profile!'});
	}
	
	
	function formOverlay(profile_id) 
	{
		//restore the opacity since we faded it out when the overlay closed last time.
		$("#overlay").fadeTo("fast",.6);
		
		if(lightBoxVar == 0) 
		{
			lightBoxVar = 1; // Lightbox is open variable
			$("#overlay").slideDown(1000, function() 
			{ 
				$("#profile_content").html(" ");
				// Fade in the overlay
				$("#overlay_profile").show(); // Show and animate profile shadow
				overlay_interval = setInterval ( "overlaySize()", 33 ); // Incase they resize the browser the overlay width will resize
				// Animate the overlay
				$("#overlay_profile_right").show();
				$("#overlay_profile_left").show();
				$("#overlay_profile_top").show();
				$("#overlay_profile_bottom").show();
				$("#overlay_profile_wrap").fadeIn(1500);
				// Fix IE flickering issue
				setTimeout('$("#overlay_ie_wrap").show()', 1000);
				setTimeout('$("#overlay_ie_fix").show()', 1000);
				//
				$("#overlay_profile_right").animate({width: "691px", height:"726px"}, 1200, "easeOutCirc");
				$("#overlay_profile_left").animate({width: "698px", height:"726px"}, 1200, "easeOutCirc");
				$("#overlay_profile").animate({width: "691px", height:"726px"}, 1200, "easeOutCirc");
				$("#overlay_profile_top").animate({width: "714px"}, 1200, "easeOutCirc");
				$("#overlay_profile_bottom").animate({width: "714px"}, 1200, "easeOutCirc", function() {
					fill_profile_div(profile_id);
				});
			});
		}
	}
	
	//Form Overlay Function if calling from WOS popup
	//Changes shadow background to go over the WOS popup
	//gif shadows must be used bc of the round corners and animation
	function formOverlayWOS(profile_id) 
	{
		//restore the opacity since we faded it out when the overlay closed last time.
		$("#overlay").fadeTo("fast",.5);
		
		if(lightBoxVar == 0) 
		{
			lightBoxVar = 1; // Lightbox is open variable
			$("#overlay").slideDown(1000, function() 
			{ 
				$("#profile_content").html(" ");
				// Fade in the overlay
				$("#overlay_profile").show(); // Show and animate profile shadow
				overlay_interval = setInterval ( "overlaySize()", 33 ); // Incase they resize the browser the overlay width will resize
				// Animate the overlay
				$("#overlay_container").css({top: "18px", left:"23px"});
				$("#overlay_profile_right").show();
				$("#overlay_profile_left").show();
				$("#overlay_profile_top").show();
				$("#overlay_profile_bottom").show();
				$("#overlay_profile_left").css("background-image", "url(/StrongerTogether/images/overlay/bg_overlay_profile_left_white.gif)");
				$("#overlay_profile_right").css("background-image", "url(/StrongerTogether/images/overlay/bg_overlay_profile_white.gif)");
				$("#overlay_ie_fix").css({position:"relative", left:"20px", top:"17px"});
				$("#overlay_profile_wrap").fadeIn(1500);
				// Fix IE flickering issue
				setTimeout('$("#overlay_ie_wrap").show()', 1000);
				setTimeout('$("#overlay_ie_fix").show()', 1000);
				//
				$("#overlay_profile_right").animate({width: "691px", height:"726px"}, 1200, "easeOutCirc");
				$("#overlay_profile_left").animate({width: "698px", height:"726px"}, 1200, "easeOutCirc");
				$("#overlay_profile").animate({width: "691px", height:"726px"}, 1200, "easeOutCirc");
				$("#overlay_profile_top").animate({width: "714px"}, 1200, "easeOutCirc");
				$("#overlay_profile_bottom").animate({width: "714px"}, 1200, "easeOutCirc", function() {
					fill_profile_div(profile_id);
				});
			});
		}
	}
	
	
	function fill_profile_div(profile_id)
	{
		// Open the profile loader and profile content div
		// Profile content is set to hidden to preload the content
		$("#profile_loader").fadeIn(500, function()
		{
			$.ajax({
				type: "GET",
				url: "/StrongerTogether/profile-overlay.php",
				data: "id=" + profile_id,
				dataType: "html",
				cache: false,
				success: function(data){
					//this did not work in IE.  i dont know why.  too much data...possibly
					//$("#profile_content").html("" + data);
					
					document.getElementById('profile_content').innerHTML = data;
					
					$("#profile_content").css({visibility:"visible"});
					$("#profile_content").show();
					// This preloads the profile content for 2 seconds before the loader is hidden
					
					profiles_viewed.push(profile_id);
					
					$("#profile").show(); 
					setTimeout('showProfile()', 2000);
					
					if (profiles_viewed.length <= 1)
					{
						$("#btn_prev").hide();
					}
					else
					{
						$("#btn_prev").show();
					}					
				},
				error: function (XMLHttpRequest, textStatus, errorThrown) 
				{
					alert("error " + textStatus);
				}
			});						
		});
	}
	
	
	function closeFormOverlay() 
	{
		//reset the list of profiles that we've viewed
		profiles_viewed = new Array();
		
		//$("#overlay").hide();
		//$("#form_overlay").hide();
		//$("#profile").css({visibility:'hidden'});
		
		$("#overlay").fadeOut();
		$("#profile_content").css({visibility:"hidden"});
		$("#overlay_profile").hide();
		clearInterval(overlay_interval);
		$("#overlay_profile_right").hide();
		$("#overlay_profile_left").hide();
		$("#overlay_profile_top").hide();
		$("#overlay_profile_bottom").hide();
		$("#profile_content").hide();
		$("#overlay_ie_wrap").hide();
		$("#overlay_ie_fix").hide();
		$("#overlay_profile_wrap").hide();
		$("#overlay_profile_right").css({width: "100px", height:"100px"});
		$("#overlay_profile_left").css({width: "100px", height:"100px"});
		$("#overlay_profile").css({width: "100px", height:"100px"});
		$("#overlay_profile_top").css({width: "100px"});
		$("#overlay_profile_bottom").css({width: "100px"});
		$("#overlay_profile_left").css("background-image", "url(/StrongerTogether/images/overlay/bg_overlay_profile_left.gif)");
		$("#overlay_profile_right").css("background-image", "url(/StrongerTogether/images/overlay/bg_overlay_profile.gif)");
		lightBoxVar = 0;
	}	
	
	// To make sure the light box overlay resizes with the window
	window.onresize = function() 
	{
		if(lightBoxVar == 1) 
		{
			overlaySize();
		}
	}
	
	// Size the Overlay when the window is loaded
	window.onload = function() 
	{
		overlaySize();
		$("#btn_prev").live('click',function()
		{
			backupChainLink();
		});	
	}

