/*
 +-------------------------------------------------------------------+
 |                  J S - S L I D E S H O W   (v2.1)                 |
 |                                                                   |
 | Copyright Gerd Tentler                www.gerd-tentler.de/tools   |
 | Created: Apr. 9, 2003                 Last modified: Sep. 6, 2008 |
 +-------------------------------------------------------------------+
 | This program may be used and hosted free of charge by anyone for  |
 | personal purpose as long as this copyright notice remains intact. |
 |                                                                   |
 | Obtain permission before selling the code for this program or     |
 | hosting this software on a commercial website or redistributing   |
 | this software over the Internet or in any other medium. In all    |
 | cases copyright must remain intact.                               |
 +-------------------------------------------------------------------+

 This script was tested with:

 - Windows XP: Internet Explorer 6, Netscape Navigator 7, Opera 7 + 9, Firefox 2
 - Mac OS X:   Internet Explorer 5, Safari 1

 If you use another browser or operating system, this script may not work for you.
*/
//---------------------------------------------------------------------------------------------------------
// Configuration
//---------------------------------------------------------------------------------------------------------

var slsBrandAutoStart = true;                    // start animation (true = yes, false = no)
var slsBrandPauseTime = 5;                       // change pages every .. seconds
var slsBrandMode = "fade";                      // mode can be "slide" or "fade"
var slsBrandViewModeIcons = false;                // view mode icons (true = yes, false = no)
var slsBrandFadeSpeed = 1;                      // fading speed (just for fade mode)

var slsBrandWidth = 200;                         // content width (pixels)
var slsBrandHeight = 60;                        // content height (pixels)
var slsBrandColor = "#f7f7f7";                   // content background color
var slsBrandOverflow = "hidden";                 // content scrollbars: "auto" or "hidden"
                                            // ("auto" may cause flickering with Gecko browsers)

var slsBrandBorderWidth = 0;                     // border width (pixels)
var slsBrandBorderStyle = "none";               // border style (CSS-spec, e.g. "solid", "outset", "inset", etc.)
var slsBrandBorderColor = "#f7f7f7";             // border color

var slsBrandBarHeight = 0;                      // iconbar height (pixels)
var slsBrandBarSpace = 0;                        // space between iconbar and slideshow (pixels)
var slsBrandBarPosition = "bottom";              // iconbar position ("top" or "bottom")

var slsBrandImgPrev = "bl.gif";            // previous button: path to image
var slsBrandImgPrevWidth = 0;                   // previous button: image width (pixels)
var slsBrandImgNext = "bl.gif";                // next button: path to image
var slsBrandImgNextWidth = 0;                   // next button: image width (pixels)
var slsBrandImgPlay = "bl.gif";                // play button: path to image
var slsBrandImgPlayWidth = 0;                   // play button: image width (pixels)
var slsBrandImgStop = "bl.gif";                // stop button: path to image
var slsBrandImgStopWidth = 0;                   // stop button: image width (pixels)
var slsBrandImgSlide = "bl.gif";              // slide mode button: path to image
var slsBrandImgSlideWidth = 0;                  // slide mode button: image width (pixels)
var slsBrandImgFade = "bl.gif";                // fade mode button: path to image
var slsBrandImgFadeWidth = 0;                   // fade mode button: image width (pixels)
var slsBrandImgBlank = "bl.gif";              // path to blank image

var slsBrandIndView = false;                      // view index (true = yes, false = no)
var slsBrandIndCount = 3;                       // max. number of visible index entries
var slsBrandIndSpace = 8;                        // space between index and iconbar
var slsBrandIndColor = "";                       // index background color
var slsBrandIndFont = "Arial, Helvetica";        // index font family
var slsBrandIndFontSize = 10;                    // index font size (pixels)
var slsBrandIndPosition = "bottom";              // index position ("top" or "bottom")

var slsBrandSlidingMax = 20;                     // if there are more than slsBrandSlidingMax pages, sliding will be
                                            // turned off for performance reasons; this does not affect fading

//---------------------------------------------------------------------------------------------------------
// Functions
//---------------------------------------------------------------------------------------------------------

