// Class Menu, MenuItem, MenuItemCollection

// #define
var UI_MENU_JS = 1;
//
// class MenuItem
//
function MenuItem(itemId,sText, jsUrl) {
	
	this.itemId = itemId;
	this.text = sText;
	this.div = null;
	this.index = 0;
	this.itemIndex = 0;
	this.parent = null;
	this.isParent = false;
	this.visible = true;
	this.classCss = "menu_subMenuRow";
	this.classSubMenuCss = "menu_subMenuArea";
	this.styleCss = "";
	this.styleSubMenuCss = "";
	if(! jsUrl) jsUrl = null;
	this.jsUrl = jsUrl;
	if(this.aHrefUrl) alert(this.aHrefUrl);
	this.colorBck = "";
	this.colorBckMouseOver = "";
	this.menuItems = new MenuItemCollection(this);
	//
	// returns all current and parent indexes
	// saparated by _
	//
	this.returnFullIndexPath = function() {
		return this.parent.returnFullIndexPath() + "_" + this.index;	
	}
	//
	// creates DOM node
	//
	this.createMenuItem = function(objE) {
		var i;
		var boIe = (navigator.appName == "Microsoft Internet Explorer");
		for(i=0;i<this.menuItems.count();i++) {
			var mItem = this.menuItems.getItem(i);
			var newDiv = document.createElement("div");
			newDiv.id = this.returnFullIndexPath() + "_" + String(i);
			mItem.div = newDiv;
			if(mItem.text != "-") {
				//newDiv.setAttribute("onMouseOver","friend_menu_onMouseOver1(this,'#D5210A')");
				//newDiv.setAttribute("onMouseOut","friend_menu_onMouseOut1(this)");
				if(this.menuItems.getItem(i).menuItems.count() == 0) {
					newDiv.setAttribute("onMouseOver","friend_menu_changeColor(this,'#D5210A')");
					newDiv.setAttribute("onMouseOut","friend_menu_changeColor(this,'')");
				} else {
					newDiv.setAttribute("onMouseOver","friend_menu_onMouseOverSub(this.id,'#D5210A')");
					newDiv.setAttribute("onMouseOut","friend_menu_onMouseOutSub(this.id,'')");
				}
				var sClick = "friend_menu_closeWindow(this);"; 
				if(mItem.jsUrl) {
					sClick += mItem.jsUrl;
				} else if(mItem.itemId) {
					sClick += "friend_menu_onClick('" + mItem.itemId + "')";
				}
				if(mItem.jsUrl) newDiv.setAttribute("onClick",sClick);
				newDiv.setAttribute("class",this.classCss);
				newDiv.setAttribute("style",friend_parseStyle(newDiv,this.styleCss));
				newDiv.setAttribute("style",this.styleCss);
				if(boIe) newDiv.style.zIndex = -i;
				newDiv.innerHTML = mItem.text;
			} else {
				newDiv.setAttribute("style",friend_parseStyle(newDiv,"float:left;clear:both;font-size:0px;height:1px;width:100%;border-top-width: 1px;border-top-style: solid;	border-top-color: #FFFFFF;margin-top:5px;margin-bottom:5px"));
				newDiv.setAttribute("style","float:left;clear:both;height:1px;width:100%;background-color:#FFFFFF;margin-top:5px;margin-bottom:5px");
			}
			objE.appendChild(newDiv);
			if(this.menuItems.getItem(i).menuItems.count() > 0) {
				var obImaJos = document.createElement("div");
				var sStyle = "float:right; clear:none;height:1px; weight:auto;top:-15px;left:0px;position:relative;";
				obImaJos.id = newDiv.id + "_sub";
				if(boIe) obImaJos.style.zIndex = 5000 - i;
				obImaJos.setAttribute("style",friend_parseStyle(obImaJos,sStyle));
				obImaJos.setAttribute("style",sStyle);
				objE.appendChild(obImaJos);
				// nova area
				var newDiv1 = document.createElement("div");
				newDiv1.setAttribute("style","position:absolute; width:1px; height:1px;");
				newDiv1.setAttribute("style",friend_parseStyle(newDiv1,"position:absolute; width:1px; height:1px;"));
				newDiv1.id = "syb";
				obImaJos.appendChild(newDiv1);
				var newDiv11 = document.createElement("div");
				newDiv11.setAttribute("style","position:relative; width:1px; height:1px;");
				newDiv11.setAttribute("style",friend_parseStyle(newDiv11,"position:relative; width:1px; height:1px;"));
				if(boIe) newDiv11.style.left="-15px";
				newDiv11.style.fontFamily = "Arial, Helvetica, sans-serif";
				newDiv11.style.fontSize = "8px";
				newDiv11.innerHTML = "►";
				newDiv1.appendChild(newDiv11);
				var newIDiv2 = document.createElement("div");
				newIDiv2.id = newDiv.id + "_area";
				newIDiv2.setAttribute("onMouseOver","friend_menu_onMouseOverSub('" + newDiv.id + "','#D5210A')");
				newIDiv2.setAttribute("onMouseOut","friend_menu_onMouseOutSub('" + newDiv.id + "','')");
				newIDiv2.setAttribute("class",this.classSubMenuCss);
				newIDiv2.setAttribute("style",friend_parseStyle(newIDiv2,this.styleSubMenuCss));
				newIDiv2.setAttribute("style",this.styleSubMenuCss);
				newIDiv2.style.top = "-5px";
				if(boIe) newIDiv2.style.left="-15px";
				newDiv1.appendChild(newIDiv2);
				this.menuItems.getItem(i).createMenuItem(newIDiv2);
			}
		}
		
	}
	this.toString = function() {
		return "MenuItem";
	}
}
//
// class MenuItemCollection
//
function MenuItemCollection(Parent) {
	var aItem = new Array();
	var parent = Parent;
	//
	// adds new element to the Collection
	//
	this.add = function(Item,itemIndex) {
		if(! itemIndex) itemIndex = 0;
		Item.itemIndex = itemIndex;
		var boFlag = false;
		var i;
		for(i=0;i<aItem.length;i++) {
			if(aItem[i].itemIndex >= Item.itemIndex) {
				boFlag = true;
				aItem.splice(i,0,Item);
				break;
			}
		}
		if(boFlag == false) aItem.push(Item);
		Item.parent = parent;
		Item.index =  aItem.length;
	}
	//
	// finds item
	//
	this.findItem = function(name) {
		var i;
		for(i=0;i<aItem.length;i++) {
			if(aItem[i].text == name) {
				return aItem[i];
				break;
			}
		}
		return null;
	}
	//
	// returns current number of elements
	//
	this.count = function() {
		return aItem.length;
	}
	//
	// getItem(Index)
	//
	this.getItem = function(Index) {
		return aItem[Index];
	}
	
}
//
// class Menu
//
function Menu() {

	this.classCss = "menu_subMenuArea";
	this.styleCss = "";//"display:none;float:left; padding:4px; position:absolute;top:22;left:0;width:200px; height:auto; background-color:#3A3A3A";
	this.menuItems = new MenuItemCollection(this);
	//
	// returns all current and parent indexes
	// saparated by _
	//
	this.returnFullIndexPath = function() {
		return "0";	
	}

	//
	// creates menu
	//
	this.createMenu = function(objE) {
		var i;
		for(i=0;i<this.menuItems.count();i++) {
			var newDiv = document.createElement("div");
			newDiv.setAttribute("id",'menuOblast');
			newDiv.setAttribute("style",friend_parseStyle(newDiv,"width:auto;position:relative;left:0px;float:left;height:1px;vertical-align:bottom;cursor:default;margin-right:10px;"));
			newDiv.setAttribute("style","width:auto;position:relative;left:0px;float:left;height:1px;vertical-align:bottom;cursor:default;margin-right:10px;");
			
			var newIDiv = document.createElement("div");
			newIDiv.setAttribute("id",'menuNaslov');
			newIDiv.setAttribute("style",friend_parseStyle(newIDiv,"position:relative;float:left; width:auto; height:auto; margin:0px; padding:4px;"));
			newIDiv.setAttribute("style","position:relative;float:left; width:auto; height:auto; margin:0px; padding:4px;");
			newIDiv.setAttribute("onMouseOver","friend_menu_onMouseOver(this,'#D5210A');");
			newIDiv.setAttribute("onMouseOut","friend_menu_onMouseOut(this)");
			var sClick = "friend_menu_closeWindow(this);"; 
			if(this.menuItems.getItem(i).jsUrl) {
				sClick += this.menuItems.getItem(i).jsUrl;
			} else if(this.menuItems.getItem(i).itemId) {
				sClick += "friend_menu_onClick('" + this.menuItems.getItem(i).itemId + "')";
			}
			newIDiv.setAttribute("onClick",sClick);
			newIDiv.innerHTML = this.menuItems.getItem(i).text;
			newDiv.appendChild(newIDiv);
			var newIDiv2 = document.createElement("div");
			newIDiv2.setAttribute("id",'menuPodNaslov');
			newIDiv2.setAttribute("onMouseOver","friend_menu_onMouseOver(this,'#D5210A')");
			newIDiv2.setAttribute("onMouseOut","friend_menu_onMouseOut(this)");
			if(this.menuItems.getItem(i).menuItems.count() > 0) {
				newIDiv2.setAttribute("class",this.classCss);
				newIDiv2.setAttribute("style",friend_parseStyle(newIDiv2,this.styleCss));
				newIDiv2.setAttribute("style",this.styleCss);
			} else {
				newIDiv2.setAttribute("style",friend_parseStyle(newIDiv2,"height:0px;font-size:0px;display:none;float:left;"));	
				newIDiv2.setAttribute("style","height:0px;font-size:0px;display:none;float:left;");	
			}
			newDiv.appendChild(newIDiv2);
			this.menuItems.getItem(i).createMenuItem(newIDiv2);
			var containerDiv = document.createElement("div");
			containerDiv.appendChild(newDiv);
			//objE.appendChild(newDiv);
			objE.innerHTML += containerDiv.innerHTML;
		}
			
	}
	this.toString = function() {
		return "Menu";
	}

	
}


