
function setupzooms() {
	if ( document.getElementsByTagName ) {
	var showdiv = document.getElementById('slideshow');
	var them = showdiv.getElementsByTagName("A");
	var z=0;
	for ( i=0; i<them.length; ++i ) {
		if ( them[i].className=="zoom" ) {
			zoomies[z] = new zoomie(them[i],them[i].href);
			them[i].href='#';
			++z;
			
		}
	}
	addevent(showdiv,'click',startslides,true);
	}
}

function addevent( obj, evType, fn, capture ) {
	if ( obj.addEventListener ) {
		obj.addEventListener( evType, fn, capture );
		return true;
	} else if (obj.attachEvent) {
		var r=obj.attachEvent( "on"+evType, fn);
		return r;
	} else {
	}
	
}
function removeEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    //alert("Handler could not be removed");
  }
}

function prevSlide() {
	--currentSlide;
	if ( currentSlide < 0 ) {
		currentSlide = zoomies.length-1;
	}
	setCurrentSlide();
	return true;
	

}

function nextSlide() {
	++currentSlide;
	if ( currentSlide >= zoomies.length ) {
		currentSlide = 0;
	}
	setCurrentSlide();
	return true;
}

function setCurrentSlide() {
	document.getElementById('currentSlideImg').src=zoomies[currentSlide].href;
	replaceSpanText(document.getElementById('currentSlideCaption'), zoomies[currentSlide].caption);
	replaceSpanText(document.getElementById('currentSlideCredit'),  zoomies[currentSlide].credit);
	return true;
}

function replaceSpanText(span,text) {
	if ( span.childNodes.length > 0 ) {
		lunch = span.firstChild;
		span.removeChild(lunch);
	}
	span.appendChild( document.createTextNode(text) );
}

function startslides(e) {
	viewer=document.getElementById('slideviewer');
	theViewer.maindiv = viewer;
	if ( viewerSetup == false ) {
		p                        = document.createElement("P");
		br                       = document.createElement("BR");
		img                      = document.createElement("IMG");
		caption                  = document.createElement("SPAN");
		credit                   = document.createElement("SPAN");
		controls                 = document.createElement("P");
		prev                     = document.createElement("SPAN");
		prev.appendChild(document.createTextNode("Previous "));
		prev.style.cssFloat      = 'left';
		addevent(prev,'click',prevSlide,true);
		nxt                      = document.createElement("SPAN");
		nxt.appendChild(document.createTextNode(" Next "));
		addevent(nxt,'click',nextSlide,true);
		img.id                   = 'currentSlideImg';
		credit.setAttribute('id','currentSlideCredit');
		caption.setAttribute('id', 'currentSlideCaption');
		closeBox                 = document.createElement("SPAN");
		closeBox.appendChild(document.createTextNode(" Close [X]"));
		closeBox.style.cssFloat  = 'right';
		addevent(closeBox, 'click', closeSlideViewer, true);
		closeBox.className='slideButton';
		prev.className='slideButton';
		nxt.className='slideButton';
		controls.style.textAlign = 'center';
		controls.appendChild(prev);
		controls.appendChild(nxt);
		controls.appendChild(closeBox);
		viewer.appendChild(controls);
		viewer.appendChild(p);
		control2 = controls.cloneNode(true);
		viewer.appendChild(control2);
		p.appendChild(img);
		p.appendChild(br);
		p.appendChild(caption);
		p.appendChild(credit);
		viewerSetup = true;
		caption.className='caption';
		credit.className='credit';
		setCurrentSlide();
	}
	viewer.style.display="block";
	theViewer.p         = p;
	theViewer.image     = p.getElementsByTagName('IMG')[0];
	theViewer.caption   = caption;
	theViewer.credit    =credit;
	theViewer.controls  =controls;
	theViewer.br        = br;
	return true;
}

function closeSlideViewer(e) {
	document.getElementById('slideviewer').style.display='none';
	return true;
}

//zoomie obj hold the "slideshow"
function zoomie(obj,href) {
	this.obj = obj;
	this.href= href;
	spans=obj.parentNode.getElementsByTagName('SPAN');
	caption = document.createElement('SPAN');
	credit = document.createElement('SPAN');
	matches=0;
	if ( spans.length > 0 ) {
		for ( ss=0; ss < spans.length; ++ss ) {
			if ( spans[ss].className=="caption" ) {
				caption = spans[ss].cloneNode(true);
				++matches;
			}
			if ( spans[ss].className=="credit" ) {
				credit = spans[ss].cloneNode(true);
				++matches;
			}
		}
	}
	this.caption = caption.firstChild.nodeValue;
	this.credit  = credit.firstChild.nodeValue;
}
function xlog(txt) {
	line = document.createElement("P");
	line.appendChild(document.createTextNode(txt));
	document.getElementById('slideshow').appendChild(line);
	return true;
}
var theViewer = new Object();
var zoomies=Array();
var viewerSetup=false;
var currentSlide=0;
setupzooms();

