var numberFolderPath = "../Numbers/"
var slideFolderPath = "../Architecture/A1/"
var projectName = "Architecture"

var _slide = (location.search)?parseInt(location.search.substring(1)):0;
var _slideshow = [];

/*************** ADD SLIDE ***************/
function addSlide(image, caption, alt){
	_slideshow[_slideshow.length] = {image:image, caption:caption, alt:alt};
}

/*************** ADD NEXT PROJECT ***************/
var _nextProject;
function addNextProject(url){
	_nextProject = url
}

/*************** WRITE SLIDE SHOW ***************/
function writeSlideShow(){
	cacheImages()

	document.write('<TABLE HEIGHT="376" WIDTH="470" BORDER="0" CELLSPACING="0" CELLPADDING="0">')
	document.write('<TR VALIGN="top"><TD ID="Slide">')
	document.write( formatSlide() )
	document.write('</TD></TR>')
	document.write('<TR VALIGN="bottom"><TD>')
	document.write('<DIV><IMG SRC="' + numberFolderPath + 'spacer.gif" WIDTH="2" HEIGHT="3"></DIV>')
	document.write( formatControlBar() )
	document.write('</TD></TR>')
	document.write('</TABLE>')
}

/*************** FORMAT SLIDE ***************/
function formatSlide(){
	var alt = (_slideshow[_slide].alt)?' ALT="' + _slideshow[_slide].alt + '"':''

	var text = ''
	if(_slideshow[_slide].image)
		text += '<DIV><IMG SRC="' + slideFolderPath + projectName + '-images/' + _slideshow[_slide].image + '"' + alt + ' BORDER="0" HEIGHT="345"></DIV>'
	if(_slideshow[_slide].caption)
		text += '<DIV ID="slideCaption"><IMG SRC="' + slideFolderPath + projectName + '-captions/' + _slideshow[_slide].caption + '"' + alt + ' BORDER="0" VSPACE="5" HEIGHT="10"></DIV>'
	return text
}

/*************** FORMAT CONTROL BAR ***************/
function formatControlBar(){
	var text = ''
	text += '<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR>'
	text += '<TD>' + formatSlideshowNumbers(_slideshow.length) + '</TD>'
	if(_nextProject)
		text += '<TD ALIGN="right">' + formatNextProject() + '</TD>'
	text += '</TR></TABLE>'
	return text
}

/*************** FORMAT SLIDESHOW NUMBERS ***************/
function formatSlideshowNumbers(numberOfSlides){
	var text = ''
	text += '<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR>'
	for(var i=0;i<numberOfSlides;i++){
		var num = (i+1)
		text += '<TD><A HREF="javascript:openSlide(' + i + ')" ONMOUSEOVER="imageDown(\'number' + i + '\')"  ONMOUSEOUT="imageUp(\'number' + i + '\')"><IMG NAME="number' + i + '" SRC="' + numberFolderPath + ((num<10)?'0':'') + num + '-' + ((i == _slide)?'down':'up')+ '.jpg" WIDTH="13" HEIGHT="13" BORDER="0"></A></TD>'
		text += '<TD><IMG SRC="' + numberFolderPath + 'spacer.gif" WIDTH="5" HEIGHT="2" BORDER="0"></TD>'
	}
	text += formatPrevAndNext()
	text += '</TR></TABLE>'
	return text

	// format prev and next
	function formatPrevAndNext(){
		var text = ''
		text += '<TD><IMG SRC="' + numberFolderPath + 'spacer.gif" WIDTH="10" HEIGHT="2" BORDER="0"></TD>'

		// prev
		text += '<TD><A HREF="javascript:openSlide(_slide-1)" ONMOUSEOVER="imageDown(\'prev\')" ONMOUSEOUT="imageUp(\'prev\')"><IMG NAME="prev" SRC="' + numberFolderPath + 'prev-' + ((_slide != 0)?'up':'off') + '.jpg" WIDTH="36" HEIGHT="11" BORDER="0"></A></TD>'
		text += '<TD><IMG SRC="' + numberFolderPath + 'spacer.gif" WIDTH="10" HEIGHT="2" BORDER="0"></TD>'

		// next
		text += '<TD><A HREF="javascript:openSlide(_slide+1)" ONMOUSEOVER="imageDown(\'next\')" ONMOUSEOUT="imageUp(\'next\')"><IMG NAME="next" SRC="' + numberFolderPath + 'next-' + ((_slide < _slideshow.length-1)?'up':'off')+ '.jpg" WIDTH="36" HEIGHT="11" BORDER="0"></A></TD>'

		return text
	}
}

/*************** FORMAT NEXT PROJECT ***************/
function formatNextProject(){
	return '<A HREF="' + _nextProject + '"  ONMOUSEOVER="imageDown(\'nextproject\')" ONMOUSEOUT="imageUp(\'nextproject\')"><IMG NAME="nextproject" SRC="' + numberFolderPath + 'nextproject-up.jpg" WIDTH="76" HEIGHT="11" BORDER="0"></A>'
}

/*************** CACHE IMAGES ***************/
var _imageCache = []
function cacheImages(){
	// cache numbers
	for(var i=0;i<_slideshow.length;i++){
		img("number" + i, (((i+1)<10)?'0':'') + (i+1))
	}
	img("prev", "prev")
	img("next", "next")
	img("nextproject", "nextproject")
	
	// image
	function img(name, image){
		_imageCache[name] = {};
		_imageCache[name].down = new Image()
		_imageCache[name].down.src = numberFolderPath + image + '-down.jpg'
		_imageCache[name].up = new Image()
		_imageCache[name].up.src = numberFolderPath + image + '-up.jpg'
		if(name == "prev" || name == "next"){
			_imageCache[name].off = new Image()
			_imageCache[name].off.src = numberFolderPath + image + '-off.jpg'
		}
	}
}

/*************** IMAGE DOWN ***************/
function imageDown(name){
	if( ("number" + _slide) == name ) return 
	if( document.images[name].src.indexOf("off") != -1) return
	document.images[name].src = _imageCache[name].down.src
}

/*************** IMAGE UP ***************/
function imageUp(name){
	if( ("number" + _slide) == name ) return 
	if( document.images[name].src.indexOf("off") != -1) return
	document.images[name].src = _imageCache[name].up.src
}

/*************** OPEN SLIDE ***************/
function openSlide(i){
	if(i < 0) return
	if(i >= _slideshow.length) return

	var slideElement = getElement()
	if(slideElement){
		// numbers
		document.images["number" + _slide].src = _imageCache["number" + _slide].up.src
		document.images["number" + i].src = _imageCache["number" + i].down.src

		// prev - next
		if(_slide == 0)
			document.images["prev"].src = _imageCache["prev"].up.src
		if(i == 0)		
			document.images["prev"].src = _imageCache["prev"].off.src

		if(_slide == _slideshow.length-1)
			document.images["next"].src = _imageCache["next"].up.src
		if(i == _slideshow.length-1)
			document.images["next"].src = _imageCache["next"].off.src

		_slide = i

		slideElement.innerHTML = formatSlide() + "\n"
	} else {
		location = location.pathname + '?' + i
	}

	function getElement(){
		if(document.all) return document.all["Slide"]
		if(document.getElementById)	return document.getElementById("Slide")
		return null
	}

}