/*
* @class Event
* @author Lindsay Evans
* @version 3.0
*/

function Event(){

		try{
			var e = (arguments[0] == null) ? event : arguments[0];
			if(e.target == null){
				e.target = e.srcElement;
			}

			if(e.currentTarget == null){
				e.currentTarget = e.target;
			}

			if(typeof e.relatedTarget == 'undefined'){
				e.relatedTarget = e.toElement;
			}

			if(e.layerX == null || e.layerY == null){
				e.layerX = e.x;
				e.layerY = e.y;
			}

			for(var i in e){
				this[i] = e[i];
			}

			// IE Mac doesn't pick up these two in the loop above, need to be manually assigned
			this.layerX = e.layerX;
			this.layerY = e.layerY;

		}catch(_e){
//			alert('Event error: '+_e);
		}

}

/* Window load queue */
function __windowLoad(){
	for(var i in __eventQueue){
		__eventQueue[i](); // Was __eventQueue[i].call(window);, but IE 5 doesn't support Function.call
	}
}

var __eventQueue = new Array();
function addLoadEvent(p_fFunction){
	__eventQueue[__eventQueue.length] = p_fFunction;
	window.onload = __windowLoad;
}
