function addEvent(obj, evType, fn) {
  try {
  	if (window.addEventListener) { //FF
  		obj.addEventListener(evType, fn, true);
    	return true;
  	} else { //IE
  		var r = obj.attachEvent("on"+evType, fn);
    	return r;
  	}
  } catch(err) {
  	err = 'addEvent hiba : ' + err.message + "\n";
  	if (obj) {
  		err += 'Objektum: ' + obj.name +' ' + obj.id + ' ' + obj.tagName;
  	}
  	err += ' (event type: ' + evType + ')';
  	errorHandler(err, '', '');
  	return false;
  }
}

function removeEvent(obj, evType, fn) {
  if (obj.removeEventListener) {
    obj.removeEventListener(evType, fn, true);
    return true;
  } else if (obj.detachEvent) {
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}

function getObjectOfEvent(ev) {
	if (typeof ev.target != 'undefined') {
    	return ev.target;
	} else if (typeof ev.srcElement != 'undefined') {
    	return ev.srcElement;
    } else {
    	return(false);
    }
}
function getObj(ev) {
	return  getObjectOfEvent(ev);
}

function killEvent(ev) {
	if (ev.preventDefault) {
    	ev.preventDefault();
    	ev.stopPropagation();
   	} else {
    	ev.cancelBubble = true;
    	ev.returnValue = false;
  	}
}
addDOMLoadEvent = (function(){
    // create event function stack
    var load_events = [],
        load_timer,
        script,
        done,
        exec,
        old_onload,
        init = function () {
            done = true;

            // kill the timer
            clearInterval(load_timer);

            // execute each function in the stack in the order they were added
            while (exec = load_events.shift())
                exec();

            if (script) script.onreadystatechange = '';
        };

    return function (func) {
        // if the init function was already ran, just run this function now and stop
        if (done) return func();

        if (!load_events[0]) {
            // for Mozilla/Opera9
            if (document.addEventListener)
                document.addEventListener("DOMContentLoaded", init, false);

            // for Internet Explorer
            /*@cc_on @*/
            /*@if (@_win32)
                document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
                script = document.getElementById("__ie_onload");
                script.onreadystatechange = function() {
                    if (this.readyState == "complete")
                        init(); // call the onload handler
                };
            /*@end @*/

            // for Safari
            if (/WebKit/i.test(navigator.userAgent)) { // sniff
                load_timer = setInterval(function() {
                    if (/loaded|complete/.test(document.readyState))
                        init(); // call the onload handler
                }, 10);
            }

            // for other browsers set the window.onload, but also execute the old window.onload
            old_onload = window.onload;
            window.onload = function() {
                init();
                if (old_onload) old_onload();
            };
        }

        load_events.push(func);
    }
})();
/*
function DEMO(ev) {
	ev || (ev = window.event);
	var obj;
  	obj=getObjectOfEvent(ev);
  	if (!obj) {return true;}



	killEvent(ev);
	return false;
}
*/