/**
 * @author BradleyHolbrook
 */

var Stage = function(){ this.load(); }

Stage.prototype = 
{
	
	base:"stagevar_",
	aAnims:[],
	
	load:function()
	{
		var Loader = new YAHOO.util.YUILoader({
			require:["animation","element","event"],
			loadOptional:true,
			onSuccess: function(){
				YAHOO.util.Event.addListener(window,"load",this.construct, this, true);
			},
			scope:this
		});
		Loader.insert();
	},
	
	construct:function()
	{
		//get item id
		var sItems = "stagevar_num_items";
		var eItems = YAHOO.util.Dom.get(sItems);
		if(eItems==null) return;
		iItems = eItems.value;
		
		//loop items
		for (i = 1; i <= iItems; i++)
		{
			this.showItem(i);
		}
	},
	
	showItem:function(i)
	{
		try
		{
			//get item id
			var sItem = this.base+"item"+i+"_id";
			sItem = YAHOO.util.Dom.get(sItem).value;
			
			//create item base
			var sBase = this.base+sItem+"_";
			
			//create animation config
			var oAnimConfig = {};
			
			//get anims added
			var sAnimations = YAHOO.util.Dom.get(sBase+"anim").value;
			var aAnimations = sAnimations.split(";");
			
			//loop animations
			for(x in aAnimations)
			{
				//get anim type
				var sAnim = aAnimations[x];
				var sFrom = 0;
				var sTo = 0;
				
				//switch type
				switch (sAnim)
				{
					case "FADE":
						sFrom 	= YAHOO.util.Dom.get(sBase+"opac_start").value;
						sTo 	= YAHOO.util.Dom.get(sBase+"opac_final").value;
						oAnimConfig.opacity = {from:sFrom,to:sTo};
						break;
				}
				
			}
			
			//get object for anim style
			var sAnimType = YAHOO.util.Dom.get(sBase+"animtype").value;
			var oStyle = null;
			switch(sAnimType)
			{
				case "EASEOUT": oStyle = YAHOO.util.Easing.easeOut; break;
				case "EASEIN": 	oStyle = YAHOO.util.Easing.easeIn; break;
			}
			
			//prep animation
			var iDuration = YAHOO.util.Dom.get(sBase+"duration").value;
			var oAnim = new YAHOO.util.Anim(sItem, oAnimConfig, iDuration, oStyle);
						
			//save animation
			this.aAnims[i] = oAnim;
			
			//run animation
			var iDelay = YAHOO.util.Dom.get(sBase+"delay").value;
			setTimeout("oStage.runAnim("+i+")",iDelay*1000);
			
		}
		catch(e)
		{
			//console.log(e);
		}
		
	},
	
	runAnim:function(i)
	{
		//get item id
		var sItem = this.base+"item"+i+"_id";
		sItem = YAHOO.util.Dom.get(sItem).value;
		var oItem = new YAHOO.util.Element(sItem);
		
		//get animation
		var oAnim = this.aAnims[i];
		
		//run animation
		oItem.setStyle("display","block");
		oAnim.animate();
	}
	
}

var oStage = new Stage();
