﻿var pageOffset = 0;
var pageSize = 10;
var pageStop = pageOffset + pageSize;

var dsSchools = new Spry.Data.XMLDataSet("http://www.jumprm.com/xml/schedule_xml.php", "/items/item", { filterFunc: MyPagingFunc });

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

function UpdatePage(offsetP)
{
	var numRows = dsSchools.getUnfilteredData().length;
	
	if (offsetP > (numRows - pageSize))
		offsetP = numRows - pageSize;
	if (offsetP < 0)
		offsetP = 0;

	pageOffset = offsetP;
	pageStop = offsetP + pageSize;

	// Re-apply our non-destructive filter on dsSchools:
	dsSchools.filter(MyPagingFunc);
}

function FilterData()
{
	var tf = document.getElementById("filterTF");
	if (!tf.value)
	{
		// If the text field is empty, remove any filter
		// that is set on the data set.

		dsSchools.filter(MyPagingFunc);
		return;
	}

	// Set a filter on the data set that matches any row
	// that begins with the string in the text field.

	var regExpStr = tf.value;
	
	if (!document.getElementById("containsCB").checked)
		regExpStr = "^" + regExpStr;

	var regExp = new RegExp(regExpStr, "i");
	
	var filterFunc = function(ds, row, rowNumber)
	{
		var str = row["state"];
		if (str && str.search(regExp) != -1)
			return row;
		return null;
	};

	dsSchools.filter(filterFunc);
}

function StartFilterTimer()
{
	if (StartFilterTimer.timerID)
		clearTimeout(StartFilterTimer.timerID);
	StartFilterTimer.timerID = setTimeout(function() { StartFilterTimer.timerID = null; FilterData(); }, 100);
}
