//----------------------------------------
// Skoda Top Menu ver. 2.0
// JScript source code for SkodaTopMenu
// S K O D A   A U T O   a . s .
//----------------------------------------

//Definition of menu styles in html file - style tag or css file

//Definition of menu items
//Item attributes : itemName, itemPosition[left,top], itemSize[height,width], itemOff[left,top], 
//					itemLevelOff[left,top], itemUrl, itemStyle, itemDescription

//default global value
defaultItemLevelOnePosition	= [];
defaultItemLevelOneSize = [];
defaultItemLevelOneItemOff = [];
defaultItemLevelOneStyle = [];
defaultItemLevelOneUrl = [];
defaultItemLevelSecondSize = [];
defaultItemLevelSecondItemOff = [];
defaultItemLevelSecondLevelOff = [];
defaultItemLevelSecondStyle = [];
defaultItemLevelSecondUrl = [];

//Main function
function SkodaMenu(menuItems)
{
	//default values for first item level
	defaultItemLevelOnePosition = menuItems[0].itemPosition;
	defaultItemLevelOneSize = menuItems[0].itemSize;
	defaultItemLevelOneItemOff = menuItems[0].itemOff;
	defaultItemLevelOneStyle = menuItems[0].itemStyle;
	defaultItemLevelOneUrl = menuItems[0].itemUrl;

	//defining actual position for first level
	actualPosition = [];
	actualPosition[0] = defaultItemLevelOnePosition[0];
	actualPosition[1] = defaultItemLevelOnePosition[1];
	
	//creating element for printing tags
	element = document.createElement("Span");
	element.id = "MainMenuSpan";

	//loop for menuItems.length items
	// : create new menuItem
	stringHtmlTags = "";
	i = 1;
	for (i; i < menuItems.length; i++)
	{
		//setting position for current item
		currentItemPosition = (menuItems[i].itemPosition == null) ? actualPosition : menuItems[i].itemPosition;
		//setting other values for current item
		currentItemName = (menuItems[i].itemName == null) ? "undefined" : menuItems[i].itemName;
		currentItemSize = [];
		currentItemSize[0] = (menuItems[i].itemSize == null) ? defaultItemLevelOneSize[0] : menuItems[i].itemSize[0];
		currentItemSize[1] = (menuItems[i].itemSize == null) ? defaultItemLevelOneSize[1] : menuItems[i].itemSize[1];
		currentItemStyle = (menuItems[i].itemStyle == null) ? defaultItemLevelOneStyle : menuItems[i].itemStyle;
		currentItemUrl = (menuItems[i].itemUrl == null) ? defaultItemLevelOneUrl : menuItems[i].itemUrl;
		currentItemDescription = (menuItems[i].itemDescription == null) ? "" : menuItems[i].itemDescription;
		currentItemOff = [];
		currentItemOff[0] = (menuItems[i].itemOff == null) ? defaultItemLevelOneItemOff[0] : menuItems[i].itemOff[0];
		currentItemOff[1] = (menuItems[i].itemOff == null) ? defaultItemLevelOneItemOff[1] : menuItems[i].itemOff[1];
		currentItemSubMenu = (menuItems[i].itemSubMenu == null) ? [] : menuItems[i].itemSubMenu;
		
		//string with html tags
		stringHtmlTags += SkodaMenuItem(i, currentItemName, currentItemPosition, currentItemSize, currentItemStyle, currentItemUrl, currentItemDescription, currentItemSubMenu);

		//setting actual position as enter for next item
		actualPosition[0] += currentItemOff[0];
		actualPosition[1] += currentItemOff[1];
	}

	//writing html tags into element and writing to document
	element.innerHTML = stringHtmlTags;
	//joining element with body element
	document.body.appendChild(element);
}

//Definition for one first level item
function SkodaMenuItem(itemLevelOneId, itemName, itemPosition, itemSize, itemStyle, itemUrl, itemDescription, itemSubMenu)
{
	//number of members menu second level
	subMenuItemLength = itemSubMenu.length;
	//event onClick ( go on url or nothing)
//	actionOnClick = (itemUrl == "none") ? '' : ' onclick="location.href=\'' + itemUrl + '\';"';
        actionOnClick = (itemUrl == "none") ? '' : ' onclick="' + itemUrl + ';"';
	//text in status bar
	actionStatusBar = (itemDescription == "") ? '' : ' self.status = \'' + itemDescription + '\';';
	//creating output string
	outputStringHtmlTags = "";
	outputStringHtmlTags += '<table height="' + itemSize[0] + '" width="' + itemSize[1] + '" cellspacing="0" cellpadding="0" border="0" style="position: absolute; z-index: 100; left: ' + itemPosition[0] + 'px; top: ' + itemPosition[1] + 'px">';
	outputStringHtmlTags += '<tr><td id="levelOne_' + itemLevelOneId + '" width="100%" height="100%" class="' + itemStyle[0] + '" onmouseover="ShowHideSubMenu(\'visible\',' +  itemLevelOneId + '); this.className=\'' + itemStyle[1] + '\'; ' + actionStatusBar + '" onmouseout="this.className=\'' + itemStyle[0] + '\'; ShowHideSubMenu(\'hidden\',' +  itemLevelOneId + ');"' + actionOnClick + '>' + itemName + '</td></tr></table>';
	outputStringHtmlTags += SkodaSubMenuItem(itemLevelOneId, itemPosition, itemStyle, itemSubMenu);
	return outputStringHtmlTags;
}

