var ajaxCurrentPageNumber = 1;

function PagerAjaxClickJumpBox( pageBarDivClass, pageBarCurrentDivClass, ajaxClickFunction, ajaxClickFunctionArgs, numPages, numItemsPerPage, totalResults, pageBarMaxPages )
{
	var jumpEle = document.pagerJumpForm.pagerSelect;
	var pageNumber = jumpEle.selectedIndex + 1;

	PagerAjaxClickPage( pageNumber, pageBarDivClass, pageBarCurrentDivClass, ajaxClickFunction, ajaxClickFunctionArgs, numPages, numItemsPerPage, totalResults, pageBarMaxPages );
}

function PagerAjaxClickPage( pageNumber, pageBarDivClass, pageBarCurrentDivClass, ajaxClickFunction, ajaxClickFunctionArgs, numPages, numItemsPerPage, totalResults, pageBarMaxPages )
{
	// query the server to get the new page bar
	var url = '/index.php?show=ajaxCalculatePageBar';
	new Ajax.Request(url, {
		  method: 'post',
		  parameters: "pageNumber=" + pageNumber + "&numItemsPerPage=" + numItemsPerPage + "&totalResults=" + totalResults + "&pageBarMaxPages=" + pageBarMaxPages,
	 	  onSuccess: function(transport)
		  {
				// explode pageBarStart and pageBarEnd out of responseText
				var resVars = explodeParamStr( transport.responseText );
				var pageBarStart = resVars[ "pageBarStart" ];
				var pageBarEnd	 = resVars[ "pageBarEnd" ];

				pageBarStart = parseInt( pageBarStart );
				pageBarEnd   = parseInt( pageBarEnd );

				var pageBarPagesEle = document.getElementById( "pageBarPages" );
				var pageBarPagesHTML = "";

				// previous link
				if ( pageNumber > 1 )
				{
					var prevPageNumber = pageNumber - 1;
					pageBarPagesHTML += '<span id="pageNumber_prev"><a href="#none" onClick="PagerAjaxClickPage(' + prevPageNumber + ', \'' + pageBarDivClass + '\', \'' + pageBarCurrentDivClass + '\', \'' + ajaxClickFunction + '\', \'' + ajaxClickFunctionArgs + '\', ' + numPages + ', ' + numItemsPerPage + ', ' + totalResults + ', ' + pageBarMaxPages + ');' + ajaxClickFunction + '(' + prevPageNumber + ', ' + numItemsPerPage + ', \'' + ajaxClickFunctionArgs + '\' );return false;">Previous</a></span>';
					pageBarPagesHTML += " ";
				}


				// draw new page bar with the new start and end
				for ( i = pageBarStart; i <= pageBarEnd; ++i )
				{
					loopPageNumber = i;

					if ( loopPageNumber == pageNumber )
					{
						pageBarPagesHTML += '<span class="' + pageBarCurrentDivClass + '" id="pageNumber_' + loopPageNumber + '">' + loopPageNumber + '</span>';
					}
					else
					{
						pageBarPagesHTML += '<span id="pageNumber_' + loopPageNumber + '"><a href="#none" onClick="PagerAjaxClickPage(' + loopPageNumber + ', \'' + pageBarDivClass + '\', \'' + pageBarCurrentDivClass + '\', \'' + ajaxClickFunction + '\', \'' + ajaxClickFunctionArgs + '\', ' + numPages + ', ' + numItemsPerPage + ', ' + totalResults + ', ' + pageBarMaxPages + ');' + ajaxClickFunction + '(' + loopPageNumber + ', ' + numItemsPerPage + ', \'' + ajaxClickFunctionArgs + '\' );return false;">' + loopPageNumber + '</a></span>';
					}

					pageBarPagesHTML += " ";
				}

				// next link
				if ( numPages > 1 && pageNumber < numPages )
				{
					var nextPageNumber = pageNumber + 1;
					pageBarPagesHTML += '<span id="pageNumber_next"><a href="#none" onClick="PagerAjaxClickPage(' + nextPageNumber + ', \'' + pageBarDivClass + '\', \'' + pageBarCurrentDivClass + '\', \'' + ajaxClickFunction + '\', \'' + ajaxClickFunctionArgs + '\', ' + numPages + ', ' + numItemsPerPage + ', ' + totalResults + ', ' + pageBarMaxPages + ');' + ajaxClickFunction + '(' + nextPageNumber + ', ' + numItemsPerPage + ', \'' + ajaxClickFunctionArgs + '\' );return false;">Next</a></span>';
					pageBarPagesHTML += " ";
				}

				pageBarPagesEle.innerHTML = pageBarPagesHTML;

				// update the old element/new/element/and jump box with whatever they clicked/selected from the page bar
				var oldEle = document.getElementById( "pageNumber_" + ajaxCurrentPageNumber );
				var newEle = document.getElementById( "pageNumber_" + pageNumber );
				var jumpEle = document.pagerJumpForm.pagerSelect;

				if ( newEle != undefined )
				{
					newEle.className = pageBarCurrentDivClass;
					newEle.innerHTML = pageNumber;
				}

				if ( oldEle != undefined )
				{
					var innerHTML = '<a href="#none" onClick="PagerAjaxClickPage(' + ajaxCurrentPageNumber + ', \'' + pageBarDivClass + '\', \'' + pageBarCurrentDivClass + '\', \'' + ajaxClickFunction + '\', \'' + ajaxClickFunctionArgs + '\', ' + numPages + ', ' + numItemsPerPage + ', ' + totalResults + ', ' + pageBarMaxPages + ');' + ajaxClickFunction + '(' + ajaxCurrentPageNumber + ', ' + numItemsPerPage + ', \'' + ajaxClickFunctionArgs + '\' );return false;">' + ajaxCurrentPageNumber + "</a>";

					oldEle.className = "";
					oldEle.innerHTML = innerHTML;
				}

				ajaxCurrentPageNumber = pageNumber;

				if ( jumpEle != undefined )
					jumpEle.selectedIndex = pageNumber - 1;
		  }
	});
}
