/*
// -------------------------------------------------------------------------------------
// DOM Event Handlers

	This script allows you to dynamically attach events to elements
	This is useful when you've created elements using the DOM alone

// -------------------------------------------------------------------------------------
// instructions

	
	1 - link this script to the page
	
		<script language="javascript" type="text/javascript" src="../../v1/domEventHandlers.js"></script>
	
	2 - set up eventHandler functions like this:
	
		function myEvent(evt){
			var obj = getDOMTarget(evt)					// get the DOM object via it's event
			obj.style.background-color = '#ff0000'		// do something with the object
			}
			
	3 - attach the events to your elements
	
		var div = document.getElementById('myDiv')
		addDOMEvent(div, 'mouseover', myEvent)
	

*/


// -------------------------------------------------------------------------------------
// functions

	// utility function: lists the event's properties
		function showDOMEvent(evt) {
			var obj = getDOMTarget(evt)
			var str = ''
			for(p in evt){
				str += p + ' : '+ evt[p] + '\n'
				}
			document.write('<pre>'+str+'</pre>')
			}
	
	// cross-browser function: returns the correct node
		function getDOMTarget(evt){
			var obj = evt.target ? evt.target : evt.srcElement;
			if( obj && ( obj.nodeType == 3 || obj.nodeType == 4 ) ) {
				obj = obj.parentNode;
				}
			return obj
			}
		
	// main function: adds the correct DOM event to an element
		function addDOMEvent(obj, evtName, evtHandler){
			evtName = evtName.toLowerCase()
			if(obj.addEventListener) {
				obj.addEventListener(evtName, evtHandler, false);
				}
			else if(obj.attachEvent) {
				obj.attachEvent('on' + evtName, evtHandler);
				}
			}
	
	// main function: removes a DOM event from an element
		function removeDOMEvent(obj, evtName, evtHandler){
			evtName = evtName.toLowerCase()
			if(obj.removeEventListener) {
				obj.removeEventListener(evtName, evtHandler, false);
				}
			else if(obj.detachEvent) {
				obj.detachEvent('on' + evtName, evtHandler);
				}
			}
	
