// Niniejszy skrypt pochodzi z serwisu "JavaScript w przykladach"     
// Copyright (C) 1999 Maciej Szczepaniak <maciek@wls1.ch.pwr.wroc.pl> 
                                                                      
// Skrypt objety jest licencja GNU General Public License.            
// Koniecznie przeczytaj pelna informacje o licencji pod adresem:     
//     http://javascript.jest.o.k.pl/archiwum.html#l                  
                                                                      
                                                                      
var Imgi = new Array(); // Tablica obrazków                           
var Bledy = 0;          // Liczba błędów                              
var preloadTimer;       // Timer używany dalej                        
var preloadOK = ''      // Kod do wykonania po zakończeniu ładowania  
var preloadBlad = ''    // j.w., ale jeśli wystąpi jakiś błąd         
                                                                      
// rozpoczyna ścišganie obrazka                                       
function preload(url) {                                               
   if (document.images) {                                             
      var i = Imgi.length;                                            
      Imgi[i] = new Image();                                          
      Imgi[i].onerror = preloadOnError;                               
      Imgi[i].src = url;                                              
   }                                                                  
}                                                                     
                                                                      
// wywyoływana, jeśli wystąpił jakiś błąd - ustawia flagę Blad        
function preloadOnError() {                                           
   Bledy++;                                                           
}                                                                     
                                                                      
// ustala, co należy zrobić po zakończeniu preloadu, uruchamia pętlę  
function preloadStart(ok, blad) {                                     
   preloadOK = ok;                                                    
   preloadBlad = blad;                                                
   preloadCheck();                                                    
}                                                                     
                                                                      
// sprawdza, czy ładowanie się już zakończyło                         
function preloadCheck() {                                             
   var i=0;                                                           
   var l=Imgi.length;                                                 
   var b = Bledy;                                                     
   // Trochę zagęszczonego kodu:                                      
   while (i<l && Imgi[i].complete || b-->0) i++;                      
   if (i>=l) // to już wszystkie (wyjście z pętli na 1. warunku)      
      if (Bledy==0)                                                   
         eval(preloadOK)                                              
      else                                                            
         eval(preloadBlad)                                            
   else // któryś nie był ukończony                                   
      preloadTimer = setTimeout('preloadCheck()',100);                
}   