
var sls2AutoStart = true;                    // start animation (true = yes, false = no)
var sls2PauseTime = 15;                       // change pages every .. seconds
var sls2Mode = "slide";                      // mode can be "slide" or "fade"
var sls2ViewModeIcons = false;                // view mode icons (true = yes, false = no)
var sls2FadeSpeed = 15;                      // fading speed (just for fade mode)

var sls2Width = 168;                         // content width (pixels)
var sls2Height = 92;                        // content height (pixels)
var sls2Color = "#ffffff";                   // content background color
var sls2Overflow = "hidden";                 // content scrollbars: "auto" or "hidden"
                                            // ("auto" may cause flickering with Gecko browsers)

var sls2BorderWidth = 0;                     // border width (pixels)
var sls2BorderStyle = "solid";               // border style (CSS-spec, e.g. "solid", "outset", "inset", etc.)
var sls2BorderColor = "#f0f0f0";             // border color

var sls2BarHeight = 10;                      // iconbar height (pixels)
var sls2BarSpace = 0;                        // space between iconbar and slideshow (pixels)
var sls2BarPosition = "bottom";              // iconbar position ("top" or "bottom")

var sls2ImgPrev = "js/previous.gif";            // previous button: path to image
var sls2ImgPrevWidth = 10;                   // previous button: image width (pixels)
var sls2ImgNext = "js/next.gif";                // next button: path to image
var sls2ImgNextWidth = 10;                   // next button: image width (pixels)
var sls2ImgPlay = "js/play.gif";                // play button: path to image
var sls2ImgPlayWidth = 10;                   // play button: image width (pixels)
var sls2ImgStop = "js/stop.gif";                // stop button: path to image
var sls2ImgStopWidth = 10;                   // stop button: image width (pixels)
var sls2ImgSlide = "js/slide.gif";              // slide mode button: path to image
var sls2ImgSlideWidth = 10;                  // slide mode button: image width (pixels)
var sls2ImgFade = "js/fade.gif";                // fade mode button: path to image
var sls2ImgFadeWidth = 10;                   // fade mode button: image width (pixels)
var sls2ImgBlank = "js/blank.gif";              // path to blank image

var sls2IndView = true;                      // view index (true = yes, false = no)
var sls2IndCount = 5;                       // max. number of visible index entries
var sls2IndSpace = 2;                        // space between index and iconbar
var sls2IndColor = "";                       // index background color
var sls2IndFont = "Arial"; 				       // index font family
var sls2IndFontSize = 11;                    // index font size (pixels)
var sls2IndPosition = "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 sls2Bord, sls2Cont, sls2Area, sls2BarArea, sls2IndArea, sls2IV, sls2Timer, sls2Previous;
var sls2IndStart = sls2CurPage = 0;
var sls2Pages = (typeof(sls2Contents) != 'undefined') ? sls2Contents.length : 0;
var sls2Animation = false;

var sls2W = sls2Width;
var sls2H = sls2Height + sls2BarSpace + sls2BarHeight;
if(sls2IndView) sls2H += sls2IndSpace + sls2IndFontSize;

function sls2Object(id) {
  this.elem2 = DOM ? document.getElementById(id) : document.all[id];
  this.css = this.elem2.style;
  this.width = this.elem2.offsetWidth;
  this.left = this.elem2.offsetLeft;
  return this;
}

function sls2SetMode(type) {
  type = type.toLowerCase();

  if(type == 'slide') {
    if(document.images.sls2Fade) {
      document.images.sls2Fade.style.backgroundColor = '#666666';
    }
    if(document.images.sls2Slide) {
      document.images.sls2Slide.style.backgroundColor = '#FF0000';
    }
  }
  else if(type == 'fade') {
    if(document.images.sls2Slide) {
      document.images.sls2Slide.style.backgroundColor = '#666666';
    }
    if(document.images.sls2Fade) {
      document.images.sls2Fade.style.backgroundColor = '#FF0000';
    }
  }
  else {
    alert('Wrong type: ' + type);
    return false;
  }
  sls2Previous = null;
  sls2Mode = type;
  sls2Jump(sls2CurPage);
  if(sls2PauseTime && sls2AutoStart) sls2StartAnimation();
}

