var topImages=new Array();
var galeriaImages=new Array();
var miscImages=new Array();
var fkImages=new Array();
fkImages[0] = "galeria/kategoriak/csalad/fk_csalad.jpg";
fkImages[1] = "galeria/kategoriak/picik/fk_picik.jpg";
fkImages[2] = "galeria/kategoriak/nagyok/fk_nagyok.jpg";
fkImages[3] = "galeria/kategoriak/kismama/fk_kismama.jpg";
fkImages[4] = "galeria/kategoriak/portre/fk_portre.jpg";
fkImages[5] = "galeria/kategoriak/ezaz/fk_ezaz.jpg";

var topimageCount=0;
var miscimageCount=0;
var galeriaimageCount=0;
var fk_imgpreloader;
var misc_imgpreloader;
var top_imgpreloader;
var galeria_imgpreloader;

var dbgImg = new Array();

function loadingFinished() {
    try {
	hideLoading();
	lfooldal.innerHTML = '<a href="dorifoto_home" onclick="hideFooldal()">Belépés az oldalra</a>';
    } catch (e) {
    }
}

function ImagePreloader(images, callback) {
// images is an array of src
   // store the callback
   this.callback = callback;

   // initialize internal state.
   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;

   // record the number of images.
   this.nImages = images.length;

   // for each image, call preload()
   for ( var i = 0; i < images.length; i++ ) {
	if (images[i] != undefined && images != undefined) this.preload(images[i]);
    }

}

ImagePreloader.prototype.preload = function(image) {
// image is an url string

   // 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);
   }

    try {
	if (this.nLoaded < this.nImages) lfooldal.innerHTML = parseInt(100*this.nLoaded / this.nImages) +"%";
    } catch(e) {
    }
}

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 cacheImages(imagelista) {
// cache images 
//if (! imagesLoaded && typeof(imgpreloader) == 'undefined')
if (imagelista.compare(topImages)) top_imgpreloader = new ImagePreloader(imagelista, loadingFinished);
if (imagelista.compare(galeriaImages)) galeria_imgpreloader = new ImagePreloader(imagelista, loadingFinished);
if (imagelista.compare(fkImages)) fk_imgpreloader = new ImagePreloader(imagelista, loadingFinished);
if (imagelista.compare(miscImages)) misc_imgpreloader = new ImagePreloader(imagelista, loadingFinished);

}

Array.prototype.compare = function (ta) {
    if (this.length != ta.length) return false;
    for (var i=0; i<ta.length; i++) {
	if (this[i].compare) {
	    if (! this[i].compare(ta[i])) return false;
	}
        if (this[i] !== ta[i]) return false;
    }
    return true;
}

