/* ======= Dynamic Menu Creation =============== */
var bgOver="#F8BAD6";
var bgOut="#A5D5C7";
var fontOver = "#8C0316";
var fontOut = "#8C0316";

var menuLang = "H";	// H = Hebrew;	E = English (affects the direction the menu opens to)

var subMenuGif = "arrow.gif";	// sub menu indicator (empty string for none)
var subMenuGifWidth = 12;

// DO NOT EDIT SCRIPT BELOW THIS LINE
var items = new Array();
var openMenu = null;
var overItem = false;
var RootMenu = "";

function addObj(id, parent, name, url, lang){
	var obj = new Object();
	obj.id = id;
	obj.parent = parent;
	obj.name = name;
	obj.url = url;
	obj.lang = lang;
	obj.hasMenu = false;
	items[items.length] = obj;
}

function createMenu(){
	bubbleSort();	// sort items by parent id
	addChildIndicator();
	
	// start creating menus
	var langCode = "";
	var backgroundPosition = "";
	var backgroundPadding = "";
	
	var SubMenuStyle = "";
	var NoSubMenuStyle = "";
	
	if (menuLang == "H"){
		//langCode = "dir='rtl' align='right' ";
		SubMenuStyle = " style=\"background-color:"+bgOut+"; color:"+fontOut+"; padding-right:5px; background-image:url('"+subMenuGif+"'); background-position:left; background-repeat:no-repeat; padding-left:"+(subMenuGifWidth+10)+"px;\" ";
		NoSubMenuStyle = " style=\"background-color:"+bgOut+"; color:"+fontOut+"; padding-right:5px; padding-left:10px;\" ";
	} else {
		//langCode = "";
		SubMenuStyle = " style=\"background-color:"+bgOut+"; color:"+fontOut+"; padding-left:5px; background-image:url('"+subMenuGif+"'); background-position:left; background-repeat:no-repeat; padding-right:"+(subMenuGifWidth+10)+"px;\" ";
		NoSubMenuStyle = " style=\"background-color:"+bgOut+"; color:"+fontOut+"; padding-right:10px; padding-left:5px;\" ";
	}
	
	var i, obj, openDiv = false;
	var prevParentId = 0;
	for (i=0; i<items.length; i++){
		if (items[i].parent != prevParentId){	// add menu here
			
			if (openDiv) document.writeln("</table></DIV>");	// close previous menu
			
			document.writeln("<DIV id='M"+items[i].parent+"' class='Menu'><table cellspacing=0 cellpadding=0 border=0 class=ItemCont>");
			openDiv = true;
			
			prevParentId = items[i].parent;
		}
		if (items[i].parent != 0){	// add item here
			if (items[i].lang == "E"){
				langCode = "dir='ltr' align='left' ";
			} else {
				langCode = "dir='rtl' align='right' ";
			}
			if (subMenuGif != "" && items[i].hasMenu){
				document.writeln("<tr><td id='I"+items[i].id+"' class='Item' "+langCode+SubMenuStyle+" onmouseover='MouseOverItem()' onmouseout='MouseOutItem()' onclick='gotoUrl("+items[i].id+")'>"+items[i].name+"</td></tr>");
			} else {
				document.writeln("<tr><td id='I"+items[i].id+"' class='Item' "+langCode+NoSubMenuStyle+" onmouseover='MouseOverItem()' onmouseout='MouseOutItem()' onclick='gotoUrl("+items[i].id+")'>"+items[i].name+"</td></tr>");
			}
		}
	}
	document.writeln("</table></DIV>");
}

function bubbleSort(){
	var i, j, temp;
	for (i = (items.length - 1); i >= 0; i--){
		for (j = 1; j <= i; j++){
			if (items[j-1].parent > items[j].parent){
				temp = items[j-1];
				items[j-1] = items[j];
				items[j] = temp;
			}
		}
	}
}

// check if item has a sub menu
function addChildIndicator(){
	var i, j;
	for (i=0; i<items.length; i++){
		if (items[i].parent != 0){
			for (j=0; j<items.length; j++){
				if (items[j].id == items[i].parent){
					items[j].hasMenu = true;
					break;
				}
			}
		}
	}
}

function calcPosition(obj){
	this.topPos = obj.clientHeight + 0 - document.body.scrollTop + document.body.clientTop;
	this.leftPos = document.body.clientLeft;
	if (document.dir == "rtl") this.leftPos = 15;	// compensate for scrollbar
	var prevOffsetTop = 0;
	var prevOffsetLeft = 0;
	while (obj.tagName != "BODY"){
		if (obj.offsetTop != prevOffsetTop){
			topPos += obj.offsetTop;
			prevOffsetTop = obj.offsetTop;
		}
		if (obj.offsetLeft != prevOffsetLeft){
			leftPos += obj.offsetLeft;
			prevOffsetLeft = obj.offsetLeft;
		}
		obj = obj.parentElement;
	}
	return this;
}

// ==============================================
// Internal Variables
var OverButton = false;
var OverMenu = false;
var RootMenu = null;

function getObj(id){
	if (id == null) return null;
	var id = id.substring(1, id.length);
	var i, obj = null;
	for (i=0; i<items.length; i++){
		if (id == items[i].id) return items[i];
	}
}

function gotoUrl(id){
	var obj = getObj("I"+id);
	if (obj.url) window.location.href = obj.url;
}

function HideSingleMenu(Menu){
	if (!Menu) return;
	Menu = document.all(Menu);
	Menu.style.display = "none";
	if(!OverButton && !OverMenu) KillTree(Menu);
	if(RootMenu == Menu.id) RootMenu = null;
}

