// Ten skrypt pochodzi z serwisu "JavaScript w przykladach"
// Copyright (C) 1999 Maciej Szczepaniak <maciek@wls1.ch.pwr.wroc.pl>
// 
// Koniecznie przeczytaj pelna informacje o licencji pod adresem:
//     http://javascript.jest.o.k.pl/archiwum.html#l
// Pamietaj, ze nie mozesz usuwac tej informacji, a jesli 
// zmodyfikujesz ten skrypt, musisz o tym tutaj napisac.

// Czy wyświetlać dodatkowe komunikaty o błędach:
var zmieniaczDebug = true;

// Tablica obrazkow do podmieniania - przygotujObraz() ją wypełnia:
var obrazki = new Array();
// J.w, ale zamiast obrazków przechowuje wartości logiczne mówiące, 
// czy przy ładowaniu obrazka wystąpił błąd:
var obrazkiBlad = new Array();

// - - - - - - - - - - - - - - - - - 

// Zmienia obrazek o określonej NAZWIE na zadaną WERSJĘ:
// (Pusta deklaracja funkcji, do przedefiniowania przy
// inicjacji, w fukcji zmieniaczInit())
function zmienObraz(nazwa, wersja) {}

// Przygotowuje do późniejszego wyświetlenia WERSJĘ obrazka 
// kojarząc ją z plikiem z podanej ŚCIEŻKI.
function przygotujObraz(wersja, sciezka) {  
   if (!document.images) return; // jeśli stara przeglądarka, wyjdź
   // utwórz nowy obiekt - obraz dla konkretnej wersji:
   var wer = obrazki[wersja] = new Image();
   // jeszcze nie mógł wystąpić błąd przy ładowaniu...
   obrazkiBlad[wersja] = false;
   // ...ale jeśli to się stanie, chcemy o tym wiedzieć:
   wer.onerror = 
      new Function('obrazkiBlad['+q(wersja)+']=true');
   // rozpocznij ściąganie obrazka z serwera:
   wer.src = sciezka;
}

// Uruchamia cały mechanizm (powinna być wywołana w zdarzeniu 
// onload dla <body>).
function zmieniaczInit() {
   if (document.images) 
      if (navigator.userAgent.indexOf('Opera')!=-1) 
         zmienObraz= new Function('nazwa', 'wersja',   // Opera
            'document.images[nazwa].src=obrazki[wersja].src')
            // Opera nie chce preloadować obrazków :-(
      else zmienObraz= new Function('nazwa', 'wersja', // IE i NN
         'var wer = obrazki[wersja];                            \n'+
         'if (wer.complete && !obrazkiBlad[wersja])             \n'+
         // jeśli OK, zmień obrazek:
         '   document.images[nazwa].src = wer.src               \n'+
         'else if (zmieniaczDebug)                              \n'+
         // jeśli nie, możemy o tym poinformować:
         '  alert("Zamiana obrazka "+nazwa+" na wersję "+wersja+\n'+
         '     " - "+(obrazkiBlad[wersja])?                     \n'+
         '     "wystąpił błąd":"nie gotowy");                   \n'
         );
}

// Funkcja pomocznicza - zwraca wartość zmiennej w cudzysłowach, 
// jeśli to jest string i nie zmienioną w przeciwnym przypadku.
function q(x) {
   return (typeof(x)=='string') ? '"'+x+'"' : x;
}

// =================================================

//przygotujObraz(1,'1.gif');
//przygotujObraz(2,'2.gif');