//<script>/* * This script was created by Erik Arvidsson (erik@eae.net) * for WebFX (http://webfx.eae.net) * Copyright 2001 *  * For usage see license at http://webfx.eae.net/license.html	 * * Created:		2001-01-12 * Updates:		2001-11-20	Added hover mode support and removed Opera focus hacks *				2001-12-20	Added auto positioning and some properties to support this *				2002-08-13	toString used ' for attributes. Changed to " to allow in args */ // check browsersvar ua = navigator.userAgent;var opera = /opera [56789]|opera\/[56789]/i.test(ua);var ie = !opera && /MSIE/.test(ua);var ie50 = ie && /MSIE 5\.[01234]/.test(ua);var ie6 = ie && /MSIE [6789]/.test(ua);var ieBox = ie && (document.compatMode == null || document.compatMode != "CSS1Compat");var moz = !opera && /gecko/i.test(ua);var nn6 = !opera && /netscape.*6\./i.test(ua);// define the default valueswebfxMenuDefaultWidth			= 100;webfxMenuDefaultBorderLeft		= 1;webfxMenuDefaultBorderRight		= 1;webfxMenuDefaultBorderTop		= 1;webfxMenuDefaultBorderBottom	= 1;webfxMenuDefaultPaddingLeft		= 1;webfxMenuDefaultPaddingRight	= 1;webfxMenuDefaultPaddingTop		= 1;webfxMenuDefaultPaddingBottom	= 1;webfxMenuDefaultShadowLeft		= 0;webfxMenuDefaultShadowRight		= ie && !ie50 && /win32/i.test(navigator.platform) ? 4 :0;webfxMenuDefaultShadowTop		= 0;webfxMenuDefaultShadowBottom	= ie && !ie50 && /win32/i.test(navigator.platform) ? 4 : 0;webfxMenuItemDefaultHeight		= 18;webfxMenuItemDefaultText		= "Untitled";webfxMenuItemDefaultHref		= "javascript:void(0)";webfxMenuSeparatorDefaultHeight	= 6;webfxMenuDefaultEmptyText		= "Empty";webfxMenuDefaultUseAutoPosition	= nn6 ? false : true;// other global constantswebfxMenuImagePath				= "";webfxMenuUseHover				= true//opera ? true : false;webfxMenuHideTime				= 300;webfxMenuShowTime				= 300;var webFXMenuHandler = {	idCounter		:	0,	idPrefix		:	"webfx-menu-object-",	all				:	{},	getId			:	function () { return this.idPrefix + this.idCounter++; },	overMenuItem	:	function (oItem) {		if (this.showTimeout != null)			window.clearTimeout(this.showTimeout);		if (this.hideTimeout != null)			window.clearTimeout(this.hideTimeout);		var jsItem = this.all[oItem.id];		if (webfxMenuShowTime <= 0)             this._over(jsItem);        else {            //this.showTimeout = window.setTimeout(function () { webFXMenuHandler._over(jsItem) ; }, webfxMenuShowTime);            // I hate IE5.0 because the piece of shit crashes when using setTimeout with a function object            if (jsItem.subMenu) {              for (key in webFXMenuHandler.all) {                var jsItem1 = this.all[key];                if (jsItem != jsItem1)                  this.blurMenu(jsItem1)              }            }            this.showTimeout = window.setTimeout("webFXMenuHandler._over(webFXMenuHandler.all['" + jsItem.id + "'])",webfxMenuShowTime);        }	},	outMenuItem	:	function (oItem) {		if (this.showTimeout != null)			window.clearTimeout(this.showTimeout);		if (this.hideTimeout != null)			window.clearTimeout(this.hideTimeout);		var jsItem = this.all[oItem.id];		if (webfxMenuHideTime <= 0)			this._out(jsItem);		else			//this.hideTimeout = window.setTimeout(function () { webFXMenuHandler._out(jsItem) ; }, webfxMenuHideTime);			this.hideTimeout = window.setTimeout("webFXMenuHandler._out(webFXMenuHandler.all['" + jsItem.id + "'])", webfxMenuHideTime);	},	blurMenu		:	function (oMenuItem) {        if (webFXMenuHandler.all[oMenuItem.id].subMenu)		window.setTimeout("webFXMenuHandler.all[\"" + oMenuItem.id + "\"].subMenu.hide();", webfxMenuHideTime);	},	_over	:	function (jsItem) {		if (jsItem.subMenu) {			jsItem.parentMenu.hideAllSubs();			jsItem.subMenu.show();		}		else			jsItem.parentMenu.hideAllSubs();	},	_out	:	function (jsItem) {		// find top most menu		var root = jsItem;		var m;		if (root instanceof WebFXMenuButton)			m = root.subMenu;		else {			m = jsItem.parentMenu;			while (m.parentMenu != null && !(m.parentMenu instanceof WebFXMenuBar))				m = m.parentMenu;		}		if (m != null)				m.hide();		},	hideMenu	:	function (menu) {		if (this.showTimeout != null)			window.clearTimeout(this.showTimeout);		if (this.hideTimeout != null)			window.clearTimeout(this.hideTimeout);		this.hideTimeout = window.setTimeout("webFXMenuHandler.all['" + menu.id + "'].hide()", webfxMenuHideTime);	},	showMenu	:	function (menu, src, dir) {		if (this.showTimeout != null)			window.clearTimeout(this.showTimeout);		if (this.hideTimeout != null)			window.clearTimeout(this.hideTimeout);		if (arguments.length < 3)			dir = "vertical";   	    menu.show(src, dir);	}};function WebFXMenu() {	this._menuItems	= [];	this._subMenus	= [];	this.id			= webFXMenuHandler.getId();	this.top		= 0;	this.left		= 0;	this.shown		= false;	this.parentMenu	= null;	webFXMenuHandler.all[this.id] = this;}WebFXMenu.prototype.width			= webfxMenuDefaultWidth;WebFXMenu.prototype.emptyText		= webfxMenuDefaultEmptyText;WebFXMenu.prototype.useAutoPosition	= webfxMenuDefaultUseAutoPosition;WebFXMenu.prototype.borderLeft		= webfxMenuDefaultBorderLeft;WebFXMenu.prototype.borderRight		= webfxMenuDefaultBorderRight;WebFXMenu.prototype.borderTop		= webfxMenuDefaultBorderTop;WebFXMenu.prototype.borderBottom	= webfxMenuDefaultBorderBottom;WebFXMenu.prototype.paddingLeft		= webfxMenuDefaultPaddingLeft;WebFXMenu.prototype.paddingRight	= webfxMenuDefaultPaddingRight;WebFXMenu.prototype.paddingTop		= webfxMenuDefaultPaddingTop;WebFXMenu.prototype.paddingBottom	= webfxMenuDefaultPaddingBottom;WebFXMenu.prototype.shadowLeft		= webfxMenuDefaultShadowLeft;WebFXMenu.prototype.shadowRight		= webfxMenuDefaultShadowRight;WebFXMenu.prototype.shadowTop		= webfxMenuDefaultShadowTop;WebFXMenu.prototype.shadowBottom	= webfxMenuDefaultShadowBottom;WebFXMenu.prototype.add = function (menuItem) {	this._menuItems[this._menuItems.length] = menuItem;	if (menuItem.subMenu) {		this._subMenus[this._subMenus.length] = menuItem.subMenu;		menuItem.subMenu.parentMenu = this;	}		menuItem.parentMenu = this;};WebFXMenu.prototype.show = function (relObj, sDir) {	if (this.useAutoPosition)		this.position(relObj, sDir);		var divElement = document.getElementById(this.id);	divElement.style.left = opera ? this.left : this.left + "px";	divElement.style.top = opera ? 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);    if (divElement != null)	  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 style='text-align:left;' id='" + this.id + "' class='webfx-menu' style='" + 	"width:" + (!ieBox  ?		this.width - this.borderLeft - this.paddingLeft - this.borderRight - this.paddingRight  : 		this.width) + "px;" +	(this.useAutoPosition ?		"left:" + this.left + "px;" + "top:" + this.top + "px;" :		"") +	(ie50 ? "filter: none;" : "") +	"'>";		if (this._menuItems.length == 0) {		str +=	"<span class='webfx-menu-empty'>" + this.emptyText + "</span>";	}	else {			// loop through all menuItems		for (var i = 0; i < this._menuItems.length; i++) {			var mi = this._menuItems[i];			str += mi;			if (!this.useAutoPosition) {				if (mi.subMenu && !mi.subMenu.useAutoPosition)					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].borderLeft;		str += this._subMenus[i];	}		return str;};// WebFXMenu.prototype.position defined later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	"<nobr><a" +			" id='" + this.id + "'" +			" href=\"" + this.href + "\"" +			(this.toolTip ? " title=\"" + this.toolTip + "\"" : "") +			" onmouseover='webFXMenuHandler.overMenuItem(this)'" +			(webfxMenuUseHover ? " onmouseout='webFXMenuHandler.outMenuItem(this)'" : "") +			(this.subMenu ? " unselectable='on' tabindex='-1'" : "") +			"><!--<img alt='-' src='/images/silk-arrow-light.jpg' class='middle'/>-->&nbsp;" +			(this.subMenu ? "<!--<img class='arrow' src=\"" + webfxMenuImagePath + "arrow.right.png\">-->" : "") +			this.text + 			"</a></nobr>";};/* Menu Item for AJAX-links */function WebFXMenuLinkItem(sLink) {	this.link = sLink;	this.id = webFXMenuHandler.getId();	webFXMenuHandler.all[this.id] = this;};WebFXMenuLinkItem.prototype.height = webfxMenuItemDefaultHeight;WebFXMenuLinkItem.prototype.toString = function () {	return	"<nobr><span" +			" id='" + this.id + "'" +			" onmouseover='webFXMenuHandler.overMenuItem(this)'" +			(webfxMenuUseHover ? " onmouseout='webFXMenuHandler.outMenuItem(this)'" : "") +			"'>" +			this.link +			"</span></nobr>";};function WebFXMenuSeparator() {	this.id = webFXMenuHandler.getId();	webFXMenuHandler.all[this.id] = this;};WebFXMenuSeparator.prototype.height = webfxMenuSeparatorDefaultHeight;WebFXMenuSeparator.prototype.toString = function () {	return	"<div" +			" id='" + this.id + "'" +			(webfxMenuUseHover ? 			" onmouseover='webFXMenuHandler.overMenuItem(this)'" +			" onmouseout='webFXMenuHandler.outMenuItem(this)'"			:			"") +			"></div>"};function WebFXMenuBar() {	this._parentConstructor = WebFXMenu;	this._parentConstructor();}WebFXMenuBar.prototype = new WebFXMenu;WebFXMenuBar.prototype.toString = function () {	var str = "<div style='border:0px solid red;' id='" + this.id + "' class='webfx-menu-bar'><nobr>";		// loop through all menuButtons	for (var i = 0; i < this._menuItems.length; i++)		str += this._menuItems[i];		str += "</nobr></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 + "'" : "") +			(webfxMenuUseHover ?				(" onmouseover='webFXMenuHandler.overMenuItem(this)'" +				" onmouseout='webFXMenuHandler.outMenuItem(this)'") :				(					" onfocus='webFXMenuHandler.overMenuItem(this)'" +					(this.subMenu ?						" onblur='webFXMenuHandler.blurMenu(this)'" :						""					)				)) +			">" +			this.text + 			(this.subMenu ? "" : "") +				"</a>";};/* Position functions */function getInnerLeft(el) {	if (el == null) return 0;	if (ieBox && el == document.body || !ieBox && el == document.documentElement) return 0;	return getLeft(el) + getBorderLeft(el);}function getLeft(el) {	if (el == null) return 0;	return el.offsetLeft + getInnerLeft(el.offsetParent);}function getInnerTop(el) {	if (el == null) return 0;	if (ieBox && el == document.body || !ieBox && el == document.documentElement) return 0;	return getTop(el) + getBorderTop(el);}function getTop(el) {	if (el == null) return 0;	return el.offsetTop + getInnerTop(el.offsetParent);}function getBorderLeft(el) {	return ie ?		el.clientLeft :		parseInt(window.getComputedStyle(el, null).getPropertyValue("border-left-width"));}function getBorderTop(el) {	return ie ?		el.clientTop :		parseInt(window.getComputedStyle(el, null).getPropertyValue("border-top-width"));}function opera_getLeft(el) {	if (el == null) return 0;	return el.offsetLeft + opera_getLeft(el.offsetParent);}function opera_getTop(el) {	if (el == null) return 0;	return el.offsetTop + opera_getTop(el.offsetParent);}function getOuterRect(el) {	return {		left:	(opera ? opera_getLeft(el) : getLeft(el)),		top:	(opera ? opera_getTop(el) : getTop(el)),		width:	el.offsetWidth,		height:	el.offsetHeight	};}// mozilla bug! scrollbars not included in innerWidth/heightfunction getDocumentRect(el) {	return {		left:	0,		top:	0,		width:	(ie ?					(ieBox ? document.body.clientWidth : document.documentElement.clientWidth) :					window.innerWidth				),		height:	(ie ?					(ieBox ? document.body.clientHeight : document.documentElement.clientHeight) :					window.innerHeight				)	};}function getScrollPos(el) {	return {		left:	(ie ?					(ieBox ? document.body.scrollLeft : document.documentElement.scrollLeft) :					window.pageXOffset				),		top:	(ie ?					(ieBox ? document.body.scrollTop : document.documentElement.scrollTop) :					window.pageYOffset				)	};}/* end position functions */WebFXMenu.prototype.position = function (relEl, sDir) {	var dir = sDir;	// find parent item rectangle, piRect	var piRect;	if (!relEl) {		var pi = this.parentMenuItem;		if (!this.parentMenuItem)			return;				relEl = document.getElementById(pi.id);		if (dir == null)			dir = pi instanceof WebFXMenuButton ? "vertical" : "horizontal";				piRect = getOuterRect(relEl);	}	else if (relEl.left != null && relEl.top != null && relEl.width != null && relEl.height != null) {	// got a rect		piRect = relEl;	}	else		piRect = getOuterRect(relEl);		var menuEl = document.getElementById(this.id);	var menuRect = getOuterRect(menuEl);	var docRect = getDocumentRect();	var scrollPos = getScrollPos();	var pMenu = this.parentMenu;		if (dir == "vertical") {		if (piRect.left + menuRect.width - scrollPos.left <= docRect.width)			this.left = piRect.left;		else if (docRect.width >= menuRect.width)			this.left = docRect.width + scrollPos.left - menuRect.width;		else			this.left = scrollPos.left;					if (piRect.top + piRect.height + menuRect.height <= docRect.height + scrollPos.top)			this.top = piRect.top + piRect.height;		else if (piRect.top - menuRect.height >= scrollPos.top)			this.top = piRect.top - menuRect.height;		else if (docRect.height >= menuRect.height)			this.top = docRect.height + scrollPos.top - menuRect.height;		else			this.top = scrollPos.top;	}	else {		if (piRect.top + menuRect.height - this.borderTop - this.paddingTop <= docRect.height + scrollPos.top)			this.top = piRect.top - this.borderTop - this.paddingTop;		else if (piRect.top + piRect.height - menuRect.height + this.borderTop + this.paddingTop >= 0)			this.top = piRect.top + piRect.height - menuRect.height + this.borderBottom + this.paddingBottom + this.shadowBottom;		else if (docRect.height >= menuRect.height)			this.top = docRect.height + scrollPos.top - menuRect.height;		else			this.top = scrollPos.top;		var pMenuPaddingLeft = pMenu ? pMenu.paddingLeft : 0;		var pMenuBorderLeft = pMenu ? pMenu.borderLeft : 0;		var pMenuPaddingRight = pMenu ? pMenu.paddingRight : 0;		var pMenuBorderRight = pMenu ? pMenu.borderRight : 0;				if (piRect.left + piRect.width + menuRect.width + pMenuPaddingRight +			pMenuBorderRight - this.borderLeft + this.shadowRight <= docRect.width + scrollPos.left)			this.left = piRect.left + piRect.width + pMenuPaddingRight + pMenuBorderRight - this.borderLeft;		else if (piRect.left - menuRect.width - pMenuPaddingLeft - pMenuBorderLeft + this.borderRight + this.shadowRight >= 0)			this.left = piRect.left - menuRect.width - pMenuPaddingLeft - pMenuBorderLeft + this.borderRight + this.shadowRight;		else if (docRect.width >= menuRect.width)			this.left = docRect.width  + scrollPos.left - menuRect.width;		else			this.left = scrollPos.left;	}};// Slider Functionsfunction setMenuButtonName(name, id){  var defaultBarClass = "webfx-menu-bar";  var id   = id || "sliderHeader";  var name = name || "Menu";  var exprCSS = "#"+ id +" ."+ defaultBarClass +" a";  $$(exprCSS)[0].innerHTML = name;}function getMenuButtonId(element){  return element.parentNode.parentNode.parentNode.parentNode.id;}