
var sls3AutoStart = true;                    // start animation (true = yes, false = no)
var sls3PauseTime = 15;                       // change pages every .. seconds
var sls3Mode = "slide";                      // mode can be "slide" or "fade"
var sls3ViewModeIcons = false;                // view mode icons (true = yes, false = no)
var sls3FadeSpeed = 15;                      // fading speed (just for fade mode)

var sls3Width = 168;                         // content width (pixels)
var sls3Height = 92;                        // content height (pixels)
var sls3Color = "#ffffff";                   // content background color
var sls3Overflow = "hidden";                 // content scrollbars: "auto" or "hidden"
                                            // ("auto" may cause flickering with Gecko browsers)

var sls3BorderWidth = 0;                     // border width (pixels)
var sls3BorderStyle = "solid";               // border style (CSS-spec, e.g. "solid", "outset", "inset", etc.)
var sls3BorderColor = "#f0f0f0";             // border color

var sls3BarHeight = 10;                      // iconbar height (pixels)
var sls3BarSpace = 0;                        // space between iconbar and slideshow (pixels)
var sls3BarPosition = "bottom";              // iconbar position ("top" or "bottom")

var sls3ImgPrev = "js/previous.gif";            // previous button: path to image
var sls3ImgPrevWidth = 10;                   // previous button: image width (pixels)
var sls3ImgNext = "js/next.gif";                // next button: path to image
var sls3ImgNextWidth = 10;                   // next button: image width (pixels)
var sls3ImgPlay = "js/play.gif";                // play button: path to image
var sls3ImgPlayWidth = 10;                   // play button: image width (pixels)
var sls3ImgStop = "js/stop.gif";                // stop button: path to image
var sls3ImgStopWidth = 10;                   // stop button: image width (pixels)
var sls3ImgSlide = "js/slide.gif";              // slide mode button: path to image
var sls3ImgSlideWidth = 10;                  // slide mode button: image width (pixels)
var sls3ImgFade = "js/fade.gif";                // fade mode button: path to image
var sls3ImgFadeWidth = 10;                   // fade mode button: image width (pixels)
var sls3ImgBlank = "js/blank.gif";              // path to blank image

var sls3IndView = true;                      // view index (true = yes, false = no)
var sls3IndCount = 5;                       // max. number of visible index entries
var sls3IndSpace = 2;                        // space between index and iconbar
var sls3IndColor = "";                       // index background color
var sls3IndFont = "Arial"; 				       // index font family
var sls3IndFontSize = 11;                    // index font size (pixels)
var sls3IndPosition = "bottom";              // index position ("top" or "bottom")

//---------------------------------------------------------------------------------------------------------
// Functions
//---------------------------------------------------------------------------------------------------------

var DOM = document.getElementById;
var OP = (window.opera || navigator.userAgent.indexOf('Opera') != -1);
var IE4 = (document.all && !OP);

var sls3Bord, sls3Cont, sls3Area, sls3BarArea, sls3IndArea, sls3IV, sls3Timer, sls3Previous;
var sls3IndStart = sls3CurPage = 0;
var sls3Pages = (typeof(sls3Contents) != 'undefined') ? sls3Contents.length : 0;
var sls3Animation = false;

var sls3W = sls3Width;
var sls3H = sls3Height + sls3BarSpace + sls3BarHeight;
if(sls3IndView) sls3H += sls3IndSpace + sls3IndFontSize;

function sls3Object(id) {
  this.elem = DOM ? document.getElementById(id) : document.all[id];
  this.css = this.elem.style;
  this.width = this.elem.offsetWidth;
  this.left = this.elem.offsetLeft;
  return this;
}

function sls3SetMode(type) {
  type = type.toLowerCase();

  if(type == 'slide') {
    if(document.images.sls3Fade) {
      document.images.sls3Fade.style.backgroundColor = '#666666';
    }
    if(document.images.sls3Slide) {
      document.images.sls3Slide.style.backgroundColor = '#FF0000';
    }
  }
  else if(type == 'fade') {
    if(document.images.sls3Slide) {
      document.images.sls3Slide.style.backgroundColor = '#666666';
    }
    if(document.images.sls3Fade) {
      document.images.sls3Fade.style.backgroundColor = '#FF0000';
    }
  }
  else {
    alert('Wrong type: ' + type);
    return false;
  }
  sls3Previous = null;
  sls3Mode = type;
  sls3Jump(sls3CurPage);
  if(sls3PauseTime && sls3AutoStart) sls3StartAnimation();
}

