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 ;
}