//
// Menu for PayPal Shop Maker 3+
// (C)2008 e.World Technology Ltd. All rights reserved.
//

var EW_MENUBAR_VERTICAL_CLASSNAME = "MenuBarVertical";
var EW_MENUBAR_SUBMENU_CLASSNAME = "MenuBarItemSubmenu";
var EW_MENUBAR_RIGHTHOVER_IMAGE = "images/SpryMenuBarRightHover.gif";

function ew_Menu(id) {
	this.id = String(id);
	this.isroot = false;
	this.itemdata = []; // data type: array of ew_MenuItem
	this.menubar = null;

	this.addItem = function(item) {
		this.itemdata[this.itemdata.length] = item;
	}

	this.findItem = function(id) {
		for (var i=0; i<this.itemdata.length; i++) {
			if (this.itemdata[i].id == String(id)) {
				return this.itemdata[i];
			}
			else if (this.itemdata[i].submenu) {
				var item = this.itemdata[i].submenu.findItem(id);
				if (item != null) return item;
			}
		}
		return null;
	}
	
	this.addMenuItem = function(id, text, gen, fn, url, parentid) {
		var oMenu = new ew_MenuItem("MenuItem" + id, text);
		oMenu.setUrl(gen ? fn : url);
		oParentMenu = (parentid < 0) ? this : this.findItem("MenuItem" + parentid);
		oParentMenu.addItem(oMenu);	
	}

	this.render = function() {
		var i, item;
		var itemcnt = this.itemdata.length;
		document.write("<ul");
		if (this.id != "")
			document.write(" id='" + this.id + "'")
		if (this.isroot)
			document.write(" class='" + EW_MENUBAR_VERTICAL_CLASSNAME + "'");
		document.write(">");
		for (i = 0; i < itemcnt; i++) {
			document.write("<li><a");
			if (this.itemdata[i].submenu)
				document.write(" class='" + EW_MENUBAR_SUBMENU_CLASSNAME + "'");
			if (this.itemdata[i].url != "")
				document.write(" href='" + this.itemdata[i].url + "'");			
			document.write(">" +	this.itemdata[i].text + "</a>");
			if (this.itemdata[i].submenu)
				this.itemdata[i].submenu.render();
			document.write("</li>");
		}
		document.write("</ul>");
		if (this.isroot)
			this.menubar = new Spry.Widget.MenuBar(id, {imgRight: EW_MENUBAR_RIGHTHOVER_IMAGE});
	}
}

function ew_MenuItem(id, text) {
	this.id = String(id);
	this.text = text;
	this.url = "";
	this.submenu = null; // data type = ew_Menu

	this.addItem = function(item) { // add submenu item
		if (!this.submenu)
			this.submenu = new ew_Menu(this.id);
		this.submenu.addItem(item);
	}

	this.setUrl = function(url) {
		url = url.replace(/^\s*/, ''); // left trim
		if (url.substr(0, 7).toLowerCase() == "http://" ||
			url.substr(0, 8).toLowerCase() == "https://" ||
			url.substr(0, 6).toLowerCase() == "ftp://" ||
			url.substr(0, 7).toLowerCase() == "mailto:" ||
			url.substr(0, 11).toLowerCase() == "javascript:") {
			this.url = url;
		} else {
			this.url = EW_ROOT_PATH + url;
		}
	}
}
