var slideshow;
var imageobjects;
var anchorobjects;
var images;
var fullimages;
var imagecount=0;
var lastimagechanged=-1;
var current_image;

images = new Array();
fullimages = new Array();

function initSlideshow()
{
  slideshow = document.getElementById("slideshow_container");
  imageobjects = slideshow.getElementsByTagName("img");
  anchorobjects = slideshow.getElementsByTagName("a");
  for (var obj=0;obj<imageobjects.length;obj++)
    if (imageobjects[obj].className != "slide")
      setOpacity(imageobjects[obj], 0);
}

function addSlideshowImage(_image,_width,_height,_fullimage,_title,_gallery_id,_gallery_item)
{
  images[imagecount]        = new Image();
  images[imagecount].src    = _image;
  images[imagecount].alt    = _title;
  images[imagecount].gallery_id = _gallery_id;
  images[imagecount].gallery_item = _gallery_item;
  images[imagecount].style.width  = _width+"px";
  images[imagecount].style.height = _height+"px";
  if (_fullimage)
  {
    fullimages[imagecount]        = new Image();
    fullimages[imagecount].src    = _fullimage;
    fullimages[imagecount].alt    = _title;
  }
  imagecount++;
}

function fadeImage()
{
  document.getElementById('loading').style.visibility = "hidden";
  document.getElementById('loading').style.display = "none";
//  var image = document.getElementById('largeImage');
  current_image.style.visibility = 'visible';
  setOpacity(current_image, 0);
  fadeIn(current_image.id,0);
}

function changeImage()
{
  var imageobject;
  do
  {
    imageobject = Math.floor(imageobjects.length*Math.random());
  }
  while (imageobject == lastimagechanged || imageobjects[imageobject].className != "slide");
  lastimagechanged = imageobject;
//  imageobjects[imageobject].style.visibility = 'visible';

  var canContinue=false;
  while (!canContinue)
  {
    canContinue=true;
    var image_no = Math.floor((imagecount/**1.25*/)*Math.random());
    for (var obj=0;obj<imageobjects.length;obj++)
    {
      if (image_no > imagecount)
      {
        fadeOut(imageobjects[imageobject].id, 0);
//        imageobjects[imageobject].style.visibility = 'hidden';
        imageobjects[imageobject].src = "";
        canContinue = true;
        break;
      }
//      if (obj!=imageobject)
        canContinue &= (unescape(imageobjects[obj].src).indexOf(unescape(images[image_no].src)) == -1);
    }
    if (canContinue)
    {
//			alert(images[image_no].src);
      if (image_no < imagecount)
      {
//        alert(imageobjects[imageobject].src);
        if (imageobjects[imageobject].src == "")
        {
          current_image                  = imageobjects[imageobject];
          current_image.onload           = fadeImage;
          current_image.style.top        = (240-parseInt(images[image_no].style.height))/2;
          current_image.style.width      = images[image_no].style.width;
          current_image.style.height     = images[image_no].style.height;
//          current_image.style.top        = "-50%";
//          current_image.style.marginTop = (parseInt(images[image_no].style.height)/2)+"px";
          current_image.src              = images[image_no].src;
          current_anchor                 = anchorobjects[imageobject];
					_item = 0;
					if (images[image_no].gallery_item)
						_item = images[image_no].gallery_item;
          if (fullimages[image_no])
            current_anchor.href        = 'javascript:showImageViewer(\''+fullimages[image_no].src+'\',\''+fullimages[image_no].width+'\',\''+fullimages[image_no].height+'\',\''+fullimages[image_no].alt+'\','+images[image_no].gallery_id+','+_item+');';
          else
            current_anchor.href        = 'javascript:showImageViewer(\''+images[image_no].src+'\',\''+images[image_no].width+'\',\''+images[image_no].height+'\',\''+images[image_no].alt+'\',"'+images[image_no].gallery_item+'");';

          var coverId = "slideshow_cover"+current_image.id.substring(5);
          if (!document.getElementById(coverId))
            coverId = "vslideshow_cover"+current_image.id.substring(5);
//          var coverId = "anchor"+current_image.id.substring(5);
//          alert(coverId);
//          alert(document.getElementById(coverId));
          document.getElementById(coverId).title = images[image_no].alt+" (click to enlarge)";
        }
        else
        {
          current_image              = imageobjects[imageobject];
          current_image.new_top      = (240-parseInt(images[image_no].style.height))/2;
          current_image.new_width    = images[image_no].style.width;
          current_image.new_height   = images[image_no].style.height;
          current_image.new_src      = images[image_no].src;
//          current_image.style.new_marginTop = (images[image_no].style.height/2)+"px";
          current_image.gallery_id = images[image_no].gallery_id;
          current_image.gallery_item = images[image_no].gallery_item;
          if (fullimages[image_no])
          {
            current_image.full_src    = fullimages[image_no].src;
            current_image.full_width  = fullimages[image_no].width;
            current_image.full_height = fullimages[image_no].height;
            current_image.full_title  = fullimages[image_no].alt+" (click to enlarge)";
            current_image.full_alt    = fullimages[image_no].alt;
          }
          else
          {
            current_image.full_src    = images[image_no].src;
            current_image.full_width  = images[image_no].width;
            current_image.full_height = images[image_no].height;
            current_image.full_title  = images[image_no].alt+" (click to enlarge)";
            current_image.full_alt    = images[image_no].alt;
          }
          current_anchor            = anchorobjects[imageobject];
          var coverId = "slideshow_cover"+current_image.id.substring(5);
          if (!document.getElementById(coverId))
            coverId = "vslideshow_cover"+current_image.id.substring(5);

          fosn_objId   = current_image.id;
          fosn_anchId  = current_anchor.id;
          fosn_opacity = 100;
          fosn_coverId = coverId;
          fadeOutSetNew();
        }
      }
      break;
    }
  }
  setTimeout('changeImage()', 5000);
}

