
var iNumSlides = 21;

var imageList;
var namesList;
var iCurSlide = 0; // zero-based ordering, but print out 1-based
var iCurDoc = 1; // The document we're on.  1 and 2 are the pre-defined ones, 0 == custom
var sCustomSlides = null;
var iInterval = 2000;

var g_sName = null;

var bInited=false;

// The cookie
var slidedata = new Cookie(document, "slide_show_state", 240);



function doCookieStoreData() {
	slidedata.sName = g_sName;
	slidedata.iCurSlide = iCurSlide;
	slidedata.iCurDoc = iCurDoc;
	slidedata.iInterval = iInterval;
	if (sCustomSlides) {
		for(i=0; i<sCustomSlides.length; i++) {
			eval('slidedata.sCustom' + i + ' = sCustomSlides[i]');
		}
		eval('slidedata.sCustom' + sCustomSlides.length + ' = 0');
	}
	slidedata.store();
}

function doCookieLoadData() {
	if (!slidedata.load() || !slidedata.iCurSlide) {
		// No cookie availible, use defaults already assigned
	} else {
		// Loaded data!
		iCurSlide = slidedata.iCurSlide;
		if (slidedata.iCurDoc) {
			iCurDoc = slidedata.iCurDoc;
		}
		if (slidedata.sName) {
			g_sName = slidedata.sName;
			if (g_sName=="null") {
				g_sName = null;
			}
		} else {
			g_sName = null;
		}
		if (slidedata.sCustom0) {
			var bContinue=true;
			var i=0;
			sCustomSlides = new Array();
			while (bContinue) {
				eval('sCustomSlides[i] = slidedata.sCustom' + i);
				if (sCustomSlides[i]==0 || !sCustomSlides[i]) {
					bContinue=false;
				}
				i++
			}
			sCustomSlides.length = i-1;
		} else {
			sCustomSlides = null;
			alert("No custom slides");
		}
		if (slidedata.iInterval) {
			iInterval = slidedata.iInterval;
		}
	}

}



function init() {
	iCurSlide = 0;
	iCurDoc = 1;
	// Load state from Cookie here
	doCookieLoadData();

	if (iCurDoc==1) {
		setupDoc1();
	} else if (iCurDoc==2) {
		setupDoc2();
	} else if (iCurDoc==0) {
		if (!sCustomSlides) {
			alert('Invalid doc type and custom slides');
			setupDoc1();
		} else {
			setupDocCustom(sCustomSlides);
		}
	}

	if (!g_sName) {
		g_sName = prompt("What is your name:", "");
		slidedata.visits=0;
	} else {
		slidedata.visits++;
		var lastvis;
		if (slidedata.lastvisit) {
			lastvis = slidedata.lastvisit;
		} else {
			lastvis = "never";
		}
		alert("Welcome back, " + g_sName + ", you have visited " + slidedata.visits + " time(s).\n" + "The last time you visited was " + lastvis);
		var today = new Date();
		slidedata.lastvisit = today.toLocaleString();
		doCookieStoreData();
	}

	bInited=true;

}

function displaySlide() {
	top.main.document.slide.src = imageList[iCurSlide].src;
	if (top.nav.document.form0) {
		if (top.nav.document.form0.slides) {
			top.nav.document.form0.slides.selectedIndex = iCurSlide;
		}
	}
	doCookieStoreData();
}


function navFirst() {
	iCurSlide = 0;
	displaySlide();
}
function navLast() {
	iCurSlide = iNumSlides - 1;
	displaySlide();
}
function navNext() {
	if (iCurSlide== iNumSlides - 1) {
		alert("You are already at the end of the presentation.");
		return;
	}
	iCurSlide++;
	displaySlide();
}
function navPrev() {
	if (iCurSlide== 0) {
		alert("You are already at the begining of the presentation.");
		return;
	}
	iCurSlide--;;
	displaySlide();
}


function changeSlides2() {
	iCurSlide = top.nav.document.form0.slides.options[top.nav.document.form0.slides.selectedIndex].value;
	displaySlide();
}

function changeSlides(iSlideNum) {
	iCurSlide = iSlideNum;
	displaySlide();
}


function dynWriteSlidesOption() {
	while (!bInited) { 
	} // WEND
	top.nav.document.write('<SELECT NAME="slides" ONCHANGE="parent.changeSlides2()" ONBLUR="return">');
	for (var i=0; i<iNumSlides; i++) {
		top.nav.document.write('<OPTION VALUE="' + i + '">' + i + ' - ' + namesList[i] + '</OPTION>\n');
	}
	top.nav.document.write('</SELECT>');
}

