// CONFIGURATION VARIABLES //

var PAGENEXT = "Next";
var PAGEPREV = "Previous";


function PageObject(sortfields,src)
{
    this.sortfields = sortfields;
    this.src = src;
}

if (queryString('page')=='false')
  CurrentPage = 1;
else
  CurrentPage = queryString('page') * 1;

function PageSortFunction(a,b)
{
    var sf = queryString('sf');
    if (sf =='false')
        return 0;

    var sd = queryString('sd');
    if (sd == 'false' || sd == '')
        sd = 'a';

	if (sd == 'a')
	{
		if (! isNaN(a.sortfields[sf]) && !isNaN(b.sortfields[sf]))
			return (a.sortfields[sf] - b.sortfields[sf]);
		else
		{
			if (a.sortfields[sf] > b.sortfields[sf])
				return 1;
			else if (a.sortfields[sf] < b.sortfields[sf])
				return -1;
			else
				return 0;
		}
	}
	else
	{
		if (! isNaN(a.sortfields[sf]) && !isNaN(b.sortfields[sf]))
			return (b.sortfields[sf] - a.sortfields[sf]);
		else
		{
			if (a.sortfields[sf] < b.sortfields[sf])
				return 1;
			else if (a.sortfields[sf] > b.sortfields[sf])
				return -1;
			else
				return 0;
		}
	}
}

function ShowPageControls()
{
    var numpages = Math.ceil(PageObjects.length / pagesize);

    var sf = queryString('sf');
    if (sf == 'false')
    	sf = '';
	var sd = queryString('sd');
	if (sd == 'false')
		sd = '';
	
	
	//******************* GREG WORKING HERE *****************/
	
	document.write("<div class=paginate>");
	
	if (CurrentPage > 1)
		document.write("<a href=" + PageID + ".html?page=" + (CurrentPage - 1) + "&sf=" + sf + "&sd=" + sd + ">Previous</a> < ");
	
	document.write("Page " + CurrentPage + " of " + numpages);
	
	if (numpages > CurrentPage)
		document.write(" > <a href=" + PageID + ".html?page=" + (CurrentPage + 1) + "&sf=" + sf + "&sd=" + sd + ">Next</a>");
	
	document.write("</div><br>");
	
	//***************************END**************************/
}

function ShowPage()
{
	var colcnt = 0;
	
	if (CurrentPage == 0)
	{
		var idx0 = 0;
		var idx1 = PageObjects.length - 1;
	}
	else
	{
		var idx0 = (CurrentPage - 1) * pagesize;
		var idx1 = idx0 + pagesize - 1;
		if (idx1 >= PageObjects.length)
			idx1 = PageObjects.length - 1;
	}

    var sf = queryString('sf');
	if (sf != 'false' && sf != '')
		PageObjects.sort(PageSortFunction);	
	var idx = idx0;
	//ShowPageControls();
	document.write ("<table border=0 width=" + wid + " cellpaddign=0 cellspacing=0>");
	document.write ("<tr>");
	while (idx <= idx1)
	{
		if (colcnt == cols)
		{
			document.write ("</tr><tr>");
			colcnt = 0;
		}
		document.write("<td>" + PageObjects[idx].src.replace(/`/gi, "'") + "</td>");
		colcnt ++;
		idx ++;
	}
	document.write ("</tr></table>");
	ShowPageControls();
}

function PageQuery(q) {
	if(q.length > 1) this.q = q.substring(1, q.length);
	else this.q = null;
	this.keyValuePairs = new Array();
	if(q) {
		for(var i=0; i < this.q.split("&").length; i++) {
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function(s) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0] == s)
				return this.keyValuePairs[j].split("=")[1];
		}
		return false;
	}
	this.getParameters = function() {
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) {
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}
	this.getLength = function() { return this.keyValuePairs.length; } 
}

function queryString(key){
	var page = new PageQuery(window.location.search); 
	return unescape(page.getValue(key)); 
}