function sls2PrevPage() {
  if(!sls2Animation && sls2CurPage > 0) {
    sls2Jump(sls2CurPage - 1);
  }
}

function sls2NextPage() {
  if(!sls2Animation && sls2CurPage < sls2Pages - 1) {
    sls2Jump(sls2CurPage + 1);
  }
}

function sls2Jump(page) {
  if(!sls2Animation) {
    var newPage = new sls2Object('sls2Page' + page);

    if(page != sls2CurPage) {
      sls2Previous = new sls2Object('sls2Page' + sls2CurPage);
      sls2Previous.css.zIndex = 1;

      if(sls2Mode == 'fade') {
        newPage.css.left = '0px';
        sls2Opacity = 0;
        sls2SetOpacity(newPage);
        newPage.css.display = 'block';
        newPage.css.zIndex = 2;
        sls2IV = setInterval('sls2Fader(' + page + ')', 1);
      }
      else {
        var offset = (page > sls2CurPage) ? sls2Width : -sls2Width;
        newPage.css.left = offset + 'px';
        newPage.css.display = 'block';
        newPage.css.zIndex = 2;
        sls2IV = setInterval('sls2Slider(' + page + ', ' + sls2CurPage + ')', 1);
      }
      sls2CurPage = page;
    }
    else newPage.css.display = 'block';
  }
}

function sls2CheckImg() {
  var iconbar = 0;
  var img = document.images['sls2Left'];
  if(sls2CurPage <= 0) img.src = sls2ImgBlank;
  else img.src = iconbar = sls2ImgPrev;
  img = document.images['sls2Right'];
  if(sls2CurPage >= sls2Pages - 1) img.src = sls2ImgBlank;
  else img.src = iconbar = sls2ImgNext;
  if(!iconbar) sls2BarArea.css.visibility = sls2IndArea.css.visibility = 'hidden';
}

function sls2GetIndStart() {
  var start = 0;
  if(sls2CurPage % sls2IndCount == 0) {
    start = sls2CurPage + 1;
  }
  else if(sls2CurPage % sls2IndCount == sls2IndCount - 1) {
    start = sls2CurPage - sls2IndCount + 2;
  }
  return start;
}

function sls2SetIndex(start) {
  if(!sls2Animation) {
    if(start) sls2IndStart = start - 1;
    var html = link = '';
    for(var i = sls2IndStart; i < sls2Pages && i < sls2IndStart + sls2IndCount; i++) {
      if(i && html) html += ' ';
      if(i == sls2CurPage) html += '<b>' + (i+1) + '</b>';
      else {
        link = 'javascript:sls2StopAnimation(); sls2Jump(' + i + ')';
        html += '<a href="' + link + '" style="text-decoration:none">' + (i+1) + '</a>';
      }
    }
    if(sls2IndStart) {
      link = 'javascript:sls2SetIndex(' + (sls2IndStart - sls2IndCount+1) + ')';
      html += ' <a href="' + link + '" style="text-decoration:none">&lt;&lt;</a> ';
    }
    if(i < sls2Pages) {
      link = 'javascript:sls2SetIndex(' + (i+1) + ')';
      html += ' <a href="' + link + '" style="text-decoration:none">&gt;&gt;</a>';
    }
    sls2IndArea.elem2.innerHTML = html;
  }
}

function sls2DoAnimation() {
  if(sls2CurPage >= sls2Pages - 1) sls2Jump(0);
  else sls2NextPage();
}

function sls2StopAnimation() {
  if(sls2AutoStart) {
    if(sls2Timer) clearInterval(sls2Timer);
    var img = document.images['sls2PlayStop'];
    img.src = sls2ImgPlay;
    img.width = sls2ImgPlayWidth;
    img.onclick = function() { sls2StartAnimation(true); this.blur(); }
    sls2AutoStart = false;
  }
}

