/**
 * =============================================================
 *  MyLib.js
 * =============================================================
 *  @copyright	COPYRIGHT (C) 2009 MdN Corporation., ALL RIGHTS RESERVED.
 *  @version	$Id
 */

if(!MyLib) var MyLib = new Object();

MyLib.event = {
	observe: function(target, eventType, listener, useCaptrue){
		useCaptrue = useCaptrue || false;

		if(target.addEventListener){
			target.addEventListener(eventType, listener, useCaptrue);
		}else if(target.attachEvent){
			this.__addEvent(target, eventType, listener);
		}
	},
	stop: function(event){
		event = window.event || event;

		if(typeof(event.preventDefault) == "function"){
			event.preventDefault();
			event.stopPropagation();
		}else{
			event.returnValue = false;
			event.cancelBubble = true;
		}
	},
	__addEvent: function(target, eventType, listener){
		if(target["__" + eventType] == undefined){
			var exists = target["on" + eventType];
			target["__" + eventType] = new Array();

			if(exists != null){
				target["__" + eventType].push(exists);
			}
			target["on" + eventType] = this.__reflectEvent;
		}else{
			for(var i in target["__" + eventType]){
				if(target["__" + eventType][i] === listener) return;
			}
		}
		target["__" + eventType].push(listener);
	},
	__reflectEvent: function(){
		var event = window.event;

		for(var i in this["__" + event.type]){
			this["__" + event.type][i].apply(this, [event]);
		}
	}
}