var DOM = document.getElementById;
var OP = (window.opera || navigator.userAgent.indexOf('Opera') != -1);
var IE4 = (document.all && !OP);

var slsBrandBord, slsBrandCont, slsBrandArea, slsBrandBarArea, slsBrandIndArea, slsBrandIV, slsBrandTimer, slsBrandPrevious;
var slsBrandIndStart = slsBrandCurPage = 0;
var slsBrandPages = (typeof(slsBrandContents) != 'undefined') ? slsBrandContents.length : 0;
var slsBrandAnimation = false;

var slsBrandW = slsBrandWidth + slsBrandBorderWidth * 2;
var slsBrandH = slsBrandHeight + slsBrandBorderWidth * 2 + slsBrandBarSpace + slsBrandBarHeight;
if(slsBrandIndView) slsBrandH += slsBrandIndSpace + slsBrandIndFontSize;

function slsBrandObject(id) {
  this.elem = DOM ? document.getElementById(id) : document.all[id];
  this.css = this.elem.style;
  this.width = this.elem.offsetWidth;
  this.left = 0;
  return this;
}

function slsBrandSetMode(type) {
  var obj, i;
  switch(type.toLowerCase()) {

    case 'slide':
      if(document.images.slsBrandFade) {
        document.images.slsBrandFade.style.backgroundColor = '#666666';
      }
      if(document.images.slsBrandSlide) {
        document.images.slsBrandSlide.style.backgroundColor = '#FF0000';
      }
      for(i = 0; i < slsBrandPages; i++) {
        obj = new slsBrandObject('slsBrandPage' + i);
        obj.css.position = 'static';
        obj.css.display = 'block';
        obj.css.cssFloat = 'left';
        obj.css.styleFloat = 'left';
      }
      slsBrandNewX = slsBrandArea.left = slsBrandCurX = slsBrandCurPage * -slsBrandWidth;
      slsBrandArea.css.left = slsBrandNewX + 'px';
      slsBrandMode = 'slide';
      slsBrandJump(slsBrandCurPage);
      if(slsBrandPauseTime && slsBrandAutoStart) slsBrandStartAnimation();
      break;

    case 'fade':
      if(document.images.slsBrandSlide) {
        document.images.slsBrandSlide.style.backgroundColor = '#666666';
      }
      if(document.images.slsBrandFade) {
        document.images.slsBrandFade.style.backgroundColor = '#FF0000';
      }
      for(i = 0; i < slsBrandPages; i++) {
        obj = new slsBrandObject('slsBrandPage' + i);
        obj.css.position = 'absolute';
        obj.css.display = 'none';
        obj.css.cssFloat = 'none';
        obj.css.styleFloat = 'none';
        obj.css.zIndex = 1;
      }
      slsBrandArea.css.left = '0px';
      slsBrandPrevious = null;
      slsBrandMode = 'fade';
      slsBrandJump(slsBrandCurPage);
      if(slsBrandPauseTime && slsBrandAutoStart) slsBrandStartAnimation();
      break;

    default: alert('Wrong type: ' + type);
  }
}

function slsBrandPrevPage() {
  if(!slsBrandAnimation && slsBrandCurPage > 0) {
    slsBrandJump(slsBrandCurPage - 1);
  }
}

function slsBrandNextPage() {
  if(!slsBrandAnimation && slsBrandCurPage < slsBrandPages - 1) {
    slsBrandJump(slsBrandCurPage + 1);
  }
}

function slsBrandJump(page) {
  if(!slsBrandAnimation) {
    if(slsBrandMode == 'fade') {
      if(page != slsBrandCurPage) {
        slsBrandPrevious = new slsBrandObject('slsBrandPage' + slsBrandCurPage);
        slsBrandPrevious.css.zIndex = 1;
      }
      var newPage = new slsBrandObject('slsBrandPage' + page);
      slsBrandOpacity = 0;
      slsBrandSetOpacity(newPage);
      newPage.css.display = 'block';
      newPage.css.zIndex = 2;
      slsBrandIV = setInterval('slsBrandFader(' + page + ')', 1);
    }
    else {
      slsBrandNewX = slsBrandArea.left = page * -slsBrandWidth;
      if(slsBrandPages > slsBrandSlidingMax) {
        slsBrandCurX = slsBrandNewX;
        slsBrandArea.css.left = slsBrandNewX + 'px';
        slsBrandCheckImg();
        if(slsBrandIndView) slsBrandSetIndex(slsBrandGetIndStart());
      }
      else slsBrandIV = setInterval('slsBrandSlider()', 1);
    }
    slsBrandCurPage = page;
  }
}

