JKow.namespace(["DOM.Event"]);

JKow.DOM.Event.setEventHandler = function(obj, evt_name, f){
	var eh = function(){
		var _f = f;
		var _obj = obj;
		var _evt_name = evt_name;
		
		_obj['on' + _evt_name] = _f;			
	}		
	eh();
}

/******************************************************
 * addEventHandler 
 *	add event handler to a queue of handlers
 ******************************************************/
JKow.DOM.Event.eventFuncs = [];
//JKow.DOM.Event.addEventHandler = function(obj, evt_name, f){
JKow.DOM.Event.addEventHandler = function(o, e, f){
	if (o != null){
		var old_eh = null;
		
		if (typeof o['_event_queue'] == "undefined"){
			o['_event_queue'] = {};
		}
		if (typeof o['_event_queue'][e] == "undefined"){
			o['_event_queue'][e] = new Array();
			old_eh = o['on' + e];
			/* save previous event handler */
			if (typeof old_eh == "function"){ o['_event_queue'][e][0] = old_eh; }
			o['on' + e] = function(event){
				var _o = o;
				var _e = e;
				/* var _evt = event */
				var _evt = event || window.event;
				//JKow.DOM.Event._runEventHandlers(_o, _e, _evt); 
				for (var i = 0; i < _o['_event_queue'][_e].length; ++i){
					_o['_event_queue'][_e][i](_evt);
				}
				_o = null;
			}	
		} 
		o['_event_queue'][e].push(f); 
	}
}

/******************************************************
 * _runEventHandlers 
 * 	used internally to run list of handlers for object 
 ******************************************************/
JKow.DOM.Event._runEventHandlers = function(o, evt_name, event){
}