function sls3PrevPage() {
  if(!sls3Animation && sls3CurPage > 0) {
    sls3Jump(sls3CurPage - 1);
  }
}

function sls3NextPage() {
  if(!sls3Animation && sls3CurPage < sls3Pages - 1) {
    sls3Jump(sls3CurPage + 1);
  }
}

function sls3Jump(page) {
  if(!sls3Animation) {
    var newPage = new sls3Object('sls3Page' + page);

    if(page != sls3CurPage) {
      sls3Previous = new sls3Object('sls3Page' + sls3CurPage);
      sls3Previous.css.zIndex = 1;

      if(sls3Mode == 'fade') {
        newPage.css.left = '0px';
        sls3Opacity = 0;
        sls3SetOpacity(newPage);
        newPage.css.display = 'block';
        newPage.css.zIndex = 2;
        sls3IV = setInterval('sls3Fader(' + page + ')', 1);
      }
      else {
        var offset = (page > sls3CurPage) ? sls3Width : -sls3Width;
        newPage.css.left = offset + 'px';
        newPage.css.display = 'block';
        newPage.css.zIndex = 2;
        sls3IV = setInterval('sls3Slider(' + page + ', ' + sls3CurPage + ')', 1);
      }
      sls3CurPage = page;
    }
    else newPage.css.display = 'block';
  }
}

function sls3CheckImg() {
  var iconbar = 0;
  var img = document.images['sls3Left'];
  if(sls3CurPage <= 0) img.src = sls3ImgBlank;
  else img.src = iconbar = sls3ImgPrev;
  img = document.images['sls3Right'];
  if(sls3CurPage >= sls3Pages - 1) img.src = sls3ImgBlank;
  else img.src = iconbar = sls3ImgNext;
  if(!iconbar) sls3BarArea.css.visibility = sls3IndArea.css.visibility = 'hidden';
}

function sls3GetIndStart() {
  var start = 0;
  if(sls3CurPage % sls3IndCount == 0) {
    start = sls3CurPage + 1;
  }
  else if(sls3CurPage % sls3IndCount == sls3IndCount - 1) {
    start = sls3CurPage - sls3IndCount + 2;
  }
  return start;
}

function sls3SetIndex(start) {
  if(!sls3Animation) {
    if(start) sls3IndStart = start - 1;
    var html = link = '';
    for(var i = sls3IndStart; i < sls3Pages && i < sls3IndStart + sls3IndCount; i++) {
      if(i && html) html += ' ';
      if(i == sls3CurPage) html += '<b>' + (i+1) + '</b>';
      else {
        link = 'javascript:sls3StopAnimation(); sls3Jump(' + i + ')';
        html += '<a href="' + link + '" style="text-decoration:none">' + (i+1) + '</a>';
      }
    }
    if(sls3IndStart) {
      link = 'javascript:sls3SetIndex(' + (sls3IndStart - sls3IndCount+1) + ')';
      html += ' <a href="' + link + '" style="text-decoration:none">&lt;&lt;</a> ';
    }
    if(i < sls3Pages) {
      link = 'javascript:sls3SetIndex(' + (i+1) + ')';
      html += ' <a href="' + link + '" style="text-decoration:none">&gt;&gt;</a>';
    }
    sls3IndArea.elem.innerHTML = html;
  }
}

function sls3DoAnimation() {
  if(sls3CurPage >= sls3Pages - 1) sls3Jump(0);
  else sls3NextPage();
}

function sls3StopAnimation() {
  if(sls3AutoStart) {
    if(sls3Timer) clearInterval(sls3Timer);
    var img = document.images['sls3PlayStop'];
    img.src = sls3ImgPlay;
    img.width = sls3ImgPlayWidth;
    img.onclick = function() { sls3StartAnimation(true); this.blur(); }
    sls3AutoStart = false;
  }
}

