var _defaultThemeWidth = 300;
var _defaultThemeHeight = 100;

var _themeTimeGap = 500;
var _themeTimer = setTimeout("closeAllThemes()", 9999);

var _openThemes = new Array(null);

function setThemeTimer()
{
	_themeTimer = setTimeout("closeAllThemes()", _themeTimeGap);
} //setThemeTimer

function clearThemeTimer()
{
	clearTimeout(_themeTimer);
} //clearThemeTimer

function closeAllThemes()
{
	var themePane = null;
	
	clearThemeTimer();
	
	popThemes();

	return true;	
} //closeAllThemes

function popThemes()
{
	var themePane = null;
	
	for (var i = _openThemes.length - 1; i > 0; i--)
	{
		themePane = _openThemes[i];
		if (themePane)
		{
			goHideThemePane(themePane);
		}
		
		themePane = null;
		_openThemes[i] = null;
		_openThemes.length = i;
	}
}

function addTheme(el)
{
	var itemExists = false;
	
	for (var i = 0; i < _openThemes.length; i++)
	{
		if (_openThemes[i])
		{
			if (el == _openThemes[i])
			{
				itemExists = true;
				break;
			}
		}
	}
	
	if (!itemExists)
	{
		_openThemes[_openThemes.length] = el;
	}
}


//-----------


function ShowHoveringTheme(menuItem, menuItemId, hoveringIndex)
{
	var x = 0;
	var y = 0;
	var hoveringElement = null;
	var hoveringId = menuItemId + "_" + hoveringIndex;
	
	clearThemeTimer();
	
	if (menuItem)
	{
		popThemes();
	
		hoveringElement = getAnElementById(hoveringId);
		if (!hoveringElement)
		{
			hoveringElement = CreateHoveringTheme(menuItem, menuItemId, hoveringIndex);
		}
		
		goHideThemePane(hoveringElement);
		
		x = findPosX(menuItem) - _defaultThemeWidth;
		y = findPosY(menuItem);
		
		setElementWidth(hoveringElement, _defaultThemeWidth);
		setElementHeight(hoveringElement, _defaultThemeHeight);
		
		moveElement(hoveringElement, x, y);
		
		goShowThemePane(hoveringElement);
		
		addTheme(hoveringElement);
	}
} //ShowHoveringTheme

function HideHoveringTheme()
{
 	setThemeTimer();
} //HideHoveringTheme

function goHideThemePane(el)
{
	var x = 0;
	var y = 0;

	if (el && el.className)
	{
		el.className = "hiddenTheme";
		
		moveElement(el, x - _defaultThemeWidth, y - _defaultThemeHeight);

		var centerLogo = getAnElementById("_centerLogo");
		centerLogo.style.visibility = "visible";
	}
} //goHideThemePane

function goShowThemePane(el)
{
	if (el && el.className)
	{
		var centerLogo = getAnElementById("_centerLogo");
		centerLogo.style.visibility = "hidden";

		el.className = "hoveringTheme";
	}
} //goShowThemePane

function CreateHoveringTheme(menuItem, menuItemId, hoveringIndex)
{
	var hoveringId = menuItemId + "_" + hoveringIndex;
	var hoveringItem = null;
	var themeTitle = null;
	var themeContent = null;
	var themeImage = null;
	var themeImageUrl = null;
	var html = "";
	var row = null;
	var re = /src=('|\")([^'\"]*)('|\")(\s|>)/gi;
	
	row = _hoveringThemes[hoveringIndex];
	
	themeTitle = row[0];
	themeContent = row[1];
	themeImage = row[2];

	re.exec(themeImage);
	
	themeImageUrl = RegExp.$2;

	hoveringItem = document.createElement("DIV");
	hoveringItem.id = hoveringId;
	hoveringItem.className = "hiddenTheme";
	hoveringItem.onmouseover = new Function("ShowHoveringTheme(null, \"" +menuItemId + "\", \"" + hoveringIndex + "\");");
	hoveringItem.onmouseout = new Function("HideHoveringTheme();");

	html += "<table cellspacing='0' cellpadding='0' border='0' width='100%'>";
	html += "<tr><td valign='top'><div class='title'>" + themeTitle + "</div>";
	html += "<div class='text'>" + themeContent + "</div></td>";
	if (themeImage && themeImage != "")
	{
		html += "<td valign='top'><img src='" + themeImageUrl + "' align='absmiddle' border='0' width='100px' height='100px'></td>";
	}
	html += "</tr></table>";
	
	hoveringItem.innerHTML = html;
	
	menuItem.appendChild(hoveringItem);
	
	return hoveringItem;
} //CreateHoveringTheme