function slsBrandCheckImg() {
  var iconbar = 0;
  var img = document.images['slsBrandLeft'];
  if(slsBrandCurPage <= 0) img.src = slsBrandImgBlank;
  else img.src = iconbar = slsBrandImgPrev;
  img = document.images['slsBrandRight'];
  if(slsBrandCurPage >= slsBrandPages - 1) img.src = slsBrandImgBlank;
  else img.src = iconbar = slsBrandImgNext;
  if(!iconbar) slsBrandBarArea.css.visibility = slsBrandIndArea.css.visibility = 'hidden';
}

function slsBrandGetIndStart() {
  var start = 0;
  if(slsBrandCurPage % slsBrandIndCount == 0) {
    start = slsBrandCurPage + 1;
  }
  else if(slsBrandCurPage % slsBrandIndCount == slsBrandIndCount - 1) {
    start = slsBrandCurPage - slsBrandIndCount + 2;
  }
  return start;
}

function slsBrandSetIndex(start) {
  if(!slsBrandAnimation) {
    if(start) slsBrandIndStart = start - 1;
    var html = link = '';
    for(var i = slsBrandIndStart; i < slsBrandPages && i < slsBrandIndStart + slsBrandIndCount; i++) {
      if(i && html) html += ' &middot; ';
      if(i == slsBrandCurPage) html += '<b>' + (i+1) + '</b>';
      else {
        link = 'javascript:slsBrandStopAnimation(); slsBrandJump(' + i + ')';
        html += '<a href="' + link + '" style="text-decoration:none">' + (i+1) + '</a>';
      }
    }
    if(slsBrandIndStart) {
      link = 'javascript:slsBrandSetIndex(' + (slsBrandIndStart - slsBrandIndCount+1) + ')';
      html += ' &middot; <a href="' + link + '" style="text-decoration:none">&lt;&lt;</a> ';
    }
    if(i < slsBrandPages) {
      link = 'javascript:slsBrandSetIndex(' + (i+1) + ')';
      html += ' &middot; <a href="' + link + '" style="text-decoration:none">&gt;&gt;</a>';
    }
    slsBrandIndArea.elem.innerHTML = html;
  }
}

function slsBrandDoAnimation() {
  if(slsBrandCurPage >= slsBrandPages - 1) slsBrandJump(0);
  else slsBrandNextPage();
}

function slsBrandStopAnimation() {
  if(slsBrandAutoStart) {
    if(slsBrandTimer) clearInterval(slsBrandTimer);
    var img = document.images['slsBrandPlayStop'];
    img.src = slsBrandImgPlay;
    img.width = slsBrandImgPlayWidth;
    img.onclick = function() { slsBrandStartAnimation(true); this.blur(); }
    slsBrandAutoStart = false;
  }
}

function slsBrandStartAnimation(showNext) {
  slsBrandStopAnimation();
  slsBrandTimer = setInterval('slsBrandDoAnimation()', slsBrandPauseTime * 1000);
  var img = document.images['slsBrandPlayStop'];
  img.src = slsBrandImgStop;
  img.width = slsBrandImgStopWidth;
  img.onclick = function() { slsBrandStopAnimation(); this.blur(); }
  slsBrandAutoStart = true;
  if(showNext) slsBrandDoAnimation();
}

