// JavaScript Documentvar isIE = false;

var holdPicMsec = 3000; 
var fadePicMsec = 2000;  
var fadeInterval = 25; // msec
var fadeStepsPerInterval;
var startTime;

var startImage;
var nextImage;
var numImages = 0;
var currentIndex = 0;
var nextIndex = 1;
var currentOpacity = new Array();

//GENERIC ADDLOAD EVENT FUNCTION
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


function getTimeStamp() {
	var my_current_timestamp;
		
	my_current_timestamp = new Date();
	return my_current_timestamp.getTime();
}

addLoadEvent(grabImages);

function grabImages() {
	if (!document.getElementsByTagName || !document.getElementById ) {
		return false;
	}
	var docImages = document.getElementsByTagName('img');
	for(i=0; i<docImages.length; i++) {
		if (docImages[i].className.indexOf('slideshow') >= 0) {
			startImage = docImages[i];
			addImage( docImages[i].src );
			loadNextImage();
			break;
		}
	}
}

function addImage( theURL ) {
	newimage = document.createElement('IMG');
	newimage.style.visibility = 'hidden';
	newimage.id = 'image' + numImages;
	newimage.src = theURL;
	newimage.width = startImage.width;
	newimage.height = startImage.height;
	newimage.setAttribute('alt', startImage.alt);
	newimage.setAttribute('title', startImage.title);
	newimage.style.position = "absolute";
	newimage.style.zIndex = numImages;
	newimage.className = startImage.className;
	startImage.parentNode.insertBefore(newimage, startImage);
	currentOpacity[numImages] = (numImages == 0)?100:0; 		
}

function loadNextImage() {
	if (numImages && !nextImage.width ) return; // is it really loaded? (Safari bug)
	//alert( 'loaded ' + document.getElementById('image'+numImages).src );
	++numImages;
	var oldName = startImage.src;
	var newName = oldName.substring(0, oldName.indexOf('.jpg')) + numImages + oldName.substring(oldName.indexOf('.jpg'), oldName.length);
	nextImage = new Image();
	nextImage.src = newName;
	nextImage.onload = loadNextImage;	
	addImage( newName );
	
	// once we have two images - start the slideshow
	if (numImages == 2) { 							
		startImage.style.visibility = 'hidden';
		document.getElementById('image0').style.visibility = 'visible';
		setTimeout("swapImage()", holdPicMsec );
	}
}

function swapImage() {
	startTime = getTimeStamp();
	setTimeout("crossFade()", fadeInterval );
}


function crossFade() {
	fadeStepsPerInterval = fadeInterval/fadePicMsec*100; 

	// UPDATE OPACITY
	if (currentIndex < nextIndex) {
		currentOpacity[currentIndex] = 100;
		currentOpacity[nextIndex] += fadeStepsPerInterval;
		currentOpacity[nextIndex] = (currentOpacity[nextIndex]>100)?100:currentOpacity[nextIndex];
	} else {
		currentOpacity[nextIndex] = 100;
		currentOpacity[currentIndex] = (currentOpacity[currentIndex]==0)?100:(currentOpacity[currentIndex]-fadeStepsPerInterval);
		currentOpacity[currentIndex] = (currentOpacity[currentIndex]<0)?0:currentOpacity[currentIndex];
	}
	
	// SET OPACITY
	document.getElementById('image'+currentIndex).style.visibility = 'visible';
	setOpacity(document.getElementById('image'+currentIndex), currentOpacity[currentIndex]);
	
	document.getElementById('image'+nextIndex).style.visibility = 'visible';
	setOpacity(document.getElementById('image'+nextIndex), currentOpacity[nextIndex]);

	// CHECK FOR SWITCH
	if ((currentIndex < nextIndex && currentOpacity[nextIndex] == 100) || (currentIndex > nextIndex && currentOpacity[currentIndex] == 0))  {
		document.getElementById('image'+currentIndex).style.visibility = 'hidden';
		currentOpacity[currentIndex] = 0;
		currentOpacity[nextIndex] = 0;
		currentIndex = nextIndex;
		nextIndex++;
		setTimeout("swapImage()", holdPicMsec);
		if(nextIndex == numImages) { 
			nextIndex=0;
		}
	} else {
//		fadeInterval = (fadeInterval+25 < getTimeStamp() - startTime)?((getTimeStamp() - startTime - 25)+fadeInterval)/2:fadeInterval;
//		fadeInterval = (fadeInterval*4 > fadePicMsec)?(fadePicMsec):fadeInterval;
		startTime = getTimeStamp();
		setTimeout("crossFade()", fadeInterval );
	}	
}


function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  obj.style.filter = "alpha(opacity:"+opacity+")";
  obj.style.KHTMLOpacity = opacity/100;
  obj.style.MozOpacity = opacity/100;
  obj.style.opacity = opacity/100;
}