var pb_media_ImageUtils = Class.create({
	getImageSize: function(imageUrl,callback){
		var image = new Image();
		image.src = imageUrl;
		if (image.width || image.height){
			var size = new Object();
			size[0] = image.width;
			size.width = image.width;
			size[1] = image.height;
			size.height = image.height;
			callback(size);
		}
		else {
			image.onload = function(){
				var size = new Object();	
				size[0] = this.width;
				size.width = this.width;
				size[1] = this.height;
				size.height = this.height;
				callback(size);		
			};
		}
	}
});

var pb_media_ImageLoader = Class.create({
	load: function(containerId,imageUrl,callback){
		var container = $(containerId);
		if (!container) return;
		container.innerHTML = pb.core.loaderAnimation.getLoaderContainerText();
		var image = new Image();
		image.src = imageUrl;
		if (image.width || image.height){
			container.innerHTML = '<img src="' + imageUrl + '"/>';
			if (callback) callback();
		}
		else {
			image.onload = function(){
				container.innerHTML = '<img style="width: ' + this.width + 'px;height: ' + this.height + 'px;" src="' + imageUrl + '"/>';
				if (callback) callback();				
			};
		}
	}
}); // pb_media_ImageLoader

var pb_media_ImagePreloader = Class.create({
	load: function(imageUrl){
		var image = new Image();
		image.src = imageUrl;
	}
}); // pb_media_ImagePreloader

var pb_media = Class.create({
	imageUtils: new pb_media_ImageUtils(),
	imagePreloader: new pb_media_ImagePreloader(),
	imageLoader: new pb_media_ImageLoader()
});
