/**
 * Realiza el efecto de Images Fade
 */

/**
 * Funcion que mueve el fondo de una division
 */
function moveImageBg (fadeZone, up)
	{
	var image = fadeZone.imagesFadeFxItems[fadeZone.imagesFadeFxSelectedIndex];

	
		
	if(up)
		{
		image.yBgPosition+=fadeZone.bgMoveSteps;

		if(image.yBgPosition>0)
			{
			image.yBgPosition=(-1)*fadeZone.bgMoveSteps;
			up=false;
			}
		
		if(image.yBgPosition>=fadeZone.yBgPositionMiddle&&image.changeImageFlag)
			{
			image.setStyle('background-position','0px '+image.yBgPosition+'px');
			setTimeout(function(){changeImagesFadeFx(fadeZone);}, fadeZone.bgMoveTime);
			return;
			}
		
		}
	else
		{
		image.yBgPosition-=fadeZone.bgMoveSteps;

		if(image.yBgPosition<fadeZone.yBgPositionLimit)
			{
			up=true;
			image.yBgPosition = fadeZone.yBgPositionLimit+fadeZone.bgMoveSteps;
			image.changeImageFlag = true;
			}
		}
	
	image.setStyle('background-position','0px '+image.yBgPosition+'px');
	

	setTimeout(function(){moveImageBg(fadeZone,up);}, fadeZone.bgMoveTime);
	}

/**
 * Funcion que cambia la imagen fade
 */
function changeImagesFadeFx (fadeZone)
	{
	var lastItem = null;
	var newIndex = 0;

	if(fadeZone.imagesFadeFxSelectedIndex>=0)
		{
		lastItem = fadeZone.imagesFadeFxItems[fadeZone.imagesFadeFxSelectedIndex];
		newIndex = fadeZone.imagesFadeFxSelectedIndex+1;

		if(newIndex>=fadeZone.imagesFadeFxItems.length)
			newIndex=0;
		
		}

	var newItem = fadeZone.imagesFadeFxItems[newIndex];
	
	if(lastItem!=null)
		{
		lastItem.toggleFadeFx.pause();
		lastItem.setStyle('opacity',1);
		lastItem.toggleFadeFx.toggleOpacity();
		}


	newItem.toggleFadeFx.pause();
	newItem.setStyle('opacity',0);
	newItem.toggleFadeFx.toggleOpacity();

	newItem.setStyle('background-position','0px '+fadeZone.yBgPositionMiddle+'px');
	newItem.changeImageFlag = false;
				
	fadeZone.imagesFadeFxSelectedIndex = newIndex;

	setTimeout(function(){moveImageBg(fadeZone,true);}, fadeZone.imagesFadeFxDuration+fadeZone.bgMoveTime);
	}


/**
 * Inicia los efectos de las imagenes fade
 */
function initImagesFadeMoveFx (idZone, moveTime, steps, durationA, imagesHeight, startTime)
	{
	var fadeZone = $(idZone);

	if(fadeZone==null)
		return;


	var items  = fadeZone.getChildren();

	if(items==null||items.length<=1)
		return;

	var toggleOptions = {duration: durationA};


	var fadeZoneHeight = fadeZone.getStyle('height').toInt();

	fadeZone.yBgPositionLimit = fadeZoneHeight-imagesHeight;
	fadeZone.yBgPositionMiddle = Math.round(fadeZone.yBgPositionLimit/2);

	fadeZone.bgMoveSteps = steps;
	
	fadeZone.imagesFadeFxDuration = durationA;
	fadeZone.bgMoveTime = moveTime;
	fadeZone.imagesFadeFxItems = items;
	fadeZone.imagesFadeFxSelectedIndex = (startTime==0) ? 0 : -1;

	var index = 0;


	fadeZone.setStyle('position','relative');
				
	
	items.each
		(
		function(item) 
			{
			item.toggleFadeFx = new Fx.Toggle(item,toggleOptions);

			
			item.setStyle('background-position','0px '+fadeZone.yBgPositionMiddle+'px');
			item.yBgPosition = fadeZone.yBgPositionMiddle; 

			item.changeImageFlag = false;
							

			if(startTime==0&&index==0)
				{
				item.setStyle('opacity',1);
				}
			else
				{
				item.setStyle('opacity',0);
				}

			item.setStyle('position','absolute');
			item.setStyle('top','0px');
			item.setStyle('left','0px');
			
		
			index++;
			}
		);

		
	if(startTime==0)
		{
		moveImageBg(fadeZone,true);
		}
	else
		{
		setTimeout(function(){changeImagesFadeFx(fadeZone);},startTime);
		}
	}