function slsBrandInit() {
  if(DOM || IE4) {
    if(!slsBrandPages) {
      //alert("No contents found.");
      return false;
    }
    slsBrandBord = new slsBrandObject('slsBrandBorder');
    slsBrandCont = new slsBrandObject('slsBrandContainer');
    slsBrandArea = new slsBrandObject('slsBrandSlider');
    slsBrandBarArea = new slsBrandObject('slsBrandBar');
    if(slsBrandIndView) slsBrandIndArea = new slsBrandObject('slsBrandInd');

    if(slsBrandColor) slsBrandCont.css.backgroundColor = slsBrandColor;
    if(slsBrandIndColor) slsBrandIndArea.css.backgroundColor = slsBrandIndColor;

    if(slsBrandBorderWidth) slsBrandBord.css.borderWidth = slsBrandBorderWidth + 'px';
    if(slsBrandBorderStyle) slsBrandBord.css.borderStyle = slsBrandBorderStyle;
    if(slsBrandBorderColor) slsBrandBord.css.borderColor = slsBrandBorderColor;

    var bordTop = 0;
    if(slsBrandBarPosition == 'top') bordTop += (slsBrandBarHeight + slsBrandBarSpace);
    if(slsBrandIndView && slsBrandIndPosition == 'top') bordTop += (slsBrandIndFontSize + slsBrandIndSpace);

    slsBrandBord.css.top = bordTop + 'px';
    slsBrandBord.css.width = slsBrandWidth + 'px';
    slsBrandBord.css.height = slsBrandHeight + 'px';

    slsBrandArea.width = slsBrandWidth * slsBrandPages;
    slsBrandArea.css.width = slsBrandArea.width + 'px';
    slsBrandArea.css.position = 'absolute';

    slsBrandCont.css.width = slsBrandWidth + 'px';
    slsBrandCont.css.height = slsBrandHeight + 'px';
    slsBrandCont.css.visibility = 'visible';

    var content = '<img src="' + slsBrandImgPrev + '" name="slsBrandLeft" height="' + slsBrandBarHeight + '"' +
                  ' width="' + slsBrandImgPrevWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="slsBrandStopAnimation(); slsBrandPrevPage(); this.blur()">' +
                  '<img src="' + slsBrandImgPlay + '" name="slsBrandPlayStop" height="' + slsBrandBarHeight + '"' +
                  ' width="' + slsBrandImgPlayWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="slsBrandStartAnimation(true); this.blur()">' +
                  '<img src="' + slsBrandImgNext + '" name="slsBrandRight" height="' + slsBrandBarHeight + '"' +
                  ' width="' + slsBrandImgNextWidth + '" style="margin:0px 5px; cursor:pointer"' +
                  ' onClick="slsBrandStopAnimation(); slsBrandNextPage(); this.blur()">';

    if(slsBrandViewModeIcons) {
      content += '<img src="' + slsBrandImgSlide + '" name="slsBrandSlide" height="' + slsBrandBarHeight + '"' +
                 ' width="' + slsBrandImgSlideWidth + '" style="margin:0px 5px 0px 25px; cursor:pointer"' +
                 ' onClick="slsBrandSetMode(\'slide\')">' +
                 '<img src="' + slsBrandImgFade + '" name="slsBrandFade" height="' + slsBrandBarHeight + '"' +
                 ' width="' + slsBrandImgFadeWidth + '" style="margin:0px 5px; cursor:pointer"' +
                 ' onClick="slsBrandSetMode(\'fade\')">';
    }
    var barTop = 0;
    if(slsBrandBarPosition != 'top') barTop += slsBrandHeight + slsBrandBorderWidth*2 + slsBrandBarSpace;
    if(slsBrandIndView && slsBrandIndPosition == 'top') barTop += slsBrandIndFontSize + slsBrandIndSpace;
    slsBrandBarArea.elem.innerHTML = content;
    slsBrandBarArea.css.top = barTop + 'px';
    slsBrandBarArea.css.width = slsBrandW + 'px';
    slsBrandBarArea.css.height = slsBrandBarHeight + 'px';
    slsBrandBarArea.css.textAlign = 'center';

    if(slsBrandIndView) {
      var indTop = (slsBrandIndPosition == 'top') ? 0 : slsBrandHeight + slsBrandBorderWidth*2 + slsBrandBarSpace + slsBrandBarHeight + slsBrandIndSpace;
      slsBrandIndArea.css.top = indTop + 'px';
      slsBrandIndArea.css.height = slsBrandIndFontSize + 'px';
      slsBrandIndArea.css.width = slsBrandW + 'px';
      slsBrandIndArea.css.textAlign = 'center';
      if(slsBrandIndFont) slsBrandIndArea.css.fontFamily = slsBrandIndFont;
      if(slsBrandIndFontSize) slsBrandIndArea.css.fontSize = slsBrandIndFontSize + 'px';
      slsBrandSetIndex();
    }
    setTimeout('slsBrandCheckImg()', 100);
    slsBrandSetMode(slsBrandMode);
  }
  else alert("Sorry, this script doesn't work with your browser.");
}

