// JavaScript Document

<!-- Define 2 records. The first is the set of species items and the second is the images within each item -->
var dsItems = new Spry.Data.XMLDataSet("xml/species.xml", "species/item", { filterFunc: MyPagingFunc });
var dsItemImages = new Spry.Data.XMLDataSet("xml/species.xml", "species/item[plantnm = '{dsItems::plantnm}']/imagelist/image"); 

var pageOffset = 0;
var pageSize = 25;
var pageStop = pageOffset + pageSize;


function MyPagingFunc(ds, row, rowNumber) {
	if (rowNumber < pageOffset || rowNumber >= pageStop)
		return null;
	return row;
}

function UpdatePage(offset)
{
	var numRows = dsItems.getUnfilteredData().length;
	totalRows = numRows;
	if (offset > (numRows - pageSize))
		offset = numRows - pageSize;
	if (offset < 0)
		offset = 0;

	pageOffset = offset;
	pageStop = offset + pageSize;

	// Re-apply our non-destructive filter on dsStates1:
	dsItems.filter(MyPagingFunc);

}

function selectPage() {
	var pagenums = document.getElementById("pagenums");
	var newidx = pagenums.selectedIndex;
   	var newPagenum = pagenums.options[newidx].value; 
	var newRow = ((newPagenum -1) * pageSize);
	UpdatePage(newRow);
}

function createSelectList() {
	var parent = document.getElementById("pagelist");
	var btnElement = document.getElementById("gobutton");
	
	var newElement = document.createElement("select")
	newElement.setAttribute("name", "pagenums");
	newElement.setAttribute("id", "pagenums");
	newElement.setAttribute("size", "1");
	parent.insertBefore(newElement, btnElement);

	if (parent.childNodes.length > 4) {
		return;
	}
	var newOption;
	var allRows = dsItems.getUnfilteredData();
	
	//create option tag for each page number
	var rowcount = allRows.length - 1;
	var totalpages = (rowcount/pageSize) + 1;
	
	for (var idx = 1; idx <= totalpages; idx++) {
		var startRow = (idx * pageSize) - (pageSize);
		var endRow = (idx * pageSize) -1;
		if (endRow > rowcount) {
			endRow = rowcount;
			startRow = endRow - pageSize;
		}
		var firstRow = allRows[startRow];
		var lastRow = allRows[endRow];
		var newplantnm = firstRow["plantnm"];
		var newplantnm2 = lastRow["plantnm"];
		var newOption = document.createElement("option");
		txt1 = idx + ": " + newplantnm.substring(0,9) + " - " + newplantnm2.substring(0,9);
		newNode= document.createTextNode(txt1);
		newOption.appendChild(newNode);
		newOption.setAttribute("value", idx);
		newElement.appendChild(newOption);
	}
}

function showBigPic(imagename, takenby, photodt, details) {
	var newpic = imagename;
	var newtarget = document.getElementById("mainimage");
	var photographer = document.getElementById("takenby").firstChild;
	var photodate = document.getElementById("photodate").firstChild;
	var photodetails = document.getElementById("photodetails").firstChild;
	newtarget.src = "images/plantpics/large/" + imagename;
	newtarget.alt = imagename;
	if (takenby != "") {
		photographer.nodeValue = "Photo credit to " + takenby;
	} else {
		photographer.nodeValue = " ";
	}
	if (photodt != "") {
		photodate.nodeValue = "Taken on " + photodt;
	} else {
		photodate.nodeValue = " ";
	}
	if (details != "") {
		photodetails.nodeValue = details;
	} else {
		photodetails.nodeValue = " ";
	}
}

function viewSrcImage() {	
   	var filenm = document.getElementById("mainimage");
	var tempstr = filenm.getAttribute("alt");
	var newfilenm = tempstr.split(".");
	var winName = "images/plantpics/src/" + newfilenm[0] + ".jpg";
	newWin = window.open(winName, "_blank", "toolbar,scrollbars,resizable");
	
}
