function ShowPageControls()
{
    var sf = queryString('sf');
    if (sf =='false')
        sf = 1;
    var sd = queryString('sd');
    if (sd == 'false')
        sd = 'a';
        
    document.write ("<div class=paginate>");
    document.write ("<table border=0 width=100% cellpadding=0 cellspacing=0><tr><td nowrap style='background-color: white'>");
    document.write ( PageDisplay[CurrentPage - 1] );
    document.write ("</td></tr></table>");
    document.write ("<table border=0 width=100% cellpadding=0 cellspacing=0><tr><td nowrap>" );
    document.write ("<a href=" + pageid + ".html?page=0&sf=" + sf + "&sd=" + sd + ">VIEW ALL</a> | ");
    if ( CurrentPage != 1 )
    {
        document.write ("<a href=" + pageid + ".html?page=" + String(CurrentPage-1) + "&sf=" + sf + "&sd=" + sd + ">PREV</a>&nbsp;|&nbsp;")
    }
    for (var i = 0; i < pages.length; i++ )
    {
      document.write(" ");
      if ( i != CurrentPage - 1 )
      {
        document.write ("<a href=" + pageid + ".html?page=" + String(i + 1) + "&sf=" + sf + "&sd=" + sd + ">" + (i+1) + "</a>")
      }
      else
      {
        document.write ("<a href=" + pageid + ".html?page=" + String(i + 1) + "&sf=" + sf + "&sd=" + sd + "><b>" + String(i+1) + "</b></a>")
      }
      document.write(" ");
    }
    if ( CurrentPage != pages.length )
    {
        document.write ("|&nbsp;<a href=" + pageid + ".html?page=" + String(CurrentPage+1) + "&sf=" + sf + "&sd=" + sd + ">NEXT</a>&nbsp;")
    }
    
    
    var currenturl = pageid + ".html?";
    
    document.write ("</td>");
    document.write ("<td align=right>Sort by: ");
    document.write ("<select name=sortfield onchange='javascript:self.location.href=this.options[this.selectedIndex].value'>");
    document.write ("<option value='" + currenturl + "sf=1&sd=a' ");
    if (sf == 1 && sd == 'a')
    	document.write ("selected");
    document.write (">Price - Lowest to Highest</option>");
    document.write ("<option value='" + currenturl + "sf=1&sd=d' ");
    if (sf == 1 && sd == 'd')
    	document.write ("selected");
    document.write (">Price - Highest to Lowest</option>");
    document.write ("</select></td>");
    document.write ("</table>");
    document.write ("</div>");
}

function ShowPage()
{
  if ( pages.length > 1 && CurrentPage > 0 ) 
  {
    ShowPageControls();
    document.write("<br>");
  }
  if ( CurrentPage > 0 )
  {
    document.write( String(pages[CurrentPage - 1]).replace(/`/gi, "'") );
  }
  else
  {
    for (var i = 1; i <= pages.length; i++ )
    {
        document.write( String(pages[i - 1]).replace(/`/gi, "'") );
    }
  }
  if ( pages.length > 1 && CurrentPage > 0 ) 
  {
    document.write("<br>");
    ShowPageControls();
  }
}

function PageItem(text,price)
{
    this.text = text;
    this.price = price;
}
function PageSortFunction(a,b)
{
    var sf = queryString('sf');
    if (sf =='false')
        sf = 1;
    var sd = queryString('sd');
    if (sd == 'false')
        sd = 'a';

	if (sd == 'a')
	    return (a.price - b.price);
	else
		return (b.price - a.price);
}

function SortPage(wid, cols)
{
	var n = PageItems.length;
	var nPages = Math.ceil(n / PageSize);
	
	PageItems.sort(PageSortFunction);
	
	// put items without a price at the bottom.
	var ar1 = new Array();
	var ar2 = new Array();
	for (var i = 0; i < PageItems.length; i++)
	{
		if (PageItems[i].price == 0)
		{
			ar2[ar2.length] = PageItems[i];
		}
		else
			ar1[ar1.length] = PageItems[i];
	}
	PageItems = ar1.concat(ar2);

	for (var j = 0; j < nPages; j++)
	{
		var ItemsOnPage = (j * PageSize + PageSize > n ? n - (j*PageSize) : PageSize);
		PageDisplay[j] = "Displaying <b>" + (j * PageSize + 1) + "</b> to <b>" + ( j * PageSize + ItemsOnPage) + "</b> (of <b>" + n + "</b> products)";
		pages[j] = "<table border=0 width=" + wid + " cellpadding=0 cellspacing=0>";
		for (var rows = 0; rows < Math.ceil(ItemsOnPage / cols); rows++)
		{
			pages[j] += "<tr valign=top>";
			for (var columns = 0; columns < cols; columns++)
			{
				pages[j] += "<td>";
				var idx = j * PageSize + rows * cols + columns;
				if (idx < n)
					pages[j] += PageItems[idx].text;
				pages[j] += "</td>";
			}
			pages[j] += "</tr>";
		}
		pages[j] += "</table>";
	}
	ShowPage();
}

