/* v4: data read using XMLHTTPRequest, random images, DOM display,  */
/* images preloaded for smoother display */

/* new stuff start */
var imgObj;
/* new stuff end */

var slidefile; // set in html

var numSlides;

var pictures = new Array ();
var heights  = new Array ();
var captions = new Array ();

var pic = "36";
var width = "180";
var height = "120";
var caption = "Kuhns Bros Log Homes";

function startShow() {
  // alert("about to grabfile: " + slidefile);
  grabFile(slidefile);
}

function grabFile(file) {
  // alert("about to getHTTPObject");
  var request = getHTTPObject();
  if (request) {
    // alert("successfully got getHTTPObject");
    request.onreadystatechange = function() {
      displayResponse(request);
    };
    request.open("GET", file, true);
    request.send(null);
  }
}

function getHTTPObject() {
  var xhr = false;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  }
  return xhr;
}

function displayResponse(request) {
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
      // alert(request.responseText);
      var data = request.responseXML;
      var pictureNodes = data.getElementsByTagName("picture");
      var heightNodes  = data.getElementsByTagName("height");
      var captionNodes = data.getElementsByTagName("caption");
      numSlides = pictureNodes.length;
      // alert(numSlides);
      for (var i = 0; i < pictureNodes.length; i++) {
        pictures[i] = pictureNodes[i].firstChild.nodeValue; // if (i==2) alert(pictures[i]);
        heights[i]  = heightNodes[i].firstChild.nodeValue; // if (i==2) alert(heights[i]);
        captions[i] = captionNodes[i].firstChild.nodeValue; // if (i==2) alert(captions[i]);
      }
      setTimeout('showSlide()',2500);
    }
  }
}

function showSlide() {
  var i   = rand(numSlides - 1);
  pic     = pictures[i];
  height  = heights[i];
  caption = captions[i];
  /* new stuff start */
  /* alert("about to load new image"); */
  if (document.images) {
    imgObj = new Image(width, height);
    imgObj.onload = switchSlide; // switchSlide();
    imgObj.src = "/thumbs/photo_" + pic + ".jpg";
  }
  /*
  switchSlide();
  */
  /* new stuff end */
  setTimeout('showSlide()',2000);
}

function rand(num) {
  return Math.floor(Math.random() * num); // + 1
}

function switchSlide() {
  /* alert("about to switch"); */
  var container = document.getElementById("slideshow");
  var anchor    = container.getElementsByTagName("a")[0];
  var img       = anchor.getElementsByTagName("img")[0];
  var para      = container.getElementsByTagName("p")[0];
  anchor.setAttribute("href","photo.php?photo=photo_" + pic);
  img.setAttribute("src", "/thumbs/photo_" + pic + ".jpg"); // img.src = "/slideshow/thumbs/photo_" + pic + ".jpg";
  img.setAttribute("height", height);
  img.setAttribute("alt", caption);
  para.firstChild.nodeValue = caption;
  /* alert("finished switch"); */
  /*
  bigString = '<a href="photo.php?photo=photo_' + pic + '">';
  bigString += '<img alt="' + caption + '" src="thumbs/photo_' + pic + '.jpg" width="180" height="' + height + '" />';
  bigString += '</a>';
  bigString += '<p>' + caption + '</p>';
  object.innerHTML = bigString;
  */
}

window.onload = startShow; // window.onload = function() {startShow()}

