/****************************************************************************   
Java Scripts used for pagination and sorting 
***************************************************************************/

var descendingMessage = "";
var ascendingMessage = "";

/* Function to get page, which is clicked to fetch the contents. */
function getPage(pageNumber){
	document.getElementById('key_pageNumber').value= pageNumber;			
	document.getElementById('key_paginatedList').value ="true";			
	document.getElementById('filters').submit();
}

/* Function to get the value of the previous page, when previous button is clicked. */
function getPreviousPage(pageNumber){
	pageNumber = Number(pageNumber) - Number('1');
	document.getElementById('key_pageNumber').value= pageNumber;			
	document.getElementById('key_paginatedList').value ="true";			
	document.getElementById('filters').submit();
}

/* Function to get the value of next page, when next button is clicked. */
function getNextPage(pageNumber){
	pageNumber = Number(pageNumber)+ Number('1');
	document.getElementById('key_pageNumber').value= pageNumber;			
	document.getElementById('key_paginatedList').value ="true";			
	document.getElementById('filters').submit();
}

/* Function to dynamically change the sort image. */
function changeSortImage(order, field) {
	
	if(order == 'asc') {	 
			document.getElementById(field).src="/deloitte-ecm-cm-dpm-web/images/dcom/new_i_up_active.gif";
			//document.getElementById(field).name='desc';
			document.getElementById(field).alt= ascendingMessage;
			document.getElementById(field).title= ascendingMessage;
	}
	if(order == 'desc') {
			document.getElementById(field).src="/deloitte-ecm-cm-dpm-web/images/dcom/new_i_down_active.gif";
			//document.getElementById(field).name='asc';
			document.getElementById(field).alt= descendingMessage;
			document.getElementById(field).title= descendingMessage;
	}
	if(order == 'Ascending') {	
			document.getElementById(field).src="/deloitte-ecm-cm-dpm-web/images/dcom/new_i_up_active.gif";
			//document.getElementById(field).name='Descending';
			document.getElementById(field).alt= ascendingMessage;
			document.getElementById(field).title= ascendingMessage;
	}
	if(order == 'Descending') {
			document.getElementById(field).src="/deloitte-ecm-cm-dpm-web/images/dcom/new_i_down_active.gif";
			//document.getElementById(field).name='Ascending';
			document.getElementById(field).alt= descendingMessage;
			document.getElementById(field).title= descendingMessage;
	}
}

/* This function is used to perform sorting. */
function sort(field, formName){
	var imgName;
		imgName = document.getElementById(field).name;
		document.getElementById('key_order').value =imgName; 				
		document.getElementById('key_field').value =field;
		if(formName == 'adHocReportForm' || formName == 'eventReportForm'){
			document.getElementById('key_reportrequest').value = 'sort';
			document.forms[formName].action = "";
		}else{
			document.getElementById('key_paginatedList').value ="true";	
		}
		document.forms[formName].submit();
}


/* Function to set the value of i18n messages. */
function i18Message(ascMsg, descMsg){
	descendingMessage = descMsg;
	ascendingMessage = ascMsg;
}

var firstPageNumber = 1;
var lastPageNumber = 5;
var numberOfPageLinks = 5;
var previousPage="";
var nextPage="";
var first5Pages="";
var last5Pages="";


/*
	Calculate the first page number and last page number to be displayed on current page 
*/

function calculateFirstLastPage(currentPage, totalNumberOfPages){
	firstPageNumber = currentPage;
	lastPageNumber = currentPage + numberOfPageLinks - 1;
	if(lastPageNumber > totalNumberOfPages){
		previousPageCount = lastPageNumber - totalNumberOfPages;
		firstPageNumber = currentPage - previousPageCount;
		if(firstPageNumber < 1){
			firstPageNumber = 1;
		}
		lastPageNumber = totalNumberOfPages;
	}
	
	if(lastPageNumber <= 0){
		lastPageNumber = 5;
	}
}

function writePageLink(pageNumber){
	document.write('<a id="paginationPageNumber"  href="javascript:getPage('+pageNumber+');">'+pageNumber+' </a>');
}

function renderPageLinks(currentPage, totalNumberOfPages){	
	for(var counter = firstPageNumber; counter<=lastPageNumber; counter++){
		if(counter <= totalNumberOfPages){
			if(counter != currentPage){
				writePageLink(counter);
			}else{
				document.write(eval(counter)+'&nbsp;');
			}
		}			
	}		
}

/*
	Function to display link for displaying previous five page navigation
*/

function displayPreviousFive(currentPage){
	var previousFirstPage = currentPage - 1;
	
	document.write('<a href="javascript:getPage('+ previousFirstPage +');" >'+
		'<IMG class= "btnPaginationPrevious" alt="'+previousPage+'" title="'+previousPage+'" src="/deloitte-ecm-cm-dpm-web/images/dcom/btn_previous.gif" border="0" /></a>');
}

/*
	Function to display link for displaying next five page navigation
*/


function displayNextFive(currentPage){
    var previousLastPage = currentPage + 1;
		
	document.write('<a href="javascript:getPage('+previousLastPage +');" >'+
		'<IMG class= "btnPaginationNext" alt="'+nextPage+'" title="'+nextPage+'" src="/deloitte-ecm-cm-dpm-web/images/dcom/btn_next.gif" border="0" /></a>');
}

/*
	Function to display link for displaying first five page navigation
*/


function displayFirstFive(){
	document.write('<a href="javascript:getPage(1);" >'+
		'<IMG class= "btnPaginationPrevious" alt="'+first5Pages+'" title="'+first5Pages+'" src="/deloitte-ecm-cm-dpm-web/images/dcom/btn_first.gif" border="0" /></a>');

}
/*
	Function to display link for displaying last five page navigation
*/

function displayLastFive(totalNumberOfPages){
	document.write('<a href="javascript:getPage('+totalNumberOfPages+');" >'+
		'<IMG class= "btnPaginationNext" alt="'+last5Pages+'" title="'+last5Pages+'" src="/deloitte-ecm-cm-dpm-web/images/dcom/btn_last.gif" border="0" /></a>');

}

function renderPaginationLinks(currentPageNumber, totalNumberOfPages){
	calculateFirstLastPage(currentPageNumber, totalNumberOfPages);
	if(firstPageNumber > 1){
		displayFirstFive();
	}	
	if(currentPageNumber > 1){
		displayPreviousFive(currentPageNumber);
	}
	
	renderPageLinks(currentPageNumber, totalNumberOfPages);
	if(currentPageNumber < totalNumberOfPages){
		displayNextFive(currentPageNumber);
	}
	if(lastPageNumber < totalNumberOfPages){
		displayLastFive(totalNumberOfPages);
	}
}

function getRecordsPerPage() {
	getPage(1);
}
