/*Tecknosfera DBNET S.L.
	Element: LIB Effects
	Programed by: francisco_javier_martinez@hotmail.com
	To : Tecknosfera DBNET S.L.
	
	**************************************************************************************************
	Posible Easing functions: 
		Tween.regularEaseIn -> INCREMENTO de aceleración
		Tween.regularEaseOut -> DECREMENTO de aceleración
		Tween.regularEaseInOut -> INCREMENTO de aceleración al principio y DECELERACION al final
		Tween.strongEaseIn -> INCREMENTO FUERTE de aceleración al final
		Tween.strongEaseOut -> INCREMENTO de aceleración con DECREMENTO final
		Tween.strongEaseInOut ->
		Tween.backEaseOut
		Tween.backEaseIn
		Tween.backEaseInOut
		Tween.bounceEaseOut
		Tween.bounceEaseIn
		Tween.bounceEaseInOut
		Tween.elasticEaseIn
		Tween.elasticEaseOut
		Tween.elasticEaseInOut
*/

// Include the LIB_effects.tween.js library
LIB_DHTML.include_once("js/LIB_effects.tween.js");


// "Clase LIB_effects"
function LIB_effects_object()
{

	/*
		Function to make a easing effect (use on DIV objects)
		@Param 1: Obj to make the effect
		@Param 2: Obj propertie to make the easing
		@Param 3: Obj Star Position
		@Param 4: Obj Last Position
	*/
	function easing_object ()
	{
		var submenuDiv = null;
		this.tweenObj = null;
		var stept = 55;
		var duration = 1;
		var initPosition = null;
		var finishPosition = null;
		this.init = function (idDiv)
		{
			// Obj Menu definition 
			submenuDiv = document.getElementById(idDiv);
			// End position definition
			initPosition = parseInt(submenuDiv.style.top);
			finishPosition = initPosition + stept;
		}
	
		this.verticalMoveStart = function (idDiv, direction, theEasingFunction, theStept, theDuration)
		{
			if (theStept != null && theStept != "")
			{
				stept = theStept;
			}
			
			var makeMove = true;
			var actualPosition = parseInt(submenuDiv.style.top)
			var destinyPos = actualPosition + stept - espacioYaMovido;;
			var easingFunc = eval("Tween.strongEaseOut");
			var espacioYaMovido = actualPosition - initPosition;
			switch (direction)
			{
				case "up":
					if (actualPosition > initPosition)
					{
						if (LIB_effects.easing.tweenObj)
						{
							LIB_effects.easing.tweenObj.stop();
						}
						espacioYaMovido = finishPosition - actualPosition;
						destinyPos = finishPosition - stept + espacioYaMovido;
						easingFunc = eval("Tween.strongEaseOut");
						if (theEasingFunction != null && theEasingFunction != "")
						{
							easingFunc = eval(theEasingFunction);
						}
						duration = 2;
						if (theDuration != null && theDuration != "")
						{
							duration = theDuration;
						}
					}
					else
					{
						makeMove = false;
					}
				break;
				
				case "down":
					if (submenuDiv.style.visibility == "hidden")
					{
						submenuDiv.style.visibility = "visible";
					}
					if (LIB_effects.easing.tweenObj)
					{
						LIB_effects.easing.tweenObj.stop();
					}
					espacioYaMovido = actualPosition - initPosition;
					destinyPos = actualPosition + stept - espacioYaMovido;
					easingFunc = eval("Tween.strongEaseOut");
					if (theEasingFunction != null && theEasingFunction != "")
					{
						easingFunc = eval(theEasingFunction);
					}
					duration = 1;
					if (theDuration != null && theDuration != "")
					{
						duration = theDuration;
					}
				break;
			}
			
			if (makeMove == true)
			{
				LIB_effects.easing.tweenObj = new Tween(submenuDiv.style,'top',easingFunc,parseInt(submenuDiv.style.top),10,1,'px');
				LIB_effects.easing.tweenObj.func = easingFunc;
				LIB_effects.easing.tweenObj.continueTo(destinyPos, duration);
			}
		}
		
		this.verticalMoveStop = function (idDiv)
		{
			if (LIB_effects.easing.tweenObj)
			{
				LIB_effects.easing.tweenObj.stop();
			}
		}
	}
	this.easing = new easing_object();
	
	this.setApha = function (idObj, theApha)
	{
		document.getElementById(idObj).style.filter = "alpha(opacity=" + theApha + ")"; // Opacidad para IE
		document.getElementById(idObj).style.opacity = "0." + theApha; // Ocapacidad para Netscape
	}
}

// Creamos un objeto de la clase LIB_navigator
var LIB_effects = new LIB_effects_object();