// friend functions
//
// changes color of the control
//
function friend_menu_changeColor(obj,color) {
		obj.style.backgroundColor = color;
}
//
// handles on mouse over event
//
function friend_menu_onMouseOver(obj,color) {
	objPodNaslov = friend_menu_findNodeId(obj.parentNode,"menuPodNaslov");
	if(objPodNaslov != null) objPodNaslov.style.display = "block";
	objNaslov = friend_menu_findNodeId(obj.parentNode,"menuNaslov");
	if(objNaslov) friend_menu_changeColor(objNaslov,color);
}
//
// handles on mouse out event
//
function friend_menu_onMouseOut(obj) {
	objPodNaslov = friend_menu_findNodeId(obj.parentNode,"menuPodNaslov");
	if(objPodNaslov != null) objPodNaslov.style.display = "none";
	objNaslov = friend_menu_findNodeId(obj.parentNode,"menuNaslov");
	if(objNaslov) friend_menu_changeColor(objNaslov,'');
}
function friend_menu_onMouseOverSub(id,color) {
	objArea = document.getElementById(id + "_area");
	objArea.style.display = "block";
	objTitle = document.getElementById(id);
	friend_menu_changeColor(objTitle,color);
}
function friend_menu_onMouseOutSub(id,color) {
	objArea = document.getElementById(id + "_area");
	objArea.style.display = "none";
	objTitle = document.getElementById(id);
	friend_menu_changeColor(objTitle,color);
}