function sls2StartAnimation(showNext) {
  sls2StopAnimation();
  sls2Timer = setInterval('sls2DoAnimation()', sls2PauseTime * 1000);
  var img = document.images['sls2PlayStop'];
  img.src = sls2ImgStop;
  img.width = sls2ImgStopWidth;
  img.onclick = function() { sls2StopAnimation(); this.blur(); }
  sls2AutoStart = true;
  if(showNext) sls2DoAnimation();
}

function sls2Init() {
  if(DOM || IE4) {
    if(!sls2Pages) {
      alert("No contents found.");
      return false;
    }
    sls2Bord = new sls2Object('sls2Border');
    sls2Cont = new sls2Object('sls2Container');
    sls2Area = new sls2Object('sls2Slider');
    sls2BarArea = new sls2Object('sls2Bar');
    if(sls2IndView) sls2IndArea = new sls2Object('sls2Ind');

    if(sls2Color) sls2Cont.css.backgroundColor = sls2Color;
    if(sls2IndColor) sls2IndArea.css.backgroundColor = sls2IndColor;

    var bordTop = 0;
    if(sls2BarPosition == 'top') bordTop += (sls2BarHeight + sls2BarSpace);
    if(sls2IndView && sls2IndPosition == 'top') bordTop += (sls2IndFontSize + sls2IndSpace);

    sls2Bord.css.top = bordTop + 'px';
    sls2Bord.css.width = sls2Width + 'px';
    sls2Bord.css.height = sls2Height + 'px';

    sls2Area.width = sls2Width;
    sls2Area.css.width = sls2Area.width + 'px';
    sls2Area.css.position = 'absolute';

    sls2Cont.css.width = sls2Width + 'px';
    sls2Cont.css.height = sls2Height + 'px';
    sls2Cont.css.visibility = 'visible';

    var content = '<img src="' + sls2ImgPrev + '" name="sls2Left" height="' + sls2BarHeight + '"' +
                  ' width="' + sls2ImgPrevWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="sls2StopAnimation(); sls2PrevPage(); this.blur()">' +
                  '<img src="' + sls2ImgPlay + '" name="sls2PlayStop" height="' + sls2BarHeight + '"' +
                  ' width="' + sls2ImgPlayWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="sls2StartAnimation(true); this.blur()">' +
                  '<img src="' + sls2ImgNext + '" name="sls2Right" height="' + sls2BarHeight + '"' +
                  ' width="' + sls2ImgNextWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="sls2StopAnimation(); sls2NextPage(); this.blur()">';

    if(sls2ViewModeIcons) {
      content += '<img src="' + sls2ImgSlide + '" name="sls2Slide" height="' + sls2BarHeight + '"' +
                 ' width="' + sls2ImgSlideWidth + '" style="margin:0px 5px 0px 25px; cursor:pointer"' +
                 ' onClick="sls2SetMode(\'slide\')">' +
                 '<img src="' + sls2ImgFade + '" name="sls2Fade" height="' + sls2BarHeight + '"' +
                 ' width="' + sls2ImgFadeWidth + '" style="margin:0px 5px; cursor:pointer"' +
                 ' onClick="sls2SetMode(\'fade\')">';
    }
    var barTop = 0;
    if(sls2BarPosition != 'top') barTop += sls2Height + sls2BarSpace;
    if(sls2IndView && sls2IndPosition == 'top') barTop += sls2IndFontSize + sls2IndSpace;
    sls2BarArea.elem2.innerHTML = content;
    sls2BarArea.css.top = barTop + 'px';
    sls2BarArea.css.width = sls2W + 'px';
    sls2BarArea.css.height = sls2BarHeight + 'px';
    sls2BarArea.css.textAlign = 'center';

    if(sls2IndView) {
      var indTop = (sls2IndPosition == 'top') ? 0 : sls2Height + sls2BarSpace + sls2BarHeight + sls2IndSpace;
      sls2IndArea.css.top = indTop + 'px';
      sls2IndArea.css.height = sls2IndFontSize + 'px';
      sls2IndArea.css.width = sls2W + 'px';
      sls2IndArea.css.textAlign = 'center';
      if(sls2IndFont) sls2IndArea.css.fontFamily = sls2IndFont;
      if(sls2IndFontSize) sls2IndArea.css.fontSize = sls2IndFontSize + 'px';
      sls2SetIndex();
    }
    var obj;

    for(var i = 0; i < sls2Pages; i++) {
      obj = new sls2Object('sls2Page' + i);
      obj.css.position = 'absolute';
      obj.css.display = 'none';
      obj.css.zIndex = 1;
    }
    setTimeout('sls2CheckImg()', 100);
    sls2SetMode(sls2Mode);
  }
  else alert("Sorry, this script doesn't work with your browser.");
}

