// JavaScript Document
// Preload automático de imagens
// Por Diego Marques
// Agência DMK
dmPreLoadImg = function(){
  dmLog = true;
  dmImgPreLoad = new Array();
 
  // Pega dados das tags imgs
  $("img").each(function(){
    dmRepetido = false;
    dmSrc = $(this).attr("src");
    $.each(dmImgPreLoad,function(pos,valor){
      dmRepetido = dmRepetido == true || dmSrc == valor ? true : false;
    });
    if(!dmRepetido) dmImgPreLoad.push(dmSrc);
  });
  
   $("div").each(function(){
    dmRepetido = false;
    dmSrc = $(this).attr("backgroundImage");
    $.each(dmImgPreLoad,function(pos,valor){
      dmRepetido = dmRepetido == true || dmSrc == valor ? true : false;
    });
    if(!dmRepetido) dmImgPreLoad.push(dmSrc);
  });
  // Pega dados dos css
  dmTotalCSS = $("link").length;
  dmTotalCSSok = 0;
  $("link").each(function(){
    caminhoCSS = $(this).attr("href");
    dmCaminho = "";
    dmNiveis = caminhoCSS.split("/");
    dmNiveis = dmNiveis.length > 1 ? dmNiveis.length - 1 : 0;
    if(dmNiveis > 0){
      for(i=0;i < dmNiveis;i++){
        dmCaminho += "../";
      }
    }
    $.ajax({
      url:caminhoCSS,
      success: function(retorno){
        retorno = retorno.split(/[()'"]/); // Comentario para consertar o syntax highlight: '
        $.each(retorno,function(pos,valor){
          dmRepetido = false;
          dmExtencao = valor.replace(/\s+/g," ");
          dmExtencao = dmExtencao.replace(/^ /,"");
          dmExtencao = dmExtencao.replace(/ $/,"");
          dmExtencao = dmExtencao.slice(dmExtencao.length-4).replace(".","");
          if(dmExtencao == "jpg" || dmExtencao == "jpeg" || dmExtencao == "gif" || dmExtencao == "png"){
            $.each(dmImgPreLoad,function(pos2,valor2){
              dmRepetido = dmRepetido == true || valor.replace(dmCaminho,"") == valor2 ? true : false;
            });
            if(!dmRepetido) dmImgPreLoad.push(valor.replace(dmCaminho,""));
          }
        });
        dmTotalCSSok++;
        dmCarregarImgs();
      }
    });
  });
 
  // Carregar Imagens
  dmCarregarImgs = function(){
    if(dmTotalCSSok == dmTotalCSS){
      if(window.console && dmLog) console.log("PreLoad Images - Desenvolvido por Diego Marques\n09/01/2008 - Agência DMK - http://www.agenciadmk.com.br/\nTotal de imagens: "+dmImgPreLoad.length);
      dmLoadImage = new Array();
      dmTotalCarregado = 0;
      dmTotalErro = 0;
      if(dmImgPreLoad.length > 0){
        for(i=0;i < dmImgPreLoad.length;i++){
          dmLoadImage[i] = new Image();
          dmLoadImage[i].onload = function(){
            dmTotalCarregado++;
            if(window.console && dmLog) console.log("Imagem: "+this.src+" - OK!");
            dmFinalizaPreload();
          }
          dmLoadImage[i].onerror = function(){
            dmTotalErro++;
            if(window.console && dmLog) console.log("ERRO AO CARREGAR IMAGEM: "+this.src+" !!!");
            dmFinalizaPreload();
          }
          dmLoadImage[i].src = dmImgPreLoad[i];
        }
        dmFinalizaPreload = function(){
          if(dmImgPreLoad.length == (dmTotalCarregado + dmTotalErro)){
            if(window.console && dmLog) console.log("PreLoad Concluído!\nTotal de imagens carregadas: "+dmTotalCarregado+"\nTotal de erros: "+dmTotalErro);
          }
        }
      }
    }
  }
}
dmPreLoadImg();

 