function KillTree(Menu){
	var ItemName;
	if (!Menu) return;
	
	while (Menu){
		Menu.style.display = "none";
		ItemName = Menu.id.replace(/^M/, "I");	// get name of menu's parent item
		MenuParent = getObj(ItemName);	// get item obj
		if (MenuParent != null){
			Menu = document.all("M"+MenuParent.parent);
		} else { Menu = null; }
	}
	RootMenu = null;
}

function MouseOverButton(Menu, menuType){
	OverButton = true;
	Menu = document.all(Menu);
	if (!Menu) return;
	if (Menu.HideTimer) clearTimeout(Menu.HideTimer);
	if (RootMenu != Menu.id){
		if (RootMenu != "") HideSingleMenu(RootMenu);
		RootMenu = Menu.id;
		Menu.style.display="inline";
		
		var vPos = calcPosition(event.srcElement);
		
		// Drop down menu positioning
		if (menuType == "D"){
			if (menuLang == "H"){
				Menu.style.pixelLeft = vPos.leftPos + event.srcElement.offsetWidth - Menu.offsetWidth+5;
			} else {
				Menu.style.pixelLeft = vPos.leftPos+5;
			}
			
			if (vPos.topPos + event.srcElement.offsetHeight + Menu.offsetHeight > document.body.clientHeight){
				Menu.style.pixelTop = vPos.topPos - Menu.offsetHeight + document.body.scrollTop;
			} else {
				Menu.style.pixelTop = vPos.topPos + event.srcElement.offsetHeight + document.body.scrollTop;
			}
		}
		// Side menu positioning
		else {			if (menuLang == "H"){
				if (vPos.leftPos - Menu.clientWidth < 0){
					Menu.style.pixelLeft = vPos.leftPos + event.srcElement.offsetWidth;
				} else {
					Menu.style.pixelLeft = vPos.leftPos - Menu.clientWidth;
				}
			} else {
				if (vPos.leftPos + event.srcElement.offsetWidth + Menu.clientWidth > document.body.clientWidth){
					Menu.style.pixelLeft = vPos.leftPos - Menu.clientWidth;
				} else {
					Menu.style.pixelLeft = vPos.leftPos + event.srcElement.offsetWidth;
				}
			}
			
			if (vPos.topPos + Menu.offsetHeight > document.body.clientHeight){
				Menu.style.pixelTop = vPos.topPos - Menu.offsetHeight + document.body.scrollTop;
			} else {
				Menu.style.pixelTop = vPos.topPos + document.body.scrollTop;
			}
		}
	}
}

function MouseOutButton(Menu){
	Menu = document.all(Menu);
	if (!Menu) return;
	OverButton = false;
	if (OverMenu) return;
	Menu.HideTimer = setTimeout("HideSingleMenu('" + Menu.id + "')", 500);
}

function MouseOverItem(){
	OverMenu = true;
	var Item = event.srcElement;
	Item.style.backgroundColor = bgOver;
	Item.style.color = fontOver;
	var obj = getObj(Item.id);
	
	if (obj.parent != 0){
		// if current menu has HideTimer - clear it.
		if (document.all("M"+obj.parent).HideTimer) clearTimeout(document.all("M"+obj.parent).HideTimer);
		
		// get parent menu of current menu:
		if (document.all("I"+obj.parent)){
			// 1. parent item of current menu
			var parentMenu = getObj(document.all("I"+obj.parent).id);
			// 2. parent menu containing the item.
			if (parentMenu){
				parentMenu = document.all("M"+parentMenu.parent);
				if (parentMenu.HideTimer) clearTimeout(parentMenu.HideTimer);
			}
		}
	}
	
	if (obj.hasMenu){
		var vPos = calcPosition(Item);
		var Child = document.all("M"+obj.id);
		if (Child.HideTimer) clearTimeout(Child.HideTimer);
		Child.style.display = "inline";
		if (menuLang == "H"){
			// left position - hebrew menu
			if (vPos.leftPos - Child.offsetWidth < 0){	// if submenu will exceed left boundary of screen
				Child.style.pixelLeft = vPos.leftPos + Item.offsetWidth;
			} else {
				Child.style.pixelLeft = vPos.leftPos - Child.offsetWidth;
			}
		} else {
			// left position - english menu
			if (vPos.leftPos + Item.offsetWidth + Child.offsetWidth > document.body.clientWidth){
				Child.style.pixelLeft = vPos.leftPos - Child.offsetWidth;
			} else {
				Child.style.pixelLeft = vPos.leftPos + Item.offsetWidth;
			}
		}
		
		// top position
		if (vPos.topPos - Item.offsetHeight + Child.offsetHeight > document.body.clientHeight){
			Child.style.pixelTop = vPos.topPos - Item.offsetHeight - Child.offsetHeight + document.body.scrollTop;
		} else {
			Child.style.pixelTop = vPos.topPos - Item.offsetHeight + document.body.scrollTop;
		}
	}
}

function MouseOutItem(){
	var Item = event.srcElement;
	Item.style.backgroundColor = bgOut;
	Item.style.color = fontOut;
	var obj = getObj(Item.id);
	
	if (obj.parent != 0) document.all("M"+obj.parent).HideTimer =  setTimeout("HideSingleMenu('M"+obj.parent+"')",100);
	
	if (obj.hasMenu){
		var Child = document.all("M"+obj.id);
		Child.ParentMenu = Item.parentElement;
		Child.HideTimer = setTimeout("HideSingleMenu('"+Child.id+"')",100);
	}
	OverMenu = false;
}