//---------------------------------------------------------------------------------------------------------
// Page slider
//---------------------------------------------------------------------------------------------------------

var slsBrandCurX = slsBrandNewX = 0;

function slsBrandSlider() {
  if(slsBrandCurX != slsBrandNewX) {
    slsBrandAnimation = true;
    var percent = .1 * (slsBrandNewX - slsBrandCurX);
    if(percent > 0) percent = Math.ceil(percent);
    else percent = Math.floor(percent);
    slsBrandCurX += percent;
    slsBrandArea.css.left = slsBrandCurX + 'px';
  }
  else {
    slsBrandAnimation = false;
    if(slsBrandIV) clearInterval(slsBrandIV);
    slsBrandCheckImg();
    if(slsBrandIndView) slsBrandSetIndex(slsBrandGetIndStart());
  }
}

//---------------------------------------------------------------------------------------------------------
// Page fader
//---------------------------------------------------------------------------------------------------------

var slsBrandOpacity = 0;

function slsBrandSetOpacity(obj) {
  if(obj) {
    obj.css.opacity = slsBrandOpacity / 100;
    obj.css.MozOpacity = slsBrandOpacity / 100;
    obj.css.KhtmlOpacity = slsBrandOpacity / 100;
    obj.css.filter = 'alpha(opacity=' + slsBrandOpacity + ')';
  }
}

function slsBrandFader(page) {
  if(obj = new slsBrandObject('slsBrandPage' + page)) {
    slsBrandAnimation = true;
    if(slsBrandFadeSpeed && slsBrandOpacity < 100) {
      slsBrandOpacity += slsBrandFadeSpeed;
      if(slsBrandOpacity > 100) slsBrandOpacity = 100;
      slsBrandSetOpacity(obj);
    }
    else {
      slsBrandAnimation = false;
      slsBrandOpacity = 0;
      if(slsBrandIV) clearInterval(slsBrandIV);
      slsBrandCheckImg();
      if(slsBrandIndView) slsBrandSetIndex(slsBrandGetIndStart());
      if(slsBrandPrevious && slsBrandPrevious != obj) {
        slsBrandPrevious.css.display = 'none';
      }
    }
  }
}

//---------------------------------------------------------------------------------------------------------
// Create slideshow
//---------------------------------------------------------------------------------------------------------

function slsBrandBuildContainers() {
  document.write('<div id="slideShow" style="position:relative; width:' + slsBrandW + 'px; height:' + slsBrandH + 'px">');
  if(slsBrandIndView) document.write('<div id="slsBrandInd" style="position:absolute; z-index:69"></div>');
  document.write('<div id="slsBrandBar" style="position:absolute; z-index:69"></div>');
  document.write('<div id="slsBrandBorder" style="position:absolute">');
  document.write('<div id="slsBrandContainer" style="position:absolute; z-index:0; overflow:hidden;');
  document.write(' clip:rect(0,' + slsBrandWidth + ',' + slsBrandHeight + ',0); visibility:hidden">');
  document.write('<div id="slsBrandSlider">');

  for(var i = 0; i < slsBrandPages; i++) {
    document.write('<div id="slsBrandPage' + i + '" style="width:' + slsBrandWidth + 'px;');
    document.write(' height:' + slsBrandHeight + 'px; overflow:' + slsBrandOverflow + '; background-color:' + slsBrandColor + '">');
    document.write(slsBrandContents[i] + '</div>');
  }
  document.write('</div></div></div></div>');
}

slsBrandBuildContainers();
AttachEvent(window,'load',slsBrandInit);
