//----------------------------------------
// 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 = [];

showImg = true;

//Main function
function SkodaMenu(menuItems)
{
	preloadingImgs(menuItems.length);

	//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;
	defaultItemLevelOneUrlTarget = menuItems[0].itemUrlTarget;

	//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";
	
	//element.style.display='none';
	
	//loop for menuItems.length items
	// : create new menuItem
	stringHtmlTags = "";
	i = 1;
	diffwpos=0;
	diffhpos=0;
	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;
		currentItemPgId = (menuItems[i].itemPgId == null) ? "undefined" : menuItems[i].itemPgId;
		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;
		currentItemUrlTarget = (menuItems[i].itemUrlTarget == null) ? defaultItemLevelOneUrlTarget : menuItems[i].itemUrlTarget;
		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;

		if (showImg)
		{
				oldcurrentItemwSize=currentItemSize[1];
			
				sizeImg = getMenuImgSize(i,currentItemPgId);
				if (sizeImg[0]>0)
				{
    				currentItemSize[1] = sizeImg[0];
    				currentItemSize[0] = sizeImg[1]				
    				currentItemPosition[0] = (currentItemPosition[0]+diffwpos);
    				diffwpos = (currentItemSize[1] - oldcurrentItemwSize);
				}
		}
		
		//string with html tags
		stringHtmlTags += SkodaMenuItem(i, currentItemName, currentItemPgId, currentItemPosition, currentItemSize, currentItemStyle, currentItemUrl, currentItemUrlTarget, 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;
	//element.style.display='block';		
/*
	i = 1;
	for (i; i < menuItems.length; i++)
	{	
			currentItemPgId = (menuItems[i].itemPgId == null) ? "undefined" : menuItems[i].itemPgId;
			getMenuImgSize(i,currentItemPgId);
	}		
*/	
	//joining element with body element
	//document.body.appendChild(element);
	document.getElementById('MenuPositionSpan').innerHTML = stringHtmlTags;
	document.getElementById('MenuPositionSpan').style.display='block';
}

	function overMenuImg(level,pg) {
		if (langIdFactor>0)
				document.getElementById('levelOneImg_'+level).src = 'templates/'+fidFactor+'/lang/'+langIdFactor+'/g_files/'+pg+'_.gif';
		else 
				document.getElementById('levelOneImg_'+level).src = 'templates/'+fidFactor+'/g_files/'+pg+'_.gif';
  }

	function outMenuImg(level,pg) {
		if (langIdFactor>0)
				document.getElementById('levelOneImg_'+level).src = 'templates/'+fidFactor+'/lang/'+langIdFactor+'/g_files/'+pg+'.gif';
		else 
				document.getElementById('levelOneImg_'+level).src = 'templates/'+fidFactor+'/g_files/'+pg+'.gif';
  }

	function preloadingImgs(length) {
			
			preload_image_object = new Image();
      var i = 0;
			for(i=0; i<length; i++) 			
			{
					if (langIdFactor>0)
							preload_image_object.src = 'templates/'+fidFactor+'/lang/'+langIdFactor+'/g_files/'+i+'.gif';
					else 
							preload_image_object.src = 'templates/'+fidFactor+'/g_files/'+i+'.gif';	
			}		
/*	
			preload_image_object = new Image();
      // set image url
      image_url = new Array();
      image_url[0] = "http://mydomain.com/image0.gif";
      image_url[1] = "http://mydomain.com/image1.gif";
      image_url[2] = "http://mydomain.com/image2.gif";
      image_url[3] = "http://mydomain.com/image3.gif";

       var i = 0;
       for(i=0; i<=3; i++) 
         preload_image_object.src = image_url[i];
*/				 
	}
	
	function getMenuImgSize(level,pg)
	{
			var newImg = new Image();
			//newImg.src = imgSrc;
			if (langIdFactor>0)
					newImg.src = 'templates/'+fidFactor+'/lang/'+langIdFactor+'/g_files/'+pg+'.gif'; 
			else 
					newImg.src = 'templates/'+fidFactor+'/g_files/'+pg+'.gif'; 
			var height = newImg.height;
			var width = newImg.width;
			//alert ('The image size is '+width+'*'+height);
			//alert(newImg.src);
			size = []
			size[0]=width;
			size[1]=height;
			
			return size;
	}	


//Definition for one first level item
function SkodaMenuItem(itemLevelOneId, itemName, itemPgId , itemPosition, itemSize, itemStyle, itemUrl, itemUrlTarget, itemDescription, itemSubMenu)
{
	if (itemName == '') return '';

	//number of members menu second level
	subMenuItemLength = itemSubMenu.length;
	//event onClick ( go on url or nothing)

	if (itemUrlTarget == undefined || itemUrlTarget == "none")
			actionOnClick = (itemUrl == "none") ? '' : ' onclick="window.location.href=\'' + itemUrl + '\'"';
	else		
			actionOnClick = (itemUrl == "none") ? '' : ' onclick="window.open(\'' + itemUrl + '\',\'neWindow\');"';
	
	//text in status bar
	actionStatusBar = (itemDescription == "") ? '' : ' self.status = \'' + itemDescription + '\';';
	//creating output string
	outputStringHtmlTags = "";
	
//'templates/'.$fid.'/lang/'.$id_lang.'/g_files/';	
//onmouseover=\"over('$xx')\" onmouseout=\"out('$xx')\"	
//alert(fidFactor);
//alert(langIdFactor);
	if (showImg)
	{
			//alert(itemPosition[0]+' '+itemPosition[1]);
			//getMenuImgSize(document.getElementById('levelOneImg_'+itemLevelOneId).src);
			//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 += '<table height="' + itemSize[0] + '" width="' + itemSize[1] + '" cellspacing="0" cellpadding="0" border="0" style="float: left;">';
			outputStringHtmlTags += '<tr><td id="levelOne_' + itemLevelOneId + '" width="100%" height="100%" class="' + itemStyle[0] + '" onmouseover="ShowHideSubMenu(\'visible\',' +  itemLevelOneId + ');overMenuImg('+itemLevelOneId+','+itemPgId+');' + actionStatusBar + '" onmouseout="outMenuImg('+itemLevelOneId+','+itemPgId+');ShowHideSubMenu(\'hidden\',' +  itemLevelOneId + ');"' + actionOnClick +'>';
			if (langIdFactor>0)
					outputStringHtmlTags += '<img id="levelOneImg_' + itemLevelOneId + '" src="templates/'+fidFactor+'/lang/'+langIdFactor+'/g_files/'+itemPgId+'.gif" alt="' + itemName + '" style="cursor: pointer;"/>';
			else 		
					outputStringHtmlTags += '<img id="levelOneImg_' + itemLevelOneId + '" src="templates/'+fidFactor+'/g_files/'+itemPgId+'.gif" alt="' + itemName + '" style="cursor: pointer;"/>';
			outputStringHtmlTags += '</td></tr></table>';
	}		
	else 
	{
			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 +'>';	
			outputStringHtmlTags += '' + itemName + '';
			outputStringHtmlTags += '</td></tr></table>';
	}		
	
	//alert(itemSize[0])
	//alert(itemPosition[1]);;
	outputStringHtmlTags += SkodaSubMenuItem(itemLevelOneId, itemPosition, itemStyle, itemSubMenu);

	return outputStringHtmlTags;
}

//Definition for second level items
function SkodaSubMenuItem(itemLevelOneId, itemLevelOnePosition, itemLevelOneStyle, subMenuItems)
{
	if (subMenuItems.length<=1) return '';

	//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;
	defaultItemLevelSecondUrlTarget = subMenuItems[0].itemUrlTarget;

	if (showImg && defaultItemLevelSecondLevelOff[1]<40)
	{
			//defaultItemLevelSecondLevelOff[1]=40;
	}
	
	//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;
		itemSubMenuUrlTarget = (subMenuItems[j].itemUrlTarget == null) ? defaultItemLevelSecondUrlTarget : subMenuItems[j].itemUrlTarget;
		itemSubMenuDescription = (subMenuItems[j].itemDescription == null) ? "" : subMenuItems[j].itemDescription;
		
		//event onClick ( go on url or nothing)
		actionSubMenuOnClick = (itemSubMenuUrl == "none") ? '' : ' onclick="location.href=\'' + itemSubMenuUrl + '\';"';
	
		if (itemSubMenuUrlTarget == undefined || itemSubMenuUrlTarget == "none")
				actionSubMenuOnClick = (itemSubMenuUrl == "none") ? '' : ' onclick="window.location.href=\'' + itemSubMenuUrl + '\'"';
		else		
				actionSubMenuOnClick = (itemSubMenuUrl == "none") ? '' : ' onclick="window.open(\'' + itemSubMenuUrl + '\',\'neWindow\');"';		
		
		//text in status bar
		actionSubMenuStatusBar = (itemSubMenuDescription == "") ? '' : ' self.status = \'' + itemSubMenuDescription + '\';';

		//string with html tags
		if (showImg)
				stringSubMenuHtmlTags += '<tr><td width="100%" height="' + defaultItemLevelSecondItemOff[1] + '" class="' + itemSubMenuStyle[0] + '" onmouseover="this.className=\'' + itemSubMenuStyle[1] + '\'; ShowHideSubMenu(\'visible\',' +  itemLevelOneId + '); document.getElementById(\'levelOne_' + itemLevelOneId + '\').className = \'\';' + actionSubMenuStatusBar + '" onmouseout="this.className=\'' + itemSubMenuStyle[0] + '\'; ShowHideSubMenu(\'hidden\',' +  itemLevelOneId + '); document.getElementById(\'levelOne_' + itemLevelOneId + '\').className = \'' + itemLevelOneStyle[0] + '\';"' + actionSubMenuOnClick + '>' + itemSubMenuName + '</td></tr>';
		else		
				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

//--------------------------------------