function dynListSlides() {
	while (!bInited) { 
	} // WEND
	for (var i=0; i<iNumSlides; i++) {
		top.left.document.write('<a href="javascript:top.changeSlides(' + i + ');">' + namesList[i] + '</A><BR>\n');
	}
}



function dynFillSlidesOption() {
	while (!bInited) {
//		alert('Not inited yet');
	} // WEND
	top.nav.document.form0.slides.length = iNumSlides;
	for (var i=0; i<iNumSlides; i++) {
		top.nav.document.form0.slides.options[i].value=i;
		top.nav.document.form0.slides.options[i].text = (i+1) + ' - ' + namesList[i];
	}
	top.nav.document.form0.slides.selectedIndex = iCurSlide;
}


// Validates input and jumps to a specific slide
function doJumpSlide() {
	var sIn = top.nav.document.form0.destSlide.value;
	if (sIn==null || sIn=="") {
		alert('You must enter a slide number in the text box');
		return;
	}
	var iIn = parseInt(sIn);
	if (isNaN(iIn)) {
		alert('You have entered invalid text.  Only numbers are allowed.');
		return;
	}
	if (iIn <1 || iIn > iNumSlides) {
		alert('You entered a slide number that is out of range.\nPlease enter a value between 1 and ' + iNumSlides);
		return;
	}
	top.nav.document.form0.destSlide.value='';
	iCurSlide = iIn - 1;
	displaySlide();
}


var bStop = 0;
var bRunning = 0;

function autoNextFrame() {
	if (bStop>0) {
		bStop--;
		bRunning--;
		return false;
	}
	if (iCurSlide == iNumSlides-1) {
		bRunning--;
		return false;
	}
	top.navNext();	
	window.setTimeout("top.autoNextFrame()", iInterval);
	return true;
}	

function doAuto() {
	if (iCurSlide == iNumSlides-1) {
		// Loop
		top.navFirst();
	}
	if (bRunning>bStop) {
		alert('Auto is already running.');
		return false;
	}
	bRunning++;
	window.setTimeout("top.autoNextFrame()", iInterval);
	return true;
}

function doStop() {
	if (bRunning>bStop) {		
		bStop++;
	} else {
		alert('Auto is not running.');
	}
}

function doApply() {
	var sIn = top.nav.document.form0.delay.value;
	if (sIn==null || sIn=="") {
		alert('You must enter a value in the delay text box');
		return;
	}
	var iIn = parseInt(sIn);
	if (isNaN(iIn)) {
		alert('You have entered invalid text.  Only numbers are allowed.');
		return;
	}
	bStop++; // Stop the current
	// Update the interval
	iInterval = iIn;
	// Start anew
	top.doAuto();
}






function setupDoc1() {
	iNumSlides = 5;
	iCurSlide=0;
	iCurDoc = 1;

	imageList = new Array(iNumSlides);
	namesList = new Array(iNumSlides);

	for ( var i = 0; i<iNumSlides; i++ )
	{
		imageList[i] = new Image();
		var sName = "test";
		var iImgNum = i+1;
		imageList[i].src = sName + iImgNum + ".jpg";
		namesList[i] = sName + iImgNum + ".jpg";
	}

}

function setupDoc2() {
	iNumSlides = 24;
	iCurSlide=0;
	iCurDoc = 2;

	imageList = new Array(iNumSlides);
	namesList = new Array(iNumSlides);

	for ( var i = 0; i<iNumSlides; i++ )
	{
		imageList[i] = new Image();
		var sName = "doc2/img";
		var iImgNum = i+1;
		if (iImgNum<100) {
			sName = sName + "0";
		}
		if (iImgNum<10) {
			sName = sName + "0";
		}
		imageList[i].src = sName + iImgNum + ".gif";
		namesList[i] = sName + iImgNum + ".gif";
	}
}

function setupDocCustom(sImages) {
	iNumSlides = sImages.length;
	iCurSlide=0;
	iCurDoc = 0;

	imageList = new Array(iNumSlides);
	namesList = new Array(iNumSlides);
	sCustomSlides = new Array(iNumSlides);

	for ( var i = 0; i<iNumSlides; i++ )
	{
		imageList[i] = new Image();
		var sName = sImages[i];
		imageList[i].src = sName;
		namesList[i] = sName;
		sCustomSlides[i] = sName;
	}
}


function newDoc() {
	var hwind=window.open("newdoc.html","NewDocument","status=yes,toolbar=no,scrollbars=auto,width=240,height=320");
	hwind.g_topWindow = top;
}

function reload() {
	doCookieStoreData();
//	window.open("index.html", "_top");
	location.reload();
}