﻿window.fast.event = new (function() {
    this.get = function(e) {
        return e ? e : window.event;
    };
    this.mouse = function(e) {
        var posx = 0;
        var posy = 0;
        if (!e) var e = window.event;
        if (e.pageX || e.pageY) {
            posx = e.pageX;
            posy = e.pageY;
        }
        else if (e.clientX || e.clientY) {
            posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
        };
        return { x: posx, y: posy };
    };
   
	
	this.add = function(el,type,handler) {
		if( document.addEventListener ) {
			$(el).e.addEventListener( type, handler, false );
		} else if( document.attachEvent  ) {
			$(el).e.attachEvent("on"+type, handler );
		} else {
			$(el).e["on"+type] = handler;
		}
	};
	
	this.remove = function(el,type,handler) {
		if( document.removeEventListener ) {
			$(el).e.removeEventListener( type, handler, false );
		} else if( document.detachEvent  ) {
			$(el).e.detachEvent("on"+type, handler );
		} else {
			$(el).e["on"+type] = null;
		}
	} 
});

fast.register("onready", function(onevent) {
    if (onevent) {
        var self = this;
        var inter = setInterval(function() {
            if ($(self.id).e) {
                clearInterval(inter);
                onevent();
            };
        }, 10);
    };
});

fast.register("onmouseover", function(onevent) {
    if (onevent) {
        var self = this;
		fast.event.add(self,"mouseover",function(){
			onevent(self);
		});
	};
});

fast.register("onmouseout", function(onevent) {
    if (onevent) {
        var self = this;
		fast.event.add(self,"mouseout",function(){
			onevent(self);
		});
	};
});

fast.register("onfocus", function(onevent) {
    if (onevent) {
        var self = this;
		fast.event.add(self,"focus",function(){
			onevent(self);
		});
	};
});

fast.register("onblur", function(onevent) {
    if (onevent) {
        var self = this;
		fast.event.add(self,"blur",function(){
			onevent(self);
		});
	};
});