var mySection= "gov";
var myEndPage = top.maxGov;
var cachedX=0;
var cachedY=0;
var lastSearchIndex;
var listArray=new Array();
var matchingListings = "";
var matchingListingCount = 0;

function openPage(htmlPage, keyword)
{var tabUrl;
//alert("page: '" + htmlPage.substring(0, 4) + "'");
var newPage =  parseInt(htmlPage.substring(0, 4));
var xSign = htmlPage.substring(4, 5);
var xString = htmlPage.substring(5, 9);
var ySign = htmlPage.substring(9, 10);
var yString = htmlPage.substring(10, 14);
cachedX = parseInt(xString);
cachedY = parseInt(yString);
if(xSign== 'n')
	cachedX = 0-cachedX;
if(ySign== 'n')
	cachedY = 0-cachedY;
//cachedX = cachedX - 3;
//cachedY = cachedY - 3;
currentPage=newPage;
top.select.menu.setSection(mySection);
myEndPage = top.select.menu.maxPageFor(mySection);
top.select.menu.setPage(currentPage);
top.select.menu.setMaxPage(myEndPage);
top.select.menu.cachedX = cachedX;
top.select.menu.cachedY = cachedY;
var rootPath = top.pages.location.href.substring(0,top.pages.location.href.lastIndexOf("data")+5);
top.pages.location.href=this.location.href.substring(0,this.location.href.indexOf("/data/")+6)+ "svg/"+mySection+"/page.htm?page="+newPage+"%26x="+cachedX+"%26y="+cachedY+"%26s="+mySection;
if(top.select.menu.ActivTrakCheck())
	top.trak.location.href="http://"+top.traip+"?book="+top.trakVal+"&type=keyword&text="+keyword;
top.tabs.location.href=this.location.href +"/../tab.htm";
top.select.menu.setWindowTitle(mySection, newPage);
top.select.menu.storeSpot(mySection, newPage, myEndPage,cachedX,cachedY);
}

function setSection(secText)
{
section = secText;
}

function getPageFor(key, head)
{
	for(x = 0; x < listArray.length; x=x+2)
		if(listArray[x] == key)
			for(y = 0; y < listArray[x+1].length; y=y+2)
				if(listArray[x+1][y] == head)	
				{
					var count = listArray[x+1][y+1][0]+1;
					if(count >=  listArray[x+1][y+1].length)
						count = 1;
					listArray[x+1][y+1][0] = count;
					return listArray[x+1][y+1][count]
				}

}



function colorFor(section) 
{
	return top.select.menu.colorFor(section);
}

var currentPage = 0;

function getResults()
{ 
	listArray=new Array();
	matchingListings = "";
	matchingListingCount = 0;
	lastSearchIndex=top.select.search.getLastSearchIndex();
	var a1 = top.gvk.outputArray;
	var a2 = top.gvk2.outputArray;

	if (a1 == null && a2 == null) { 
		top.select.search.confirmGVKSearch();
		return;
		}
	if(a1 == null || a1.length == 0)
	{   //  alert("a1 is null; a2 is " + a2.length);
		for(i = 0; i < a2.length; i++)
		{
			setListArray(a2[i]);
		}
	}
	else
		if(a2 == null || a2.length == 0)
		{ // alert("a2 is null; a1 is " + a1.length);
			for(i = 0; i < a1.length; i++)
			{
				setListArray(a1[i]);
				
			}
		}
		else
		{
			getCloseKeywords(a1, a2);
		}		
	matchingListings += "<br>";	

	for(i = 0; i < listArray.length; i++)
	{
//		 alert("about to write the matching listings..");
		var heading = listArray[i][1];
		var myKeyword = listArray[i][0];
		var keyword = myKeyword;
		var htmlPage = listArray[i][2];
		var numMatches = listArray.length;
		matchingListings +='<A HREF="javascript:top.gvkr.openPage(\''+htmlPage+'\',\''+myKeyword.replace(/'/g, "\\'")+'\')" class="resultlink">'+keyword+'</font></a><br><FONT size =1 face="Arial, san-serif" color=#' + top.secColor8 + '>'  + heading + '</FONT><br><FONT size =1 face="Arial, san-serif" color=#' + colorFor("gov") + '>' + "GOVERNMENT PAGES" + '<br></font>';

		matchingListings +=('</font></a><br>');

	
	
	
	}
	if(navigator.appName != "Netscape") {
			matchingListings +="<center><a href='#resultSummary' class='toplink'><FONT size='1'>[top]<br></FONT></a></center><br>";
		} else {
			matchingListings +="<center><FONT size='1'><br></FONT></center><br>";
	}
	matchingListingCount += numMatches;
	top.select.search.confirmGVKSearch();
}


 function myMatchingListings() {
 	return matchingListings;
} 

 function myMatchingListingCount() {
 	return matchingListingCount;
} 

function getCloseKeywords(a1, a2)
{
	for( i = 0; i < a1.length; i++)
	{
		var kw1 = a1[i][0];
		var hd1 = a1[i][1];
		var html1 = a1[i][2];
	//alert("kw1 " + kw1 + ", hd1 " + hd1 + ", html1 " + html1); 				
		var newPage =  html1.substring(0, 4);
		var xSign = html1.substring(4, 5);
		var xString = html1.substring(5, 9);
		var ySign = html1.substring(9, 10);
		var yString = html1.substring(10, 14);
		cachedX = parseInt(xString);
		cachedY = parseInt(yString);
		if(xSign== 'n')
			cachedX = 0-cachedX;
		if(ySign== 'n')
			cachedY = 0-cachedY;
		for(q = 0; q < a2.length; q++)
		{
			var html2 = a2[q][2];
			var kw2 = a2[q][0];
			var childPage = html2.substring(0, 4);
			var childxSign = html2.substring(4, 5);
			var childxString = html2.substring(5, 9);
			var childySign = html2.substring(9, 10);
			var childyString = html2.substring(10, 14);
			var childcachedX = parseInt(childxString);
			var childcachedY = parseInt(childyString);
			if(childxSign== 'n')
				childcachedX = 0-childcachedX;
			if(childySign== 'n')
				childcachedY = 0-childcachedY;
			var testX = childcachedX - cachedX;
			if(testX < 0)
				testX = 0- testX;
			var testY = childcachedY - cachedY;
			if(testY < 0)
				testY = 0- testY;
			//if (parseInt(childPage) == 59)
		//alert("testX " + testX + ", testY " + testY);
			if(newPage == childPage && testX < 40 && testY < 20)
				{
				//alert("Passed the test!");
				  var newArray = new Array(3);
				  newArray[0] = kw1 + " " + kw2;
				  newArray[1] = hd1;
				  newArray[2] = html1;
				setListArray(newArray);
				}
			else
				{
			//	setListArray(a2[q]);
				}
		}
	//	setListArray(a1[i]);	
		
	}
}

function getDelimiterPosition(aString, startPos) 
{ 	var pDel = aString.indexOf("p",startPos);
	var positive = true;
	var delPos = pDel;
	var nDel = aString.indexOf("n",startPos);
	if (pDel == -1) {
		delPos = nDel;
		positive = false;
		}
	else
		if (nDel == -1)
			delPos = pDel;
		else
			if (nDel < pDel) {
				delPos = nDel;
				positive = false;
				}
res = new Array(delPos,positive)
return res;
}

function setErrorMessage(msg)
{
	matchingListings = msg;
	matchingListingCount = 0;
}

function setListArray(myListing)
{
	listArray[listArray.length] = myListing;
	
}


