preloaders = Array();
preloaderImage = Array();
loadedCount = 0;
toLoadCount = 0;

function Preloader(showElement, hideElement, files){
  this.showElement= showElement;
  this.hideElement= hideElement
  this.src        = files;
  loadedCount     = 0;
}

function fileLoaded(key, fileKey){
  preloaders[key].src[fileKey].loaded = true;
  alert(preloaderImage[key][fileKey].src);
}

loadedTimer = "";

function forceLoaded(){
  loadedCount = toLoadCount;
  loaded();
}

function loaded(){
  if(loadedTimer==""){
    loadedTimer = window.setTimeout('forceLoaded()',5000);
  }
  loadedCount++;
  if(loadedCount >= toLoadCount){
    for (key in preloaders){
      hideElement = document.getElementById(preloaders[key].hideElement);
      showElement = document.getElementById(preloaders[key].showElement);
      hideElement.style.display="none";
      showElement.style.display="";
      showElement.src = preloaders[key].src[0];
      
    }
    if(document.getElementById && (hideElem = document.getElementById("hide_on_load"))){
      hideElem.style.display="none";
    }
    
  }
}

function doPreloaders(){
  for (key in preloaders){
    for(fileKey in preloaders[key].src){
      if(!preloaderImage[key]){
        preloaderImage[key] = Array();
      }
      toLoadCount++;
      preloaderImage[key][fileKey] = new Image();
      preloaderImage[key][fileKey].src = preloaders[key].src[fileKey];
      preloaderImage[key][fileKey].onload = loaded;     
    }
    
  }
}