// JavaScript Document

function Fade () {
   var timerFadeIn = new Array (); //tablica dla timer, bo mozemy kilka elementow naraz nacisnac
   var timerFadeOut = new Array ();
   
   var opacityValue = new Array (); //tablica dla wartosci przezroczystosci - gdy mozna nacisnac wiele elementow naraz

   Fade.prototype.clear = function (id) {
      clearInterval (timerFadeIn[id]);
      clearInterval (timerFadeOut[id]);
   }

   if (typeof Fade._initialized == "undefined") {
   //---------- FADE IN ----------------//
      Fade.prototype.fadeIn = function (oDiv, offset, timeLatency) {
               var id = oDiv.id;
         clearInterval (timerFadeIn[id]);
         clearInterval (timerFadeOut[id]);

         mozi = false;

         
         opacityValue[id] = oDiv.style.MozOpacity || oDiv.style.opacity || oDiv.style.KhtmlOpacity || (oDiv.filters.alpha.opacity / 100);

         if (opacityValue[id] < 1) {
            timerFadeIn[id] = setInterval (function () {
               if (opacityValue[id] < 1) {
                  
                  if (oDiv.style.opacity = parseFloat(oDiv.style.opacity) + parseFloat(offset)) {
                     moze = true;
                  }
                  if (czyIE ()) {
                     oDiv.style.filter =  "alpha(opacity = " + (parseFloat(oDiv.filters.alpha.opacity) + parseFloat(offset) * 100) +")";
                  }
                  
                  if (!mozi) {
                     oDiv.style.MozOpacity = parseFloat(oDiv.style.MozOpacity) + parseFloat(offset);
                     oDiv.style.KhtmlOpacity = parseFloat(oDiv.style.KhtmlOpacity) + parseFloat(offset);
                  }
                  
                  opacityValue[id] = parseFloat(opacityValue[id]) + parseFloat(offset);
               } else {
                  clearInterval (timerFadeIn[id]);
               }
            }, timeLatency);
            
         }
         
         
      }
   
   //---------- FADE OUT -------------//
      Fade.prototype.fadeOut = function (oDiv, offset, timeLatency) {
         var id = oDiv.id;         
         clearInterval (timerFadeOut[id]);
         clearInterval (timerFadeIn[id]);
         mozi = false;
         
         opacityValue[id] = oDiv.style.MozOpacity || oDiv.style.opacity || oDiv.style.KhtmlOpacity || (oDiv.filters.alpha.opacity / 100);
         if (opacityValue[id] > 0.1) {
            timerFadeOut[id] = setInterval (function () {
               if (opacityValue[id] > 0.1) {

                  if (oDiv.style.opacity = parseFloat(oDiv.style.opacity) - parseFloat(offset)) {
                     mozi = true;
                  }  

                  if (czyIE ()) {
                     oDiv.style.filter =  "alpha(opacity = " + (parseFloat(oDiv.filters.alpha.opacity) - parseFloat(offset) * 100) +")";
                  }
                  
                  if (!mozi) {
                     oDiv.style.MozOpacity = parseFloat(oDiv.style.MozOpacity) - parseFloat(offset);
                     oDiv.style.KhtmlOpacity = parseFloat(oDiv.style.KhtmlOpacity) - parseFloat(offset);
                  }
                  opacityValue[id] = parseFloat(opacityValue[id]) - parseFloat(offset);
               } else {
                  clearInterval (timerFadeOut[id]);
               }
            }, timeLatency);
            
         }     
      }
   
   //---------- SET OPACITY ---------//
      Fade.prototype.setOpacity = function (element, value) {
         element.style.MozOpacity = value; // -moz-opacity
         element.style.opacity = value;
         element.style.filter = "alpha(opacity = " + (value * 100) + ")";

         element.style.KhtmlOpacity = value; //-khtml-opacity    
      }
         
      Fade._initialized = true;
   }
}


function fadeInit () {
   fade = new Fade ();
}

