|  |  | <PUBLIC:COMPONENT
 | 
						
						
						
							|  |  |     lightWeight = true
 | 
						
						
						
							|  |  | >
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <PUBLIC:DEFAULTS
 | 
						
						
						
							|  |  |     contentEditable = false
 | 
						
						
						
							|  |  |     tabStop = true
 | 
						
						
						
							|  |  | />
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <PUBLIC:attach event="ondocumentready" onevent="initElement()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="onmouseover" onevent="elementOnMouseOver()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="onmouseout" onevent="elementOnMouseOut()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="onmousedown" onevent="elementOnMouseDown()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="onmouseup" onevent="elementOnMouseUp()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="onpropertychange" onevent="elementPropertyChange()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="onselectstart" onevent="elementOnSelect()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="oncontextmenu" onevent="elementOnContextMenu()" />
 | 
						
						
						
							|  |  | <PUBLIC:attach event="ondetach" onevent="cleanupElement()" />
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <PUBLIC:property name="enabled" value=true />
 | 
						
						
						
							|  |  | <PUBLIC:property name="menu" value="" />
 | 
						
						
						
							|  |  | <PUBLIC:property name="menuState" value=false />
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <script language="jscript">
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | // ----------------------------------------------------
 | 
						
						
						
							|  |  | // 2k3Widgets: 2k3MenuButton
 | 
						
						
						
							|  |  | // 
 | 
						
						
						
							|  |  | // Copyright ©2002-2004 Stedy Software and Systems     
 | 
						
						
						
							|  |  | // Please see http://www.stedy.com for terms of use.   
 | 
						
						
						
							|  |  | // ----------------------------------------------------
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | var onClickHolder = null ;
 | 
						
						
						
							|  |  | var vbLeftButton = 1 ;
 | 
						
						
						
							|  |  | var settingValueInternally = false ;
 | 
						
						
						
							|  |  | var menuShadowArray = new Array(null, null, null, null) ;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function initElement() {
 | 
						
						
						
							|  |  | 	settingValueInternally = true ;
 | 
						
						
						
							|  |  | 	element.enabled = makeBooleanOfAttribute("enabled") ;
 | 
						
						
						
							|  |  | 	element.menuState = makeBooleanOfAttribute("menuState") ;
 | 
						
						
						
							|  |  | 	if (!element.enabled) {
 | 
						
						
						
							|  |  | 		showDisabled(element) ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	settingValueInternally = false ;
 | 
						
						
						
							|  |  | 	for (var i = 3; i >= 0; i--) {
 | 
						
						
						
							|  |  | 		menuShadowArray[i] = window.document.createElement("SPAN") ;
 | 
						
						
						
							|  |  | 		menuShadowArray[i].className = "2k3ShadowElement" ;
 | 
						
						
						
							|  |  | 		element.parentElement.insertAdjacentElement("afterBegin", menuShadowArray[i]) ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function cleanupElement() {
 | 
						
						
						
							|  |  | 	for (var i = 0; i <= 3; i++) {
 | 
						
						
						
							|  |  | 		if (menuShadowArray[i] != null) {
 | 
						
						
						
							|  |  | 			menuShadowArray[i].style.visibility = "hidden" ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 		menuShadowArray[i].removeNode(true) ;
 | 
						
						
						
							|  |  | 		menuShadowArray[i] = null ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementOnMouseOver() {
 | 
						
						
						
							|  |  | 	if (element.enabled) {
 | 
						
						
						
							|  |  | 		var fromElement = window.event.fromElement ;
 | 
						
						
						
							|  |  | 		if (fromElement != null) {
 | 
						
						
						
							|  |  | 			if (getRealItem(fromElement) == element) { return ; }
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 		if (element.parentElement.parentElement.parentElement.parentElement.activeChild == null) {
 | 
						
						
						
							|  |  | 			if (!element.menuState) {
 | 
						
						
						
							|  |  | 				showOver(getRealItem(window.event.srcElement)) ;
 | 
						
						
						
							|  |  | 				element.parentElement.parentElement.parentElement.parentElement.activeChild = element ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementOnMouseOut() {
 | 
						
						
						
							|  |  | 	if (element.enabled) {
 | 
						
						
						
							|  |  | 		var toElement = window.event.toElement ;
 | 
						
						
						
							|  |  | 		if (toElement != null) {
 | 
						
						
						
							|  |  | 			if (getRealItem(toElement) == element) { return ; }
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 		if (element.parentElement.parentElement.parentElement.parentElement.activeChild == null
 | 
						
						
						
							|  |  | 		|| element.parentElement.parentElement.parentElement.parentElement.activeChild == element) {
 | 
						
						
						
							|  |  | 			if (!element.menuState) {
 | 
						
						
						
							|  |  | 				showNormal(getRealItem(window.event.srcElement)) ;
 | 
						
						
						
							|  |  | 				element.parentElement.parentElement.parentElement.parentElement.activeChild = null ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementOnMouseDown() {
 | 
						
						
						
							|  |  | 	var el = getRealItem(window.event.srcElement) ;
 | 
						
						
						
							|  |  | 	if (element.parentElement.parentElement.parentElement.parentElement.activeChild == null
 | 
						
						
						
							|  |  | 		|| element.parentElement.parentElement.parentElement.parentElement.activeChild == element) {
 | 
						
						
						
							|  |  | 		if ((window.event.button == vbLeftButton) && element.enabled) {
 | 
						
						
						
							|  |  | 			if (el.className.indexOf("2k3MenuButton") == -1) {
 | 
						
						
						
							|  |  | 				return ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 			if (!element.menuState) {
 | 
						
						
						
							|  |  | 				showActive(el) ;
 | 
						
						
						
							|  |  | 				showMenu() ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementOnMouseUp() {
 | 
						
						
						
							|  |  | 	var el = getRealItem(window.event.srcElement) ;
 | 
						
						
						
							|  |  | 	if (element.parentElement.parentElement.parentElement.parentElement.activeChild == null
 | 
						
						
						
							|  |  | 		|| element.parentElement.parentElement.parentElement.parentElement.activeChild == element) {
 | 
						
						
						
							|  |  | 		if ((window.event.button == vbLeftButton) && element.enabled) {
 | 
						
						
						
							|  |  | 			if (el.className.indexOf("2k3MenuButton") == -1) {
 | 
						
						
						
							|  |  | 				return ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 			if (element.menuState) {
 | 
						
						
						
							|  |  | 				hideMenu() ;
 | 
						
						
						
							|  |  | 				showOver(element) ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 			else {
 | 
						
						
						
							|  |  | 				if (element.className == "2k3MenuButtonActive") {
 | 
						
						
						
							|  |  | 					element.menuState = true ;
 | 
						
						
						
							|  |  | 				}
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementPropertyChange() {
 | 
						
						
						
							|  |  | 	if (window.event.propertyName == "enabled") {
 | 
						
						
						
							|  |  | 		if (element.enabled) {
 | 
						
						
						
							|  |  | 			showEnabled(element) ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 		else {
 | 
						
						
						
							|  |  | 			showDisabled(element) ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementOnSelect() {
 | 
						
						
						
							|  |  | 	with (window.event) {
 | 
						
						
						
							|  |  | 		cancelBubble = true ;
 | 
						
						
						
							|  |  | 		returnValue = false ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	return false ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function elementOnContextMenu() {
 | 
						
						
						
							|  |  | 	with (window.event) {
 | 
						
						
						
							|  |  | 		cancelBubble = true ;
 | 
						
						
						
							|  |  | 		returnValue = false ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	return false ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function showNormal(el) {
 | 
						
						
						
							|  |  | 	for (var i = 0; i <= 3; i++) {
 | 
						
						
						
							|  |  | 		if (menuShadowArray[i] != null) {
 | 
						
						
						
							|  |  | 			menuShadowArray[i].style.visibility = "hidden" ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	with (el) {
 | 
						
						
						
							|  |  | 		className = "2k3MenuButton" ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function showOver(el) {
 | 
						
						
						
							|  |  | 	for (var i = 0; i <= 3; i++) {
 | 
						
						
						
							|  |  | 		if (menuShadowArray[i] != null) {
 | 
						
						
						
							|  |  | 			menuShadowArray[i].style.visibility = "hidden" ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	with (el) {
 | 
						
						
						
							|  |  | 		className = "2k3MenuButtonOver" ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function showActive(el) {
 | 
						
						
						
							|  |  | 	for (var i = 3; i >= 0; i--) {
 | 
						
						
						
							|  |  | 		with (menuShadowArray[i].style) {
 | 
						
						
						
							|  |  | 			left = getRealLeft(el) + el.offsetWidth - 1 ;
 | 
						
						
						
							|  |  | 			top = (4 + i) ;
 | 
						
						
						
							|  |  | 			width =  (i + 3) ;
 | 
						
						
						
							|  |  | 			height = el.offsetHeight - (i * 2) ;
 | 
						
						
						
							|  |  | 			zIndex = el.style.zIndex ;
 | 
						
						
						
							|  |  | 			overflow = "hidden" ;
 | 
						
						
						
							|  |  | 			visibility = "visible" ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	with (el) {
 | 
						
						
						
							|  |  | 		className = "2k3MenuButtonActive" ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function showDisabled(el) {
 | 
						
						
						
							|  |  | 	with (el) {
 | 
						
						
						
							|  |  | 		var strClassName = className ;
 | 
						
						
						
							|  |  | 		if (strClassName.substring(0, 13) == "2k3MenuButton" && strClassName.indexOf("Disabled") == -1) {
 | 
						
						
						
							|  |  | 			className = "2k3MenuButtonDisabled" ;
 | 
						
						
						
							|  |  | 			if (onclick != null) {
 | 
						
						
						
							|  |  | 				onClickHolder = onclick ;
 | 
						
						
						
							|  |  | 				onclick = null ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function showEnabled(el) {
 | 
						
						
						
							|  |  | 	with (el) {
 | 
						
						
						
							|  |  | 		if (className == "2k3MenuButtonDisabled") {
 | 
						
						
						
							|  |  | 			className = "2k3MenuButton" ;
 | 
						
						
						
							|  |  | 			if (onClickHolder != null) {
 | 
						
						
						
							|  |  | 				onclick = onClickHolder ;
 | 
						
						
						
							|  |  | 				onClickHolder = null ;
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function showMenu() {
 | 
						
						
						
							|  |  | 	with (element) {
 | 
						
						
						
							|  |  | 		var x = offsetLeft + getRealLeft(element) ;
 | 
						
						
						
							|  |  | 		var y = offsetTop + offsetHeight + getRealTop(element) - 4 ;
 | 
						
						
						
							|  |  | 		var w = offsetWidth - 2 ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	with (window.document) {
 | 
						
						
						
							|  |  | 		attachEvent("onclick", hideMenuEx) ;
 | 
						
						
						
							|  |  | 		getElementById(element.menu).showMenu(x, y, w) ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function hideMenu() {
 | 
						
						
						
							|  |  | 	var el = window.event.srcElement ;
 | 
						
						
						
							|  |  | 	var elParent = el.parentElement ;
 | 
						
						
						
							|  |  | 	if (elParent != null) {
 | 
						
						
						
							|  |  | 		switch (elParent.className) {
 | 
						
						
						
							|  |  | 			case "2k3MenuImageShadow":
 | 
						
						
						
							|  |  | 				elParent = elParent.parentElement ;
 | 
						
						
						
							|  |  | 				break ;
 | 
						
						
						
							|  |  | 			case "2k3MenuImage":
 | 
						
						
						
							|  |  | 				elParent = elParent.parentElement ;
 | 
						
						
						
							|  |  | 				break ;
 | 
						
						
						
							|  |  | 			case "2k3MenuItemOver":
 | 
						
						
						
							|  |  | 				el = elParent.parentElement.parentElement ;
 | 
						
						
						
							|  |  | 				if (el.subMenuState) {
 | 
						
						
						
							|  |  | 					elParent = null ;
 | 
						
						
						
							|  |  | 					el = null ;
 | 
						
						
						
							|  |  | 					return ;
 | 
						
						
						
							|  |  | 				}
 | 
						
						
						
							|  |  | 				break ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	with (window.document) {
 | 
						
						
						
							|  |  | 		detachEvent("onclick", hideMenuEx) ;
 | 
						
						
						
							|  |  | 		getElementById(element.menu).hideMenu() ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	showNormal(element) ;
 | 
						
						
						
							|  |  | 	element.menuState = false ;
 | 
						
						
						
							|  |  | 	element.parentElement.parentElement.parentElement.parentElement.activeChild = null ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function hideMenuEx() {
 | 
						
						
						
							|  |  | 	var el = window.event.srcElement ;
 | 
						
						
						
							|  |  | 	if (el.tagName.toLowerCase() == "img") {
 | 
						
						
						
							|  |  | 		el = el.parentElement ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	if (el.className != "2k3MenuButtonActive" && el.className != "2k3MenuButtonCaption") {
 | 
						
						
						
							|  |  | 		hideMenu() ;
 | 
						
						
						
							|  |  | 		with (window.event) {
 | 
						
						
						
							|  |  | 			cancelBubble = true ;
 | 
						
						
						
							|  |  | 			returnValue = false ;
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function getRealTop(el) {
 | 
						
						
						
							|  |  | 	var t = 0 ;
 | 
						
						
						
							|  |  | 	var tElement = el ;
 | 
						
						
						
							|  |  | 	while (tElement != null) {
 | 
						
						
						
							|  |  | 		t += tElement.offsetTop ;
 | 
						
						
						
							|  |  | 		tElement = tElement.offsetParent ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	return t ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function getRealLeft(el) {
 | 
						
						
						
							|  |  | 	var l = 0 ;
 | 
						
						
						
							|  |  | 	var tElement = el ;
 | 
						
						
						
							|  |  | 	while (tElement != null) {
 | 
						
						
						
							|  |  | 		l += tElement.offsetLeft ;
 | 
						
						
						
							|  |  | 		tElement = tElement.offsetParent ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	return l ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function getRealItem(el) {
 | 
						
						
						
							|  |  | 	var tmpElement = el ;
 | 
						
						
						
							|  |  | 	if (tmpElement == null) { return tmpElement ; }
 | 
						
						
						
							|  |  | 	if (tmpElement.tagName.toLowerCase() == "img") {
 | 
						
						
						
							|  |  | 		tmpElement = tmpElement.parentElement ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	if (tmpElement.className == "2k3MenuButtonCaption") {
 | 
						
						
						
							|  |  | 		tmpElement = tmpElement.parentElement ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	return tmpElement ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function makeBooleanOfAttribute(attName) {
 | 
						
						
						
							|  |  | 	a = element.getAttribute(attName) ;
 | 
						
						
						
							|  |  | 	if (typeof(a) == "boolean") {
 | 
						
						
						
							|  |  | 		return a ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	else if (a == null) {
 | 
						
						
						
							|  |  | 		a = false ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	else if (typeof(a) == "string") {
 | 
						
						
						
							|  |  | 		a = a.toLowerCase() ;
 | 
						
						
						
							|  |  | 		a = (a == "true" || a == "1" || a == "yes") ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	else {
 | 
						
						
						
							|  |  | 		a = new Boolean(a) ;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 	return a ;
 | 
						
						
						
							|  |  | }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </script>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </PUBLIC:COMPONENT> |