/* * Cross-browser event handling, by Scott Andrew */ function addEvent(element, eventType, lamdaFunction, useCapture) { if (element.addEventListener) { element.addEventListener(eventType, lamdaFunction, useCapture); return true; } else if (element.attachEvent) { var r = element.attachEvent('on' + eventType, lamdaFunction); return r; } else { return false; } } /* * Kills an event's propagation and default action */ function knackerEvent(eventObject) { if (eventObject && eventObject.stopPropagation) { eventObject.stopPropagation(); } if (window.event && window.event.cancelBubble ) { window.event.cancelBubble = true; } if (eventObject && eventObject.preventDefault) { eventObject.preventDefault(); } if (window.event) { window.event.returnValue = false; } } /* * Safari doesn't support canceling events in the standard way, so we must * hard-code a return of false for it to work. */ function cancelEventSafari() { return false; } /* * Cross-browser style extraction, from the JavaScript & DHTML Cookbook * */ function getElementStyle(elementID, CssStyleProperty) { var element = document.getElementById(elementID); if (element.currentStyle) { return element.currentStyle[toCamelCase(CssStyleProperty)]; } else if (window.getComputedStyle) { var compStyle = window.getComputedStyle(element, ''); return compStyle.getPropertyValue(CssStyleProperty); } else { return ''; } } /* * CamelCases CSS property names. Useful in conjunction with 'getElementStyle()' * From */ function toCamelCase(CssProperty) { var stringArray = CssProperty.toLowerCase().split('-'); if (stringArray.length == 1) { return stringArray[0]; } var ret = (CssProperty.indexOf("-") == 0) ? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1) : stringArray[0]; for (var i = 1; i < stringArray.length; i++) { var s = stringArray[i]; ret += s.charAt(0).toUpperCase() + s.substring(1); } return ret; } /* * Disables all 'test' links, that point to the href '#', by Ross Shannon */ function disableTestLinks() { var pageLinks = document.getElementsByTagName('a'); for (var i=0; i