function sls3StartAnimation(showNext) {
  sls3StopAnimation();
  sls3Timer = setInterval('sls3DoAnimation()', sls3PauseTime * 1000);
  var img = document.images['sls3PlayStop'];
  img.src = sls3ImgStop;
  img.width = sls3ImgStopWidth;
  img.onclick = function() { sls3StopAnimation(); this.blur(); }
  sls3AutoStart = true;
  if(showNext) sls3DoAnimation();
}

function sls3Init() {
  if(DOM || IE4) {
    if(!sls3Pages) {
      alert("No contents found.");
      return false;
    }
    sls3Bord = new sls3Object('sls3Border');
    sls3Cont = new sls3Object('sls3Container');
    sls3Area = new sls3Object('sls3Slider');
    sls3BarArea = new sls3Object('sls3Bar');
    if(sls3IndView) sls3IndArea = new sls3Object('sls3Ind');

    if(sls3Color) sls3Cont.css.backgroundColor = sls3Color;
    if(sls3IndColor) sls3IndArea.css.backgroundColor = sls3IndColor;

    var bordTop = 0;
    if(sls3BarPosition == 'top') bordTop += (sls3BarHeight + sls3BarSpace);
    if(sls3IndView && sls3IndPosition == 'top') bordTop += (sls3IndFontSize + sls3IndSpace);

    sls3Bord.css.top = bordTop + 'px';
    sls3Bord.css.width = sls3Width + 'px';
    sls3Bord.css.height = sls3Height + 'px';

    sls3Area.width = sls3Width;
    sls3Area.css.width = sls3Area.width + 'px';
    sls3Area.css.position = 'absolute';

    sls3Cont.css.width = sls3Width + 'px';
    sls3Cont.css.height = sls3Height + 'px';
    sls3Cont.css.visibility = 'visible';

    var content = '<img src="' + sls3ImgPrev + '" name="sls3Left" height="' + sls3BarHeight + '"' +
                  ' width="' + sls3ImgPrevWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="sls3StopAnimation(); sls3PrevPage(); this.blur()">' +
                  '<img src="' + sls3ImgPlay + '" name="sls3PlayStop" height="' + sls3BarHeight + '"' +
                  ' width="' + sls3ImgPlayWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="sls3StartAnimation(true); this.blur()">' +
                  '<img src="' + sls3ImgNext + '" name="sls3Right" height="' + sls3BarHeight + '"' +
                  ' width="' + sls3ImgNextWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="sls3StopAnimation(); sls3NextPage(); this.blur()">';

    if(sls3ViewModeIcons) {
      content += '<img src="' + sls3ImgSlide + '" name="sls3Slide" height="' + sls3BarHeight + '"' +
                 ' width="' + sls3ImgSlideWidth + '" style="margin:0px 5px 0px 25px; cursor:pointer"' +
                 ' onClick="sls3SetMode(\'slide\')">' +
                 '<img src="' + sls3ImgFade + '" name="sls3Fade" height="' + sls3BarHeight + '"' +
                 ' width="' + sls3ImgFadeWidth + '" style="margin:0px 5px; cursor:pointer"' +
                 ' onClick="sls3SetMode(\'fade\')">';
    }
    var barTop = 0;
    if(sls3BarPosition != 'top') barTop += sls3Height + sls3BarSpace;
    if(sls3IndView && sls3IndPosition == 'top') barTop += sls3IndFontSize + sls3IndSpace;
    sls3BarArea.elem.innerHTML = content;
    sls3BarArea.css.top = barTop + 'px';
    sls3BarArea.css.width = sls3W + 'px';
    sls3BarArea.css.height = sls3BarHeight + 'px';
    sls3BarArea.css.textAlign = 'center';

    if(sls3IndView) {
      var indTop = (sls3IndPosition == 'top') ? 0 : sls3Height + sls3BarSpace + sls3BarHeight + sls3IndSpace;
      sls3IndArea.css.top = indTop + 'px';
      sls3IndArea.css.height = sls3IndFontSize + 'px';
      sls3IndArea.css.width = sls3W + 'px';
      sls3IndArea.css.textAlign = 'center';
      if(sls3IndFont) sls3IndArea.css.fontFamily = sls3IndFont;
      if(sls3IndFontSize) sls3IndArea.css.fontSize = sls3IndFontSize + 'px';
      sls3SetIndex();
    }
    var obj;

    for(var i = 0; i < sls3Pages; i++) {
      obj = new sls3Object('sls3Page' + i);
      obj.css.position = 'absolute';
      obj.css.display = 'none';
      obj.css.zIndex = 1;
    }
    setTimeout('sls3CheckImg()', 100);
    sls3SetMode(sls3Mode);
  }
  else alert("Sorry, this script doesn't work with your browser.");
}

