/*
 * ASP.NET User Control: "ControlMenu"
 * Copyright © 2005, Pedro Lopez-Cabanillas <pedro.lopez@getronics.com>
 * Copyright © 2005, Getronics
 * All rights reserved
 *
 * Nota: JS i CSS substituïts per "XP style sliding Menu Bar" pq l'original no funcionava amb FireFox
 *
 * Author: Eric Simmons
 *	Contact: info AT jswitch DOT com
 *	Website: http://www.jswitch.com
 *	Script featured and available at Dynamic Drive: http://www.dynamicdrive.com
 *	Version: 2.1 05/2006       
 *	Browser Target: Mozilla 6+/FireFox Netscape 6+, IE 5.0+
 *	Type: XP Style Menus ver 2.1
 *	
 */

/*
const _MENU_CONTAINER_ : int = 0;
const _ITEM_CONTAINER_ : int = 1;
const _NUM_MENU_ITEM_ : int = 2;
const _MAIN_MENU_ : int = 3;
const _TOP_POSITION_ : int = 4;
const _ANIMATION_ : int = 5;
const _ITEM_VISIBLE_ : int = 6;
const _SUB_MENU_ : int = 7;
*/
var _MENU_CONTAINER_ = 0;
var _ITEM_CONTAINER_ = 1;
var _NUM_MENU_ITEM_ = 2;
var _MAIN_MENU_ = 3;
var _TOP_POSITION_ = 4;
var _ANIMATION_ = 5;
var _ITEM_VISIBLE_ = 6;
var _SUB_MENU_ = 7;

var menuObjArray = new Array();
menuObjArray[_MENU_CONTAINER_] = new Array();
menuObjArray[_ITEM_CONTAINER_] = new Array();
menuObjArray[_NUM_MENU_ITEM_] = new Array();
menuObjArray[_MAIN_MENU_] = new Array();
menuObjArray[_TOP_POSITION_] = new Array();
menuObjArray[_ANIMATION_] = new Array();
menuObjArray[_ITEM_VISIBLE_] = new Array();
menuObjArray[_SUB_MENU_] = new Array();

var timerSlide = null;
var numMenuItem = 0;
var slideDelay = 1;
var divHeight = 30; 
var moveSlidePix = 7;
var isLocked = null;
var doFading = true;

//InitAll(); // Trall Soft

/* */

function InitAll(id) // Trall Soft
	{
	//var divs = document.getElementsByTagName("DIV"); // Trall Soft
	var divMnu = document.getElementById(id); 
	var divs = divMnu.getElementsByTagName("DIV");
	//menuStateAry = GetUserCookie("xpMenuCookv2").split(",");
	aryNum = 0;
	for(dn=0; dn < divs.length;dn++)
		{
		//if(String(divs.item(dn).className).substring(0,7) == "topItem")
		if(String(divs.item(dn).className).substring(0,13) == "XPMNU_topItem") // Trall Soft
			{	
			mainMenuDiv = divs.item(dn).parentNode;
			menuContainerDiv= mainMenuDiv.getElementsByTagName("DIV").item(1);
			itemContainerDiv= menuContainerDiv.getElementsByTagName("DIV").item(0);
			
			try //to apply cookies settings
				{
				// Trall Soft
				//if(menuStateAry != 0)
				//	itemContainerDiv.style.height = parseInt(menuStateAry[aryNum]) + "px";
				
				if(!doFading)
					{
					if (menuContainerDiv.filters)
						menuContainerDiv.filters.alpha.opacity = 100;
					else
						menuContainerDiv.opacity = 1;
					}
				
				// Trall Soft	
				//if(menuStateAry != 0 )
				//	{
				//	if( parseInt(menuStateAry[aryNum]) == 0)
				//		itemContainerDiv.style.display = 'none';
				//	else
				//		itemContainerDiv.style.display = 'inline';
				//	}
				}
			catch(e)
				{
				e= null; //cookie may not exist yet
				}

			Init(divs.item(dn));
			aryNum++;
			}
		}	
	}

