/*
Webshark Javascript Extensions
	EVENT HANDLER
		Version: 1.0

		History: 
		1.0 @ G-Lex
			- Első verzió
*/

/*
Események:
UI:
- DOMFocusIn - Amikor az elem fókuszt kap
- DOMFocusOut - Amikor az elem elveszti a fókuszt
- DOMActivate - Amikor az elembe kattintanak, vagy egy kombot nyomnak le benne

EGÉR:
- click
- mousedown
- mouseup
- mouseover
- mousemove
- mouseout

MUTÁCIÓ:
- DOMSubtreeModified
- DOMNodeInserted
- DOMNodeRemoved
- DOMNodeRemovedFromDocument
- DOMNodeInsertedIntoDocument
- DOMAttrModified
- DOMCharacterDataModified

HTML ESEMÉNYEK:
- load
- unload
- abort
- error
- select
- change
- submit
- reset
- focus
- blur
- resize
- scroll

*/

var wsEvents = new Object();


wsEvents = {

	register: function( evnt, func, o ) {

		if ( typeof(func) != 'function' )
		{
			return false;
		}

		if ( typeof(o) == 'undefined' )
		{
			o = window;
		}

		if (o.addEventListener) {
			o.addEventListener(evnt, func, false);

		} else if (o.attachEvent) {
		
			if (!o._listeners) {
				o._listeners = new Array();
			}

			if (!o._listeners[evnt]) {
				o._listeners[evnt] = new Array();
			}

			var workaroundFunc = function() {
				func.apply(o, new Array());
			}

			o._listeners[evnt][func] = workaroundFunc;
			o.attachEvent('on' + evnt, workaroundFunc);
		}
	},

	unRegister: function( evnt, func, o ) {
		if ( typeof(func) != 'function' )
		{
			return false;
		}

		if ( typeof(o) == 'undefined' )
		{
			o = window;
		}

		if (o.removeEventListener) {
			o.removeEventListener(evnt, func, false);

		} else if (o.detachEvent) {

			if (o._listeners && o._listeners[evnt] && o._listeners[evnt][func]) {
				o.detachEvent('on' + evnt, o._listeners[evnt][func]);
			}

		}

	}

}


