function assignSrc(src,z,myNewIndex,myZ) {
	document.getElementById('tileImg'+z+"_"+myNewIndex).src = src;
	if (!stopRefresh) {
		if (layerVisibility[z]) {
			loadedTilesObjects[z][myNewIndex].unhide()
			document.getElementById('tileImg'+z+"_"+myNewIndex).style.display = 'block';
		}
	}
	tilesToLoad--;
	if (tilesToLoad==0 && performingRefresh) {
		if (myZ==map.getZoomLevel()) {
			showAllTiles();
			performingRefresh = false;
			stopRefresh = false;
		} else {
			tilePerRow = Math.pow(2,zoom.google.to_native(zoom.yahoo.to_universal(map.getZoomLevel())));
			equator = (tilePerRow/2)-1;
			stopRefresh = false;
			refreshLayers();
		}
	}
}

function ImagePreloader(src, z, myNewIndex,myZ) {
   tilesToLoad++;
   this.callback = function() {
		assignSrc(src,z,myNewIndex,myZ);
   }

   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;

   this.nImages = 1;

   this.preload(src);
}

ImagePreloader.prototype.preload = function(image) {
   var oImage = new Image;
   this.aImages.push(oImage);

   oImage.onload = ImagePreloader.prototype.onload;
   oImage.onerror = ImagePreloader.prototype.onerror;
   oImage.onabort = ImagePreloader.prototype.onabort;

   oImage.oImagePreloader = this;
   oImage.bLoaded = false;

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