//Definition for second level items
function SkodaSubMenuItem(itemLevelOneId, itemLevelOnePosition, itemLevelOneStyle, subMenuItems)
{
	//default values for second item level
	defaultItemLevelSecondSize[0] = subMenuItems[0].itemSize[0];
	defaultItemLevelSecondSize[1] = subMenuItems[0].itemSize[1];
	defaultItemLevelSecondItemOff[0] = subMenuItems[0].itemOff[0];
	defaultItemLevelSecondItemOff[1] = subMenuItems[0].itemOff[1];
	defaultItemLevelSecondLevelOff[0] = subMenuItems[0].itemLevelOff[0];
	defaultItemLevelSecondLevelOff[1] = subMenuItems[0].itemLevelOff[1];
	defaultItemLevelSecondStyle = subMenuItems[0].itemStyle;
	defaultItemLevelSecondUrl = subMenuItems[0].itemUrl;
	//enter position for sub menu
	itemSubMenuActualPosition = [];
	itemSubMenuActualPosition[0] = itemLevelOnePosition[0];
	itemSubMenuActualPosition[1] = itemLevelOnePosition[1];
	//setting position for table
	itemSubMenuPosition = [];
	itemSubMenuPosition[0] = itemSubMenuActualPosition[0] + defaultItemLevelSecondLevelOff[0];
	itemSubMenuPosition[1] = itemSubMenuActualPosition[1] + defaultItemLevelSecondLevelOff[1];
	//creating table
	stringSubMenuHtmlTags = "";
	stringSubMenuHtmlTags += '<table id="levelSecond_' + itemLevelOneId + '" height="' + defaultItemLevelSecondSize[0] + '" width="' + defaultItemLevelSecondSize[1] + '" cellspacing="0" cellpadding="0" border="0" style="visibility: hidden; position: absolute; z-index: 100; left: ' + itemSubMenuPosition[0] + 'px; top: ' + itemSubMenuPosition[1] + 'px">';

	//creating string with html tags
	j = 1;
	for (j; j < subMenuItems.length; j++)
	{
		//setting other values for current item
		itemSubMenuName = (subMenuItems[j].itemName == null) ? "undefined" : subMenuItems[j].itemName;
		itemSubMenuStyle = (subMenuItems[j].itemStyle == null) ? defaultItemLevelSecondStyle : subMenuItems[j].itemStyle;
		itemSubMenuUrl = (subMenuItems[j].itemUrl == null) ? defaultItemLevelSecondUrl : subMenuItems[j].itemUrl;
		itemSubMenuDescription = (subMenuItems[j].itemDescription == null) ? "" : subMenuItems[j].itemDescription;
		
		//event onClick ( go on url or nothing)
		//actionSubMenuOnClick = (itemSubMenuUrl == "none") ? '' : ' onclick="location.href=\'' + itemSubMenuUrl + '\';"';
                  actionSubMenuOnClick = (itemSubMenuUrl == "none") ? '' : ' onclick="' + itemSubMenuUrl + ';"';
		//text in status bar
		actionSubMenuStatusBar = (itemSubMenuDescription == "") ? '' : ' self.status = \'' + itemSubMenuDescription + '\';';

		//string with html tags
		stringSubMenuHtmlTags += '<tr><td width="100%" height="' + defaultItemLevelSecondItemOff[1] + '" class="' + itemSubMenuStyle[0] + '" onmouseover="this.className=\'' + itemSubMenuStyle[1] + '\'; ShowHideSubMenu(\'visible\',' +  itemLevelOneId + '); document.getElementById(\'levelOne_' + itemLevelOneId + '\').className = \'' + itemLevelOneStyle[1] + '\';' + actionSubMenuStatusBar + '" onmouseout="this.className=\'' + itemSubMenuStyle[0] + '\'; ShowHideSubMenu(\'hidden\',' +  itemLevelOneId + '); document.getElementById(\'levelOne_' + itemLevelOneId + '\').className = \'' + itemLevelOneStyle[0] + '\';"' + actionSubMenuOnClick + '>' + itemSubMenuName + '</td></tr>';
	}
	
	stringSubMenuHtmlTags += '</table>';
	return stringSubMenuHtmlTags;
}

//function for show and hide submenu items
function ShowHideSubMenu(action, itemLevelOneId)
{
	if (document.getElementById('levelSecond_' + itemLevelOneId) != null)
		{document.getElementById('levelSecond_' + itemLevelOneId).style.visibility = action;}
}

//--------------------------------------
// end of script
//--------------------------------------