// photo.js - Javascript functions for photo page

var sectionIndex
var setIndex
var setName
var setDesc
var setSize
var pageName

var thisPicNum
var nextPicNum
var lastPicNum

// calculates next picture number in set
function setNextPic() {
if (thisPicNum-0 < setSize-0)
	nextPicNum = Number(thisPicNum) + 1; 
 else
	nextPicNum = 1; 
}

// calculates previous picture number in set
function setLastPic() {
if (thisPicNum == 1)
	lastPicNum = Number(setSize);
else
	lastPicNum = Number(thisPicNum) - 1;
}

// sets image source
function changeImage(photoNum, setName)
{
	var imageSource
	imageSource = './images/' + setName + '/' + photoNum + '.jpg';
	document.images.photo.style.display = 'none';
	document.images.photo.src = imageSource;
	document.images.photo.style.display = 'block';
}

function setMenuURL(pageName)
{
	var menuURL
	menuURL = pageName + '.html';
	var menuLink = document.getElementById("menuLink");
	menuLink.href = menuURL;
}


// sets set name text on page
function setSetName(setDesc)
{
	var cell = document.getElementById("setName");
	cell.innerHTML = setDesc;
}

// sets page name text on page
function setPageName(pageName)
{
	var cell = document.getElementById("pageName");
	cell.firstChild.nodeValue=pageName;
}

// sets picture number text on page
function setPicNum(picNum)
{
	var cell = document.getElementById("picNum");
	cell.firstChild.nodeValue= picNum + ' of ' + setSize;
}

// moves to next picture
function goNextPic ()
{
	changeImage(nextPicNum,setName);
	setPicNum(nextPicNum);
	thisPicNum = nextPicNum;
	setNextPic();
	setLastPic();
}

// moves to previous picture
function goLastPic ()
{
	changeImage(lastPicNum,setName);
	setPicNum(lastPicNum);
	thisPicNum = lastPicNum;
	setNextPic();
	setLastPic();
}


function goLastSet(thisSet)
{

var setNum

setNum = parseInt(thisSet);
if (setNum == 0) {setNum = imageArray[sectionIndex].length-1;}
else {setNum--;}

this.location.href = 'photo.html?' + sectionIndex + ',' + setNum + ',1';
}


function goNextSet(thisSet)
{

var setNum

setNum = parseInt(thisSet);
if (setNum == imageArray[sectionIndex].length-1) {setNum = 0;}
else {setNum++;}

this.location.href = 'photo.html?' + sectionIndex + ',' + setNum + ',1';
}


// Extracts project name (i.e. picture folder location), picture number and set size from URL string and imageArray (loaded from imageArrayPhotos.js)
 function getInfoFromURL() {

	var urlQuery
	var urlterms

	var setRecord = new Array(4);

	urlQuery=location.href.replace("#","").split("?");
	urlterms=urlQuery[1].split(",");
	thisPicNum = urlterms[2];
	setIndex = urlterms[1];
	sectionIndex = urlterms[0];

	setRecord = imageArray[sectionIndex][setIndex].split("~");
	setName = setRecord[0];
	setSize = setRecord[2];;
	pageName = setRecord[1];
	setDesc = setRecord[3];

}

// Acts on key press events
function getKeyPress(e)
{
	var key = e? e.which: window.event.keyCode;
	if (key==38) goLastPic();
		else {if (key==37) goLastSet(setIndex);
			else {if (key==40) {goNextPic()}
				else {if (key==39) goNextSet(setIndex);
						else {return true;}
				}	
			}

		}
}



// sets up initial state, picture, page text etc.
function initialise() {
	loadImageArray();
	getInfoFromURL();
	changeImage(thisPicNum, setName);
	setSetName(setDesc);
	setPageName(pageName);
	setMenuURL(pageName);
	setPicNum(thisPicNum);
	setNextPic();
	setLastPic();
	
	// Set up key press event handling
	document.onkeyup = getKeyPress;
	if (document.layers) {
		document.captureEvents(Event.KEYUP);}
}
