webfxMenuDefaultWidth = 100;webfxMenuDefaultBorderWidth	= 2;webfxMenuDefaultPaddingWidth = 2;webfxMenuDefaultBorderTop = 1;webfxMenuDefaultPaddingTop = 1;webfxMenuItemDefaultHeight = 18;webfxMenuItemDefaultText = "Untitled";webfxMenuItemDefaultHref = "javascript:void(0)";webfxMenuSeparatorDefaultHeight	= 1;webfxMenuDefaultImagePath = "";webfxMenuDefaultEmptyText = "Empty";var op = /opera 5|opera\/5/i.test(navigator.userAgent);var ie = !op && /msie/i.test(navigator.userAgent);var mz = !op && /mozilla\/5/i.test(navigator.userAgent);var ieBox = ie && /win/.test(navigator.platform) && (document.compatMode == null || document.compatMode != "BackCompat");if (ie && document.getElementById == null) {	document.getElementById = function(sId) {		return document.all[sId];	};}var webFXMenuHandler = {	idCounter		:	0,	idPrefix		:	"webfx-menu-object-",	getId			:	function () { return this.idPrefix + this.idCounter++; },	overMenuItem	:	function (oItem) {		var jsItem = this.all[oItem.id];		if (jsItem.subMenu) {			jsItem.parentMenu.hideAllSubs();			jsItem.subMenu.show();		}		else			jsItem.parentMenu.hideAllSubs();	},	blurMenu		:	function (oMenuItem) {		window.setTimeout("webFXMenuHandler.all[\"" + oMenuItem.id + "\"].subMenu.hide();", 200);	},	all				:	{}};function WebFXMenu() {	this._menuItems	= [];	this._subMenus	= [];	this.id			= webFXMenuHandler.getId();	this.top		= 0;	this.left		= 0;	this.shown		= false;	webFXMenuHandler.all[this.id] = this;}WebFXMenu.prototype.width			= webfxMenuDefaultWidth;WebFXMenu.prototype.borderWidth		= webfxMenuDefaultBorderWidth;WebFXMenu.prototype.paddingWidth	= webfxMenuDefaultPaddingWidth;WebFXMenu.prototype.borderTop		= webfxMenuDefaultBorderTop;WebFXMenu.prototype.paddingTop		= webfxMenuDefaultPaddingTop;WebFXMenu.prototype.emptyText		= webfxMenuDefaultEmptyText;WebFXMenu.prototype.add = function (menuItem) {	this._menuItems[this._menuItems.length] = menuItem;	if (menuItem.subMenu)		this._subMenus[this._subMenus.length] = menuItem.subMenu;		menuItem.parentMenu = this;};WebFXMenu.prototype.show = function () {	var divElement = document.getElementById(this.id);	divElement.style.left = op ? this.left : this.left + "px";	divElement.style.top = op ? this.top : this.top + "px";	divElement.style.visibility = "visible";	this.shown = true;	if (this.parentMenu)		this.parentMenu.show();};WebFXMenu.prototype.hide = function () {	this.hideAllSubs();	var divElement = document.getElementById(this.id);	divElement.style.visibility = "hidden";	this.shown = false;};WebFXMenu.prototype.hideAllSubs = function () {	for (var i = 0; i < this._subMenus.length; i++) {		if (this._subMenus[i].shown)			this._subMenus[i].hide();	}
};
WebFXMenu.prototype.toString = function () {
	var top = this.top + this.borderTop + this.paddingTop;
	var str = "<div id='" + this.id + "' class='webfx-menu' style='" + 
	"width:" + (!ieBox  ?  this.width - this.borderWidth - this.paddingWidth  :  this.width) + "px;" +
	"left:" + this.left + "px;" +
	"top:" + this.top + "px;" +
	"'>";

	
	if (this._menuItems.length == 0) {
		str += "<span class='webfx-menu-empty'>" + this.emptyText + "</span>";
	}
	else {	
		for (var i = 0; i < this._menuItems.length; i++) {
			var mi = this._menuItems[i]
			str += mi;
			if (mi.subMenu)
				mi.subMenu.top = top - mi.subMenu.borderTop - mi.subMenu.paddingTop;
			top += mi.height;
		}

	}
	
	str += "</div>";
	for (var i = 0; i < this._subMenus.length; i++) {
		this._subMenus[i].left = this.left + this.width - this._subMenus[i].borderWidth/2;
		str += this._subMenus[i];
	}
	return str;
};
function WebFXMenuItem(sText, sHref, sToolTip, oSubMenu) {
	this.text = sText || webfxMenuItemDefaultText;
	this.href = (sHref == null || sHref == "") ? webfxMenuItemDefaultHref : sHref;
	this.subMenu = oSubMenu;
	if (oSubMenu)
		oSubMenu.parentMenuItem = this;
	this.toolTip = sToolTip;
	this.id = webFXMenuHandler.getId();
	webFXMenuHandler.all[this.id] = this;
};
WebFXMenuItem.prototype.height = webfxMenuItemDefaultHeight;
WebFXMenuItem.prototype.toString = function () {
	return	"<a" +
			" id='" + this.id + "'" +
			" href='" + this.href + "'" +
			(this.toolTip ? " title='" + this.toolTip + "'" : "") +
			" onmouseover='webFXMenuHandler.overMenuItem(this)'" +
			">" +
			(this.subMenu ? "<img class='arrow' src='" + webfxMenuDefaultImagePath + "arrow.right.gif'>" : "") +
			this.text + 
			"</a>";
};
function WebFXMenuSeparator() {
	this.id = webFXMenuHandler.getId();
	webFXMenuHandler.all[this.id] = this;
};
WebFXMenuSeparator.prototype.height = webfxMenuSeparatorDefaultHeight;
WebFXMenuSeparator.prototype.toString = function () {
	return "<div></div>"
};
function WebFXMenuBar() {
	this._parentConstructor = WebFXMenu;
	this._parentConstructor();
}
WebFXMenuBar.prototype = new WebFXMenu;
WebFXMenuBar.prototype.toString = function () {
	var str = "<div id='" + this.id + "' class='webfx-menu-bar'>";
	
	// loop through all menuButtons
	for (var i = 0; i < this._menuItems.length; i++)
		str += this._menuItems[i];
	
	str += "</div>";

	for (var i = 0; i < this._subMenus.length; i++)
		str += this._subMenus[i];
	
	return str;
};
function WebFXMenuButton(sText, sHref, sToolTip, oSubMenu) {
	this._parentConstructor = WebFXMenuItem;
	this._parentConstructor(sText, sHref, sToolTip, oSubMenu);
}
WebFXMenuButton.prototype = new WebFXMenuItem;
WebFXMenuButton.prototype.toString = function () {
	return	"<a" +
			" id='" + this.id + "'" +
			" href='" + this.href + "'" +
			(this.toolTip ? " title='" + this.toolTip + "'" : "") +
			(op ? (
				" onoperafocus='webFXMenuHandler.overMenuItem(this)'" +
				(this.subMenu ? " onoperablur='webFXMenuHandler.blurMenu(this)'" : "")
			) : (
				" onfocus='webFXMenuHandler.overMenuItem(this)'" +
				(this.subMenu ? " onblur='webFXMenuHandler.blurMenu(this)'" : "")
			)) +
			">" +
			this.text + 
			(this.subMenu ? " <img class='arrow' src='" + webfxMenuDefaultImagePath + "arrow.down.gif' align='absmiddle'>" : "") +				
			"</a>";
};
if (op) {
	document.onmousedown = function(e) {
		var a = e.target;
		while (a != null && a.tagName != "A") a = a.parentNode;

		if (document._oldFocus && document._oldFocus != a) {
			if (typeof document._oldFocus.onoperablur == "string") {
				var f = new Function ("event", document._oldFocus.onoperablur);
				document._oldFocus.onFakeBlur = f;
			}
			if (typeof document._oldFocus.onFakeBlur == "function") 
				document._oldFocus.onFakeBlur(e);
		}

		if (a && a != document._oldFocus) {
			document._oldFocus = a;
			if (typeof a.onoperafocus == "string") {
				var f = new Function ("event", a.onoperafocus);
				a.onFakeFocus = f;
			}
			if (typeof a.onFakeFocus == "function") 
				a.onFakeFocus(e);
		}
		else
			document._oldFocus = null;
	};
}
function showMenu(oMenu, oElement) {
   var left = 1;
   var top = 1;
   var tmp = oElement;
   while (tmp != null) {
      left += tmp.offsetLeft;
      top += tmp.offsetTop;
      tmp = tmp.offsetParent;
   }

   oMenu.left = left;
   oMenu.top = top + oElement.offsetHeight;
   oMenu.show();
}
var mySubMenu = new WebFXMenu;
mySubMenu.add(new WebFXMenuItem("Menu Item 3", "http://www.domain.com", "Tool tip to show"));
mySubMenu.add(new WebFXMenuItem("Menu Item 3", "http://www.domain.com", "Tool tip to show"));
mySubMenu.add(new WebFXMenuItem("Menu Item 3", "http://www.domain.com", "Tool tip to show"));
var a = new WebFXMenu;
a.left  = 53;
a.top   = 102;
a.width = 100;
a.add(new WebFXMenuItem("Home", "www.imprim.ro", "Pagina de start"));
a.add(new WebFXMenuItem("Forum", "myfx.250x.com", "Discutii generale despre web design"));
a.add(new WebFXMenuSeparator());
a.add(new WebFXMenuItem("Photoshop", null, "Tutoriale, plug-in, brush, actions"));
a.add(new WebFXMenuItem("Bryce", null, "Tutoriale, materiale, obiecte,sky pressents"));
a.add(new WebFXMenuItem("3D Studion", null, "Tutoriale, texturi, obiecte, plug-in"));
a.add(new WebFXMenuItem("Flash", null, "Tutoriale, fla-uri, programe generatoare"));
a.add(new WebFXMenuItem("Java", null, "Java scripts and applets"));
a.add(new WebFXMenuItem("Font", null, "Sute de font-uri"));
a.add(new WebFXMenuItem("Clipart", null, "Mii de poze si desene vectoriale"));
a.add(new WebFXMenuItem("Sound", null, "Loops'n'sound effectes"));
var b = new WebFXMenu;
b.left  = 15;
b.top   = 185;
b.width = 180;
b.add(new WebFXMenuItem("Noutati", "http://myfl.250x.com/index.html", "Noutati despre partea de flash a sitului"));
b.add(new WebFXMenuItem("Tutoriale", "tutoriale1.htm", "Daca vrei sa intelegi cum am facut altii"));
b.add(new WebFXMenuItem("Fla-uri", "fla.htm", "Codurile sursa si fisirele necompilate"));
b.add(new WebFXMenuItem("Programe generatoare", "programe.htm", "Mici sau mari softuri care exporta swf"));
b.add(new WebFXMenuItem("Tutorialele vizitatorilor", "tutvizitatori.htm", "Ei au ceva de impartit cu voi"));
b.add(new WebFXMenuItem("Fla-urile vizitatorilor", "flavizitatori.htm", "Vor sa se dea mari"));
document.write(b);
document.write(a);
document.write(mySubMenu);