/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ADxMenu script - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (c) 2004 - Aleksandar Vacic, www.aplus.co.yu Some rights reserved, http://creativecommons.org/licenses/by-sa/2.0/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Using: X v3.15.2, Cross-Browser.com DHTML Library Copyright (c) 2004 Michael Foster, Licensed LGPL (gnu.org) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - central object: keeps track of viewport size, initializes menus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ var ADXM_Constructor = function() { // deny all non-DOM browsers and all IE if ((document.all && !window.opera) || !document.getElementById && !document.documentElement) return; var self = this; // deny non-supporting browsers var _ua = navigator.userAgent.toLowerCase(); var _nv = (navigator.vendor) ? navigator.vendor.toLowerCase() : ""; var _np = (navigator.product) ? navigator.product.toLowerCase() : ""; /* allow: - Gecko rv:1.5+ watch for khtml (webkit) and Opera, for future updates */ if ( ( window.opera ) || ( _np == "gecko" && parseFloat(_ua.indexOf("rv:") + 3) < 1.5 ) || ( _ua.indexOf("webkit") != -1 ) ) return; // keeps the menu IDs (of the main UL) var _aMenuIDs = new Array(); // keeps menu layouts var _aLayouts = new Array(); // return array of 1st level child elements with specified tag name function _GetChildsByTagName(oNode, sNodeName) { var a = new Array(); if (oNode && oNode.childNodes && oNode.childNodes.length) { for (var i=0;i 0) nTmp += xScrollLeft(); _nCW = nTmp; }; // fetch client height, including scrolled part var _nCH = 0; function _FetchCH() { var nTmp = xClientHeight(); if (nTmp > 0) nTmp += xScrollTop(); _nCH = nTmp; }; // call this one for window.onresize function _Viewport() { _FetchCH(); _FetchCW(); }; // call this one for window.onload this.Init = function() { _Viewport(); _FindMenus(); _Process(); }; }; var ADXM = new ADXM_Constructor(); /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set event handlers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ if (window.addEventListener) { window.addEventListener("load", ADXM.Init, false); } else if (window.attachEvent) { window.attachEvent("onload", ADXM.Init); } /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - these functions are taken from Mike Foster's X library, and simplified where possible. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ function xClientWidth() { var w = 0; if (!window.opera && document.documentElement && document.documentElement.clientWidth) w = document.documentElement.clientWidth; else if ( xDef(window.innerWidth, window.innerHeight, document.height) ) { w = window.innerWidth; if (document.height > window.innerHeight) w -= 16; } return w; } function xClientHeight() { var h = 0; if (!window.opera && document.documentElement && document.documentElement.clientHeight) h = document.documentElement.clientHeight; else if ( xDef(window.innerHeight, window.innerWidth, document.width) ) { h = window.innerHeight; if (document.width > window.innerWidth) h -= 16; } return h; } function xScrollLeft() { var offset = 0; if ( xDef(window.pageXOffset) ) offset = window.pageXOffset; else if ( document.documentElement && document.documentElement.scrollLeft ) offset = document.documentElement.scrollLeft; return offset; } function xScrollTop() { var offset = 0; if ( xDef(window.pageYOffset) ) offset = window.pageYOffset; else if ( document.documentElement && document.documentElement.scrollTop ) offset = document.documentElement.scrollTop; return offset; } function xLeft(e, iX) { if ( xDef(iX) ) e.style.left = iX + "px"; else { if ( xDef(e.offsetLeft) ) iX = e.offsetLeft; else iX = parseInt(e.style.left); if (isNaN(iX)) iX = 0; } return iX; } function xTop(e, iY) { if ( xDef(iY) ) e.style.top = iY + "px"; else { if ( xDef(e.offsetTop) ) iY = e.offsetTop; else iY = parseInt(e.style.top); if (isNaN(iY)) iY = 0; } return iY; } function xPageX(e) { var x = 0; while (e) { if ( xDef(e.offsetLeft) ) x += e.offsetLeft; else break; e = e.offsetParent; } return x; } function xPageY(e) { var y = 20; while (e) { if ( xDef(e.offsetTop) ) y += e.offsetTop; else break; e = e.offsetParent; } return y; } function xDef() { for (var i=0; i