/*********************************quickie functions*/
function imgTest() {
	return document.getElementById;
}

function getElTest() {
	return document.images;
}

function quickZoomTest() {
	return imgTest() && getElTest();
}

//set the inner html text of named element "el" to "msg"
function setInner(el, msg) {
	if(getElTest()){
		document.getElementById(el).childNodes[0].nodeValue = msg;
	}
}

// IE sets focus mask on clicked link. this removes the focus (used for dhtml help pop-ups)
function unblur(item) {
	if(item.blur)item.blur();
}

function loadingView(){
	if(quickZoomTest()){
		//document.getElementById('window').className = 'bigZ';
		//document.getElementById('viewdesc').className = 'littleZ';
		//alert('loading thumb');
	}
}

function loadedView(){
	if(quickZoomTest()){
		//document.getElementById('window').className = 'bigZ';
		//document.getElementById('viewdesc').className = 'littleZ';
		//alert('thumb loaded');
	}
}

//displays the specified image in the viewport
//parameters: window image location, window subtitle, window link, inner window text
function zoomImage(imgLoc, imgText, windowLink, windowText) {
	
	unZoomImage();
	
	var defWinText = 'loading image ...';
	
	if (quickZoomTest()) {
		
		if(windowText == '') {
			setInner('viewdesc', defWinText);
		}
		
		document.getElementById('window').src = imgLoc;
		document.getElementById('vlink').href = windowLink;
		setInner('vtitle', imgText);
		
		setInner('viewdesc',' ');
		
	}
}

//clears the viewport and writes windowText to window (optionally set the window link)
function unZoomImage(windowText, imgLoc){
	
	if (quickZoomTest()) {
		loadingView();
		document.getElementById('window').src = "../herbarium/images/window.gif";
		document.getElementById('vlink').href = imgLoc;
		
		setInner('vtitle', ' ');
		if (unZoomImage.arguments.length == 2) {
			setInner('viewdesc',windowText);
		} else {
			setInner('viewdesc', ' ');
		}
	}
}

function preloadImages(images) {
	if (quickZoomTest()) {
		self.defaultStatus = 'preloading images...';
		var imgs = new Array();
		for (i=0; i<preloadImages.arguments.length; i++){
			imgs[i]=new Image().src=preloadImages.arguments[i];
		}
		self.defaultStatus = '';
	}
}



/* www.jasonmoon.com */
//Preloaded slideshow script- By Jason Moon
//For this script and more
//Visit http://www.dynamicdrive.com
//sumit - added writeLegend()
function cacheImage(imageSource) { // TURNS THE STRING INTO AN IMAGE OBJECT
   var imageObject = new Image();
   imageObject.src = imageSource;
   return imageObject;
}

function showSlide(direction) {
  if (slideReady) {
     
    nextSlide = currentSlide + direction;
   
    if (nextSlide == 0) {
  		document.getElementById('leftArrow').style.visibility = 'hidden';
  	} else {
  		document.getElementById('leftArrow').style.visibility = 'visible';
  	}
  	if (nextSlide == (slides.length-1)) {
  		document.getElementById('rightArrow').style.visibility = 'hidden';
  	} else {
  		document.getElementById('rightArrow').style.visibility = 'visible';
 		}
 		
 		if ((nextSlide >= 0) && (nextSlide < slides.length)) {
  		document.images['window'].src = slides[nextSlide].src;
    	currentSlide = nextSlide++;
    	statusMsg = 'image ' + (currentSlide+1) + ' of ' + slides.length;
      self.defaultStatus = statusMsg;
    	writeLegend(currentSlide+1);
      if (direction == 1) cacheNextSlide();
    } else {
    	writeLegend('');
    }
    return true;
  }
}

function download() {
   if (slides[nextSlide].complete) {
      slideReady = true;
      self.defaultStatus = statusMsg;
   }
   else setTimeout("download()", 100); // CHECKS DOWNLOAD STATUS EVERY 100 MS
   return true;
}

function cacheNextSlide() {
   if ((nextSlide < slides.length) && (typeof slides[nextSlide] == 'string')){
   	  // ONLY CACHES THE IMAGES ONCE
      slideReady = false;
      self.defaultStatus = 'Downloading next picture...';
      slides[nextSlide] = cacheImage(slides[nextSlide]);
      download();
   }
   return true;
}

function startSlideShow() {
   if (imgTest()){
	   currentSlide = -1;
	   slides[0] = cacheImage(slides[0]);
	   slideReady = true;
	   showSlide(1);
	  }
}

//sets the vnavtitle text and visiblity of the navigation arrows
function writeLegend(currIndex) {
	var legendMsg;
	var subTitleMsg;
	if (slides.length > 0) {
		legendMsg = 'image ' + currIndex + ' of ' + slides.length;
		if(imgDesc[currIndex-1] != "undefined"){

			onMouseEvent = 'setInner(\'viewdesc\',\'' + imgSource[currIndex-1] + '\');';

			document.getElementById('window').onmouseover = function(){
				setInner('viewdesc','photo by ' + imgSource[currIndex-1]);
				document.getElementById('viewdesc').style.backgroundColor = '#000';
			};
			document.getElementById('window').onmouseout  = function(){
				setInner('viewdesc',''); document.getElementById('viewdesc').style.backgroundColor = '';
			};
		}
	} else {
		legendMsg = '';
		subTitleMsg = '';
	}
	document.getElementById('vnavtitle').childNodes[0].nodeValue = legendMsg;
}
