function opacity(id, opacStart, opacEnd, millisec) {
  //speed for each frame
  var speed = Math.round(millisec / 100);
  var timer = 0;
  
  //determine the direction for the blending, if start and end are the same nothing happens
  if(opacStart > opacEnd) {
      for(i = opacStart; i >= opacEnd; i--) {
          setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
          timer++;
      }
  } else if(opacStart < opacEnd) {
      for(i = opacStart; i <= opacEnd; i++) {
          setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
          timer++;
      }
  }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 

var numImages=JS_num_images;

// Initialize back and next buttons for first load
var nextImg = 1;
var backImg = 0;
var curImage = 0;

// Changes the main image  
function imgChange(img_number) {
  // Check that browser will allow image changes
  if (document.images) {
    
    // Check that next image exits and is loaded
    if (slide_image[img_number] && slide_image[img_number].complete) {
      var target=0;
      // Sprecify target (supports old versions too)
      if (document.images.mainGalleryImg) {
        target=document.images.mainGalleryImg;
      }
      if (document.all && document.getElementById("mainGalleryImg")) {
        target=document.getElementById("mainGalleryImg");
      }

      // make sure target is valid.
      if (target) { 
        // Change the image
        target.src = slide_image[img_number].src;
        target.width = JS_width[img_number];
        target.height = JS_height[img_number];
        curImage = img_number;
        
        if (document.getElementById('entry_name')) { // If there is an "entry_name" element display filename
         value = slide_image[img_number].src.replace(/%20/, " "); //change %20 to [space]
         value=value.split("/"); //split into elements at '/'
         x = value.length; //determine number of elements
         value = value[x-1]; //select last element
         value = value.replace(/\.jpg/, ""); //remove '.jpg'
        
         document.getElementById('entry_name').innerHTML=value;
        }
        
        //fade in
        opacity("mainGalleryImg", 0, 100, 500);
      }
      
      // Control display and function of next button
      nextImg = img_number;
      if (img_number == JS_num_images) {
       nextImg=0;
      } else {
       nextImg++;
      }
      
      // Control display and function of back button
      backImg = img_number;
      if (img_number == 0) {
       backImg=JS_num_images;
      } else {
       backImg--;
      }

    }
    else { // If image not loaded, check again in 500ms
      setTimeout("imgChange()", 500);
    }
  }
}

// Initialize timer
var timer;

function play() {
  // clear timeout
  clearTimeout(timer);
  
  // Set the delay for next image (milliseconds)
  timer=setTimeout ("play()", 2500);
  
  imgChange(curImage);
  
  if(curImage == numImages) {
    curImage = 0;
  } else {
    curImage++;
  }  
}

function pause() {
  // clear timeout
  clearTimeout(timer);
} 
