var ns4 = false;
var opera = false;
var iemac = false;
var safari= false;
var slideShowSpeed = 2000;
var crossFadeDuration = 3;
var previousSelectedIndex = null;
var _captionLayer= null;
var _captionFrame = null;
var lastshow_id = -1;
var slideshow = null;
var xsliding = false;

nua = navigator.userAgent;
if( navigator.appName == "Netscape" )  ns4=(parseInt(navigator.appVersion) == 4);
opera = (nua.toLowerCase().indexOf('opera')!=-1);
iemac = ((nua.toLowerCase().indexOf('msie')!=-1) && (nua.toLowerCase().indexOf('mac')!=-1));
safari = (nua.toLowerCase().indexOf('safari')!=-1);


function openCI(sl,initialIndex,id)
{
var curimg = document.images['mainview' + id];
var sli = sl.slides[initialIndex];
  curimg.src = sli.url;
  curimg.height = sli.height;
  curimg.width = sli.width;

  sl.currentindex = initialIndex;
  writeCaption(sl,id);
}
 
function captionFrame()
{
   if(!_captionFrame)  _captionFrame = document.captionFrameiLayer;
   return _captionFrame;
}
 
function captionLayer()
{
   if(! _captionLayer)   _captionLayer = document.captionFrameiLayer.document.captionFrame;
   return _captionLayer;
}
 
function writeCaption(ss,id)
{
   if (ns4)
   {
//        captionLayer().document.write(ss.slides[ss.currentindex].caption);
//        captionLayer().document.close();
   }
   else
   {
       _captionLayer = document.getElementById('captionDiv_' + id);
       if (_captionLayer != null)
       _captionLayer.innerHTML = ss.slides[ss.currentindex].caption;
   }
}

function ImagePreloader(images,id,ss,callback)
{
   this.callback = callback;
   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;
   this.nImages = images.length;
   this.id = id;
   this.ss = ss;
   for ( var i = 0; i < images.length; i++ )  this.preload(images[i]);
}

ImagePreloader.prototype.preload = function(ima)
{
   var oImage = new Image;
   if (!iemac) this.aImages.push(oImage);
   oImage.onload = ImagePreloader.prototype.onload;
   oImage.onerror = ImagePreloader.prototype.onerror;
   oImage.onabort = ImagePreloader.prototype.onabort;
   oImage.oImagePreloader = this;
   oImage.bLoaded = false;
   oImage.src = ima;
}

ImagePreloader.prototype.onComplete = function()
{
   this.nProcessed++;
   if ( this.nProcessed == this.nImages ) { this.callback(this.aImages,this.id,this.ss,this.nLoaded);   }
}

ImagePreloader.prototype.onload = function()
{
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onerror = function()
{
   this.bError = true;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onabort = function()
{
   this.bAbort = true;
   this.oImagePreloader.onComplete();
}

function onPreload(aImages,id,ss,nImages)
{
   if ( nImages == 1 )
   {
     document.images['mainview' + id].src = ss.slides[ss.currentindex].url;
     document.images['mainview' + id].height = ss.slides[ss.currentindex].height;
     document.images['mainview' + id].width = ss.slides[ss.currentindex].width;
     if ((ns4) && (!ss.sliding)) document.location.reload(true);
   }
}

function Next(sl,id)
{
   getNextImage(sl,false,id);
}

function getNextImage(ss,doingshow,id)
{
   if (!doingshow)
   {
     ss.sliding = false;
     if (document.images['startstop'+ id] != null) document.images['startstop'+ id].src="show.gif";
   }
   previousSelectedIndex = ss.currentindex;
   if (++ss.currentindex > (ss.slides.length - 1)) ss.currentindex = 0;
   writeCaption(ss,id);

   if (safari)
   {
     document.images['mainview' + id].src = ss.slides[ss.currentindex].url;
     document.images['mainview' + id].height = ss.slides[ss.currentindex].height;
     document.images['mainview' + id].width = ss.slides[ss.currentindex].width;
   }
   else
   {
     var aImg = [ss.slides[ss.currentindex].url];
     var ip = null;
     ip = new ImagePreloader(aImg,id,ss,onPreload);
   }
}

function Prev(sl,id)
{
   getPrevImage(sl,false,id);
}

function getPrevImage(ss,doingshow,id)
{
   if (!doingshow)
   {
     ss.sliding = false;
     if (document.images['startstop'+ id] != null) document.images['startstop' + id].src="../extimages/scripts/show.gif";
   }
   previousSelectedIndex = ss.currentindex;
   if (--ss.currentindex < 0) ss.currentindex = ss.slides.length - 1;
   writeCaption(ss,id);

   if (safari)
   {
     document.images['mainview' + id].src = ss.slides[ss.currentindex].url;
     document.images['mainview' + id].height = ss.slides[ss.currentindex].height;
     document.images['mainview' + id].width = ss.slides[ss.currentindex].width;
   }
   else
   {
     var aImg = [ss.slides[ss.currentindex].url];
     var ip = null;
     ip = new ImagePreloader(aImg,id,ss,onPreload);
   }
}

function RunShow(sl,id)
{
   runSlideShow(sl,true,id);
}

function runSlideShow(sl,startshow,id)
{
 
      if (startshow)
      {
        if ((lastshow_id != id) && (lastshow_id != -1) && (xsliding))
        {
          if (document.images['startstop' + lastshow_id] != null )   document.images['startstop' + lastshow_id].src="show.gif";
          slideshow = sl;
          lastshow_id = id;
          if (document.images['startstop' + id] != null )   document.images['startstop' + id].src="../extimages/scripts/stop.gif";
          return;
        }
        if (xsliding)
        {
          xsliding = false;
          slideshow.sliding = false;
          if (document.images['startstop' + id] != null )   document.images['startstop' + id].src="show.gif";
          return;
        }
        else
        {
           slideshow = sl;
           xsliding = true;
           slideshow.sliding = true;
           lastshow_id = id;
 
           if (document.images['startstop' + id] != null )   document.images['startstop' + id].src="../extimages/scripts/stop.gif";
        }
      }
 
      if (xsliding)
      {
       if ((!opera) && (document.all))
       {
          document.images['mainview' + id].style.filter="blendTrans(duration=2)"
          document.images['mainview' + id].style.filter="blendTrans(duration=crossFadeDuration)"
          document.images['mainview' + id].filters.blendTrans.Apply()
       }
 
       getNextImage(slideshow,true,id);
 
       if ((!opera) && (document.all)) document.images['mainview' + id].filters.blendTrans.Play();
 
       t = setTimeout('runSlideShow(slideshow,false,lastshow_id)', slideShowSpeed);
       }
}
