/************************************************************************************************************
(C) www.dhtmlgoodies.com, November 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website. 

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/
var arrowImageHeight = 35;  // Height of arrow image in pixels;
var displayWaitMessage=true;  // Display a please wait message while images are loading?

var previewImage = false;
var plpreviewImage = false;
var previewImageParent = false;
var slideSpeed = 0;
var previewImagePane = false;
var slideEndMarker = false;
var galleryContainer = false;
var imageGalleryCaptions = new Array();
function getTopPos(inputObj)
{

  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
  return returnValue;
}

function getLeftPos(inputObj)
{

  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
  return returnValue;
}

function showPreview(newSrc,imageIndex)
{
  if(isfading)
    return false;
    
  if(!plpreviewImage){
    /*var images = document.getElementById('previewCell').getElementsByTagName('IMG');
    if(images.length>0){
      previewImage = images[0];
    }else{
      previewImage = document.createElement('IMG');
      document.getElementById('previewCell').appendChild(previewImage); 
    }*/
    plpreviewImage = new Image();
  }
  if(displayWaitMessage){
    document.getElementById('waitMessage').style.display='block';
  }
  document.getElementById('largeImageCaption').style.display='none';
  plpreviewImage.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); };        
  plpreviewImage.src = newSrc;
}
function hideWaitMessageAndShowCaption(imageIndex)
{
  if(!previewImage){
    var images = document.getElementById('previewCell').getElementsByTagName('IMG');
    if(images.length>0){
      previewImage = images[0];
    }else{
      previewImage = document.createElement('IMG');
      document.getElementById('previewCell').appendChild(previewImage);
    }
  }
  document.getElementById('waitMessage').style.display='none';
  document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex];
  document.getElementById('largeImageCaption').style.display='block';
  beginFadeout();
  //beginFadein();
} 
function initSlide(e)
{
  if(document.all)e = event;

  if(this.src.indexOf('-on')<0) imgSwap(this);//this.src = this.src.replace('.png','-over.png');

  slideSpeed = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop) - getTopPos(this);
  if(this.src.indexOf('down')>=0){
    slideSpeed = (slideSpeed)*-1; 
  }else{
    slideSpeed = arrowImageHeight - slideSpeed;
  }
  slideSpeed = Math.round(slideSpeed * 10 / arrowImageHeight);
}

function updateSlide(e)
{
  if(document.all)e = event;

  slideSpeed = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop) - getTopPos(this);
  if(this.src.indexOf('down')>=0){
    slideSpeed = (slideSpeed)*-1; 
  }else{
    slideSpeed = arrowImageHeight - slideSpeed;
  }
  slideSpeed = Math.round(slideSpeed * 10 / arrowImageHeight);
}

function stopSlide()
{   
  slideSpeed = 0;
  imgSwap(this);//this.src = this.src.replace('-over','');
}

function slidePreviewPane()
{
  if(slideSpeed!=0){
    var topPos = previewImagePane.style.top.replace(/[^\-0-9]/g,'')/1;  

    if(slideSpeed<0 && slideEndMarker.offsetTop<(previewImageParent.offsetHeight - topPos)){
      slideSpeed=0;

    }
    topPos = topPos + slideSpeed;
    if(topPos>0)topPos=0;

    previewImagePane.style.top = topPos + 'px';

  }
  setTimeout('slidePreviewPane()',30);    
}

function revealThumbnail()
{
  this.style.filter = 'alpha(opacity=100)';
  this.style.opacity = 1;
}

function hideThumbnail()
{
  this.style.filter = 'alpha(opacity=50)';
  this.style.opacity = 0.5;
}

function initGalleryScript()
{
  previewImageParent = document.getElementById('theImages');
  previewImagePane = document.getElementById('theImages').getElementsByTagName('DIV')[0];
  previewImagePane.style.top = '0px';
  galleryContainer  = document.getElementById('galleryContainer');
  var images = previewImagePane.getElementsByTagName('IMG');
  for(var no=0;no<images.length;no++){
    images[no].onmouseover = revealThumbnail;
    images[no].onmouseout = hideThumbnail;
  } 
  slideEndMarker = document.getElementById('slideEnd');

  document.getElementById('arrow_up_image').onmouseover = initSlide;
  document.getElementById('arrow_up_image').onmousemove = updateSlide;
  document.getElementById('arrow_up_image').onmouseout = stopSlide;

  document.getElementById('arrow_down_image').onmouseover = initSlide;
  document.getElementById('arrow_down_image').onmousemove = updateSlide;
  document.getElementById('arrow_down_image').onmouseout = stopSlide;
  var divs = previewImageParent.getElementsByTagName('DIV');
  for(var no=0;no<divs.length;no++){
    if(divs[no].className=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
  }
  slidePreviewPane();

}

function imgSwap(oImg)
{
  //Call an images special imgSwap function if defined(like for PNG fix)
  if( oImg.imgSwap )
  {
    oImg.imgSwap()
  }
  else
  {
    var strOver  = "-on";    // image to be used with mouse over
    var strOff = "-off";    // normal image
    var strImg = oImg.src;
    if (strImg.indexOf(strOver) != -1)
    {
      oImg.src = strImg.replace(strOver,strOff);
    }
    else
    {
      oImg.src = strImg.replace(strOff,strOver);
    }
  }
}

var isfading = false;
var fadeTimer = 0;
var fadeVal = 0;
var fadeRate = 10;

// function initMarquee()
// {
//   marqDiv = document.getElementById("marqdiv");
//   marqDiv.innerHTML = marqMsgs[msgIdx];
//   setTimeout("beginFadeout()",10000);
// }

function beginFadeout()
{
  isfading = true;
  fadeVal = 100;
  fadeTimer = setInterval("fadeOut()",50);
}

function fadeOut()
{
  startFadein = false;

  marqDiv = document.getElementById("previewCell");

  fadeVal -= fadeRate;      

  if(window.sidebar)
  {
    marqDiv.style.MozOpacity=fadeVal/100.0;

    if(fadeVal <= 0)
    {
      startFadein = true;
    }
  }

  if(document.all)
  {
    marqDiv.filters[0].opacity=fadeVal;

    if(fadeVal <= 0)
    {
      startFadein = true;
    }
  }

  if( startFadein )
  {
    clearInterval(fadeTimer);
    fadeTimer = 0;
    previewImage.src = plpreviewImage.src;
//     msgIdx = (msgIdx == 0) ? 1 : 0;
//     marqDiv.innerHTML = marqMsgs[msgIdx];
    fadeTimer = setInterval("fadeIn()",50);
  }
}

function fadeIn()
{
  waitFadeout = false;      

  marqDiv = document.getElementById("previewCell");

  fadeVal += fadeRate;      

  if(window.sidebar)
  {
    marqDiv.style.MozOpacity=fadeVal/100.0;

    if(fadeVal >= 100)
    {
      waitFadeout = true;
    }
  }

  if(document.all)
  {
    marqDiv.filters[0].opacity=fadeVal;

    if(fadeVal >= 100)
    {
      waitFadeout = true;
    }
  }

  if( waitFadeout )
  {
    clearInterval(fadeTimer);
    fadeTimer = 0;
    isfading = false;
//     setTimeout("beginFadeout()",10000);
  }
}

window.onload = initGalleryScript;