var currentRotateBox = "rotateBox1";
var currentAnimation = "";
var boxCounter = 1;
var rotateTimer = "";
var rotateTime = 8000;
var fadeTime = 400;
var maxBoxes = 1;
var rotateCount = 0;

function rotateOut(box)
{
	var boxOut = dojo.animateProperty(
	{
	  node:box, 
	  duration:1, 
	  properties:{
	    left:{start:"0", end:"-692", unit:"px"}
	    }
	});
	var boxFade = dojo.fadeOut({node: box,duration: fadeTime});
	var boxChain = dojo.fx.chain([boxFade, boxOut]);
	var selectorAnimation = selectorOut(box);
	return dojo.fx.combine([boxChain, selectorAnimation]); 
}

function rotateIn(box)
{
	dojo.fadeOut({node: box,duration: 1}).play();
	var boxIn = dojo.animateProperty(
	{
	  node:box, 
	  duration:1, 
	  properties:{
	    left:{start:"692", end:"0", unit:"px"}
	    }
	});
	var boxFade = dojo.fadeIn({node: box,duration: fadeTime});
	var boxChain = dojo.fx.chain([boxIn, boxFade]); 
	
	var selectorAnimation = selectorIn(box);
	
	
	return dojo.fx.combine([boxChain, selectorAnimation]);
}

function selectorIn(box)
{
	
	var selIn = dojo.animateProperty(
	{
	  node:"imageBox" + Right(box, 1), 
	  duration:fadeTime, 
	  properties:{
	    backgroundColor:{start:"#FFFFFF", end:"#dddddd"}
	    }
	  
	});
	return selIn;
}

function rotateBoxes(boxOut, boxIn)
{
	
	
	if(!(dojo.byId(boxOut) && dojo.byId(boxIn)) || (boxOut == boxIn))
	{
		return 0;
	}
	
	if(currentAnimation)
	{
		currentAnimation.stop(false);
		rotateOut(boxOut).play();
    }
    
	currentAnimation = dojo.fx.chain([rotateOut(boxOut), rotateIn(boxIn)]).play();
	currentRotateBox = boxIn;
    
	
}

function selectorOut(box)
{
	var selOut = dojo.animateProperty(
	{
	  node:"imageBox" + Right(box, 1), 
	  duration:fadeTime, 
	  properties:{
	    backgroundColor:{start:"#dddddd", end:"#FFFFFF"}
	    }
	});
	return selOut;
}

function autoRotate()
{
	boxCounter++;
	if(boxCounter > maxBoxes)
	{
		boxCounter = 1;
	}
	rotateBoxes(currentRotateBox, "rotateBox" + boxCounter);
	rotateTimer = setTimeout("autoRotate()", rotateTime);
}

function clearTimer()
{
	clearTimeout(rotateTimer);
}

