/**
 * Realiza los efectos de acordion del menu de servicios
 */


/**
 * Funcion que cierra el item del menu abiertos
 */
function closeServiciosMenuAcordionItem (serviciosMenu)
	{
	if(serviciosMenu.openedMenuItem==null||(!serviciosMenu.openedMenuItem.openedFlag))
		return false;

	var openedItem = serviciosMenu.openedMenuItem;

	serviciosMenu.openedMenuItem = null;
		
	openedItem.removeClass('mainItemLinkHover');
	openedItem.openedFlag = false;
		
	if(openedItem.acordionToggleFx==null)
		return false;
		

	openedItem.acordionToggleFx.pause();

	var height = openedItem.getStyle('height').toInt();
	if(height<=25)
		return false;

	openedItem.acordionToggleFx.options.duration = 500;
	openedItem.acordionToggleFx.toggleProperty('height', height, 25, true);
		
	return true;
	}



/**
 * Funcion que abre un item del menu de servicios de acordion
 */
function openServiciosMenuAcordionItem (serviciosMenu, mainItem)
	{

	if(serviciosMenu.inChangeAcordionFlag)
		{
		setTimeout(function(){openServiciosMenuAcordionItem(serviciosMenu,mainItem);},100);
		return;
		}
	
	serviciosMenu.inChangeAcordionFlag = true;


	if(serviciosMenu.toOpenMenuItem==mainItem&&serviciosMenu.openedMenuItem!=mainItem&&(!mainItem.openedFlag)&&serviciosMenu.mouseInZoneFlag)
		{
		mainItem.openedFlag = true;
		mainItem.addClass('mainItemLinkHover');
		var closed = closeServiciosMenuAcordionItem(serviciosMenu);

		serviciosMenu.openedMenuItem = mainItem;
										
		if(mainItem.acordionToggleFx!=null)
			{
			
			var f = function ()
				{
				mainItem.inOpenFlag = true;
				mainItem.acordionToggleFx.pause();
				mainItem.acordionToggleFx.options.duration = mainItem.toggleToDuration;
				mainItem.acordionToggleFx.toggleProperty('height', mainItem.getStyle('height').toInt(), mainItem.openedMaxHeight, true);
				setTimeout(function(){mainItem.inOpenFlag = false; serviciosMenu.inChangeAcordionFlag = false;}, mainItem.toggleToDuration+100);
				}
			
			if(closed)
				setTimeout(f,600);
			else
				f();
			return;
			}
		}

	serviciosMenu.inChangeAcordionFlag = false;
	}


/**
 * Inicia el menu de servicios
 */
function initServiciosMenuAcordion ()
	{
	
	var serviciosMenu = $('serviciosMenu');

	
	//Item que se se va a abrir
	serviciosMenu.toOpenMenuItem = null;

	//Item que se encuentra abierto
	serviciosMenu.openedMenuItem = null;
	
	//Bandera que indica que se esta cambiendo un item
	serviciosMenu.inChangeAcordionFlag = false;

	//Indica si el mouse se encuentra en la zona de servicios
	serviciosMenu.mouseInZoneFlag = false;

	//Indica si se llamo la funcion de cerrar los servicios
	serviciosMenu.calledCloseFlag = false;
	
		
	serviciosMenu.mainItems = serviciosMenu.getElements('.mainItem');

	serviciosMenu.addEvent('mouseenter',
		function()
			{
			serviciosMenu.mouseInZoneFlag = true;
			}
		);

	serviciosMenu.addEvent('mouseleave',
		function()
			{
			serviciosMenu.mouseInZoneFlag = false;
			if(!serviciosMenu.calledCloseFlag)
				{
				serviciosMenu.calledCloseFlag = true;
				setTimeout(function() {serviciosMenu.calledCloseFlag = false; if(!serviciosMenu.mouseInZoneFlag){closeServiciosMenuAcordionItem(serviciosMenu); serviciosMenu.toOpenMenuItem=null;}}, 3000);
				}
			}
		);


	serviciosMenu.mainItems.each
		(
		function(mainItem)
			{
			
			mainItem.acordionToggleFx = null;
			mainItem.openedMaxHeight = 0;

			if((!(mainItem.id===undefined))&&mainItem.id!=null&&mainItem.id=='selectedServicioItem')
				{
				var enlaces = mainItem.getElements('a');
				enlaces.each(function(a){a.erase('title');});
				return;
				}
			
			var subItems = mainItem.getElements('.subItems div a');

			var itemLink = mainItem.getElement('.mainItemLink a');

			itemLink.erase('title');
			
						
			mainItem.openedFlag = false;
			mainItem.inOpenFlag = false;
												
			if(subItems.length>0)
				{
				mainItem.openedMaxHeight = (subItems.length*30)+20;
				mainItem.toggleToDuration = subItems.length*200;
				mainItem.acordionToggleFx = new Fx.Toggle(mainItem);
				
				subItems.each(function(a){a.erase('title');});
				}


			mainItem.addEvent('mouseenter',
				function()
					{
					serviciosMenu.mouseInZoneFlag = true;
					if(mainItem.openedFlag&&serviciosMenu.openedMenuItem==mainItem)
						serviciosMenu.toOpenMenuItem = mainItem;
					}
				);
						

			itemLink.addEvent('mouseenter',
				function()
					{
					serviciosMenu.mouseInZoneFlag = true;
					if((!serviciosMenu.inChangeAcordionFlag)&&(!mainItem.openedFlag)&&(!mainItem.inOpenFlag))
						{
						serviciosMenu.toOpenMenuItem = mainItem;
						setTimeout(function() {openServiciosMenuAcordionItem(serviciosMenu,mainItem);}, 1000);
						}
					}
				);			
			}
		);
	
	
	}