//---------------------------------------------------------------------------------------------------------
// Page slider
//---------------------------------------------------------------------------------------------------------

function sls2Slider(nextPage, prevPage) {
  var nextObj = new sls2Object('sls2Page' + nextPage);
  var prevObj = new sls2Object('sls2Page' + prevPage);

  if(prevObj && nextObj && nextObj.left != 0) {
    sls2Animation = 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 {
    sls2Animation = false;
    if(sls2IV) clearInterval(sls2IV);
    sls2CheckImg();
    if(sls2IndView) sls2SetIndex(sls2GetIndStart());
  }
}

//---------------------------------------------------------------------------------------------------------
// Page fader
//---------------------------------------------------------------------------------------------------------

var sls2Opacity = 0;

function sls2SetOpacity(obj) {
  if(obj) {
    obj.css.opacity = sls2Opacity / 100;
    obj.css.MozOpacity = sls2Opacity / 100;
    obj.css.KhtmlOpacity = sls2Opacity / 100;
    obj.css.filter = 'alpha(opacity=' + sls2Opacity + ')';
  }
}

function sls2Fader(page) {
  if(obj = new sls2Object('sls2Page' + page)) {
    sls2Animation = true;
    if(sls2FadeSpeed && sls2Opacity < 100) {
      sls2Opacity += sls2FadeSpeed;
      if(sls2Opacity > 100) sls2Opacity = 100;
      sls2SetOpacity(obj);
    }
    else {
      sls2Animation = false;
      sls2Opacity = 0;
      if(sls2IV) clearInterval(sls2IV);
      sls2CheckImg();
      if(sls2IndView) sls2SetIndex(sls2GetIndStart());
      if(sls2Previous && sls2Previous != obj) {
        sls2Previous.css.display = 'none';
      }
    }
  }
}

//---------------------------------------------------------------------------------------------------------
// Create slideshow
//---------------------------------------------------------------------------------------------------------

function sls2BuildContainers() {
  document.write('<div id="slideShow2" style="position:relative; width:' + sls2W + 'px; height:' + sls2H + 'px">');
  if(sls2IndView) document.write('<div id="sls2Ind" style="position:absolute; z-index:69"></div>');
  document.write('<div id="sls2Bar" style="position:absolute; z-index:69"></div>');
  document.write('<div id="sls2Border" style="position:absolute">');
  document.write('<div id="sls2Container" style="position:absolute; z-index:0; overflow:hidden;');
  document.write(' clip:rect(0,' + sls2Width + ',' + sls2Height + ',0); visibility:hidden">');
  document.write('<div id="sls2Slider">');

  for(var i = 0; i < sls2Pages; i++) {
    document.write('<div id="sls2Page' + i + '" style="width:' + sls2Width + 'px;');
    document.write(' height:' + sls2Height + 'px; overflow:' + sls2Overflow + '; background-color:' + sls2Color + '">');
    document.write(sls2Contents[i] + '</div>');
  }
  document.write('</div></div></div></div>');
}

sls2BuildContainers();

