function Paginator(objParent, strTagName, strClass) {
  var objParentNode = objParent;
  var aryPageIDs = new Array();
  var strPageBoundaryTagName = strTagName;
  var strPageIdentifierClass = strClass;
  var strInternalPagePrefix = "pgnpage";
  var strInternalNavigationClassName = "pgnnumclass";
  this.GetNumPages = GetNumPages;
  this.GenerateHTMLPageNumbers = GenerateHTMLPageNumbers;
  GetPageIDs();
  
  function GetPageIDs() {
	var objCurrentNode = null;
	var strPageID = "";
	
    if(!IsUndefined(objParentNode.nodeType) && objParentNode.hasChildNodes) {
	  objPageNodes = objParentNode.getElementsByTagName(strPageBoundaryTagName);
	  
	  for(var i = 0; i < objPageNodes.length; i++) {
		if(strPageIdentifierClass == "" || (strPageIdentifierClass != "" && (objPageNodes[i].className).indexOf(strPageIdentifierClass) > -1)) {
		  objPageNodes[i].id = strInternalPagePrefix + (aryPageIDs.length + 1);
		  objPageNodes[i].name = "";
		  aryPageIDs.push(objPageNodes[i].id);
		  alert(objPageNodes[i].id);
		}
	  }
	}
  }

  function GenerateHTMLPageNumbers() {
	var strHTML = "";
	
	if(aryPageIDs.length > 0) {
	  strHTML = strHTML + '<a href="javascript:void(0);" onclick="ShowPage(\'prev\');">&#8249;&nbsp;</a>&nbsp;';
	  for(var i = 0; i < aryPageIDs.length; i++)
		strHTML  = strHTML  + '<a href="javascript:void(0);" onclick="ShowPage(' + (i + 1) + ');">' + (i + 1) + '</a>&nbsp;';
	  strHTML = strHTML + '<a href="javascript:void(0);" onclick="ShowPage(\'next\');">&nbsp;&#8250;</a>';
	}
	
	return strHTML;	
  }

  function GetNumPages() { return aryPageIDs.length; }

  function IsUndefined(varTest) { return typeof varTest == 'undefined'; }
}
