/**
 * Realiza el efecto de Images Fade
 */

/**
 * Funcion que mueve el fondo de un item
 */
function changeItemVerticalBackgroundPosition (item, up, fxOptions)
	{


	if(item.inChangeVerticalBgP)
		{
		setTimeout(function(){changeItemVerticalBackgroundPosition(item,up, fxOptions);},20);
		return;
		}
	

	item.inChangeVerticalBgP = true;
	
	
	
	if(up)
		{
		if(item.itemHoverBgPosition==false||item.verticalBgPosition<=fxOptions.minBgPosition)
			{
			item.inChangeVerticalBgP = false;
			return;
			}
		
				
		item.verticalBgPosition -= fxOptions.height;
		item.setStyle('background-position',fxOptions.horizontalBgPosition+' '+item.verticalBgPosition+'px');

		if(item.verticalBgPosition>fxOptions.minBgPosition)
			setTimeout(function(){changeItemVerticalBackgroundPosition(item,true,fxOptions);},fxOptions.stepTime);
						
		item.inChangeVerticalBgP = false;
		return;
		}
	
	if(item.itemHoverBgPosition==true||item.verticalBgPosition>=0)
		{
		item.inChangeVerticalBgP = false;
		return;		
		}
	
	item.verticalBgPosition += fxOptions.height;
	item.setStyle('background-position',fxOptions.horizontalBgPosition+' '+item.verticalBgPosition+'px');

	if(item.verticalBgPosition<0)
		setTimeout(function(){changeItemVerticalBackgroundPosition(item,false,fxOptions);},fxOptions.stepTime);
	
	item.inChangeVerticalBgP = false;
	}

/**
 * Inicia el efecto de cambio de Background Position de forma vertical
 * fxOptions es un objeto con...
 *		height = alto de cada item
 *		steps = pasos
 *		stepTime = tiempo en milisegundos por cada paso
 *		horizontalBgPosition = posicion horizontal del bg
 */
function initChangeVerticalBackgroundPosition (CSSMatch, fxOptions)
	{
	var items = $$(CSSMatch);

	if(items==null||items.length<=0)
		return;
	
	if(fxOptions.steps==null||fxOptions.steps==undefined)
		return;

	if(fxOptions.height==null||fxOptions.height==undefined)
		fxOptions.height = -1;


	if(fxOptions.stepTime==null||fxOptions.stepTime==undefined)
		fxOptions.stepTime = 100;

	if(fxOptions.horizontalBgPosition==null||fxOptions.horizontalBgPosition==undefined)
		fxOptions.horizontalBgPosition = 'center';

			
	items.each
		(
		function (item)
			{
			
			if(fxOptions.height==-1)
				{
				fxOptions.height = item.getStyle('height');

				if(fxOptions.height!=null&&fxOptions.height!=undefined)
					{
					fxOptions.height = fxOptions.height.toInt();
					}
				else
					{
					fxOptions.height = 0;
					}
				}
			
			if(fxOptions.height<=0)
				return;

			item.inChangeVerticalBgP = false;
			item.itemHoverBgPosition = false;
			item.verticalBgPosition = 0;
			

			item.addEvent('mouseenter', function() 
				{
				item.itemHoverBgPosition = true;
				setTimeout(function(){changeItemVerticalBackgroundPosition(item,true,fxOptions);},fxOptions.stepTime);
				});

			item.addEvent('mouseleave', function() 
				{
				item.itemHoverBgPosition = false;
				setTimeout(function(){changeItemVerticalBackgroundPosition(item,false,fxOptions);},fxOptions.stepTime);
				});
			}
		);
	
	fxOptions.minBgPosition = (fxOptions.steps-1)*fxOptions.height*(-1);
	
	}