//
// finds node from node's id, loops through
// all childs' nodes as well
//
function friend_menu_findNodeId(objNode,idName) {
	var i;
	var obj = null;
	if(objNode.id == idName) {
		//document.getElementById("debug").innerHTML += idName + "; " + objNode.id + "<hr/>";
		return objNode;
	}
	for(i=0;i<objNode.childNodes.length;i++) {
		obj = friend_menu_findNodeId(objNode.childNodes[i],idName);
		if(obj != null) return obj;
	}
	return obj;
}
//
// closing clicked menu subArea
//
function friend_menu_closeWindow(obj) {
	while(obj) {
		if(obj.id && obj.id.indexOf("_area") > 0) {
			obj.style.display = "none";
		} else if(obj.id && obj.id == "menuPodNaslov") {
			obj.style.display = "none";
			return;
		}
		obj = obj.parentNode;
	}	
}
//
// parsing style object
//
function friend_parseStyle(obElement,sValue) {
	if(!sValue) return null;
	var obStyle = obElement.style;
	var aS = sValue.split(";");
	for(i=0;i<aS.length;i++) {
		if(aS[i].trim() != "") {
			var aP = aS[i].trim().split(":");
			obStyle[aP[0].trim()] = aP[1].trim();
		}
		
	}
	return obStyle;
}

String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}