function Init(objDiv)
	{
   if (isLocked)
      return;

	var mainMenuDiv, subMenuDiv, menuContainerDiv, itemContainerDiv, styleRules;
	
	for(r=0;r < document.styleSheets.length; r++)
		{	
		if( -1 != String(document.styleSheets[r].href).indexOf("MenuControl.css") )	
			break;
		}
	if(!document.styleSheets[r].rules)
		styleRules = document.styleSheets[r].cssRules;
	else
		styleRules = document.styleSheets[r].rules;

	numMenuItem = 0;
	mainMenuDiv = objDiv.parentNode;
	subMenuDiv =  mainMenuDiv.getElementsByTagName("DIV").item(0);

	menuContainerDiv = mainMenuDiv.getElementsByTagName("DIV").item(1);
	itemContainerDiv = menuContainerDiv.getElementsByTagName("DIV").item(0);
    
	aLen = menuObjArray[_MENU_CONTAINER_].length;
	for (i=0 ;i < aLen ; i++)
		{
		if (menuObjArray[_MENU_CONTAINER_][i] == menuContainerDiv)
			{
			break;
			}
		}
    
	if (i == aLen)
		{
		menuObjArray[_MENU_CONTAINER_][i] = menuContainerDiv;
		menuObjArray[_ITEM_CONTAINER_][i] = itemContainerDiv;
		menuObjArray[_SUB_MENU_][i] = subMenuDiv;
		menuObjArray[_SUB_MENU_][i].onmouseover = ChangeStyle;
		menuObjArray[_SUB_MENU_][i].onmouseout = ChangeStyle;
		subMenuDiv.onclick = SetSlide;

		lastmenuNum = -1;
		for (b=0;b<itemContainerDiv.childNodes.length;b++)
			{
			if (itemContainerDiv.childNodes.item(b).tagName == "DIV")
				{
				numMenuItem++;
				itemContainerDiv.childNodes.item(b).onmouseover= ChangeStyle;
				itemContainerDiv.childNodes.item(b).onmouseout= ChangeStyle;
// Trall Soft
				itemContainerDiv.childNodes.item(b).onmouseover+= ShowDescription;
				itemContainerDiv.childNodes.item(b).onmousemove= ShowDescription;
				itemContainerDiv.childNodes.item(b).onmouseout= HideDescription;  // si poso += enlloc de =, fa coses rares??
// Trall Soft
				lastmenuNum = b;
				}
			}  
        
		for(r=0;r < styleRules.length; r++)
			{
			tmpStr1 = String(styleRules[r].selectorText);
			tmpStr2 = String("." + itemContainerDiv.childNodes.item(lastmenuNum).className);
			if(tmpStr1 == tmpStr2)
				{
				if(NaN != parseInt(styleRules[r].style.height))
					{
					divHeight = parseInt(styleRules[r].style.height) + 5;
					break;
					}
				}
			}
				
		menuObjArray[_NUM_MENU_ITEM_][i] = numMenuItem;
		menuObjArray[_MAIN_MENU_][i] = mainMenuDiv;

		if (itemContainerDiv.style.display == "inline")
			{
			menuObjArray[_TOP_POSITION_][i] = numMenuItem * divHeight;
			menuObjArray[_MENU_CONTAINER_][i].style.height = numMenuItem * divHeight + "px";
			menuObjArray[_ITEM_VISIBLE_][i] = true;

			if(doFading)
				{
				if (menuObjArray[_MENU_CONTAINER_][i].filters)
					menuObjArray[_MENU_CONTAINER_][i].filters.alpha.opacity = 100;
				else
					menuObjArray[_MENU_CONTAINER_][i].style.opacity = 1;
				}
			} 
		else
			{
			menuObjArray[_SUB_MENU_][i].className = menuObjArray[_SUB_MENU_][i].className + "Close";
			menuObjArray[_TOP_POSITION_][i] = 0;
			menuObjArray[_MENU_CONTAINER_][i].style.height = 0 + "px";
			menuObjArray[_ITEM_VISIBLE_][i] = false;
			if(doFading)
				{
				if (menuObjArray[_MENU_CONTAINER_][i].filters)
					menuObjArray[_MENU_CONTAINER_][i].filters.alpha.opacity = 0;
				else
					menuObjArray[_MENU_CONTAINER_][i].style.opacity = .0;
				}
			}
		}//end if

	mainMenuDiv = null;
	subMenuDiv =  null;
	menuContainerDiv= null;
	itemContainerDiv= null;
	}

