var intNextNPage = 1;
var intNextNItemsPerPage = 20;
var items;						// Array of TableRows
var intItemCount = 0;			// The number of items displayed with current
var objPositionStatus;
var objLocation;
var objRequisition;
var objKeywords;
var objNextNTop;
var objNextNBottom;

function initCareerOpps(strTableId) {
	
	objPositionStatus = document.getElementById("strPositionStatus");
	objLocation = document.getElementById("strLocation");
	objRequisition = document.getElementById("strRequisition");
	objKeywords = document.getElementById("strKeywords");
	
	objNextNTop = document.getElementById("NextNTop");
	objNextNBottom = document.getElementById("NextNBottom");
		
	items = document.getElementById(strTableId).getElementsByTagName("TBODY")[0].getElementsByTagName("TR");
	intItemCount = items.length;
	
	updateNextNNav();
	applyNextN();
}

function filterCareerOpps() {
	
	intItemCount = 0;
	intNextNPage = 1;
	
	for(var i = 0; i < items.length; i++){
		if( 	(	objPositionStatus.getAttribute("selectedIndex") != 0
				 && items[i].getAttribute("FTPTDesc") != objPositionStatus.value )
			  ||
				(	objLocation.getAttribute("selectedIndex") != 0
				 &&	items[i].getAttribute("LocationDesc") != objLocation.value )
			  ||
				(	objRequisition.value != ""
				 && items[i].getAttribute("ReqCode").toLowerCase().indexOf(objRequisition.value.toLowerCase()) < 0)
			)
			items[i].setAttribute("Display", "false");
		else {
			items[i].setAttribute("Display", "true");
			intItemCount++;
		}
	}
	
	if(objKeywords.value != ""){
		var keywords = objKeywords.value.split(" ");
		for(var i = 0; i < items.length; i++){
			if(items[i].getAttribute("Display") == "true"){
				items[i].setAttribute("KeywordMatch",0);
				for(var k = 0; k < keywords.length; k++){
					if(items[i].getAttribute("Keywords").toLowerCase().indexOf(keywords[k].toLowerCase()) >= 0)
						items[i].setAttribute("KeywordMatch",parseInt(items[i].getAttribute("KeywordMatch")) + 1);
				}
				if(parseInt(items[i].getAttribute("KeywordMatch")) < 1){
					intItemCount--;
					items[i].setAttribute("Display","false");
				}
			}
		}
		sortTable("myTable", -1, "KeywordMatch");
	}
	
	updateNextNNav();
	applyNextN();
	
}

function updateNextNNav() {
		
	objNextNTop.innerHTML = "";
	
	if(Math.ceil(intItemCount/intNextNItemsPerPage) > 1){ // Only display NextN if there is more than one page.
		if(intNextNPage > 1)
			objNextNTop.innerHTML += '<a href="#" onClick="changeNextNPage(' + (intNextNPage - 1) + '); return false;">Previous</a> | ';
		for(var i = 1; i <= Math.ceil(intItemCount/intNextNItemsPerPage); i++) {
			if(i == intNextNPage)
				objNextNTop.innerHTML += '<a href="#" onClick="changeNextNPage(' + i + '); return false;"><b>' + i + '</b></a> ';
			else
				objNextNTop.innerHTML += '<a href="#" onClick="changeNextNPage(' + i + '); return false;">' + i + '</a> ';
		}
		if(intNextNPage < Math.ceil(intItemCount/intNextNItemsPerPage))
			objNextNTop.innerHTML += '| <a href="#" onClick="changeNextNPage(' + (intNextNPage + 1) + '); return false;">Next</a>';
	}
	
	objNextNBottom.innerHTML = objNextNTop.innerHTML;
	
}

function changeNextNPage(intNewPage) {

	if(intNewPage < 1 || intNewPage > Math.ceil(intItemCount/intNextNItemsPerPage))
		return;
	
	intNextNPage = intNewPage;
	updateNextNNav();
	applyNextN();
	
}

function applyNextN(){

	var intItemsToSkip = (intNextNPage - 1) * intNextNItemsPerPage;
	var intItemsToDisplay = intNextNItemsPerPage;
	var bitAlt = true;
	
	for(var i = 0; i < items.length; i++){
		if(items[i].getAttribute("Display") == "true"){
			if(intItemsToSkip > 0) {
				intItemsToSkip--;
				items[i].style.display = "none";
			}else if(intItemsToDisplay > 0) {
				intItemsToDisplay--;
				items[i].style.display = "";
				
				if(bitAlt)
					items[i].className = items[i].className.replace(/alt1/g,"");
				else
					items[i].className = items[i].className + " alt1";
								
				bitAlt = !bitAlt;
			} else
				items[i].style.display = "none";
		} else
			items[i].style.display = "none";
	}
	
}

function sortCareerOpps(tableid, n, att){
	
	sortTable(tableid, n, att);
	applyNextN();
	
}
