function addEvent(el, eventName, callback) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + eventName, callback);
	} else if (el.addEventListener) { // all of the world / W3C
		el.addEventListener(eventName, callback, true);
	} else {
		el["on" + eventName] = callback;
	}
}

function removeEvent (el, eventName, callback) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + eventName, callback);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(eventName, callback, true);
	} else {
		el["on" + eventName] = null;
	}
}


function stopEvent (ev) {
	ev || (ev = window.event);
	if (el.detachEvent) { // IE
		ev.cancelBubble = true;
		ev.returnValue = false;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
	return false;
}


