/* version 0.6.6 BETA Copyright (c) 2006-2008 Joris van der Wel */
window.navConf = { navClassName: 'navigator', windowScrollRefresh: -1, widthFix_gecko1_7: true, widthFix_IE5_IE6: true, whiteSpace_nowrap_IE50: true, coverWindowedElements_IE: true, menuOutDelay: 321, clickOutDelay: 0, keyboard_menuOutDelay: 10 }; window.navGlob = { events: {}, navigators: [], navigators_length: 0, bodyClickLIs: [], bodyClickLIs_length: 0, pageLastHover: null, windowScrollID: null, ignorePreventDefault: false, hooks: { initializeGlobal: ['window.navGlob.keyboard_initializeGlobal', 'window.navGlob.whiteSpace_nowrap_IE50_initializeGlobal','window.navGlob.widthFix_gecko1_7_initializeGlobal','window.navGlob.widthFix_IE5_IE6_initializeGlobal','window.navGlob.coverWindowedElements_IE_initializeGlobal'],initializeGlobal_length: 5, initializeNav: [], initializeNav_length: 0, initializeLI: [],initializeLI_length: 0, initializeUL: [],initializeUL_length: 0, initializeA: [],initializeA_length: 0, initializeOther: [],initializeOther_length: 0, initializeAll: [],initializeAll_length:0, deInitializeNav: [], deInitializeNav_length:0, deInitializeLI: [],deInitializeLI_length:0, deInitializeUL: [],deInitializeUL_length:0, deInitializeA: [],deInitializeA_length:0, deInitializeOther: [],deInitializeOther_length:0, deInitializeAll: [],deInitializeAll_length:0, showDropDown: [],showDropDown_length:0, hideDropDown: [],hideDropDown_length:0, setHiLi: [],setHiLi_length: 0, removeHiLi: [],removeHiLi_length: 0 } }; window.navGlob.windowLoad = function () { if (window.navGlob.initializeGlobal() === true) { window.navGlob.initializeAllNavigators(); } }; if (window.addEventListener) { window.addEventListener('load', window.navGlob.windowLoad, false); } else if (window.attachEvent) { window.attachEvent('onload', window.navGlob.windowLoad); } window.navGlob.initializeGlobal = function () { if (window.navGlob.testRequirements() !== true) { return false; } window.navGlob.initializeCompatibility(); if (window.navConf.windowScrollRefresh > 0) { window.navGlob.windowScrollID = window.setInterval(window.navGlob.windowScroll, window.navConf.windowScrollRefresh); } window.navGlob.addEvent(window.document.documentElement,'click', window.navGlob.events.bodyClick); window.navGlob.callHook('initializeGlobal'); return true; }; window.navGlob.addTraversalDataNav = function (navElement) { window.navGlob.removeTraversalDataNav(navElement); var a = window.navGlob.navigators_length; window.navGlob.navigators[a] = navElement; window.navGlob.navigators_length = window.navGlob.navigators.length; navElement.navigatorID = a; navElement.navType = 1; navElement.parentNav = navElement; navElement.parentUL = null; navElement.parentLI = null; navElement.childLIs = []; navElement.childLIs_length = 0; navElement.childULs = []; navElement.childULs_length = 0; }; window.navGlob.removeTraversalDataNav = function (navElement) { if (typeof navElement.navType !== 'undefined') { window.navGlob.navigators.splice(navElement.navigatorID,1); window.navGlob.navigators_length = window.navGlob.navigators.length; window.navGlob.updateNavid(); navElement.navigatorID = undefined; navElement.navType = undefined; navElement.parentNav = undefined; navElement.parentUL = undefined; navElement.parentLI = undefined; navElement.childLIs = undefined; navElement.childLIs_length = undefined; navElement.childULs = undefined; navElement.childULs_length = undefined; return true; } return false; }; window.navGlob.addTraversalDataUL = function (navElement, ulElement, id) { window.navGlob.removeTraversalDataUL(ulElement); if (typeof ulElement.parentNode.navType === 'undefined') { throw "Parent does not have TraversalData in window.navGlob.addTraversalDataUL()"; } if (typeof id === 'object') { if (id.navType !== 2) { throw "reference object is not a ul element in window.navGlob.addTraversalDataUL()"; } id = id.ULid; } ulElement.navType = 2; ulElement.parentNav = navElement; ulElement.parentLI = window.navGlob.findParentElement(ulElement, 3); ulElement.parentUL = null; ulElement.ULid = null; if (ulElement.parentLI !== null) { ulElement.parentUL = ulElement.parentLI.parentUL; } else { ulElement.parentLI = navElement; } if (typeof id !== 'undefined') { if ((id < ulElement.parentLI.childULs_length) && (id >= 0)) { var childULs = ulElement.parentLI.childULs; childULs.splice(id, 0, ulElement); ulElement.parentLI.childULs_length = childULs.length; window.navGlob.updateULid (ulElement.parentLI); } else { throw "Wrong id in window.navGlob.addTraversalDataUL()"; } } else { ulElement.ULid = ulElement.parentLI.childULs_length; ulElement.parentLI.childULs[ulElement.parentLI.childULs_length] = ulElement; ulElement.parentLI.childULs_length = ulElement.parentLI.childULs.length; } }; window.navGlob.removeTraversalDataUL = function (ulElement) { if (typeof ulElement.navType !== 'undefined') { if (typeof ulElement.parentLI.navType !== 'undefined') { ulElement.parentLI.childULs.splice(ulElement.ULid, 1); ulElement.parentLI.childULs_length = ulElement.parentLI.childULs.length; window.navGlob.updateULid (ulElement.parentLI); } ulElement.navType = undefined; ulElement.parentNav = undefined; ulElement.parentLI = undefined; ulElement.parentUL = undefined; ulElement.ULid = undefined; return true; } return false; }; window.navGlob.addTraversalDataLI = function (navElement, liElement, id) { window.navGlob.removeTraversalDataLI (liElement); if (typeof liElement.parentNode.navType === 'undefined') { throw "Parent does not have TraversalData in window.navGlob.addTraversalDataLI()"; } if (typeof id === 'object') { if (id.navType !== 3) { throw "reference object is not a li element in window.navGlob.addTraversalDataLI()"; } id = id.LIid; } liElement.navType = 3; liElement.parentNav = navElement; liElement.parentUL = null; liElement.parentLI = null; liElement.LIid = null; if (liElement.parentNode.navType === 2) { liElement.parentUL = liElement.parentNode; liElement.parentLI = liElement.parentUL.parentLI; if (liElement.parentLI !== null) { if (typeof id !== 'undefined') { if ((id < liElement.parentLI.childLIs_length) && (id >= 0)) { var childLIs = liElement.parentLI.childLIs; childLIs.splice(id, 0, liElement); liElement.parentLI.childLIs_length = childLIs.length; window.navGlob.updateLIid (liElement.parentLI); } else { throw "Wrong id in window.navGlob.addTraversalDataLI()"; } } else { liElement.LIid = liElement.parentLI.childLIs_length; liElement.parentLI.childLIs[liElement.parentLI.childLIs_length] = liElement; liElement.parentLI.childLIs_length = liElement.parentLI.childLIs.length; } } } liElement.childLIs = []; liElement.childLIs_length = 0; liElement.childULs = []; liElement.childULs_length = 0; liElement.childAs = []; liElement.childAs_length = 0; }; window.navGlob.removeTraversalDataLI = function (liElement) { if (typeof liElement.navType !== 'undefined') { if (typeof liElement.parentLI.navType !== 'undefined') { liElement.parentLI.childLIs.splice(liElement.LIid, 1); liElement.parentLI.childLIs_length = liElement.parentLI.childLIs.length; window.navGlob.updateLIid (liElement.parentLI); } liElement.navType = undefined; liElement.parentNav = undefined; liElement.parentUL = undefined; liElement.parentLI = undefined; liElement.LIid = undefined; liElement.childLIs = undefined; liElement.childLIs_length = undefined; liElement.childUL = undefined; liElement.childULs_length = undefined; return true; } return false; }; window.navGlob.addTraversalDataA = function (navElement, aElement, id) { window.navGlob.removeTraversalDataA(aElement); if (typeof aElement.parentNode.navType === 'undefined') { throw "Parent does not have TraversalData in window.navGlob.addTraversalDataA()"; } if (typeof id === 'object') { if (id.navType !== 4) { throw "reference object is not an a element in window.navGlob.addTraversalDataA()"; } id = id.Aid; } aElement.navType = 4; aElement.parentNav = navElement; aElement.parentLI = window.navGlob.findParentElement(aElement, 3); aElement.parentUL = null; aElement.Aid = null; if (aElement.parentLI !== null) { aElement.parentUL = aElement.parentLI.parentUL; } else { aElement.parentLI = navElement; } if (typeof id !== 'undefined') { if ((id < aElement.parentLI.childAs_length) && (id >= 0)) { var childAs = aElement.parentLI.childAs; childAs.splice(id, 0, aElement); aElement.parentLI.childAs_length = childAs.length; window.navGlob.updateAid (aElement.parentLI); } else { throw "Wrong id in window.navGlob.addTraversalDataA()"; } } else { aElement.Aid = aElement.parentLI.childAs_length; aElement.parentLI.childAs[aElement.parentLI.childAs_length] = aElement; aElement.parentLI.childAs_length = aElement.parentLI.childAs.length; } }; window.navGlob.removeTraversalDataA = function (aElement) { if (typeof aElement.navType !== 'undefined') { if (typeof aElement.parentLI.navType !== 'undefined') { aElement.parentLI.childAs.splice(aElement.Aid, 1); aElement.parentLI.childAs_length = aElement.parentLI.childAs.length; window.navGlob.updateAid (aElement.parentLI); } aElement.navType = undefined; aElement.parentNav = undefined; aElement.parentLI = undefined; aElement.parentUL = undefined; aElement.ULid = undefined; return true; } return false; }; window.navGlob.addTraversalDataOther = function (navElement, anyElement) { window.navGlob.removeTraversalDataOther(anyElement); if (typeof anyElement.parentNode.navType === 'undefined') { throw "Parent does not have TraversalData in window.navGlob.addTraversalDataOther()"; } anyElement.navType = 0; anyElement.parentNav = navElement; }; window.navGlob.removeTraversalDataOther = function (aElement) { if (typeof aElement.navType !== 'undefined') { aElement.navType = undefined; aElement.parentNav = undefined; return true; } return false; }; window.navGlob.addTraversalData = function (navElement, anyElement, id) { var nodeNameLC = anyElement.nodeName.toLowerCase(); if (nodeNameLC === 'li') { window.navGlob.addTraversalDataLI (navElement, anyElement, id); } else if (nodeNameLC === 'ul') { window.navGlob.addTraversalDataUL (navElement, anyElement, id); } else if (nodeNameLC === 'a') { window.navGlob.addTraversalDataA (navElement, anyElement, id); } else if ((nodeNameLC === 'div') && (window.navGlob.classCheck(anyElement, 'navigator'))) { window.navGlob.addTraversalDataNav (anyElement); } else { window.navGlob.addTraversalDataOther (navElement, anyElement); } }; window.navGlob.removeTraversalData = function (anyElement) { if (typeof anyElement.navType !== 'undefined') { if (anyElement.navType === 1) { return window.navGlob.removeTraversalDataNav (anyElement); } else if (anyElement.navType === 2) { return window.navGlob.removeTraversalDataUL (anyElement); } else if (anyElement.navType === 3) { return window.navGlob.removeTraversalDataLI (anyElement); } else if (anyElement.navType === 4) { return window.navGlob.removeTraversalDataA (anyElement); } else { return window.navGlob.removeTraversalDataOther (anyElement); } } return false; }; window.navGlob.parseChilds = function (anyElement, traversalData, init) { if (typeof traversalData === 'undefined') { traversalData = true; } if (typeof init === 'undefined') { init = true; } if (typeof anyElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.parseChilds()"; } if ((init === true) && (typeof anyElement.navigator === 'undefined')) { throw "element has not been initialized in window.navGlob.parseChilds()"; } var navElement = anyElement.parentNav; var elements = anyElement.getElementsByTagName('*'); var elements_length = elements.length; if ((elements_length === 0) && (typeof anyElement.all !== 'undefined')) { elements = anyElement.all; elements_length = elements.length; } var bb = elements_length; var b = 0; if (elements_length > 0) { do { b = elements_length - bb; if (traversalData === true) { window.navGlob.addTraversalData(navElement, elements[b]); } if (init === true) { window.navGlob.initialize(elements[b]); } } while (--bb); } }; window.navGlob.deParseChilds = function (anyElement, traversalData, init) { if (typeof traversalData === 'undefined') { traversalData = true; } if (typeof init === 'undefined') { init = true; } var elements = anyElement.getElementsByTagName('*'); var elements_length = elements.length; if ((elements_length === 0) && (typeof anyElement.all !== 'undefined')) { elements = anyElement.all; elements_length = elements.length; } var bb = elements_length; var b = 0; if (elements_length > 0) { do { b = elements_length - bb; if (init === true) { window.navGlob.deInitialize(elements[b]); } if (traversalData === true) { window.navGlob.removeTraversalData(elements[b]); } } while (--bb); } }; window.navGlob.initialize = function (anyElement) { if (typeof anyElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.initialize()"; } if (anyElement.navType === 1) { window.navGlob.initializeNav (anyElement); } else if (anyElement.navType === 2) { window.navGlob.initializeUL (anyElement); } else if (anyElement.navType === 3) { window.navGlob.initializeLI (anyElement); } else if (anyElement.navType === 4) { window.navGlob.initializeA (anyElement); } else if (anyElement.navType === 0) { window.navGlob.initializeOther (anyElement); } else { throw "Unknown element in window.navGlob.initialize()"; } }; window.navGlob.deInitialize = function (anyElement) { if (anyElement.navType === 1) { window.navGlob.deInitializeNav (anyElement); } else if (anyElement.navType === 2) { window.navGlob.deInitializeUL (anyElement); } else if (anyElement.navType === 3) { window.navGlob.deInitializeLI (anyElement); } else if (anyElement.navType === 4) { window.navGlob.deInitializeA (anyElement); } else if (anyElement.navType === 0) { window.navGlob.deInitializeOther (anyElement); } }; window.navGlob.initializeNav = function (navElement) { if (typeof navElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.initializeNav()"; } navElement.navigator = { originalTop: 0, originalLeft: 0, originalHeight: 0, originalWidth: 0, outViewportTop: false, outViewportBottom: false, outViewportLeft: false, outViewportRight: false, HiLi_MouseOver_first: true, HiLi_MouseOut_first: true, child_visibleDropDownCount: 0, child_lastHover: null, child_hasAllAtOnce: false, child_allAtOnce_bodyClick: false, child_allAtOnce_bodyClick: false, child_allAtOnce_dropDownsVisible: false, child_allAtOnce_currentEvent: 0, child_allAtOnce_stayOpen: 0, child_allAtOnce_timeoutID: null }; window.navGlob.addEvent(navElement,'click', window.navGlob.cancelEventBubble); window.navGlob.addEvent(navElement,'mouseover',window.navGlob.events.HiLi_anyMouseOver); window.navGlob.addEvent(navElement,'mouseout',window.navGlob.events.HiLi_anyMouseOut); window.navGlob.classAppend(navElement,'navigator'); window.navGlob.classRemove(navElement,'jsalt'); window.navGlob.callHook('initializeNav', navElement); }; window.navGlob.deInitializeNav = function (navElement) { if (typeof navElement.navigator !== 'undefined') { window.navGlob.removeTimeout(navElement); window.navGlob.removeEvent(navElement,'click', window.navGlob.cancelEventBubble); window.navGlob.removeEvent(navElement,'mouseover',window.navGlob.events.HiLi_anyMouseOver); window.navGlob.removeEvent(navElement,'mouseout',window.navGlob.events.HiLi_anyMouseOut); window.navGlob.callHook('deInitializeNav', navElement); navElement.navigator = undefined; window.navGlob.classRemove (navElement,'jshili'); return true; } return false; }; window.navGlob.initializeLI = function (liElement) { if (typeof liElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.initializeLI()"; } if (typeof liElement.parentNode.navigator === 'undefined') { throw "Parent has not been initialized in window.navGlob.initializeLI()"; } var ulElement = liElement.parentUL; window.navGlob.addEvent(liElement,'mouseover',window.navGlob.events.HiLi_anyMouseOver); window.navGlob.addEvent(liElement,'mouseout',window.navGlob.events.HiLi_anyMouseOut); if (liElement.getElementsByTagName('li').length > 0) { liElement.navigator = { hasSub: true, globLIid: null, dropDownVisible: false, eventType: 0, allAtOnce: false, stayOpen: 0, bodyClick: false, child_lastHover: null, showByDefault: false, child_visibleDropDownCount: 0, child_lastHover: null, child_hasAllAtOnce: false, child_allAtOnce_bodyClick: false, child_allAtOnce_dropDownsVisible: false, child_allAtOnce_currentEvent: 0, child_allAtOnce_stayOpen: 0, child_allAtOnce_timeoutID: null }; var liElement_navigator = liElement.navigator; window.navGlob.classAppend (liElement,'jshassub'); var eventClass = window.navGlob.classCheckRegExp_hierarchical (liElement,'class_event','nnone|nover|nclick|ntoggle|noverafterclick'); var allatonceClass = window.navGlob.classCheckRegExp_hierarchical (liElement,'class_allatonce','nnoallatonce|nallatonce'); var stayopenClass = window.navGlob.classCheckRegExp_hierarchical (liElement,'class_stayopen','nnostayopen|nstayopen|nmulti'); var bodyclickClass = window.navGlob.classCheckRegExp_hierarchical (liElement,'class_bodyclick','nnobodyclick|nbodyclick'); var showbydefaultClass = window.navGlob.classCheckRegExp_hierarchical (liElement,'class_showbydefault','nnoshowbydefault|nshowbydefault'); if (eventClass === 'ntoggle') { eventClass = 'nclick'; liElement_navigator.stayOpen = 1; } if (bodyclickClass === 'nbodyclick') { window.navGlob.bodyClickLIs[window.navGlob.bodyClickLIs_length] = liElement; window.navGlob.bodyClickLIs_length = window.navGlob.bodyClickLIs.length; liElement_navigator.bodyClick = true; } if (stayopenClass === 'nstayopen') { liElement_navigator.stayOpen = 1; } else if (stayopenClass === 'nmulti') { liElement_navigator.stayOpen = 2; } if (allatonceClass === 'nallatonce') { liElement_navigator.allAtOnce = true; if ((typeof ulElement.navigator.allAtOnce_eventsSet === 'undefined') || (ulElement.navigator.allAtOnce_eventsSet === false)) { window.navGlob.addEvent(ulElement,'click',window.navGlob.events.allAtOnce__ulClick); window.navGlob.addEvent(ulElement,'mouseover',window.navGlob.events.allAtOnce__ulMouseOver); window.navGlob.addEvent(ulElement,'mouseout',window.navGlob.events.allAtOnce__ulMouseOut); ulElement.navigator.allAtOnce_eventsSet = true; } } else { liElement_navigator.allAtOnce = false; } if (eventClass.length === 0) { eventClass = 'nover'; } if (eventClass === 'nover') { liElement_navigator.eventType = 1; if (liElement_navigator.allAtOnce === false) { window.navGlob.addEvent(liElement,'mouseover',window.navGlob.events.over_liMouseOver); if (liElement_navigator.stayOpen === 0) { window.navGlob.addEvent(liElement,'mouseout',window.navGlob.events.over_liMouseOut); } } else { window.navGlob.addEvent(liElement,'mouseover',window.navGlob.events.allAtOnce_over_liMouseOver); } } else if (eventClass === 'nclick') { liElement_navigator.eventType = 2; if (liElement_navigator.allAtOnce === false) { window.navGlob.addEvent(liElement, 'click',window.navGlob.events.click_liClick); if (liElement_navigator.stayOpen === 0) { window.navGlob.addEvent(liElement, 'mouseover',window.navGlob.events.click_liMouseOver); window.navGlob.addEvent(liElement, 'mouseout',window.navGlob.events.click_liMouseOut); } } else { window.navGlob.addEvent(liElement, 'click',window.navGlob.events.allAtOnce_click_liClick); } } else if (eventClass === 'noverafterclick') { liElement_navigator.eventType = 3; if (liElement_navigator.allAtOnce === false) { window.navGlob.addEvent(liElement, 'click',window.navGlob.events.overAfterClick_liClick); window.navGlob.addEvent(liElement, 'mouseover',window.navGlob.events.overAfterClick_liMouseOver); if (liElement_navigator.stayOpen === 0) { window.navGlob.addEvent(liElement.parentUL, 'mouseout',window.navGlob.events.overAfterClick_ulMouseOut); window.navGlob.addEvent(liElement.parentUL, 'mouseover',window.navGlob.events.overAfterClick_ulMouseOver); } } else { window.navGlob.addEvent(liElement, 'click',window.navGlob.events.allAtOnce_click_liClick); } } if (liElement_navigator.allAtOnce === true) { liElement.parentLI.navigator.child_hasAllAtOnce = true; } if (showbydefaultClass == 'nshowbydefault') { liElement.navigator.showByDefault = true; if (liElement.navigator.allAtOnce === false) { window.navGlob.showDropDown (liElement); } else if (liElement.navigator.allAtOnce === true) { liElement.parentLI.navigator.child_allAtOnce_currentEvent = liElement.navigator.eventType; window.navGlob.allAtOnce_showChildDropDowns (liElement.parentUL); } } } else { liElement.navigator = { hasSub: false }; } window.navGlob.callHook('initializeLI', liElement); window.navGlob.callHook('initializeAll', liElement); }; window.navGlob.deInitializeLI = function (liElement) { if (typeof liElement.navigator !== 'undefined') { window.navGlob.removeTimeout(liElement); if ((liElement.navigator.hasSub === true) && (liElement.navigator.bodyClick === true)) { var a = window.navGlob.bodyClickLIs.indexOf(liElement); if (a !== null) { window.navGlob.bodyClickLIs.splice(a,1); window.navGlob.bodyClickLIs_length = window.navGlob.bodyClickLIs.length; } } window.navGlob.removeEvent(liElement,'mouseover',window.navGlob.events.HiLi_anyMouseOver); window.navGlob.removeEvent(liElement,'mouseout',window.navGlob.events.HiLi_anyMouseOut); window.navGlob.removeEvent(liElement,'mouseover',window.navGlob.events.over_liMouseOver); window.navGlob.removeEvent(liElement,'mouseout',window.navGlob.events.over_liMouseOut); window.navGlob.removeEvent(liElement,'mouseover',window.navGlob.events.allAtOnce_over_liMouseOver); window.navGlob.removeEvent(liElement,'click',window.navGlob.events.click_liClick); window.navGlob.removeEvent(liElement,'mouseover',window.navGlob.events.click_liMouseOver); window.navGlob.removeEvent(liElement,'mouseout',window.navGlob.events.click_liMouseOut); window.navGlob.removeEvent(liElement,'click',window.navGlob.events.allAtOnce_click_liClick); window.navGlob.removeEvent(liElement,'click',window.navGlob.events.overAfterClick_liClick); window.navGlob.removeEvent(liElement,'mouseover',window.navGlob.events.overAfterClick_liMouseOver); window.navGlob.removeEvent(liElement,'click',window.navGlob.events.allAtOnce_click_liClick); window.navGlob.callHook('deInitializeLI', liElement); window.navGlob.callHook('deInitializeAll', liElement); liElement.navigator = undefined; window.navGlob.classRemove (liElement,'jshassub'); window.navGlob.classRemove (liElement,'jshover'); window.navGlob.classRemove (liElement,'jshili'); return true; } return false; }; window.navGlob.initializeUL = function (ulElement) { if (typeof ulElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.initializeUL()"; } if (typeof ulElement.parentNode.navigator === 'undefined') { throw "Parent has not been initialized in window.navGlob.initializeUL()"; } ulElement.navigator = { }; if ((ulElement.parentLI.navType === 3) && (ulElement.parentLI.navigator.showByDefault === true)) { window.navGlob.classAppend(ulElement,'jshover'); } window.navGlob.addEvent(ulElement,'click',window.navGlob.events._ulClick); window.navGlob.addEvent(ulElement,'mouseover',window.navGlob.events.HiLi_anyMouseOver); window.navGlob.addEvent(ulElement,'mouseout',window.navGlob.events.HiLi_anyMouseOut); window.navGlob.callHook('initializeUL', ulElement); window.navGlob.callHook('initializeAll', ulElement); }; window.navGlob.deInitializeUL = function (ulElement) { if (typeof ulElement.navigator !== 'undefined') { window.navGlob.removeTimeout(ulElement); window.navGlob.removeEvent(ulElement,'click',window.navGlob.events._ulClick); window.navGlob.removeEvent(ulElement,'mouseover',window.navGlob.events.HiLi_anyMouseOver); window.navGlob.removeEvent(ulElement,'mouseout',window.navGlob.events.HiLi_anyMouseOut); window.navGlob.removeEvent(ulElement,'click',window.navGlob.events.allAtOnce__ulClick); window.navGlob.removeEvent(ulElement,'mouseover',window.navGlob.events.allAtOnce__ulMouseOver); window.navGlob.removeEvent(ulElement,'mouseout',window.navGlob.events.allAtOnce__ulMouseOut); window.navGlob.removeEvent(ulElement,'mouseout',window.navGlob.events.overAfterClick_ulMouseOut); window.navGlob.removeEvent(ulElement,'mouseover',window.navGlob.events.overAfterClick_ulMouseOver); window.navGlob.callHook('deInitializeUL', ulElement); window.navGlob.callHook('deInitializeAll', ulElement); ulElement.navigator = undefined; window.navGlob.classRemove (ulElement,'jshover'); window.navGlob.classRemove (ulElement,'jshili'); return true; } return false; }; window.navGlob.initializeA = function (aElement) { if (typeof aElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.initializeA()"; } if (typeof aElement.parentNode.navigator === 'undefined') { throw "Parent has not been initialized in window.navGlob.initializeA()"; } aElement.navigator = { }; if ((aElement.parentLI.navigator.hasSub === true) && ((aElement.parentLI.navigator.eventType === 2) || (aElement.parentLI.navigator.eventType === 3))) { window.navGlob.addEvent (aElement, 'click', window.navGlob.preventDefault); } window.navGlob.callHook('initializeA', aElement); window.navGlob.callHook('initializeAll', aElement); }; window.navGlob.deInitializeA = function (aElement) { if (typeof aElement.navigator !== 'undefined') { window.navGlob.removeTimeout(aElement); window.navGlob.removeEvent (aElement, 'click', window.navGlob.preventDefault); window.navGlob.callHook('deInitializeA', aElement); window.navGlob.callHook('deInitializeAll', aElement); aElement.navigator = undefined; return true; } return false; }; window.navGlob.initializeOther = function (anyElement) { if (typeof anyElement.navType === 'undefined') { throw "element does not have TraversalData in window.navGlob.initializeOther()"; } if (typeof anyElement.parentNode.navigator === 'undefined') { throw "Parent has not been initialized in window.navGlob.initializeOther()"; } anyElement.navigator = { }; window.navGlob.callHook('initializeOther', anyElement); window.navGlob.callHook('initializeAll', anyElement); }; window.navGlob.deInitializeOther = function (anyElement) { if (typeof anyElement.navigator !== 'undefined') { window.navGlob.removeTimeout(anyElement); window.navGlob.callHook('deInitializeOther', anyElement); window.navGlob.callHook('deInitializeAll', anyElement); anyElement.navigator = undefined; return true; } return false; }; window.navGlob.testRequirements = function () { try { var returnValue = false; returnValue = !!(window.document.getElementsByTagName && window.document.createElement && window.setInterval); returnValue = !!(returnValue && (window.addEventListener || window.attachEvent)); return returnValue; } catch (e) { return false; } }; window.navGlob.initializeAllNavigators = function () { var DIVs = window.document.getElementsByTagName('div'); var DIVs_length = DIVs.length; var aa = DIVs_length; var a = 0; if (DIVs_length > 0) { do { a = DIVs_length - aa; if (window.navGlob.classCheck(DIVs[a],window.navConf.navClassName)) { window.navGlob.addTraversalDataNav(DIVs[a]); window.navGlob.initializeNav(DIVs[a]); window.navGlob.parseChilds(DIVs[a], true, true); } } while (--aa); } }; window.navGlob.whiteSpace_nowrap_IE50_initializeGlobal = function (arg) { /*@cc_on @if (@_jscript_version <= 5.1) if (window.navConf.whiteSpace_nowrap_IE50 === true) { window.navGlob.addHook('initializeNav',window.navGlob.whiteSpace_nowrap_IE50_initializeNav); window.navGlob.addHook('deInitializeNav',window.navGlob.whiteSpace_nowrap_IE50_deInitializeNav); } @end @*/ }; window.navGlob.whiteSpace_nowrap_IE50_initializeNav = function (arg) { var navElement = arg[1]; if (typeof navElement.noWrap !== 'undefined') { navElement.noWrap = true; } }; window.navGlob.whiteSpace_nowrap_IE50_deInitializeNav = function (arg) { var navElement = arg[1]; if (typeof navElement.noWrap !== 'undefined') { navElement.noWrap = false; } }; window.navGlob.widthFix_gecko1_7_initializeGlobal = function (arg) { try { if (typeof window.navigator.userAgent !== 'undefined') { var widthFixReq = !!((window.navigator.userAgent.toLowerCase().search(/^.*[(].*rv:1\.7.*[)].*gecko.*$/) !== -1)); widthFixReq = !!(widthFixReq && window.getComputedStyle && window.navConf.widthFix_gecko1_7); if (widthFixReq === true) { window.navGlob.addHook('initializeNav',window.navGlob.widthFix_gecko1_7_initializeNav); window.navGlob.addHook('initializeLI',window.navGlob.widthFix_gecko1_7_initializeLI); window.navGlob.addHook('initializeUL',window.navGlob.widthFix_gecko1_7_initializeUL); } } } catch (e) { return; } }; window.navGlob.widthFix_gecko1_7_initializeNav = function (arg) { var navElement = arg[1]; window.navGlob.classAppend(navElement, 'jswfix'); var ULs = navElement.getElementsByTagName('ul'); var ULs_length = ULs.length; var aa = ULs_length; var a = 0; if (ULs_length > 0) { do { a = ULs_length - aa; window.navGlob.classAppend(ULs[a], 'jswfix'); ULs[a].WFixWidth = parseFloat(window.navGlob.getCompStyle(ULs[a], 'width')); window.navGlob.classRemove(ULs[a], 'jswfix'); } while (--aa); } window.navGlob.classRemove(navElement, 'jswfix'); }; window.navGlob.widthFix_gecko1_7_initializeLI = function (arg) { var liElement = arg[1]; var compminWidth = window.navGlob.getCompStyle(liElement,'min-width'); if ( (typeof compminWidth !== 'undefined') && (parseFloat(compminWidth) === 0) ) { if (window.navGlob.getCompStyle(liElement,'float') === 'none') { liElement.style.minWidth = liElement.parentUL.WFixWidth + 'px'; } } }; window.navGlob.widthFix_gecko1_7_initializeUL = function (arg) { var ulElement = arg[1]; var compminWidth = window.navGlob.getCompStyle(ulElement,'min-width'); if ( (typeof compminWidth !== 'undefined') && (parseFloat(compminWidth) === 0) ) { ulElement.style.minWidth = ulElement.WFixWidth + 'px'; } }; window.navGlob.widthFix_IE5_IE6_initializeGlobal = function (arg) { /*@cc_on @if (@_jscript_version <= 5.6) if (window.navConf.widthFix_IE5_IE6 === true) { window.navGlob.addHook('initializeUL',window.navGlob.widthFix_IE5_IE6_initializeUL); window.navGlob.addHook('showDropDown',window.navGlob.widthFix_IE5_IE6_showDropDown); } @end @*/ }; window.navGlob.widthFix_IE5_IE6_initializeUL = function (arg) { var ulElement = arg[1]; ulElement.originalWidth = ulElement.clientWidth; if (ulElement.originalWidth === 0) { ulElement.parentLI.originalWidthSet = false; } else { ulElement.parentLI.originalWidthSet = true; window.navGlob.widthFix_IE5_IE6_setChildLIWidth (ulElement); } }; window.navGlob.widthFix_IE5_IE6_showDropDown = function (arg) { var liElement = arg[1]; if (liElement.originalWidthSet === false) { var childs = liElement.childNodes; var childs_length = childs.length; var aa = childs_length; var a = 0; if (childs_length > 0) { do { a = childs_length - aa; if (childs[a].nodeName.toUpperCase() === 'UL') { childs[a].originalWidth = childs[a].clientWidth; liElement.originalWidthSet = true; if (childs[a].originalWidth > 0) { childs[a].parentNode.originalWidthSet = true; window.navGlob.widthFix_IE5_IE6_setChildLIWidth (childs[a]); } } } while (--aa); } liElement.originalWidthSet = true; } }; window.navGlob.widthFix_IE5_IE6_setChildLIWidth = function (ulElement) { var childs = ulElement.childNodes; var childs_length = childs.length; var aa = childs_length; var a = 0; if (childs_length > 0) { do { a = childs_length - aa; if (childs[a].nodeName.toUpperCase() === 'LI') { var compWidth = parseFloat(window.navGlob.getCompStyle(childs[a], 'width')); var compPosition = window.navGlob.getCompStyle(childs[a], 'position'); if ((isNaN(compWidth) || (compWidth === 0)) && ( (compPosition === 'static') || (compPosition === 'relative') ) && (window.navGlob.getCompStyle(childs[a],'navigatorwidthfix') === 'true')) { childs[a].style.width = ulElement.originalWidth; } } } while (--aa); } }; window.navGlob.coverWindowedElements_IE_initializeGlobal = function (arg) { /*@cc_on @if (@_jscript_version >= 5.5) if (window.navConf.coverWindowedElements_IE === true) { window.navGlob.addHook('initializeNav',window.navGlob.coverWindowedElements_IE_initializeNav); window.navGlob.addHook('showDropDown',window.navGlob.coverWindowedElements_IE_showDropDown); window.navGlob.addHook('hideDropDown',window.navGlob.coverWindowedElements_IE_hideDropDown); window.navGlob.addHook('deInitializeUL',window.navGlob.coverWindowedElements_IE_deInitializeLIUL); window.navGlob.addHook('deInitializeLI',window.navGlob.coverWindowedElements_IE_deInitializeLIUL); } @end @*/ }; window.navGlob.coverWindowedElements_IE_initializeNav = function (arg) { var navElement = arg[1]; if (window.navGlob.classCheck(navElement, 'ncoverWindowedElementsIE')) { navElement.navigator.coverWindowedElementsIE = true; window.navGlob.coverWindowedElement(navElement); } else { navElement.navigator.coverWindowedElementsIE = false; } }; window.navGlob.coverWindowedElements_IE_showDropDown = function (arg) { var liElement = arg[1]; if (liElement.parentNav.navigator.coverWindowedElementsIE === true) { window.navGlob.coverWindowedElement(liElement); var childULs = liElement.childULs; var a = 0; while (a < liElement.childULs_length) { window.navGlob.coverWindowedElement(childULs[a]); a++; } } }; window.navGlob.coverWindowedElements_IE_hideDropDown = function (arg) { var liElement = arg[1]; if (liElement.parentNav.navigator.coverWindowedElementsIE === true) { if ((typeof liElement.navigator.coverWindowedElements_IE_iframe !== 'undefined') && (liElement.navigator.coverWindowedElements_IE_iframe !== null)) { var iframe = liElement.navigator.coverWindowedElements_IE_iframe; iframe.style.display = 'none'; } var childULs = liElement.childULs; var a = 0; while (a < liElement.childULs_length) { var ulElement = childULs[a]; if ((typeof ulElement.navigator.coverWindowedElements_IE_iframe !== 'undefined') && (ulElement.navigator.coverWindowedElements_IE_iframe !== null)) { var iframe = ulElement.navigator.coverWindowedElements_IE_iframe; iframe.style.display = 'none'; } a++; } } }; window.navGlob.coverWindowedElements_IE_deInitializeLIUL = function (arg) { var anyElement = arg[1]; if ((typeof anyElement.navigator.coverWindowedElements_IE_iframe !== 'undefined') && (anyElement.navigator.coverWindowedElements_IE_iframe !== null)) { var iframe = anyElement.navigator.coverWindowedElements_IE_iframe; iframe.parentNode.removeChild(iframe); delete iframe; } }; window.navGlob.coverWindowedElement = function (anyElement) { var position = anyElement.currentStyle.position; var iframe = null; if (((position === 'absolute') || (position === 'fixed')) && (anyElement.currentStyle.display !== 'none')) { if ((typeof anyElement.navigator.coverWindowedElements_IE_iframe === 'undefined') || (anyElement.navigator.coverWindowedElements_IE_iframe === null)) { iframe = document.createElement('iframe'); anyElement.navigator.coverWindowedElements_IE_iframe = iframe; iframe.navigator = { referenceElement: anyElement }; anyElement.parentNode.insertBefore(iframe, anyElement); iframe.className = 'jscoverWindowedElementsIE'; iframe.style.border = 'none'; iframe.border = 0; iframe.disabled = true; iframe.frameBorder = 0; iframe.style.overflow = 'hidden'; iframe.src = 'javascript:""'; } else { iframe = anyElement.navigator.coverWindowedElements_IE_iframe; } iframe.style.position = position; iframe.style.zIndex = anyElement.currentStyle.zIndex; if (typeof anyElement.style.getExpression('top') === 'undefined') { iframe.style.top = ((anyElement.currentStyle.top === 'auto') ? anyElement.offsetTop + 'px' : anyElement.currentStyle.top); } else { iframe.style.setExpression('top', anyElement.style.getExpression('top')); } if (typeof anyElement.style.getExpression('left') === 'undefined') { iframe.style.left = ((anyElement.currentStyle.left === 'auto') ? anyElement.offsetLeft + 'px' : anyElement.currentStyle.left); } else { iframe.style.setExpression('left', anyElement.style.getExpression('left')); } if (typeof anyElement.style.getExpression('width') === 'undefined') { iframe.style.width = ((anyElement.currentStyle.width === 'auto') ? anyElement.offsetWidth + 'px' : anyElement.currentStyle.width); if (iframe.offsetWidth < anyElement.offsetWidth) { iframe.style.width = anyElement.offsetWidth + 'px'; } } else { iframe.style.setExpression('width', anyElement.style.getExpression('width')); } if (typeof anyElement.style.getExpression('height') === 'undefined') { iframe.style.height = ((anyElement.currentStyle.height === 'auto') ? anyElement.offsetHeight + 'px' : anyElement.currentStyle.height); if (iframe.offsetHeight < anyElement.offsetHeight) { iframe.style.height = anyElement.offsetHeight + 'px'; } } else { iframe.style.setExpression('height', anyElement.style.getExpression('height')); } iframe.style.display = 'block'; return true; } return false; }; window.navGlob.findParentElement = function (anyElement, elementType) { var curElement = anyElement.parentNode; while (curElement.navType !== elementType) { if (curElement.navType === 1) { return null; } curElement = curElement.parentNode; } return curElement; }; window.navGlob.windowScroll = function () { try { var ScrollX = window.navGlob.getScrollX(); var ScrollY = window.navGlob.getScrollY(); var ViewportWidth = window.navGlob.getViewportWidth (); var ViewportHeight = window.navGlob.getViewportHeight (); var len = window.navGlob.navigators_length; var aa = len; var a = 0; if (len > 0) { do { try { a = len - aa; var curNavigator = window.navGlob.navigators[a]; var curNavigator_navigator = curNavigator.navigator; if (typeof curNavigator_navigator.originalTop === 'undefined') { curNavigator_navigator.originalTop = window.navGlob.findPosY(curNavigator); curNavigator_navigator.originalLeft = window.navGlob.findPosX(curNavigator); curNavigator_navigator.originalHeight = parseFloat(window.navGlob.getCompStyle(curNavigator,'height')); curNavigator_navigator.originalWidth = parseFloat(window.navGlob.getCompStyle(curNavigator,'width')); curNavigator_navigator.outViewportTop = false; curNavigator_navigator.outViewportBottom = false; curNavigator_navigator.outViewportLeft = false; curNavigator_navigator.outViewportRight = false; } if (curNavigator_navigator.originalTop < ScrollY) { window.navGlob.classAppend(curNavigator,'jsoutviewporttop'); curNavigator_navigator.outViewportTop = true; } else if (curNavigator_navigator.originalTop + curNavigator_navigator.originalHeight > ScrollY + ViewportHeight) { window.navGlob.classAppend(curNavigator,'jsoutviewportbottom'); curNavigator_navigator.outViewportBottom = true; } else { if (curNavigator_navigator.outViewportTop) { window.navGlob.classRemove(curNavigator,'jsoutviewporttop'); curNavigator_navigator.outViewportTop = false; } else if (curNavigator_navigator.outViewportBottom) { window.navGlob.classRemove(curNavigator,'jsoutviewportbottom'); curNavigator_navigator.outViewportBottom = false; } } if (curNavigator_navigator.originalLeft < ScrollX) { window.navGlob.classAppend(curNavigator,'jsoutviewportleft'); curNavigator_navigator.outViewportLeft = true; } else if (curNavigator_navigator.originalLeft + curNavigator_navigator.originalWidth > ScrollX + ViewportWidth) { window.navGlob.classAppend(curNavigator,'jsoutviewportright'); curNavigator_navigator.outViewportRight = true; } else { if (curNavigator_navigator.outViewportLeft) { window.navGlob.classRemove(curNavigator,'jsoutviewportleft'); curNavigator_navigator.outViewportLeft = false; } else if (curNavigator_navigator.outViewportRight) { window.navGlob.classRemove(curNavigator,'jsoutviewportright'); curNavigator_navigator.outViewportRight = false; } } } catch (e) { window.navGlob.classRemove(window.navGlob.navigators[a],'jsoutviewportbottom|jsoutviewporttop|jsoutviewportright|jsoutviewportleft'); } } while (--aa); } } catch (e) { window.clearInterval(window.navGlob.windowScrollID); window.navGlob.windowScrollID = null; } }; window.navGlob.events.HiLi_anyMouseOver = function (e) { window.navGlob.setHiLi (this); return true; }; window.navGlob.events.HiLi_anyMouseOut = function (e) { window.navGlob.removeHiLi (this); return true; }; window.navGlob.events._ulClick = function (e) { window.navGlob.cancelEventBubble(e); window.navGlob.events.bodyClick (e,this.parentNav); return true; }; window.navGlob.events.over_liMouseOver = function (e) { var liElement = this; window.navGlob.removeTimeout (liElement); if (liElement.navigator.dropDownVisible === false) { window.navGlob.hideLastHovered (liElement); window.navGlob.parseLastHoveredLI (liElement); window.navGlob.showDropDown (liElement); } else { window.navGlob.parseLastHoveredLI (liElement); } return true; }; window.navGlob.events.over_liMouseOut = function (e) { var liElement = this; window.navGlob.removeTimeout (liElement); if (liElement.navigator.dropDownVisible === true) { liElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.hideDropDown, window.navConf.menuOutDelay, liElement); } return true; }; window.navGlob.events.click_liClick = function (e) { var liElement = this; if (liElement.navigator.dropDownVisible === true) { window.navGlob.removeTimeout (liElement); liElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.hideDropDown, window.navConf.clickOutDelay,liElement); } else { window.navGlob.hideLastHovered (liElement); window.navGlob.parseLastHoveredLI (liElement); window.navGlob.showDropDown (liElement); } window.navGlob.cancelEventBubble(e); return true; }; window.navGlob.events.click_liMouseOver = function (e) { var liElement = this; if (liElement.navigator.dropDownVisible === true) { window.navGlob.removeTimeout (liElement); window.navGlob.parseLastHoveredLI (liElement); } return true; }; window.navGlob.events.click_liMouseOut = function (e) { var liElement = this; if (liElement.navigator.dropDownVisible === true) { window.navGlob.removeTimeout (liElement); liElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.hideDropDown, window.navConf.menuOutDelay,liElement); } return true; }; window.navGlob.events.bodyClick = function (e, navIgnore) { var bodyClickLIs = window.navGlob.bodyClickLIs.slice(); var aa = window.navGlob.bodyClickLIs_length; var len = aa; var a = 0; var curLI = null; if (len > 0) { do { a = len - aa; curLI = bodyClickLIs[a]; if ((curLI.navigator.dropDownVisible === true) && !((typeof navIgnore !== 'undefined') && (curLI.parentNav === navIgnore)) && !((curLI.navigator.allAtOnce === true) && (curLI.parentLI.navigator.child_allAtOnce_bodyClick === false))) { window.navGlob.removeTimeout (curLI.parentUL); window.navGlob.removeTimeout (curLI); if (curLI.navigator.allAtOnce === true) { curLI.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.allAtOnce_hideChildDropDowns, window.navConf.clickOutDelay,curLI.parentUL); } else { curLI.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.hideDropDown, window.navConf.clickOutDelay, curLI); } } } while (--aa); } window.navGlob.bodyClickLIs_length = window.navGlob.bodyClickLIs.length; return true; }; window.navGlob.events.overAfterClick_liClick = function (e) { var liElement = this; if (liElement.navigator.dropDownVisible === true) { window.navGlob.removeTimeout (liElement); liElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.hideDropDown, window.navConf.clickOutDelay, liElement); } else { window.navGlob.hideLastHovered (liElement); window.navGlob.parseLastHoveredLI (liElement); window.navGlob.showDropDown (liElement); } window.navGlob.events.bodyClick (e,liElement.parentNav); window.navGlob.cancelEventBubble(e); return true; }; window.navGlob.events.overAfterClick_liMouseOver = function (e) { var liElement = this; if (liElement.navigator.dropDownVisible === true) { window.navGlob.parseLastHoveredLI (liElement); } else if (liElement.parentLI.navigator.child_visibleDropDownCount > 0) { window.navGlob.hideLastHovered (liElement); window.navGlob.parseLastHoveredLI (liElement); window.navGlob.showDropDown (liElement); } return true; }; window.navGlob.events.overAfterClick_ulMouseOut = function (e) { var ulElement = this; if (ulElement.parentLI.navigator.child_visibleDropDownCount > 0) { window.navGlob.removeTimeout (ulElement); ulElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.hideLastHovered, window.navConf.menuOutDelay,ulElement.parentLI); } return true; }; window.navGlob.events.overAfterClick_ulMouseOver = function (e) { window.navGlob.removeTimeout (this); }; window.navGlob.events.allAtOnce__ulMouseOut = function (e) { var ulElement = this; if ((ulElement.parentLI.navigator.child_allAtOnce_dropDownsVisible === true) && (ulElement.parentLI.navigator.child_allAtOnce_stayOpen === 0) && ((ulElement.parentLI.navigator.child_allAtOnce_currentEvent === 1) || (ulElement.parentLI.navigator.child_allAtOnce_currentEvent === 2))) { ulElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.allAtOnce_hideChildDropDowns, window.navConf.menuOutDelay,ulElement); } return true; }; window.navGlob.events.allAtOnce__ulMouseOver = function (e) { var ulElement = this; if ((ulElement.parentLI.navigator.child_allAtOnce_dropDownsVisible === true) && (ulElement.parentLI.navigator.child_allAtOnce_stayOpen === 0) && ((ulElement.parentLI.navigator.child_allAtOnce_currentEvent === 1) || (ulElement.parentLI.navigator.child_allAtOnce_currentEvent === 2))) { window.navGlob.removeTimeout (ulElement); } return true; }; window.navGlob.events.allAtOnce__ulClick = function (e) { var ulElement = this; if ((ulElement.parentLI.navigator.child_allAtOnce_dropDownsVisible === true) && (ulElement.parentLI.navigator.child_allAtOnce_currentEvent === 2)) { window.navGlob.events.bodyClick (e,ulElement.parentNav); ulElement.navigator.timeoutID = window.navGlob.setTimeout(window.navGlob.allAtOnce_hideChildDropDowns, window.navConf.clickOutDelay, ulElement); window.navGlob.cancelEventBubble(e); } return true; }; window.navGlob.events.allAtOnce_over_liMouseOver = function (e) { var liElement = this; var ulElement = liElement.parentUL; if (liElement.parentLI.navigator.child_allAtOnce_dropDownsVisible === false) { liElement.parentLI.navigator.child_allAtOnce_currentEvent = 1; liElement.parentLI.navigator.child_allAtOnce_stayOpen = liElement.navigator.stayOpen; liElement.parentLI.navigator.child_allAtOnce_bodyClick = liElement.navigator.bodyClick; window.navGlob.hideLastHovered (liElement); window.navGlob.allAtOnce_parseLastHoveredUL (ulElement); window.navGlob.allAtOnce_showChildDropDowns (ulElement); } return true; }; window.navGlob.events.allAtOnce_click_liClick = function (e) { var liElement = this; var ulElement = liElement.parentUL; if (liElement.parentLI.navigator.child_allAtOnce_dropDownsVisible === false) { liElement.parentLI.navigator.child_allAtOnce_currentEvent = 2; liElement.parentLI.navigator.child_allAtOnce_stayOpen = liElement.navigator.stayOpen; liElement.parentLI.navigator.child_allAtOnce_bodyClick = liElement.navigator.bodyClick; window.navGlob.events.bodyClick (e,liElement.parentNav); window.navGlob.hideLastHovered (liElement); window.navGlob.allAtOnce_parseLastHoveredUL (ulElement); window.navGlob.allAtOnce_showChildDropDowns (ulElement); window.navGlob.cancelEventBubble(e); } return true; }; window.navGlob.keyboard_initializeGlobal = function () { window.navGlob.keyboardSelected = null; window.navGlob.addHook('initializeNav',window.navGlob.keyboard_initializeNav); window.navGlob.addHook('initializeLI',window.navGlob.keyboard_initializeLI); window.navGlob.addHook('initializeA',window.navGlob.keyboard_initializeA); window.navGlob.addHook('initializeAll',window.navGlob.keyboard_initializeAll); window.navGlob.addHook('deInitializeNav',window.navGlob.keyboard_deInitializeNav); window.navGlob.addHook('deInitializeLI',window.navGlob.keyboard_deInitializeLI); window.navGlob.addHook('deInitializeAll',window.navGlob.keyboard_deInitializeAll); }; window.navGlob.keyboard_initializeNav = function (arg) { var navElement = arg[1]; navElement.navigator.keyboardSelected = null; navElement.navigator.keyPressPreventDefault = false; window.navGlob.addEvent(navElement,'keypress', window.navGlob.events.keyboard_navKeyPress); window.navGlob.addEvent(navElement,'keydown', window.navGlob.events.keyboard_navKeyDown); window.navGlob.addEvent(navElement,'focus', window.navGlob.events.keyboard_anyFocus); window.navGlob.addEvent(navElement,'blur', window.navGlob.events.keyboard_anyBlur); window.navGlob.addEvent(navElement,'mouseover',window.navGlob.events.keyboard_navMouseOver); if (typeof navElement.tabIndex === 'number') { if (navElement.tabIndex < 0) { navElement.tabIndex = 0; } } else { navElement.tabIndex = 0; } }; window.navGlob.keyboard_deInitializeNav = function (arg) { var navElement = arg[1]; window.navGlob.removeEvent(navElement,'keypress', window.navGlob.events.keyboard_navKeyPress); window.navGlob.removeEvent(navElement,'keydown', window.navGlob.events.keyboard_navKeyDown); window.navGlob.removeEvent(navElement,'focus', window.navGlob.events.keyboard_anyFocus); window.navGlob.removeEvent(navElement,'blur', window.navGlob.events.keyboard_anyBlur); window.navGlob.removeEvent(navElement,'mouseover',window.navGlob.events.keyboard_navMouseOver); navElement.tabIndex = -1; }; window.navGlob.keyboard_initializeLI = function (arg) { var liElement = arg[1]; liElement.navigator.keyboard = 0; var kbdClass = window.navGlob.classCheckRegExp_hierarchical (liElement,'class_kbd','nnokbd|nkbd|nkbdh|nkbdhbtt|nkbdv|nkbdvrtl'); if (kbdClass === 'nnokbd') { liElement.navigator.keyboard = 0; } else { if (kbdClass === 'nkbdh') { liElement.navigator.keyboard = 2; } else if (kbdClass === 'nkbdhbtt') { liElement.navigator.keyboard = 3; } else if (kbdClass === 'nkbdv') { liElement.navigator.keyboard = 4; } else if (kbdClass === 'nkbdvrtl') { liElement.navigator.keyboard = 5; } else { liElement.navigator.keyboard = 1; } if (liElement.navigator.hasSub === true) { if (typeof liElement.tabIndex === 'number') { if (liElement.tabIndex < 0) { liElement.tabIndex = 0; } } else { liElement.tabIndex = 0; } } else { liElement.tabIndex = -1; } } }; window.navGlob.keyboard_deInitializeLI = function (arg) { var liElement = arg[1]; liElement.tabIndex = -1; }; window.navGlob.keyboard_initializeA = function (arg) { var aElement = arg[1]; if (aElement.Aid === 0) { if (aElement.parentLI.navigator.keyboard !== 0) { aElement.parentLI.tabIndex = -1; if (typeof aElement.tabIndex === 'number') { if (aElement.tabIndex < 0) { aElement.tabIndex = 0; } } else { aElement.tabIndex = 0; } } } }; window.navGlob.keyboard_initializeAll = function (arg) { var anyElement = arg[1]; window.navGlob.addEvent(anyElement,'focus', window.navGlob.events.keyboard_anyFocus); window.navGlob.addEvent(anyElement,'blur', window.navGlob.events.keyboard_anyBlur); }; window.navGlob.keyboard_deInitializeAll = function (arg) { var anyElement = arg[1]; window.navGlob.removeEvent(anyElement,'focus', window.navGlob.events.keyboard_anyFocus); window.navGlob.removeEvent(anyElement,'blur', window.navGlob.events.keyboard_anyBlur); }; window.navGlob.events.keyboard_navKeyPress = function (e) { if (this.navigator.keyPressPreventDefault === true) { window.navGlob.preventDefault(e); } this.navigator.keyPressPreventDefault = false; }; window.navGlob.events.keyboard_navKeyDown = function (evt) { var navElement = this; var e = ((evt) ? evt : window.event); if (e === null) { return; } if (((e.keyCode > 36) && (e.keyCode < 41)) || (e.keyCode === 10) || (e.keyCode === 13)) { var keyboardSelected = navElement.navigator.keyboardSelected; if (keyboardSelected === null) { window.navGlob.keyboardSelectFirst (navElement); } else if (keyboardSelected.navigator.keyboard !== 0) { if (e.keyCode === 37) { if ((keyboardSelected.navigator.keyboard === 2) || (keyboardSelected.navigator.keyboard === 3)) { window.navGlob.keyboardSelectPrevious (keyboardSelected); } else if (keyboardSelected.navigator.keyboard === 4) { window.navGlob.keyboardSelectParent (keyboardSelected); } else if (keyboardSelected.navigator.keyboard === 5) { window.navGlob.keyboardSelectChild (keyboardSelected); } } else if (e.keyCode === 38) { if (keyboardSelected.navigator.keyboard === 2) { window.navGlob.keyboardSelectParent (keyboardSelected); } else if (keyboardSelected.navigator.keyboard === 3) { window.navGlob.keyboardSelectChild (keyboardSelected); } else if ((keyboardSelected.navigator.keyboard === 4) || (keyboardSelected.navigator.keyboard === 5)) { window.navGlob.keyboardSelectPrevious (keyboardSelected); } } else if (e.keyCode === 39) { if ((keyboardSelected.navigator.keyboard === 2) || (keyboardSelected.navigator.keyboard === 3)) { window.navGlob.keyboardSelectNext (keyboardSelected); } else if (keyboardSelected.navigator.keyboard === 4) { window.navGlob.keyboardSelectChild (keyboardSelected); } else if (keyboardSelected.navigator.keyboard === 5) { window.navGlob.keyboardSelectParent (keyboardSelected); } } else if (e.keyCode === 40) { if (keyboardSelected.navigator.keyboard === 2) { window.navGlob.keyboardSelectChild (keyboardSelected); } else if (keyboardSelected.navigator.keyboard === 3) { window.navGlob.keyboardSelectParent (keyboardSelected); } else if ((keyboardSelected.navigator.keyboard === 4) || (keyboardSelected.navigator.keyboard === 5)) { window.navGlob.keyboardSelectNext (keyboardSelected); } } else if ((e.keyCode === 10) || (e.keyCode === 13)) { if (keyboardSelected.childAs_length > 0) { if ((keyboardSelected.navigator.hasSub === true) && ((keyboardSelected.navigator.eventType === 2) || (keyboardSelected.navigator.eventType === 3))) { window.navGlob.simulateMouseEvent(keyboardSelected, 'click'); } else { window.navGlob.activateLink(keyboardSelected.childAs[0]); } } else { window.navGlob.simulateMouseEvent(keyboardSelected, 'click'); } } } window.navGlob.preventDefault(e); navElement.navigator.keyPressPreventDefault = true; } else { navElement.navigator.keyPressPreventDefault = false; } }; window.navGlob.events.keyboard_navMouseOver = function (evt) { window.navGlob.keyboardUnselect (this.navigator.keyboardSelected); }; window.navGlob.events.keyboard_anyFocus = function (e) { var anyElement = this; window.navGlob.cancelEventBubble(e); window.navGlob.simulateMouseEvent (anyElement,'mouseover'); var firstLI = true; var curElement = anyElement; while ((curElement.navigator) && (curElement.navType !== 1)) { if (curElement.navType === 3) { if (firstLI === true) { window.navGlob.keyboardUnselect (window.navGlob.keyboardSelected); window.navGlob.keyboardSelected = curElement; curElement.parentNav.navigator.keyboardSelected = curElement; firstLI = false; } } curElement = curElement.parentNode; } }; window.navGlob.events.keyboard_anyBlur = function (e) { var anyElement = this; window.navGlob.cancelEventBubble(e); window.navGlob.simulateMouseEvent(anyElement, 'mouseout'); var firstLI = true; var curElement = anyElement; while ((curElement.navigator) && (curElement.navType !== 1)) { if (curElement.navType === 3) { if (firstLI === true) { if (window.navGlob.keyboardSelected === curElement) { window.navGlob.keyboardSelected = null; curElement.parentNav.navigator.keyboardSelected = null; } firstLI = false; } } curElement = curElement.parentNode; } }; window.navGlob.setHiLi = function (anyElement, ignoreHook) { window.navGlob.classAppend (anyElement,'jshili'); if (ignoreHook !== true) {window.navGlob.callHook('setHiLi', anyElement); } }; window.navGlob.removeHiLi = function (anyElement, ignoreHook) { window.navGlob.classRemove (anyElement,'jshili'); if (ignoreHook !== true) {window.navGlob.callHook('removeHiLi', anyElement); } }; window.navGlob.hideDropDown = function (liElement, ignoreHook) { if (typeof liElement === 'undefined') { return; } window.navGlob.classRemove(liElement, 'jshover'); liElement.navigator.dropDownVisible = false; if (liElement.parentLI.navigator.child_visibleDropDownCount > 0) { liElement.parentLI.navigator.child_visibleDropDownCount--; } window.navGlob.removeTimeout (liElement); var childULs = liElement.childULs; var a = 0; while (a < liElement.childULs_length) { window.navGlob.classRemove(childULs[a], 'jshover'); a++; } if (ignoreHook !== true) {window.navGlob.callHook('hideDropDown', liElement); } }; window.navGlob.showDropDown = function (liElement, ignoreHook) { if (typeof liElement === 'undefined') { return; } window.navGlob.classAppend(liElement, 'jshover'); liElement.navigator.dropDownVisible = true; liElement.parentLI.navigator.child_visibleDropDownCount++; window.navGlob.removeTimeout (liElement); var childULs = liElement.childULs; var a = 0; while (a < liElement.childULs_length) { window.navGlob.classAppend(childULs[a], 'jshover'); a++; } if (ignoreHook !== true) {window.navGlob.callHook('showDropDown', liElement); } }; window.navGlob.hideLastHovered = function (liElement) { if (typeof liElement === 'undefined') { return; } var lastHover = liElement.navigator.child_lastHover; if (lastHover !== null) { if (lastHover.navType === 3) { if (lastHover.navigator.stayOpen !== 2) { window.navGlob.hideDropDown (lastHover); } } else if ((lastHover.navType === 2) && (lastHover.parentLI.navigator.child_allAtOnce_dropDownsVisible === true)) { if (lastHover.parentLI.navigator.child_allAtOnce_stayOpen !== 2) { window.navGlob.allAtOnce_hideChildDropDowns (lastHover); } } } liElement.navigator.child_lastHover = null; }; window.navGlob.parseLastHoveredLI = function (liElement) { var lastHover = null; if (liElement.parentLI.navType === 1) { lastHover = window.navGlob.pageLastHover; if ((lastHover !== null) && (lastHover !== liElement)) { window.navGlob.hideLastHovered (lastHover.parentLI); } window.navGlob.pageLastHover = liElement; liElement.parentLI.navigator.child_lastHover = liElement; } else { lastHover = liElement.parentLI.navigator.child_lastHover; if ((lastHover !== null) && (lastHover !== liElement)) { window.navGlob.hideLastHovered (liElement.parentLI); } liElement.parentLI.navigator.child_lastHover = liElement; } }; window.navGlob.allAtOnce_parseLastHoveredUL = function (ulElement) { if (ulElement.parentLI.navType === 1) { var lastHover = window.navGlob.pageLastHover; if ((lastHover !== null) && (lastHover !== ulElement)) { window.navGlob.hideLastHovered (lastHover.parentLI); } window.navGlob.pageLastHover = ulElement; ulElement.parentLI.navigator.child_lastHover = ulElement; } }; window.navGlob.allAtOnce_hideChildDropDowns = function (ulElement) { if (typeof ulElement === 'undefined') { return; } var childLIs = ulElement.parentLI.childLIs; if (typeof childLIs === 'object') { if (ulElement.parentLI.childLIs_length > 0) { var aa = ulElement.parentLI.childLIs_length; var a = 0; do { a = ulElement.parentLI.childLIs_length - aa; if (childLIs[a].navigator.allAtOnce === true) { window.navGlob.hideDropDown(childLIs[a]); } } while (--aa); } } ulElement.parentLI.navigator.child_allAtOnce_dropDownsVisible = false; ulElement.parentLI.navigator.child_allAtOnce_currentEvent = 0; ulElement.parentLI.navigator.child_allAtOnce_bodyClick = false; ulElement.parentLI.navigator.child_allAtOnce_stayOpen = 0; window.navGlob.removeTimeout (ulElement); }; window.navGlob.allAtOnce_showChildDropDowns = function (ulElement) { if (typeof ulElement !== 'undefined') { var childLIs = ulElement.parentLI.childLIs; if (typeof childLIs !== 'undefined') { var a = 0; var aa = ulElement.parentLI.childLIs_length; var len = aa; if (len > 0) { do { a = len - aa; if (childLIs[a].navigator.allAtOnce === true) { window.navGlob.showDropDown (childLIs[a]); } } while (--aa); } ulElement.parentLI.navigator.child_allAtOnce_dropDownsVisible = true; window.navGlob.removeTimeout (ulElement); } } }; window.navGlob.keyboardSelect = function (liElement) { if ((liElement !== null) && (liElement.navigator.keyboard !== 0)) { if ((liElement.childAs_length > 0) && (liElement.childAs[0].tabIndex >= 0)) { liElement.childAs[0].focus(); return true; } else if (liElement.tabIndex >= 0) { liElement.focus(); return true; } } return false; }; window.navGlob.keyboardUnselect = function (liElement) { if (liElement !== null) { window.navGlob.keyboardSelected = null; liElement.parentNav.navigator.keyboardSelected = null; if ((liElement.childAs_length > 0) && (liElement.childAs[0].tabIndex >= 0)) { liElement.childAs[0].blur(); return true; } else if (liElement.tabIndex >= 0) { liElement.blur(); return true; } } return false; }; window.navGlob.keyboardSelectNext = function (liElement) { var curID = liElement.LIid; do { if (curID < liElement.parentLI.childLIs_length - 1) { curID = curID + 1; } else { curID = 0; } if (window.navGlob.keyboardSelect(liElement.parentLI.childLIs[curID]) === true) { return true; } } while (curID !== liElement.LIid); return false; }; window.navGlob.keyboardSelectPrevious = function (liElement) { var curID = liElement.LIid; do { if (curID > 0) { curID = curID - 1; } else { curID = liElement.parentLI.childLIs_length - 1; } if (window.navGlob.keyboardSelect(liElement.parentLI.childLIs[curID]) === true) { return true; } } while (curID !== liElement.LIid); return false; }; window.navGlob.keyboardSelectFirst = function (liElement) { if (liElement.childLIs_length > 0) { if (window.navGlob.keyboardSelect(liElement.childLIs[0]) === true) { return true; } else { return window.navGlob.keyboardSelectNext(liElement.childLIs[0]); } } return false; }; window.navGlob.keyboardSelectLast = function (liElement) { if (liElement.childLIs_length > 0) { if (window.navGlob.keyboardSelect(liElement.childLIs[liElement.childLIs_length - 1]) === true) { return true; } else { return window.navGlob.keyboardSelectPrevious(liElement.childLIs[liElement.childLIs_length - 1]); } } return false; }; window.navGlob.keyboardSelectParent = function (liElement) { if (liElement.parentLI.navType === 3) { return window.navGlob.keyboardSelect(liElement.parentLI); } return false; }; window.navGlob.keyboardSelectChild = function (liElement) { if ((liElement.navigator.hasSub === true) && (liElement.navigator.dropDownVisible === true) && (liElement.childLIs_length > 0)) { return window.navGlob.keyboardSelectFirst(liElement); } return false; }; window.navGlob.removeTimeout = function (anyElement) { if ((typeof anyElement.navigator !== 'undefined') && (typeof anyElement.navigator.timeoutID !== 'undefined')) { window.clearTimeout(anyElement.navigator.timeoutID); anyElement.navigator.timeoutID = null; } }; window.navGlob.callHook = function (hook) { var functions = window.navGlob.hooks[hook]; var functions_length = window.navGlob.hooks[hook + '_length']; if (typeof functions === 'undefined') { throw 'Undefined hook: "' + hook + '" in window.navGlob.callHook()'; } var a = 0; var aa = functions_length; if (functions_length > 0) { do { a = functions_length - aa; if (typeof functions[a] === 'string') { functions[a] = eval(functions[a]); } if (typeof functions[a] === 'function') { functions[a](arguments); } else { delete window.navGlob.hooks[hook][a]; window.navGlob.hooks[hook + '_length'] = window.navGlob.hooks[hook]; } } while (--aa); } }; window.navGlob.addHook = function (hook, fc) { var hookArray = window.navGlob.hooks[hook]; if (typeof window.navGlob.hooks[hook] === 'undefined') { throw 'Undefined hook:"' + hook + '" in window.navGlob.addHook()'; return null; } var a = window.navGlob.hooks[hook + '_length']; hookArray[a] = fc; window.navGlob.hooks[hook + '_length'] = hookArray.length; return a; }; window.navGlob.updateNavid = function () { var a = 0; var navigators = window.navGlob.navigators; var navigators_length = window.navGlob.navigators_length; while (a < navigators) { navigators[a].navigatorID = a; a++; } }; window.navGlob.updateLIid = function (liElement) { var a = 0; var childLIs = liElement.childLIs; var childLIs_length = liElement.childLIs_length; while (a < childLIs_length) { childLIs[a].LIid = a; a++; } }; window.navGlob.updateULid = function (liElement) { var a = 0; var childULs = liElement.childULs; var childULs_length = liElement.childULs_length; while (a < childULs_length) { childULs[a].ULid = a; a++; } }; window.navGlob.updateAid = function (liElement) { var a = 0; var childAs = liElement.childAs; var childAs_length = liElement.childAs_length; while (a < childAs_length) { childAs[a].Aid = a; a++; } }; window.navGlob.classCheckRegExp_hierarchical = function (liElement,classVariable,classNames) { var liClassCheck = window.navGlob.classCheckRegExp (liElement, classNames); if (liClassCheck.length !== 0) { return liClassCheck; } else { var parentUL_navigator = liElement.parentUL.navigator; if (typeof parentUL_navigator[classVariable] === 'undefined') { parentUL_navigator[classVariable] = window.navGlob.classCheckRegExp (liElement.parentUL, classNames); } if (parentUL_navigator[classVariable].length !== 0) { return parentUL_navigator[classVariable]; } else { var parentNav_navigator = liElement.parentNav.navigator; if (typeof parentNav_navigator[classVariable] === 'undefined') { parentNav_navigator[classVariable] = window.navGlob.classCheckRegExp (liElement.parentNav, classNames); } if (parentNav_navigator[classVariable].length !== 0) { return parentNav_navigator[classVariable]; } else { return ''; } } } }; window.navGlob.cancelEventBubble = function (evt) { var e = ((evt) ? evt : window.event); if (e === null) { return; } e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); } }; window.navGlob.preventDefault = function (e) { if (window.navGlob.ignorePreventDefault === false) { if ((e) && (e.preventDefault)) { e.preventDefault(); } else if (window.event) { if (window.event === null) { return; } window.event.returnValue = false; } } }; window.navGlob.activateLink = function (aElement) { if (aElement.click) { window.navGlob.ignorePreventDefault = true; aElement.click(); } else if (window.document.createEvent) { window.navGlob.ignorePreventDefault = true; var e = window.document.createEvent( 'MouseEvents' ); e.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); aElement.dispatchEvent(e); } }; window.navGlob.classAppend = function (anyElement, classNames) { if (window.navGlob.classCheck (anyElement,classNames) === false) { var tmpclassNames = anyElement.className + ' ' + classNames; anyElement.className = tmpclassNames.replace (/\s+/g,' ').replace (/(^\s+)|(\s+$)/g,''); } }; window.navGlob.classRemove = function (anyElement, className) { var tmpRegex = new RegExp('\\b(' + className + ')\\b', 'gi'); var tmpclassName = anyElement.className.replace (tmpRegex,' '); anyElement.className = tmpclassName.replace (/\s+/g,' ').replace (/(^\s+)|(\s+$)/g,''); }; window.navGlob.classCheck = function (anyElement, className) { var tmpclassName = ' ' + anyElement.className + ' '; return (tmpclassName.indexOf(' ' + className + ' ') > -1); }; window.navGlob.classCheckRegExp = function (anyElement, classNames) { var tmpRegExp = new RegExp('\\b(' + classNames + ')\\b'); var res = anyElement.className.match (tmpRegExp); if ((res !== null) && (res.length > 1)) { return res[1]; } else { return ''; } }; window.navGlob.initializeCompatibility = function () { if (typeof Function.apply !== 'undefined') { window.navGlob.setTimeout = function(fn, ms) { var args = arguments; function proxy() { var params = []; var i; var len = args.length; for (i = 2; i < len; i++) { params[params.length] = args[i]; } fn.apply(this, params); } return window.setTimeout(proxy, ms); }; window.navGlob.setInterval = function(fn, ms) { var args = arguments; function proxy() { var params = []; var i; var len = args.length; for (i = 2; i < len; i++) { params[params.length] = args[i]; } fn.apply(this, params); } return window.setInterval(proxy, ms); }; } else { window.navGlob.setTimeout = function(fn, ms) { var args = arguments; function proxy() { var params = []; var params_eval = ''; var i; var len = args.length; for (i = 2; i < len; i++) { params[i - 2] = args[i]; params_eval += 'params[' + (i - 2) + '],'; } params_eval = params_eval.substr(0, params_eval.length - 1); eval('fn(' + params_eval + ');'); } return window.setTimeout(proxy, ms); }; window.navGlob.setInterval = function(fn, ms) { var args = arguments; function proxy() { var params = []; var params_eval = ''; var i; var len = args.length; for (i = 2; i < len; i++) { params[i - 2] = args[i]; params_eval += 'params[' + (i - 2) + '],'; } params_eval = params_eval.substr(0, params_eval.length - 1); eval('fn(' + params_eval + ');'); } return window.setInterval(proxy, ms); }; } if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt, From) { var len = this.length; var from = Number(From) || 0; from = ((from < 0) ? Math.ceil(from) : Math.floor(from)); if (from < 0) { from += len; } while (from < len) { if ((typeof this[from] !== 'undefined') && (this[from] === elt)) { return from; } from++; } return -1; }; } if (typeof window.document.createEvent !== 'undefined') { window.navGlob.simulateMouseEvent = function (anyElement, mouseEvent) { var e = window.document.createEvent('MouseEvents'); e.initMouseEvent(mouseEvent, true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); e.preventDefault(); anyElement.dispatchEvent(e); return true; }; } else if (typeof window.document.fireEvent !== 'undefined') { window.navGlob.simulateMouseEvent = function (anyElement, mouseEvent) { anyElement.fireEvent('on' + mouseEvent); return true; }; } else { window.navGlob.simulateMouseEvent = function () { return false; }; } if (typeof window.getComputedStyle !== 'undefined') { window.navGlob.getCompStyle = function (anyElement,styleProp) { return window.getComputedStyle(anyElement,null).getPropertyValue(styleProp); }; } else if (typeof window.document.documentElement.currentStyle !== 'undefined') { window.navGlob.getCompStyle = function (anyElement,styleProp) { var a = styleProp.indexOf('-'); while (a >= 0) { styleProp = styleProp.substring(0, a) + styleProp.substring(a + 1, a + 2).toUpperCase() + styleProp.substring(a + 2, styleProp.length); a = styleProp.indexOf('-'); } return anyElement.currentStyle[styleProp]; }; } else { window.navGlob.getCompStyle = function (anyElement,styleProp) { return null; }; } if (typeof window.innerWidth !== 'undefined') { window.navGlob.getViewportWidth = function () { return window.innerWidth; }; window.navGlob.getViewportHeight = function () { return window.innerHeight; }; } else if (typeof window.document.documentElement.clientWidth !== 'undefined') { window.navGlob.getViewportWidth = function () { return window.document.documentElement.clientWidth; }; window.navGlob.getViewportHeight = function () { return window.document.documentElement.clientHeight; }; } else if (window.document.body.clientWidth) { window.navGlob.getViewportWidth = function () { return window.document.body.clientWidth; }; window.navGlob.getViewportHeight = function () { return window.document.body.clientHeight; }; } else { window.navGlob.getViewportWidth = function () { return null; }; window.navGlob.getViewportHeight = function () { return null; }; } if (typeof (window.pageXOffset) !== 'undefined') { window.navGlob.getScrollX = function () { return window.pageXOffset; }; window.navGlob.getScrollY = function () { return window.pageYOffset; }; } else if (typeof window.document.documentElement.scrollLeft !== 'undefined') { window.navGlob.getScrollX = function () { if (window.document.documentElement.scrollLeft) { return window.document.documentElement.scrollLeft; } else { return window.document.body.scrollLeft; } }; window.navGlob.getScrollY = function () { if (window.document.documentElement.scrollTop) { return window.document.documentElement.scrollTop; } else { return window.document.body.scrollTop; } }; } else if (typeof window.document.body.scrollLeft !== 'undefined') { window.navGlob.getScrollX = function () { return window.document.body.scrollLeft; }; window.navGlob.getScrollY = function () { return window.document.body.scrollTop; }; } else { window.navGlob.getScrollX = function () { return null; }; window.navGlob.getScrollY = function () { return null; }; } if (typeof window.document.documentElement.offsetParent !== 'undefined') { window.navGlob.findPosX = function (anyElement) { var curleft = 0; while (anyElement.offsetParent) { curleft += anyElement.offsetLeft; anyElement = anyElement.offsetParent; } }; window.navGlob.findPosY = function (anyElement) { var curtop = 0; while (anyElement.offsetParent) { curtop += anyElement.offsetTop; anyElement = anyElement.offsetParent; } return curtop; }; } else if (typeof window.document.documentElement.x !== 'undefined') { window.navGlob.findPosX = function (anyElement) { return anyElement.x; }; window.navGlob.findPosY = function (anyElement) { return anyElement.y; }; } else { window.navGlob.findPosX = function (anyElement) { return null; }; window.navGlob.findPosY = function (anyElement) { return null; }; } if (window.addEventListener) { window.navGlob.addEvent = function (anyElement,evType,fn) { anyElement.addEventListener(evType, fn, false); }; window.navGlob.removeEvent = function (anyElement,evType,fn) { anyElement.removeEventListener(evType, fn, false); }; } else if ((window.attachEvent) && (Function.call)) { window.navGlob.addEvent_functions = {}; window.navGlob.addEvent_functions.length = 0; window.navGlob.addEvent = function (anyElement,evType,fn) { var index = window.navGlob.addEvent_functions.length; window.navGlob.addEvent_functions[index] = function () { fn.call(anyElement); }; window.navGlob.addEvent_functions.length++; anyElement[evType + fn] = new Function('window.navGlob.addEvent_functions[' + index + ']();'); anyElement[evType + fn].index = index; anyElement.attachEvent('on' + evType, anyElement[evType + fn]); }; window.navGlob.removeEvent = function (anyElement,evType,fn) { if (anyElement[evType + fn]) { anyElement.detachEvent('on' + evType, anyElement[evType + fn]); var index = anyElement[evType+fn].index; delete window.navGlob.addEvent_functions[index]; anyElement[evType+fn] = null; } }; } else { window.navGlob.addEvent_guid = 1; window.navGlob.addEvent = function (anyElement,evType,fn) { if (!fn.$$guid) { fn.$$guid = window.navGlob.addEvent_guid++; } if (!anyElement.events) { anyElement.events = {}; } var fns = anyElement.events[evType]; if (!fns) { fns = anyElement.events[evType] = {}; if (anyElement['on' + evType]) { fns[0] = anyElement['on' + evType]; } } fns[fn.$$guid] = fn; anyElement['on' + evType] = window.navGlob.handleEvent; }; window.navGlob.removeEvent = function (anyElement,evType,fn) { if (anyElement.events && anyElement.events[evType]) { delete anyElement.events[evType][fn.$$guid]; } }; window.navGlob.handleEvent = function (event) { event = event || window.event; if (event === null) { return; } var handlers = this.events[event.type]; for (var i in handlers) { this.$$handleEvent = handlers[i]; this.$$handleEvent(event); } }; } };