function SetSlide()
	{   
   if (isLocked)
		return;
   else
      isLocked = this.parentNode;          
   for (i=0 ;i < menuObjArray[_MENU_CONTAINER_].length; i++)
		{
      if (menuObjArray[_MAIN_MENU_][i] == this.parentNode)
			{
			if (menuObjArray[_ANIMATION_][i] == null)
				 menuObjArray[_ANIMATION_][i] = setInterval("RunSlide(" + i + ")", slideDelay);
			break;
			}
		}
	}

/*
function UpdateUserCookie(aryIndex)
	{
	date = new Date();
	date.setTime(date.getTime() + 2592000000); // (1000 * 60 * 60 * 24 * 30)); 
	document.cookie = "xpMenuCookv2" + "=" + escape(menuObjArray[_TOP_POSITION_].toString()) + "; expires=" + date.toGMTString();  
	}

function GetUserCookie(crumbName)
	{
   colCookie = document.cookie.split("; ");
    
   for (a=0; a < colCookie.length; a++)
		{
      colCrumb = colCookie[a].split("=");                    
      if(colCrumb[0] == crumbName)
			return unescape(colCrumb[1]);
		}
   return "";
	}
*/

function RunSlide(objIndex)  
	{
   if (menuObjArray[_ITEM_VISIBLE_][objIndex])
	   {
		if(doFading)
			{
			if(menuObjArray[_MENU_CONTAINER_][objIndex].filters)
				menuObjArray[_MENU_CONTAINER_][objIndex].filters.alpha.opacity -= 100/ ( ( (menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight) / moveSlidePix) +1);
			else
				menuObjArray[_MENU_CONTAINER_][objIndex].style.opacity -= .9/(((menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight) / moveSlidePix)+1);
			}
		menuObjArray[_ITEM_CONTAINER_][objIndex].style.display = 'none';
		menuObjArray[_TOP_POSITION_][objIndex] -=  moveSlidePix;
		if (menuObjArray[_TOP_POSITION_][objIndex] > 0)
         menuObjArray[_MENU_CONTAINER_][objIndex].style.height = menuObjArray[_TOP_POSITION_][objIndex] + "px";
      else
	      {
         if(doFading)
				{
				if(menuObjArray[_MENU_CONTAINER_][objIndex].filters)
					menuObjArray[_MENU_CONTAINER_][objIndex].filters.alpha.opacity = 0;
				else
					menuObjArray[_MENU_CONTAINER_][objIndex].style.opacity = 0;
				}
				
			cName = String(menuObjArray[_SUB_MENU_][objIndex].className);
			if (cName.substring(cName.length - 4, cName.length) == "Item")
				{
				menuObjArray[_SUB_MENU_][objIndex].className = menuObjArray[_SUB_MENU_][objIndex].className+"Close";
				}
			if (cName.substring(cName.length - 4, cName.length) == "Over")
				{
				menuObjArray[_SUB_MENU_][objIndex].className = cName.substring(0,cName.length - 4);
				menuObjArray[_SUB_MENU_][objIndex].className = menuObjArray[_SUB_MENU_][objIndex].className+"CloseOver";
				}
			if (cName.substring(cName.length - 5, cName.length) == "Close")
				{
				menuObjArray[_SUB_MENU_][objIndex].className = cName.substring(0,cName.length - 5);
				menuObjArray[_SUB_MENU_][objIndex].className = menuObjArray[_SUB_MENU_][objIndex].className+"CloseOver";
				}
			
         menuObjArray[_TOP_POSITION_][objIndex] = 0;
         menuObjArray[_MENU_CONTAINER_][objIndex].style.height = 0 + "px";
         clearInterval(menuObjArray[_ANIMATION_][objIndex]);
         menuObjArray[_ANIMATION_][objIndex] = null;
         menuObjArray[_ITEM_VISIBLE_][objIndex] = false;
         isLocked = null;
         // Trall Soft
         //UpdateUserCookie(objIndex);
         return 0;
         }
		   
		return 0;
		}

	if (!menuObjArray[_ITEM_VISIBLE_][objIndex])
		{
		if(doFading)
			{
			if(menuObjArray[_MENU_CONTAINER_][objIndex].filters)
				menuObjArray[_MENU_CONTAINER_][objIndex].filters.alpha.opacity += 100/ ( ( (menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight) / moveSlidePix) +1);
			else
				{
				opcVal = parseFloat(menuObjArray[_MENU_CONTAINER_][objIndex].style.opacity);
				opcVal += .9/((menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight) / moveSlidePix);
				menuObjArray[_MENU_CONTAINER_][objIndex].style.opacity = opcVal;
				}
			}
		menuObjArray[_TOP_POSITION_][objIndex] +=  moveSlidePix;
		if (menuObjArray[_TOP_POSITION_][objIndex] < (menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight))
			menuObjArray[_MENU_CONTAINER_][objIndex].style.height = menuObjArray[_TOP_POSITION_][objIndex] + "px";
		else
			{
			if(doFading)
				{
				if(menuObjArray[_MENU_CONTAINER_][objIndex].filters)
					menuObjArray[_MENU_CONTAINER_][objIndex].filters.alpha.opacity = 100;
				else
					menuObjArray[_MENU_CONTAINER_][objIndex].style.opacity = 1;
				}
			strClassName = String(menuObjArray[_SUB_MENU_][objIndex].className);
			menuObjArray[_TOP_POSITION_][objIndex] = (menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight);
			menuObjArray[_MENU_CONTAINER_][objIndex].style.height = (menuObjArray[_NUM_MENU_ITEM_][objIndex] * divHeight)+ "px";			     
         menuObjArray[_ITEM_CONTAINER_][objIndex].style.display = 'inline';
         clearInterval(menuObjArray[_ANIMATION_][objIndex]);
         menuObjArray[_ANIMATION_][objIndex] = null;
         menuObjArray[_ITEM_VISIBLE_][objIndex] = true;
         
         cName = String(menuObjArray[_SUB_MENU_][objIndex].className);
			if (cName.substring(cName.length - 4, cName.length) == "Over")
				{
				menuObjArray[_SUB_MENU_][objIndex].className = cName.substring(0,cName.length - 9);
				menuObjArray[_SUB_MENU_][objIndex].className = menuObjArray[_SUB_MENU_][objIndex].className+"Over";
				}
			if (cName.substring(cName.length - 5, cName.length) == "Close")
				{
				menuObjArray[_SUB_MENU_][i].className = cName.substring(0,cName.length - 5);
				}
		
         isLocked = null;
         // Trall Soft
         //UpdateUserCookie(objIndex);
         return 0;
		   }       
		return 0;
		}
	}

function ChangeStyle()
	{
	className = String(this.className);

	if (className.substring(className.length - 4, className.length) == "Over")
		this.className = className.substring(0,className.length - 4);
	else
		this.className = this.className + "Over";
	}

// Trall Soft
function ShowDescription(event)
	{
	for(dn=0; dn < this.childNodes.length;dn++)
		if (this.childNodes[dn].className == "XPMNU_tipText") // índex diferent segons navegador
			{
 			if (!event)
				event = window.event;
			x = event.clientX + document.body.scrollLeft - 10; 
			y = event.clientY + document.body.scrollTop + 2 - 60;
			if (x <= 0) x=20;

			this.childNodes[dn].style.display = "block";
			this.childNodes[dn].style.left = x + "px";
			this.childNodes[dn].style.top = y + "px";
			}
	}

function HideDescription()
	{
	for(dn=0; dn < this.childNodes.length;dn++)
		if (this.childNodes[dn].className == "XPMNU_tipText") // índex diferent segons navegador
			{
			this.childNodes[dn].style.display = "none";
			}
	}
