var XSplitter = XSplitter ? XSplitter : function() {
   
   var private = {
      initialized: false,
      fadeOd: null,
      ssImgs: null,
      ssImg: 1,
      scImg: null,
      scImgs: new Array()
      };

   var public = {
      init: function() {

         // Slideshow
         if (document.getElementById("ssBox")) {

            private.ssImgs = document.getElementById("ssBox").getElementsByTagName("img");

            for (i = 0; i < private.ssImgs.length; i++) {
               private.ssImgs[i].cOpacity = 0;
            }

            public.previousImage();
         }

         // Showcase
         private.scImg = document.getElementById("scImg");
         private.scImgs = new Array();
         for (i = 0; document.getElementById("scImg_" + i); i++) {
            var iEl = document.getElementById("scImg_" + i);

            private.scImgs[i] = new Image();
            private.scImgs[i].src = iEl.src.replace("small", "big");

            addListener(iEl, "mouseover", XSplitter.swapImg);
         }

         private.initialized = true;
      },

      fade: function() {
         
         var cImg = private.ssImgs[private.ssImg];

         if (cImg.cOpacity > .99) {
            clearInterval(private.fadeId);
            setTimeout(public.nextImage, 4000);
            cImg.cOpacity = 1;
         }

         cImg.cOpacity += .05;
         cImg.style.opacity = cImg.cOpacity;
      },

      previousImage: function() {
         private.ssImgs[private.ssImg].style.display = 'none';
         private.ssImgs[private.ssImg].cOpacity = 0;

         clearInterval(private.fadeId);
         private.ssImg = private.ssImg != 0 ? (private.ssImg - 1) : private.ssImgs.length - 1;
         private.fadeId = setInterval(XSplitter.fade, 10);

         private.ssImgs[private.ssImg].style.display = 'block';
      },

      nextImage: function() {
         private.ssImgs[private.ssImg].style.display = 'none';
         private.ssImgs[private.ssImg].cOpacity = 0;

         clearInterval(private.fadeId);
         private.ssImg = private.ssImgs[private.ssImg + 1] ? (private.ssImg + 1) : 0;
         private.fadeId = setInterval(XSplitter.fade, 10);

         private.ssImgs[private.ssImg].style.display = 'block';
      },

      swapImg: function() {
        private.scImg.src = private.scImgs[this.id.substr(6, 1)].src;
      }

   };

   return public;
}();
addListener(window, 'load', XSplitter.init);
