 window.onload = function() {
 
  if (navigator.userAgent.indexOf("Win") != -1) {
//   speed = 25;
   speed = 12;
  } else {
//   speed = 50;
   speed = 25;

  }
 
  documentWidth = document.body.clientWidth;
  documentHeight = document.body.clientHeight;

  buildGrid(documentWidth, documentHeight);
  
  initLightbox();

 }
  
 function buildGrid(width, height) {
  if ((documentWidth < 800) || (documentHeight < 500)) {
   alert("Warning: Your window's size is too small to view this page properly");
  }
  
  var gridTable = document.getElementById("indexgrid");
  gridTable.className = 'grid';
  
  var thumbWidth = 150;
  var thumbHeight = 150;
  
  var numberOfCols = Math.ceil(width / thumbWidth);
  var numberOfRows = Math.ceil(height / thumbHeight);
    
  for (r = 0; r < numberOfRows; r++) {
   
   var newRow = gridTable.insertRow(r);
   
   for (t = 0; t < numberOfCols; t++) {
    var newCol = newRow.insertCell(t);    
    insertThumbNail(newCol);
   }
   
  }
  
  startImageFading();
   
 }
 
 function insertThumbNail(obj) {
  var imgNumber = generateRandomNumber(numberOfImages, "currImages", 0);
  var imgSrc = fileNames[imgNumber];
  
  if (fileProducts[imgNumber] == "1" && fileCaptions[imgNumber]!="SOLD") {
   var extrainfo = '<br /><a href="contact.php?product=' + fileCaptions[imgNumber] + '">Contact us about this product</a>';
  } else {
   var extrainfo = '';
  }
  
  var imgCaption = fileCaptions[imgNumber] + extrainfo;
    
  var newLink = document.createElement("a");
  newLink.setAttribute("rel", "lightbox");
  newLink.setAttribute("href", "img/photos/big/" + imgSrc);
  newLink.className = imgCaption;
  obj.appendChild(newLink);
    
  var newImg = document.createElement("img");
  newImg.setAttribute("src", "img/photos/thumbs/" + imgSrc);
  newLink.appendChild(newImg);
  
  var currImages = document.getElementById("currImages");  
  currImages.innerHTML += ' - ' + imgNumber + ' - '; 
 }
 
 function generateRandomNumber(endNumber, divId, counter) {
  var number = Math.floor(Math.random() * endNumber);
  counter = counter + 1;
  
  if (document.getElementById(divId).innerHTML.indexOf(" - " + number + " - ") != -1) {
   if (counter > 50) {
    return number;
   } else {
    return generateRandomNumber(endNumber, divId, counter);
   } 
  } else {
   return number;
  }
 }
 
 function startImageFading() {
  timeout = 2000; 
  window.setTimeout("fadeRandomImage(0, false)", timeout);
 }
 
 function fadeRandomImage(counter, imgNumber) {
  var table = document.getElementById("indexgrid");
  var rows = table.getElementsByTagName("tr");
  
  if (imgNumber == false) {
   var colsNumber = rows[0].getElementsByTagName("td").length;
   var rowsNumber = rows.length;
   var maxNumber = colsNumber * rowsNumber;
   var imgNumber = Math.ceil(Math.random() * (maxNumber - 1));
  }
  
  counter = counter + 1;
  addNumber = 5;
  maxCount = 100 / addNumber;
  newOpac = (maxCount - counter) * addNumber;
  
  if (newOpac == 100)
   mozOpac = '1.0';
  else if (newOpac < 10)
   mozOpac = '.0' + newOpac;
  else
   mozOpac = '.' + newOpac;

  imgNumber = Math.ceil(imgNumber);
     
  var imagetd = table.getElementsByTagName("td")[imgNumber];
  var fadeImage = imagetd.getElementsByTagName("img")[0];
  
  fadeImage.style.opacity = mozOpac;
  fadeImage.style.filter = 'alpha(opacity=' + newOpac + ')';
  
  var end = false;
  
  if (newOpac <= 0) {
   end = true;
  }
  
  if (end != true) {
   window.setTimeout("fadeRandomImage(" + counter + ", " + imgNumber + ")", speed);
  } else {
   changeImage(imgNumber);
   window.setTimeout("showPreviousImage(0, " + imgNumber + ")", speed + 100);
  }
 }
 
 function showPreviousImage(counter, imgNumber) {
  var table = document.getElementById("indexgrid");
  var image = table.getElementsByTagName("td")[imgNumber].getElementsByTagName("img")[0];
  
  counter = counter + 1;
  var addNumber = 5;
  var maxCount = 100 / addNumber;
  var newOpac = counter * addNumber;
    
  if (newOpac == 100)
   var mozOpac = '1.0';
  else if (newOpac < 10)
   var mozOpac = '.0' + newOpac;
  else
   var mozOpac = '.' + newOpac;
   
  image.style.opacity = mozOpac;
  image.style.filter = 'alpha(opacity=' + newOpac + ')';
   
  if (maxCount > counter) {
   window.setTimeout("showPreviousImage(" + counter + ", " + imgNumber + ")", speed);
  } else {
   startImageFading();
  }
 }
 
 function changeImage(imgNumber) {
  var imagetd = document.getElementById("indexgrid").getElementsByTagName("td")[imgNumber];
  var link = imagetd.getElementsByTagName("a")[0];
  var img = imagetd.getElementsByTagName("img")[0];
  
  oldImageSrc = img.getAttribute("src");
  
  newImageNumber = generateRandomNumber(numberOfImages, "currImages", 0);
  newImageSrc = fileNames[newImageNumber];
  newImageCaption = fileCaptions[newImageNumber];
  
  link.setAttribute("href", "img/photos/big/" + newImageSrc);
  link.className = newImageCaption;
  img.setAttribute("src", "img/photos/thumbs/" + newImageSrc);
  
  for (i = 0; i < fileNames.length; i++) {
   var fileName = fileNames[i];
   if (fileName == oldImageSrc) {
    var currImages = document.getElementById("currImages");
    currImages.innerHTML = currImages.innerHTML.replace(" - " + i + " - ", "");
    currImages.innerHTML += " - " + newImageNumber + " - ";
   }
  } 
 }
 
 function showContactInfo() {
  var info = document.getElementById("contactinfo");
  info.className += ' buttonhover';
 }
 
 function hideContactInfo() {
  var info = document.getElementById("contactinfo");
  info.className = info.className.replace("buttonhover", "");
 }
 
 function getLatestArrivals() {
  var data = document.getElementById("data");
  data.getElementsByTagName("a")[0].submit();
 }