/**
 * Script que controla el menu de productos
 * 
 *	$('pageContent').set('html','In');
 */

//Efecto que muestra la zona de submenus
var productosSubMenusZoneFx = null;

//Bandera que indica si se tiene que mostrar la zona de submenus
var showProductosSubMenusZoneFlag = false;


//Constrante que indica el ancho maximo del la zona de submenus
var MAX_PRODUCTOS_ZONE_WIDTH = 330;

//Constrante que indica el ancho maximo del la zona de submenus
var MIN_PRODUCTOS_ZONE_WIDTH = 0;


//Indice del producto que se esta mostrando
var showingProductoIndex = 0;

//Indice del  producto que se va a mostrar
var newShowingProductoIndex = 0;

//Bandera que indica si se esta mistrando la zona de submenus
var showingSubMenusZone = false;

//Efectos de imagenes de las imagenes de los productos
var productosImagesFx = null;

//Efecto que mustra los submenus
var productosSubMenusFx = null;


/**
 * Funcion que muestra la zona de submenus
 */
function showProductosSubMenusZone ()
	{
	
	if(showProductosSubMenusZoneFlag==true)
		{
		var zoneWidth = $('productosSubMenusZone').getStyle('width').toInt();
		if(zoneWidth<MAX_PRODUCTOS_ZONE_WIDTH)
			{
			productosSubMenusZoneFx.cancel();
			productosSubMenusZoneFx.toggleProperty('width', $('productosSubMenusZone').getStyle('width').toInt(), MAX_PRODUCTOS_ZONE_WIDTH, true);
			}
		
		showingSubMenusZone = true;
		}
	}

/**
 * Funcion que oculta la zona de submenus
 */
function hiddeProductosSubMenusZone ()
	{
	if(showProductosSubMenusZoneFlag==false)
		{
		var zoneWidth = $('productosSubMenusZone').getStyle('width').toInt();
	
		if(zoneWidth>MIN_PRODUCTOS_ZONE_WIDTH)
			{
			productosSubMenusZoneFx.cancel();
			productosSubMenusZoneFx.toggleProperty('width', $('productosSubMenusZone').getStyle('width').toInt(), MIN_PRODUCTOS_ZONE_WIDTH, true);
			}
		
	
		showingSubMenusZone = false;
		
		if(showingProductoIndex!=newShowingProductoIndex)
			{
			showingProductoIndex = newShowingProductoIndex;

			productosImagesFx.cancel();
			productosSubMenusFx.cancel();
						
			if(showingProductoIndex==-1)
				{
				productosImagesFx.goTo(1);
				}
			else
				{
				productosImagesFx.goTo(showingProductoIndex+2);
				productosSubMenusFx.goTo(showingProductoIndex+1);
				}
			}
		
		}
	}




/**
 * Muestra el un producto
 */
function showProductoMenu ()
	{
			
	if(newShowingProductoIndex!=showingProductoIndex)
		{
		showingProductoIndex = newShowingProductoIndex;
		
		productosImagesFx.cancel();
		productosSubMenusFx.cancel();
		
		if(showingProductoIndex==-1)
			{
			productosImagesFx.goTo(1);
			}
		else
			{
			productosImagesFx.goTo(showingProductoIndex+2);
			productosSubMenusFx.goTo(showingProductoIndex+1);
			}
		
		}
	}

/**
 * Establece el producto se va a mostrar en el menu de productos
 */
function setShowingProducto (index, timeout)
	{
	newShowingProductoIndex = index;
	setTimeout("showProductoMenu(); showProductosSubMenusZone();",timeout);
	}


/**
 * Establece el inidice a un link de productos
 */
function addIndexToProductoLink (a, index)
	{
	a.addEvent('mouseenter',
		function(event) 
			{
			showProductosSubMenusZoneFlag=true;
			setShowingProducto(index,(showingSubMenusZone)?600:500);
			}
		);
	


	a.addEvent('mouseleave',
		function(event) 
			{
			showProductosSubMenusZoneFlag=false;
			newShowingProductoIndex = showingProductoIndex;
			}
		);

	}



/**
 * Inicia los efectos del menu de productos
 */
function initProductsMenu ()
	{
	
	//Efecto que muestra la zona de submenus
	productosSubMenusZoneFx = new Fx.Toggle('productosSubMenusZone', {duration: 300});

	//Se inicia el efecto que muestra las imagenes
	productosImagesFx = new Fx.Cycles.inOutRight('productosMenuImage', {duration: 250, steps: 1000, autostart: false, enable: {keyboard: true} });
	//productosImagesFx.goTo(1);


 

	//Se inicia el efecto que muesta los submenus
	productosSubMenusFx = new Fx.Cycles.inOutLeft('productosSubMenus', {duration: 250, steps: 1000, autostart: false, enable: {keyboard: true} });
	//productosSubMenusFx.goTo(1);

	

	var menuLinks  = $$('#productosMenu .itemsZone a');
	var index=0;
	var selectedIndex = -1;
					
	//Links Principales del menu
	menuLinks.each
		(
		
		function(a) 
			{

			if(a.id!=null&&a.id=='activeProductoMenuItem')
				selectedIndex = index;
					
			addIndexToProductoLink(a,index);
						
			index++;
			}
		
		);


	
	if(selectedIndex!=-1)
		{
		productosImagesFx.goTo(selectedIndex+2);
		productosSubMenusFx.goTo(selectedIndex+1);
		}
	else
		{
		productosImagesFx.goTo(1);
		productosSubMenusFx.goTo(1);
		}

	showingProductoIndex = selectedIndex;
	


	$('productosMenuImage').addEvent('mouseenter',
		function(event) 
			{
			newShowingProductoIndex = showingProductoIndex;
			}
		);
	

	$('productosSubMenus').addEvent('mouseenter',
		function(event) 
			{
			newShowingProductoIndex = showingProductoIndex;
			}
		);
	
	$('productosSubMenusZone').addEvent('mouseenter',
		function(event) 
			{
			newShowingProductoIndex = showingProductoIndex;
			}
		);
		
	
	//Ocultar la zona de sumenus
	$('productosMenu').addEvent('mouseenter',
		function(event) 
			{
			showProductosSubMenusZoneFlag = true;
			}
		);
	
	$('productosMenu').addEvent('mouseleave',
		function(event) 
			{
			showProductosSubMenusZoneFlag = false;
			newShowingProductoIndex = selectedIndex;
			setTimeout("hiddeProductosSubMenusZone();",700);
			}
		);
	
	}
