function addEvent(elm, evType, fn, useCapture) { // cross-browser evenet handling for IE5+, NS6+ and Mozilla/Gecko by Scott Andrew if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture) ; return true ; } else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn) ; return r ; } else { elm['on' + evType] = fn ; } } function get_target(e) { if (window.event && window.event.srcElement) return window.event.srcElement ; if (e && e.target) return e.target ; if (!el) return false ; } function climb_dom(e, tag_type) { while (e.nodeName.toLowerCase() != tag_type && e.nodeName.toLowerCase() != 'html') e = e.parentNode ; return (e.nodeName.toLowerCase() == 'html') ? null : e ; }