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

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

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

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

	pageOffset = offset;
	pageStop = offset + 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);
}