function addListener(element, type, expression, bubbling) {
	bubbling = bubbling || false;
	
	if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else {
		return false;
	}
}

var ImageLoader = function(url){
	this.url = url;
	this.image = null;
	this.element = null;
	this.loadEvent = null;
};

ImageLoader.prototype = {
	load:function(image){
		this.image = image;
		var url = this.url;
		var image = this.image;
		var loadEvent = this.loadEvent;
		var element = this.element;
		
		addListener(this.image, 'load', function(e){
			if(loadEvent != null){
				loadEvent(url, image, element);
			}
		}, false);
		
		this.image.src = this.url;
	},
	
	getImage:function(){
		return this.image;
	}
};