//---------------------------------------------------------------------------------------------------------
// Page slider
//---------------------------------------------------------------------------------------------------------

function sls3Slider(nextPage, prevPage) {
  var nextObj = new sls3Object('sls3Page' + nextPage);
  var prevObj = new sls3Object('sls3Page' + prevPage);

  if(prevObj && nextObj && nextObj.left != 0) {
    sls3Animation = true;
    var pixel = 0.1 * nextObj.left;
    if(pixel > 0) pixel = Math.ceil(pixel);
    else pixel = Math.floor(pixel);
    prevObj.css.left = (prevObj.left - pixel) + 'px';
    nextObj.css.left = (nextObj.left - pixel) + 'px';
  }
  else {
    sls3Animation = false;
    if(sls3IV) clearInterval(sls3IV);
    sls3CheckImg();
    if(sls3IndView) sls3SetIndex(sls3GetIndStart());
  }
}

//---------------------------------------------------------------------------------------------------------
// Page fader
//---------------------------------------------------------------------------------------------------------

var sls3Opacity = 0;

function sls3SetOpacity(obj) {
  if(obj) {
    obj.css.opacity = sls3Opacity / 100;
    obj.css.MozOpacity = sls3Opacity / 100;
    obj.css.KhtmlOpacity = sls3Opacity / 100;
    obj.css.filter = 'alpha(opacity=' + sls3Opacity + ')';
  }
}

function sls3Fader(page) {
  if(obj = new sls3Object('sls3Page' + page)) {
    sls3Animation = true;
    if(sls3FadeSpeed && sls3Opacity < 100) {
      sls3Opacity += sls3FadeSpeed;
      if(sls3Opacity > 100) sls3Opacity = 100;
      sls3SetOpacity(obj);
    }
    else {
      sls3Animation = false;
      sls3Opacity = 0;
      if(sls3IV) clearInterval(sls3IV);
      sls3CheckImg();
      if(sls3IndView) sls3SetIndex(sls3GetIndStart());
      if(sls3Previous && sls3Previous != obj) {
        sls3Previous.css.display = 'none';
      }
    }
  }
}

//---------------------------------------------------------------------------------------------------------
// Create slideshow
//---------------------------------------------------------------------------------------------------------

function sls3BuildContainers() {
  document.write('<div id="slideShow3" style="position:relative; width:' + sls3W + 'px; height:' + sls3H + 'px">');
  if(sls3IndView) document.write('<div id="sls3Ind" style="position:absolute; z-index:69"></div>');
  document.write('<div id="sls3Bar" style="position:absolute; z-index:69"></div>');
  document.write('<div id="sls3Border" style="position:absolute">');
  document.write('<div id="sls3Container" style="position:absolute; z-index:0; overflow:hidden;');
  document.write(' clip:rect(0,' + sls3Width + ',' + sls3Height + ',0); visibility:hidden">');
  document.write('<div id="sls3Slider">');

  for(var i = 0; i < sls3Pages; i++) {
    document.write('<div id="sls3Page' + i + '" style="width:' + sls3Width + 'px;');
    document.write(' height:' + sls3Height + 'px; overflow:' + sls3Overflow + '; background-color:' + sls3Color + '">');
    document.write(sls3Contents[i] + '</div>');
  }
  document.write('</div></div></div></div>');
}

sls3BuildContainers();
window.onload = sls3Init;

