/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	ADxMenu.js - AD xMenu v1.62 - DHTML menu in the spirit of XHTML/CSS/DOM
	- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	Copyright (c) Aleksandar Vacic, aleck@sezampro.yu, www.aplus.co.yu
	## This work is licensed under the Creative Commons Attribution-ShareAlike License.
	## To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA
	- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	Credits (here and there):
	- Dave@gazingus.org : http://gazingus.org/dhtml/?id=109
	- Dan Webb and Patrick Griffits : http://www.alistapart.com/articles/dropdowns/
	- Toni Anzlovar : http://pig.merjasec.com/toni/css/left/
	- Peter Nederlof : http://www.xs4all.nl/~peterned/beehive2/list.html
	- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	Uses X-DOM and WCH libraries
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/

//	check if this is IE
var ADXM_ua = navigator.userAgent.toLowerCase(); 
ADXM_bIsIE = ( (ADXM_ua.indexOf('msie') != -1) && (ADXM_ua.indexOf('opera') == -1) && (ADXM_ua.indexOf('webtv') == -1) );

if (ADXM_bIsIE)
	document.write('<script language="JavaScript" src="code/ADxMenu_IE.js" type="text/javascript"></script>');
else
	document.write('<script language="JavaScript" src="code/ADxMenu_css2.js" type="text/javascript"></script>');

var ADXM_nIndex = 0;
var ADXM_oMainMenu = new Array();

/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	call this one in the window.onload. sMenuID is the ID of main UL element. sMenuLayout can be "H" or "V"
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
function ADXM_InitializeMenu(sMenuID, sMenuLayout) {
	if (window.opera) return null;
	//	deny all non-DOM browsers
	if (!document.getElementById && !document.documentElement) return null;

	ADXM_oMainMenu[ADXM_nIndex] = xGetElementById(sMenuID);
	if (ADXM_oMainMenu[ADXM_nIndex]) {
		//	if layout is not passed, assume menu is horizontal
		if ( !xDef(sMenuLayout) || "H|V".indexOf(sMenuLayout) == -1 )
			sMenuLayout = "H";

		//	save menuID, and add some properties to use
		ADXM_oMainMenu[ADXM_nIndex].id = sMenuID;
		ADXM_oMainMenu[ADXM_nIndex].curmenu = null;
		ADXM_oMainMenu[ADXM_nIndex].main = true;

		//	finally, process menu items to give them behavior guidelines
		ADXM_ProcessItems(ADXM_oMainMenu[ADXM_nIndex], sMenuLayout, ADXM_nIndex);

		//	increase index for additional menus
		ADXM_nIndex++;
	}
}

/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	return array of child elements with specified tag name. someone pls tell me I missed this one in the DOM2 spec
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
function ADXM_GetChildsByTagName(oNode, sNodeName) {
	var a = new Array();
	for (var i=0;i<oNode.childNodes.length;i++) {
		if (oNode.childNodes[i].nodeName == sNodeName) {
			a[a.length] = oNode.childNodes[i];
		}
	}
	return a;
}

/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
function ADXM_SetMenuPos(oItem) {
	if (ADXM_ua.indexOf("camino") != -1) return;
	if (ADXM_ua.indexOf("omni") != -1) return;
	var nLeft, nTop;
	var oMenu = oItem.submenu;
	//	set initial submenu position
	if (oItem.menuLayout == "H") {
        nLeft = 0;
        nTop = xHeight(oItem);
	} else {
        nLeft = xWidth(oItem);
        nTop = 0;
	}
	xMoveTo(oMenu, nLeft, nTop);

	if (ADXM_ua.indexOf("safari") != -1) return;
	//	* now, check if submenu is going outside the visible window area
	var nW = xWidth(oMenu);
	var nH = xHeight(oMenu);
	//	get page coordinates
	var nPageX = xPageX(oMenu);
	var nPageY = xPageY(oMenu);
	//	get available client dims
	var nClientW = xClientWidth();
	var nClientH = xClientHeight();
	//	if we know client browser dims, re-position layer if needed
	if ( nClientW != 0 && nClientH != 0 ) {
		var nDiffX = nClientW + xScrollLeft() - (nPageX + nW);
		if (nDiffX < 0) {
			//	in IE, place at in-the-center-to-the-top position
			if (ADXM_bIsIE) {
				nLeft = parseInt(nW/2);
				nTop = -nH + xHeight(oItem);
				xTop(oMenu, nTop);
			//	in good browsers, place it on the right of the calling item
			} else {
				nLeft = -nW;
			}
		}
		var nDiffY = nClientH + xScrollTop() - (nPageY + nH);
		if (nDiffY < 0) {
			nTop += nDiffY;
		}
		if (nDiffX < 0 || nDiffY < 0) xMoveTo(oMenu, nLeft, nTop);
	}
}

/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	Initializator must be called on window.onload. Adjust this sample initializator to accomodate your web site needs
		function ADXM_Initialize() {
			ADXM_InitializeMenu("menuList");
		}
		window.onload = function() {
			ADXM_Initialize();
		}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
