function ImagePreloader(images, callBack) {
   // store the call-back
	this.callBack = callBack;
   // initialize internal state.
   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = [];
   // record the number of images.
   this.nImages = images.length;
   // for each image, call preload()
   for ( var i = 0; i < images.length; i++ ) {
//      this.preload("http://localhost/dopamine/" + images[i]);  // PLEASE CHANGE TO ABSOLUTE PATH !
      this.preload(images[i]);
   }
}

ImagePreloader.prototype.preload = function(image) {
   // create new Image object and add to array
   var oImage = new Image();
   this.aImages.push(oImage);
   // set up event handlers for the Image object
   oImage.onload = ImagePreloader.prototype.onload;
   oImage.onerror = ImagePreloader.prototype.onerror;
   oImage.onabort = ImagePreloader.prototype.onabort;
   // assign pointer back to this.
   oImage.oImagePreloader = this;
   oImage.bLoaded = false;
   // assign the .src property of the Image object
   oImage.src = image;
}

ImagePreloader.prototype.onComplete = function() {
   this.nProcessed++;
   if ( this.nProcessed == this.nImages ) {
      this.callBack(this.aImages, this.nLoaded);
   }
};

ImagePreloader.prototype.onload = function() {
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();
};

ImagePreloader.prototype.onerror = function() {
   this.bError = true;
   this.oImagePreloader.onComplete();
};

ImagePreloader.prototype.onabort = function() {
   this.bAbort = true;
   this.oImagePreloader.onComplete();
};


function preLoadSite() {
//	$("loadingSite").style.visibility = "show";

	var images = [ 'images/logo_big.png', 'images/content_center.png', 
		'images/content_left.png' , 'images/container_bg.jpg', 'images/content_right.png', 
		'images/menu_ornament.jpg', 'images/menu_playlists_normal.jpg', 'images/menu_register_normal.jpg',
		'images/menu_galleries_normal.jpg', 'images/menu_events_normal.jpg', 'images/menu_forum_normal.jpg', 
		'images/menu_crew_normal.jpg', 'images/bottom_border.jpg', 'images/menu_main_normal.jpg' ];
	var ip = new ImagePreloader(images, onPreload);	
/*	alert("gonna move out"); */
}

function onPreload(aImages, nImages) {
	if(nImages != aImages.length) {
		alert("Site Cannot be loaded ! please review your network settings");
		return;	// die..
	}
	loadSite();
}

preLoadSite(); // trigger loading		
