//<!-- FadeGallery -->
// This file requires core.js
//
//
function CDomFadeGallery(a_szIndexBorderSelectColor)
{
   //
   // Public Variables
   //
   var m_szIndexBorderSelectColor = (a_szIndexBorderSelectColor) ? a_szIndexBorderSelectColor : '#000000';
   this.m_szIndexBorderSelectColor = m_szIndexBorderSelectColor;

   var m_arrSlides = new Array();
   this.m_arrSlides = m_arrSlides;

   //
   // Private Variables
   //
   var m_szCanvasID = "canvas0"
   var m_szNextCanvasID = "canvas1"
   var m_szCurrentCanvas = m_szCanvasID;

   var m_iFadePos = 10
   var m_iCurrentSlideIndex = 0
   var m_iNextSlideIndex = 1

   var m_oFadeCanvas;
   var m_iDropSlideTimerID = -1;
   //
   // Constructor
   //
   if (ie4||dom)
   {
      if(ns6)
      {
         document.write('<div style="position:relative;width:100%;height:100%;overflow:hidden"><div  id="'+m_szCanvasID+'" style="position:absolute;width:100%;height:100%;top:0;left:0;z-index:1;-moz-opacity:100"></div><div id="'+m_szNextCanvasID+'" style="position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;-moz-opacity:100"></div></div>');
      }
      else
      {
         document.write('<div style="position:relative;width:100%;height:100%;overflow:hidden"><div  id="'+m_szCanvasID+'" style="position:absolute;width:100%;height:100%;top:0;left:0;z-index:1;filter:alpha(opacity=100)"></div><div id="'+m_szNextCanvasID+'" style="position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;filter:alpha(opacity=100);"></div></div>');
      }
   }
   else
   {
      document.write('<img name="defaultslide" src="">');
   }

   function init(a_szDescClassName)
   {
      if(!a_szDescClassName) return;
      
      var oElements = et('p');
      var szClassName;
      for(var i = 0; i < oElements.length; i++)
      {
         szClassName = oElements[i].className;
         if(0 == szClassName.search(a_szDescClassName))
         {
            addSlide(oElements[i]);
         }
      }

      gotoSlide(0);
   }
   this.init = init;

   function addSlide(a_oe)
   {
      if(!a_oe) return;
      var szImageSrc = a_oe.className.split(' ')[1];
      a_oe.className = a_oe.className.split(' ')[0];
      if(!szImageSrc) return;

      var oSlide = new Object;
      oSlide.src = szImageSrc;
      oSlide.image = new Image;
      oSlide.image.src = szImageSrc;
      oSlide.index = m_arrSlides.length;
      oSlide.oElement = a_oe;
      a_oe.style.display = 'none';

      m_arrSlides.push(oSlide);

      return m_arrSlides.length;
   }
   this.addSlide = addSlide;

   function showIndex(a_szHeight)
   {
      if (ie4||dom)
      {
         m_oFadeCanvas = getFadeCanvas();
         m_oFadeCanvas.innerHTML = '';
         getAltFadeCanvas().innerHTML = '';
         var oFadeCanvasContainer = insertElement(m_oFadeCanvas, "div", {align:"center", style:"background:white;height:100%;width:100%;overflow:auto"});
         var oFadeCanvasImage;
         for(var i=0;i<m_arrSlides.length;i++)
         {
            if(ns6)
            {
               oFadeCanvasImage = insertElement(oFadeCanvasContainer, "img", {src:m_arrSlides[i].src, style:"-moz-opacity:100;background-color:white;cursor:pointer;width:100px;border:10px solid white"});
            }
            else
            {
               oFadeCanvasImage = insertElement(oFadeCanvasContainer, "img", {src:m_arrSlides[i].src, style:"filter:alpha(opacity=100);background-color:white;cursor:pointer;width:100px;height:"+a_szHeight+"px;border:10px solid white"});
            }
            if(i == m_iCurrentSlideIndex)
            {
               oFadeCanvasImage.style.borderColor = m_szIndexBorderSelectColor;
            }
            oFadeCanvasImage.onmouseover = itemMouseOver;
            oFadeCanvasImage.onmouseout = itemMouseOut;
            oFadeCanvasImage.onclick = itemClick;
            oFadeCanvasImage.setAttribute("imageindex",i);
            
            
         } //End for

         getAltFadeCanvas().innerHTML = '';
   
         var oSlide = getSlideByIndex(m_iCurrentSlideIndex);
         if(oSlide)
         {
            oSlide.oElement.style.display = 'none';
            startFade();
         }
      }
      else
      {
         var oSlide = getSlideByIndex(m_iCurrentSlideIndex);
         if(oSlide)
         {
            document.images.defaultslide.src=oSlide.src;
         }
      }
   }
   this.showIndex = showIndex;

   function nextSlide()
   {
      nextSlideIndex = getNextSlideIndex();
      return gotoSlide(nextSlideIndex);
   }
   this.nextSlide = nextSlide;
   
   function prevSlide()
   {
      prevSlideIndex = getPrevSlideIndex();
      return gotoSlide(prevSlideIndex);
   }
   this.prevSlide = prevSlide;

   function gotoSlide(a_iNewIndex)
   {
      if (ie4||dom)
      {
         m_oFadeCanvas = getFadeCanvas();
         if(!isDef(m_oFadeCanvas)) return;
         var oCurrentSlide = getSlideByIndex(m_iCurrentSlideIndex);
         var oNextSlide = getSlideByIndex(a_iNewIndex);
         if(!isDef(oCurrentSlide,oNextSlide)) return;

         oCurrentSlide.oElement.style.display = 'none';
   
         m_oFadeCanvas.innerHTML='<img src="'+ oNextSlide.src +'">'
         oNextSlide.oElement.style.display = 'block';

         startFade();
      }
      else
      {
         var oSlide = getSlideByIndex(m_iCurrentSlideIndex);
         if(oSlide)
         {
            document.images.defaultslide.src=oSlide.src;
         }
      }
      m_iCurrentSlideIndex = a_iNewIndex;
   }
   this.gotoSlide = gotoSlide; 

   function itemMouseOver(a_e)
   {
   	var e = a_e || window.event;
      var oe;
   	if(!e) return;
      if(e.target)
      {
         oe = e.target;
      }
      else if(e.srcElement)
      {
          oe = e.srcElement;
      }
   	if(oe)
   	{
         if (oe.filters)
         {
            oe.filters.alpha.opacity=50
         }
         else if (oe.style.MozOpacity)
         {
            oe.style.MozOpacity=0.5
         }
         else
         {
            //Do nothing...
         }
      }
   }
   this.itemMouseOver = itemMouseOver;

   function itemClick(a_e)
   {
   	var e = a_e || window.event;
      var oe;
   	if(!e) return;
      if(e.target)
      {
         oe = e.target;
      }
      else if(e.srcElement)
      {
          oe = e.srcElement;
      }
   	if(oe)
   	{
         var newIndex = oe.getAttribute("imageindex");
         gotoSlide(newIndex);
      }
   }
   this.itemClick = itemClick;

   function itemMouseOut(a_e)
   {
   	var e = a_e || window.event;
      var oe;
   	if(!e) return;
      if(e.target)
      {
         oe = e.target;
      }
      else if(e.srcElement)
      {
          oe = e.srcElement;
      }
   	if(oe)
   	{
         if (oe.filters)
         {
            oe.filters.alpha.opacity=100
         }
         else if (oe.style.MozOpacity)
         {
            oe.style.MozOpacity=1
         }
         else
         {
            //Do nothing...
         }
      }
   }
   this.itemMouseOut = itemMouseOut;
   //
   // Private Functions
   //
   function getSlideByIndex(a_iIndex)
   {
      if( (a_iIndex >= 0) && (a_iIndex < m_arrSlides.length) )
      {
         return m_arrSlides[a_iIndex];         
      }
      return null;
   }
   function fadepic()
   {
      if (m_iFadePos<100)
      {
         m_iFadePos+=10
         if (m_oFadeCanvas.filters)
            m_oFadeCanvas.filters.alpha.opacity=m_iFadePos
         else if (m_oFadeCanvas.style.MozOpacity)
            m_oFadeCanvas.style.MozOpacity=m_iFadePos/100
      }
      else
      {
         clearInterval(m_iDropSlideTimerID)
      }
   }
   function stopFade()
   {
      if(-1 != m_iDropSlideTimerID)
      {
         clearInterval(m_iDropSlideTimerID);               
         m_iDropSlideTimerID = -1;
      }
   }
   function startFade()
   {
      m_iFadePos=10
      m_oFadeCanvas=ei(m_szCurrentCanvas)
      if (m_oFadeCanvas.filters)
         m_oFadeCanvas.filters.alpha.opacity=m_iFadePos
      else if (m_oFadeCanvas.style.MozOpacity)
         m_oFadeCanvas.style.MozOpacity=m_iFadePos/100

      m_oFadeCanvas.style.zIndex = parseInt(m_oFadeCanvas.style.zIndex) + 2;
      stopFade();
      m_iDropSlideTimerID=setInterval(fadepic,50)
      m_szCurrentCanvas=(m_szCurrentCanvas==m_szCanvasID)? m_szNextCanvasID : m_szCanvasID
   }
   function getFadeCanvas()
   {
      nextcanvas=(m_szCurrentCanvas==m_szCanvasID)? m_szCanvasID : m_szNextCanvasID;
      return ei(nextcanvas)
   }
   
   function getAltFadeCanvas()
   {
      nextcanvas=(m_szCurrentCanvas==m_szCanvasID)? m_szNextCanvasID : m_szCanvasID;
      return ei(nextcanvas)
   }
   
   function getNextSlideIndex()
   {
      if( (m_iCurrentSlideIndex-0) < (m_arrSlides.length-1))
      {
         return (m_iCurrentSlideIndex-0) + 1;
      }
      else
      {
         return 0;
      }
   }
   function getPrevSlideIndex()
   {
      return (0==m_iCurrentSlideIndex) ? m_arrSlides.length-1 : m_iCurrentSlideIndex-1;
   }



} //End of function CFadeGallery()




