function ImageLoader(path, callback){
	this.imgPath = path;
	this.imgObject;
	this.loadTimer;
	this.callbackObj = callback;
	
	this.init = function(){
		//start load!
		if(this.imgPath != null) this.startLoad();
	}
	
	this.setImage = function(path, callback){
		this.imgPath = path;
		this.callbackObj = callback;
		this.startLoad();
	}
	
	this.startLoad = function(){
		this.imgObject = new Image();
		this.imgObject.src = this.imgPath;
		this.imgObject.onLoad = this.onImgLoaded();
	}
	
	this.onImgLoaded = function(){
		if(this.loadTimer != null) clearTimeout(this.loadTimer);
		if(!this.imgObject.complete){
			
			//alert(this.imgObject+" ::: "+this.imgObject.complete);
			var thisObj = this;
			this.loadTimer = setTimeout(function(){ thisObj.onImgLoaded() }, 3);
		}else{
			this.onComplete();
		}
		
	}
	
	this.onComplete = function(){
		//alert("LOAD COMPLETE");
		if(this.callbackObj != null){
			//console.log(this.imgObject+" ::: "+this.imgObject.src);
			this.callbackObj.scope[this.callbackObj.func](this.imgObject);
		}
	}
	
	this.init();
}