function startTimer()
{
	boxCounter = Right(currentRotateBox, 1);
	rotateTimer = setTimeout("autoRotate()", rotateTime);
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function addCallbacks(node, fcn)
{
	dojo.query("a", node).forEach(function(qnode)
	{
		qnode.onclick = function(event)
		{
			fcn(qnode);
			pageTracker._trackPageview(qnode.href);
			return false;
		};
		
	});
}

function toggleActivity()
{
	var activity = dojo.byId("activity");
	if(activity.style.visibility == "hidden")
	{
		activity.style.visibility = "visible";
	}
	else
	{
		activity.style.visibility = "hidden";
	}	
}

function disableRIA()
{
	dojo.query("a").forEach(function(qnode)
	{
		qnode.onclick = "";
		
	});
}

function mainNavFade(node)
{
	//toggleActivity();
	href = node.href;	
	dojo.byId("page").style.backgroundImage = nextImage();
	dojo.animateProperty(
	{
		node:dojo.byId("sidebar"),
		duration:500,
		properties:{
			left:{start:0, end:-309, unit:"px"}
		},
		easing:dojox.fx.easing.backIn,
		onEnd:function()
		{
			
			dijit.byId("sideContainer").attr("onLoad", function()
			{
				addCallbacks("sidebar", subMenuFade);
				addCallbacks('homeFeatures', mainNavFade);
				addCallbacks('sideVideo', mainNavFade);
				//toggleActivity();
				dojo.animateProperty(
				{
					node:dojo.byId("sidebar"),
					duration:1000,
					properties:{
						left:{start:-309, end:0, unit:"px"}
					},
					easing:dojox.fx.easing.elasticOut
				}).play();
				
			});
			dijit.byId("sideContainer").attr("loadingMessage","");
			dijit.byId("sideContainer").attr("href", href + "?dojo=1&side=1");		
		}
	}).play();	
	mainContentFade(node);
	
}

function subMenuFade(node)
{
	//toggleActivity();
	submenu = dojo.byId("menu");
	if(submenu != null)
	{
		dojo.query("li", submenu).forEach(function(qnode)
		{
			qnode.className = "";
			
		});
	}
	
	if(node.parentNode.className == "")
	{
		node.parentNode.className = "active";
	}
	mainContentFade(node);
}

function mainContentFade(node)
{
	toggleActivity();
	href = node.href;
	dojo.fadeOut(
	{
		node:dojo.byId("mainContainer"),
		duration:500,
		onEnd:function()
		{
			dijit.byId("mainContainer").attr("loadingMessage","");
			dijit.byId("mainContainer").attr("onLoad", function()
			{
				toggleActivity();
				dojo.fadeIn(
				{
					node:dojo.byId("mainContainer"),
					duration:500
				}).play();
				addCallbacks("cameraLinks", mainContentFade);
				addCallbacks('sideVideo', mainNavFade);
				try
				{
					setupPlayer();
				}
				catch(e)
				{}
			});
			
			dijit.byId("mainContainer").attr("href", href + "?dojo=1&main=1");
		}
	}).play();
}

function nextImage()
{
	if(headerIndex < headerMaxImages - 1)
	{
		headerIndex++;
	}
	else
	{
		headerIndex = 0;
	}
	
	return "url(/images/headers/" + headerList[headerIndex] + ")";
}

// setup player
function setupPlayer()
{  
	var clips = dojo.query(".clips")[0];
	
	if(clips != null)
	{
		dojo.query("a", dojo.query(".clips")[0]).forEach(function(qnode)
		{
			qnode.onclick = function(event){playClip(qnode);return false}; 
		});
		dojo.query("a", dojo.query(".clips")[0])[0].className= "playing";
	}
	
	$("#scroller").scrollable({items:'div.clips', size:3, loop:true});
	
	
	
	$f("flowplayer", "flowplayer/flowplayer-3.0.7.swf", { 
	 
	    // properties that are common to both clips in the playlist 
	    clip: {  
	        // by default clip lasts 5 seconds 
	        //duration: 5   
	        scaling:'fit',
	        url:dojo.query("a", dojo.query(".clips")[0])[0].href   
	    }
	     
	});
} 

function playClip(node)
{
	dojo.query("a", dojo.query(".clips")[0]).forEach(function(qnode)
	{
		qnode.className = "";
		if(qnode.href == node.href)
		{
			node.className = "playing";
		}

	});
	
	if($f("flowplayer").getClip().url == node.href)
	{
		if($f("flowplayer").isPlaying())
		{
			node.className = "paused";
			$f("flowplayer").pause();
		}
		else
		{
			node.className = "playing";
			$f("flowplayer").play();
		}
	}
	else
	{
		$f("flowplayer").setClip(node.href);
		$f("flowplayer").play();
	}

}

function submitContact()
{
	dojo.xhrPost({
		url: "/where-to-buy?dojo=1&main=1",
		load: function(data)
		{
			dijit.byId("mainContainer").attr("content", data);
			toggleActivity();
			try
			{
				pageTracker._trackPageview("/where-to-buy-thankyou");
			}
			catch(e)
			{console.log("broke!");}
		},
		form: "whereToBuy"
	})	
}

function submitInfoCart(action)
{
	toggleActivity();
	dojo.xhrPost({
		url: "/infocart?dojo=1",
		load: function(data)
		{
			if(action == 'add')
			{
				dojo.byId("cartButton").src = "/images/cart_remove.png";
				dojo.byId("cartAction").value = "remove";
				dojo.byId("cartButton").onclick = function(){submitInfoCart('remove')};
			}
			else if(action == 'remove')
			{
				dojo.byId("cartButton").src = "/images/cart_add.png";
				dojo.byId("cartAction").value = "add";
				dojo.byId("cartButton").onclick = function(){submitInfoCart('add')};
			}
			toggleActivity();
		},
		form: "infoForm"
	})	
}

