// Wartości globalne - można je zmienić
var workingImage = "http://burningbird.net/wordpress/cogs04.gif";

aaManageEvent(window,'load',setUp);

// Obsługa przezroczystości działająca w różnych przeglądarkach
function setOpacity(obj,val) {
  obj.style.opacity = val;
  obj.style.MozOpacity=val;
  obj.style.KhtmlOpacity=val;
  val*=100;
  obj.style.filter = "alpha(opacity="+val+")";
} 

//
// Pobiera wciśnięty klawisz. Jeśli jest to 'x', ukrywa większy rysunek
//
function getKey(evnt){
   evnt = (evnt) ? evnt : ((window.event) ? window.event : "");
   var keycode = (evnt.which) ? evnt.which : evnt.keyCode;
   var key = String.fromCharCode(keycode).toLowerCase();
   if(key == 'x'){ restore(); }
}

// Dodaje 'nakładkę' do zawartości strony.
// Wyszukuje wszystkie rysunki klasy 'thumb',
// dodaje do każdego z nich funkcję obsługi zdarzenia click,
// dodaje taką funkcję do elementu z rozwiniętym rysunkiem 
// dołączonym w trakcie konfigurowania strony
function setUp() {
   // Dodaje kontener strony i kontener rysunku
   var oldBody = document.body.innerHTML;
   document.body.innerHTML = "<div id='mtwCover'>" + oldBody +
                             "</div>" + 
                             "<div id='mtwPicture'>" + 
                             "<img id='mtwPictureimage' src='" + workingImage + "' alt='' /></div>";


   var elem = elementClass = null;
   for (i = 0; i < document.images.length; i++) {
      elem = document.images[i];
      elementClass = elem.getAttribute("class");
      elementClass = elementClass ? elementClass : elem.getAttribute("className");
      if (elementClass == 'thumb') {
         elem.onclick=expandPic;
      }
   }

   // Dodaje funkcję obsługi zdarzeń dla rysunku
   document.getElementById('mtwPicture').onclick=restore;

}

// Rozwija zdjęcie.
//   Dodaje funkcję obsługi zdarzenia keypress w celu zarządzania zdarzeniami klawiatury,
//   zmianie przezroczystość 'nakładki', aby częściowo zakryć zawartość strony,
//   określa pozycję klikniętej miniatury i 
//   i ustawia ramy rozwijanego rysunku w tym miejscu,
//   a następnie ustawia nowy rysunek
function expandPic(evnt) {
 
   aaManageEvent(document,'keypress',getKey);
 
   evnt = (evnt) ? evnt : ((window.event) ? window.event : "");
   // Wyszukiwanie pozycji zdjęcia
   var pos = 0;
   if (window.pageYOffset) {
      pos = window.pageYOffset;
   } else if (document.documentElement && document.documentElement.scrollTop) {
      pos = document.documentElement.scrollTop
   } else if (document.body) {
      pos = document.body.scrollTop;
   }

   var evntTarget = (evnt.target) ? evnt.target : evnt.srcElement;

   // Określanie źródła rysunku
   var oParent = evntTarget.parentNode;

   document.images['mtwPictureimage'].src=oParent;

   // Zaciemnianie tła i wyświetlanie rozwiniętego rysunku
   var obj = document.getElementById('mtwPicture');
   obj.style.top = pos + "px";
   var cover = document.getElementById('mtwCover');
   setOpacity(cover,.1);
   obj.style.visibility='visible';

   // Zakończenie zdarzenia
   return false;
}

// Przywraca stan.
// Wstrzymuje oczekiwanie na zdarzenie keypress w aplikacji,
// powoduje, że nakładka staje się całkowicie przezroczysta,
// przywraca ramy obrazu z powrotem na rysunek 'roboczy',
// ukrywa element z ramami obrazu
function restore() {

   aaStopEvent(document,'keypress',getKey);

   // Przywracanie przezroczystości
   var cover = document.getElementById('mtwCover');
   setOpacity(cover,1.0);
   cover.style.backgroundColor="transparent";
   var obj = document.getElementById('mtwPicture');

   // Odkrywanie obrazu i czyszczenie elementu img
   obj.style.visibility='hidden';
   document.images['mtwPictureimage'].src=workingImage;
}
