var filter_keyword='';
var pages=0;
var itemCount=0;
var resultsPerPage=20;
var currentPage=0;

var itemIndex=0;
var urlIndex=1;
var urlTextIndex=2;
var descriptionIndex=3;
var keywordIndex=4;

var theSpans=new Array();
var theResults=new Array();

dispose_data.sort(byLinkText);

function resultsContains(theEntry){
	var contains=false;
	for(var j=0;j<theResults.length;j++){
		contains=contains||theResults[j].toLowerCase()==theEntry.toLowerCase();
	}
	return(contains);
}

function filterKeyword(){
	filter_keyword=document.getElementById("keyword").value;
}

function clearResults(){
	document.getElementById("results_div").style.display="none";
	document.getElementById("resultsSpan").innerHTML="";
	document.getElementById("results_info").innerHTML="";
	filter_keyword='';
	document.getElementById('topLinks').innerHTML="";
	document.getElementById('bottomLinks').innerHTML="";
}

function clearFields(){
	document.getElementById('keyword').value='';
}
function isValid(theIndex){
	var valid=true;
	if(resultsContains(getItem(theIndex))){
		valid=false;
	}
	if(filter_keyword.length>0){
		if (((getKeyword(theIndex).toLowerCase()).indexOf(filter_keyword.toLowerCase()) != -1)||((getItem(theIndex).toLowerCase()).indexOf(filter_keyword.toLowerCase()) != -1)) {
			valid=valid&&true;
		} else {
			valid=valid&&false;	
		}
	}
	return(valid);
}
function writeResults(){
	clearResults();
	document.getElementById("results_div").style.display="";
	document.getElementById("results_header").innerHTML='<span class="red_bold">Searching...</span>';
	setTimeout(writeResultsText,10);
}
function writeResultsText(){
	filterKeyword();
	var resultsMessage='';
	if(filter_keyword.length>0){
		resultsMessage=resultsMessage+filter_keyword;
	}else{
		resultsMessage='Displaying all results';
	}
	itemCount=0;
	theSpans=results();
	document.getElementById("results_header").innerHTML='Search Results:';
	document.getElementById("results_info").innerHTML=resultsMessage;
	if(theSpans.length==0){
		resultsMessage=resultsMessage+'<br><br><span class="red_bold">No results found</span>';
		document.getElementById("results_info").innerHTML=resultsMessage;
	}else{
		showPage(0);
	}
}

function showPage(thePage){
	currentPage=parseInt(thePage);
	document.getElementById('resultsSpan').innerHTML=theSpans[thePage];
	var prevLink="";
	if(thePage>0){
		prevLink="<a class='page_link' href='javascript:showPage("+(thePage-1)+")'>Previous</a> | ";
	}
	var pageLinks=getPageLinks(thePage);
	var nextLink="";
	if(thePage<theSpans.length-1){
		nextLink=" | <a class='page_link' href='javascript:showPage("+(thePage+1)+")'>Next</a>";
	}
	document.getElementById('topLinks').innerHTML=prevLink+pageLinks+nextLink;
	document.getElementById('bottomLinks').innerHTML=prevLink+pageLinks+nextLink;
}
function getPageLinks(thePage){
	var modulo=parseInt(thePage/5);
	var thePageLinks='';
	var maxPages=false;
	if(itemCount>resultsPerPage){
		for(var i=0;i<5;i++){
			if(modulo*5+i<theSpans.length){
				if(modulo*5+i==thePage){
					(i>0)?(thePageLinks=thePageLinks+" <span class='active_link'>"+(modulo*5+i+1)+"</span>"):(thePageLinks=thePageLinks+"<span class='active_link'>"+(modulo*5+i+1)+"</span>");
				}else{
					(i>0)?(thePageLinks=thePageLinks+" <a href='javascript:showPage("+(modulo*5+i)+")' class='page_link'>"+(modulo*5+i+1)+"</a>"):(thePageLinks=thePageLinks+"<a href='javascript:showPage("+(modulo*5+i)+")' class='page_link'>"+(modulo*5+i+1)+"</a>");
				}
			}else{
				maxPages=true;
			}
			if(i==theSpans.length){
				maxPages=true;
			}
		}
		if(!maxPages){
			thePageLinks=thePageLinks+" <a href='javascript:showPage("+(modulo*5+5)+")' class='page_link'>More</a>"
		}
	}
	return(thePageLinks);
}
function getResults(pageNumber){
	var firstItem=(pageNumber)*resultsPerPage+1;
	var lastItem=firstItem+resultsPerPage-1;
	if(lastItem>itemCount){
		lastItem=itemCount;
	}
	return(firstItem+"-"+lastItem);
}

function getItem(theIndex){
	return(dispose_data[theIndex][itemIndex]);
}

function getKeyword(theIndex){
	return(dispose_data[theIndex][keywordIndex]);
}
function getLink(theIndex){
	var theLink="";
	if(dispose_data[theIndex][urlIndex].length>0){
		theLink='<a href="'+dispose_data[theIndex][urlIndex]+'">'+dispose_data[theIndex][urlTextIndex]+'</a>';
	}
	return(theLink);
}

function getDescription(theIndex){
	return(dispose_data[theIndex][descriptionIndex]);
}

function results(){
	var spans=new Array();
	theResults=new Array();
	var theString='<table cellspacing="0" cellpadding="0" border="0" width="369">';
	for(var i=0;i<dispose_data.length;i++){
		if(isValid(i)){
			theResults[theResults.length]=getItem(i);
			theString=theString+'<tr><td class="results_item"><b>'+getItem(i)+'</b><br>'+getDescription(i)+'<br>'+getLink(i)+'</td></tr>';
			itemCount++;
			if(itemCount%resultsPerPage==0&&i<dispose_data.length-1){
				theString=theString+'</table>';
				spans[spans.length]=theString;
				theString='<table cellspacing="0" cellpadding="0" border="0" width="369">';
			}
		}
	}
	if(theString.length>63&&theString.substring(theString.length-8)!="</table>"){
		theString=theString+'</table>';
		spans[spans.length]=theString;
	}
	return(spans);
}

function byLinkText(a,b){
	var theFirst=a[urlTextIndex].toLowerCase();
	var theSecond=b[urlTextIndex].toLowerCase();
	if(theFirst>theSecond){
		return(1);
	}else if(theSecond>theFirst){
		return(-1);
	}else{
		return(0);
	}
}

window.onload=delaySearchTerm;

function delaySearchTerm(){
	setTimeout(setSearchTerm,50);
}
function setSearchTerm(){
	if(document.getElementById('keyword')){
		new autoComplete(aNames,document.getElementById('keyword')  ,document.getElementById('suggest'),10);
		var theTerm=getQuerystring("search_term");
		if(theTerm.length>0){
			document.getElementById('keyword').value=theTerm;
			writeResults();
		}
	}
}

function goToDispose(){
	theQuery=encodeURIComponent(document.getElementById('rc_keyword').value);
	document.location.href="../../html/stuff/infofor_residents_items.shtml?search_term="+theQuery;
}

function getQuerystring(key, default_){
	if (default_==null){
		default_="";
	}
	var keyIndex=window.location.href.indexOf(key);
	qs=window.location.href.substring(keyIndex+key.length+1);
	qs=decodeURIComponent(qs);
	if(keyIndex == -1){
		return(default_);
	}else{
		return(qs);
	}
}
