// ------------------------------------------ GLOBAL CONSTANTS (may be modified)
// -----------------------------------------------------------------------------
var slshTimeOut = 100; // delay between two fade steps
var slshDelay = 4000;  // how long a image is shown before the next is faded in
var slshDelta = 10;    // how much the opacity is modified per step(in percent)

// ------------------------------------------------------------ GLOBAL VARIABLES
// -----------------------------------------------------------------------------
var slshStartOpacity = 0;
var slshCurOpacity = slshStartOpacity;
var slshCurImage = 0;

// ----------------------------------------------------------- PRIVATE FUNCTIONS
// -----------------------------------------------------------------------------
// sets the opacity of layer2
function slshSetOpacity(opacity)
{
  var layer2 = document.getElementById('slshLayer2');
  if(layer2 != null) {
    var layer2style = layer2.style;
    layer2style.opacity = (opacity / 100);
    layer2style.MozOpacity = (opacity / 100);
    layer2style.KhtmlOpacity = (opacity / 100);
    layer2style.filter = "alpha(opacity=" + opacity + ")";
  } 
  slshCurOpacity = opacity;
}      

// sets the href-property of the link
// url - url to set
function slshSetLink(url) {
  var slshLink = document.getElementById('slshLink');
  if(slshLink != null) slshLink.href = url;
}

// sets the background-image of a div
// div - div
// url - url of the image
function slshSetImage(div, url) {
  if(div != null) {
    div.style.backgroundImage = "URL('" + url + "')";
  }
}

function MYbrowser() {
    var navName = navigator.appName;
    var brVer = navigator.userAgent; var brNum; var reg = new RegExp('/');
    function verNumIE() {
       var brVerId = brVer.indexOf('MSIE');
       brNum = brVer.substr(brVerId,8);
    }
    function verNumOt() {
       var brVerId = brVer.search(reg);
       brNum = brVer.substring(brVerId+1);
    }
    if (navigator.appName == 'Microsoft Internet Explorer') {
      verNumIE() ;
    }
    else if (navigator.appName == 'Opera') {
      return 5;
    } else {
      verNumOt() ;
    }
    return brNum.substring(5,6);
}



// ------------------------------------------------------------ PUBLIC FUNCTIONS
// -----------------------------------------------------------------------------
// initializes the script
function slshInit(randomize) {
  browser = MYbrowser();
  if (browser <= 6) {
    slshCurImage = Math.round(Math.random()*(slshImages.length -2));
    document.getElementById("slshImage").src = slshImages[slshCurImage];
    document.getElementById("slshLink").href = slshUrls[slshCurImage];
    return;
  }
  slshSetOpacity(slshStartOpacity);
  if(randomize) slshCurImage = Math.round(Math.random()*(slshImages.length -1));
  slshSetLink(slshUrls[slshCurImage]);
  slshSetImage(document.getElementById('slshLayer1'), slshImages[slshCurImage]);
  slshSetImage(document.getElementById('slshLayer2'), slshImages[slshCurImage]);
  window.setTimeout("slshTick()", slshDelay);
}

// event handler for the timer
function slshTick() {
  var layer2 = document.getElementById('slshLayer2');
 
  slshSetOpacity(slshCurOpacity + slshDelta);
  if(slshCurOpacity >= 100) {
    var layer1 = document.getElementById('slshLayer1');
    slshSetImage(layer1, slshImages[slshCurImage]);
    slshSetLink(slshUrls[slshCurImage]);

    slshCurImage = (slshCurImage + 1) % (slshImages.length - 1);

    slshSetOpacity(slshStartOpacity);
    slshSetImage(layer2, slshImages[slshCurImage]);
    
    window.setTimeout("slshTick()", slshDelay);        
  } else {
    window.setTimeout("slshTick()", slshTimeOut);
  }
}