/* FILE ARCHIVED ON 1:01:33 Nov 3, 2016 AND RETRIEVED FROM THE AN OPENWAYBACK INSTANCE ON 13:17:11 Sep 26, 2024. JAVASCRIPT APPENDED BY OPENWAYBACK, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ //------------------------------------------------ // Determine the browser type //------------------------------------------------ var isOpera = navigator.userAgent.indexOf("Opera") > -1; var isIE = navigator.userAgent.indexOf("compatible") > -1 && navigator.userAgent.indexOf("MSIE") > -1 && !isOpera; //------------------------------------------------------------- // Event related helper that Registers a handler (fnHandler) // to Element (target) for events of type (evenType) in a // into account the browsers features. //-------------------------------------------------------------- var EventUtil = new Object; EventUtil.addEventHandler = function (target, eventType, fnHandler) { if(typeof target == 'string') target = document.getElementById(target); if (target.addEventListener) { target.addEventListener(eventType, fnHandler, false); } else if (target.attachEvent) { target.attachEvent("on" + eventType, fnHandler); } else { target["on" + eventType] = fnHandler; } }; EventUtil.addFocusHandler = function (target, fnHandler) { if(typeof target == 'string') target = document.getElementById(target); if (target.addEventListener) { target.addEventListener('focus', fnHandler, true); } else if (target.attachEvent) { target.attachEvent('onfocusin', fnHandler); } else { target['onfocus'] = fnHandler; } }; EventUtil.addBlurHandler = function (target, fnHandler) { if(typeof target == 'string') target = document.getElementById(target); if (target.addEventListener) { target.addEventListener('blur', fnHandler, true); } else if (target.attachEvent) { target.attachEvent('onfocusout', fnHandler); } else { target['onblur'] = fnHandler; } }; //------------------------------------------------------------- // Event related helper that Removes a handler (fnHandler) // from Element (target) for events of type (evenType) taking // into account the browsers features. //-------------------------------------------------------------- EventUtil.removeEventHandler = function (target, eventType, fnHandler) { if(typeof target == 'string') target = document.getElementById(target); if (target.removeEventListener) { target.removeEventListener(eventType, fnHandler, false); } else if (target.detachEvent) { target.detachEvent("on" + eventType, fnHandler); } else { target["on" + eventType] = null; } }; //------------------------------------------------------------- // Makes IE events look like W3C events //-------------------------------------------------------------- EventUtil.formatEvent = function (theEvent) { if (isIE) { theEvent.charCode = (theEvent.type == "keypress") ? theEvent.keyCode : 0; theEvent.isChar = (theEvent.charCode > 0); theEvent.pageX = theEvent.clientX + document.body.scrollLeft; theEvent.pageY = theEvent.clientY + document.body.scrollTop; theEvent.preventDefault = function () { this.returnValue = false; }; if (theEvent.type == "mouseout") { theEvent.relatedTarget = theEvent.toElement; } else if (theEvent.type == "mouseover") { theEvent.relatedTarget = theEvent.fromElement; } theEvent.stopPropagation = function () { this.cancelBubble = true; }; theEvent.target = theEvent.srcElement; theEvent.time = (new Date).getTime(); } return theEvent; }; //----------------------------------------------------------- // Get the current event which will always look like a W3C Event //------------------------------------------------------------- EventUtil.getEvent = function() { if (window.event) { return this.formatEvent(window.event); } else { return EventUtil.getEvent.caller.arguments[0]; } }; //----------------------------------------------------------- // Expects the ids of a scrollable area and the element // that we wish to keep at the top of the scrollable area. // It finds the elements and installs a 'scroll' event handler // forces elemenAtTopId to th etop every time scrolling occurs. // NOTE: The elemenAtTopId must be a dynamic element, that is, one whose // position: CSS style must be something other that static. //------------------------------------------------------------- EventUtil.addScollTopFixedLine = function(scrollAreaID, elemenAtTopId) { var scrollArea = document.getElementById(scrollAreaID); var handler = function(e) { var theEvent = EventUtil.getEvent(); var hdr = document.getElementById(elemenAtTopId); if(hdr) { hdr.style.top = scrollArea.scrollTop; } theEvent.stopPropagation(); }; if(scrollArea) { EventUtil.addEventHandler(scrollArea, "scroll", handler); } return handler; }; EventUtil.fireOnClick = function(target) { if (typeof target == 'string') { target = document.getElementById(target); } if (target) { if (target.dispatchEvent)//Mozilla { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); target.dispatchEvent(evt); } else if(target.fireEvent)//MSIE { target.fireEvent("onclick"); } } }