var mySection= "yp01";
var myEndPage = top.maxYP01;
var cachedX=0;
var cachedY=0;
var lastSearchIndex;
var listArray=new Array();
var matchingListings = "";
var matchingListingCount = 0;

function openPage(searchText, heading)
{var tabUrl;
var html = getPageFor(escape(searchText), escape(heading));
var newPage =  parseInt(html.substring(0, 4));
var xSign = html.substring(4, 5);
var xString = html.substring(5, 9);
var ySign = html.substring(9, 10);
var yString = html.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("yp01");
top.select.menu.setPage(currentPage);
top.select.menu.setMaxPage(myEndPage);
if (top.select.menu.isDoubleTruck(newPage + "") && (newPage%2==1))
 	cachedX = cachedX + top.pageWidth;
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+"%26section="+mySection;
if(top.select.menu.ActivTrakCheck())
	top.trak.location.href="http://"+top.traip+"?book="+top.trakVal+"&type=keyword&text="+searchText;
top.tabs.location.href=this.location.href +"/../tab.htm";
top.select.menu.setWindowTitle("yp01", newPage);
top.select.menu.storeSpot("yp01", 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 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;
}

var currentPage = 0;

function getResults()
{
	listArray=new Array();
	matchingListings = "";
	matchingListingCount = 0;
	lastSearchIndex=top.select.search.getLastSearchIndex();
	var a1 = top.ypk.outputArray;
	var a2 = top.ypk2.outputArray;

	if (a1 == null && a2 == null) {
		top.select.search.confirmYPKSearch();
		return;
		}
	if(a1 == null || a1.length == 0)
	{     
		for(i = 0; i < a2.length; i++)
		{
			var kw = a2[i][0];
			var kwa = a2[i][1];
			for(j = 1; j < kwa.length; j = j + 2)
			{
				for(k = 1; k < a2[i][1][j].length; k++)
				{
					var html = a2[i][1][j][k];
					setListArray(kw, a2[i][1][j-1], html)
				}
			}
		}
	}
	else
		if(a2 == null || a2.length == 0)
		{
			for(i = 0; i < a1.length; i++)
			{
				var kw = a1[i][0];
				var kwa = a1[i][1];
				for(j = 1; j < kwa.length; j = j + 2)
				{
					for(k = 1; k < a1[i][1][j].length; k++)
					{
						var html = a1[i][1][j][k];
						setListArray(kw, a1[i][1][j-1], html)
					}
				}
			}
		}
		else
		{
			getCloseKeywords(a1, a2);
			if(listArray.length == 0)
			{
				for(i = 0; i < a1.length; i++)
				{
					var kw = a1[i][0];
					var kwa = a1[i][1];
					for(j = 1; j < kwa.length; j = j + 2)
					{
						var html = a1[i][1][j][1];
						setListArray(kw, a1[i][1][j-1], html)
					}
				}
				for(i = 0; i < a2.length; i++)
				{
					var kw = a2[i][0];
					var kwa = a2[i][1];
					for(j = 1; j < kwa.length; j = j + 2)
					{
						var html = a2[i][1][j][1];
						setListArray(kw, a2[i][1][j-1], html)
					}
				}
			}
		}		
	matchingListings += "<br>";	
if(navigator.appName != "Netscape") {
	for(i = 0; i < listArray.length; i++)
	{
		var theReference = "#kw" + i;
		matchingListings +="<center><A HREF='" + theReference + "' class='toplink'><FONT size='1'>"+ unescape(listArray[i++])+"</A></center><br>";
	}
	var theReference = "#resultSummary";
	matchingListings +="<center><A HREF=" + theReference + " class='toplink'><FONT size='2'>[top]</A></center><br>";
} else {
	for(i = 0; i < listArray.length; i++)
	{
		matchingListings +="<center><FONT size='1' class='resultlink'>"+ unescape(listArray[i++])+"</center><br>";
	}
	matchingListings +="<center><FONT size='2'></center><br>";
}	
	for(i = 0; i < listArray.length; i++)
	{
		var kw = listArray[i++];
		matchingListings +=('<FONT color="#' + top.resultColor + '" size="2"><a name="kw'+(i-1)+'">Click "next" for next match</a></FONT>');
		matchingListings +=('<br><center><b><font color="#' + top.select.searchItemColor + '" size=2> <b>'+unescape(kw)+' found in:</center></b><br>');
		for(j=0; j< listArray[i].length; j++)
		{ 
			var hd = listArray[i][j++];
			var numMatches = listArray[i][j].length -1;
			matchingListings +=('<A HREF=javascript:top.ypkr.openPage("'+kw+'","'+ hd+'") class="resultlink">');
			matchingListings +=(unescape(hd)+'<br>');
			if (numMatches == 1) 
				matchingListings += "(1 match)";
			else
				matchingListings += "("+numMatches + " matches).  Next";
			//matchingListings +=(numMatches + " " + matchString );
			matchingListings +=('</font></a><BR><br>');
			matchingListingCount += numMatches;
		}
	if(navigator.appName != "Netscape") {
		matchingListings +="<center><a href='#keywords' class='toplink'><FONT size='1'>Back to keyword selection<br></FONT></a></center><br>";
	} else {
		matchingListings +="<center><FONT size='1'><br></FONT></center><br>";
	}
	}

	top.select.search.confirmYPKSearch();
}


 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 kwa1 = a1[i][1];		
		for(j = 0; j < kwa1.length; j++)
		{
			var hd = kwa1[j++]
			for(q = 1; q < kwa1[j].length; q++)
			{
				var html = kwa1[j][q];				
				var newPage =  html.substring(0, 4);
				var xSign = html.substring(4, 5);
				var xString = html.substring(5, 9);
				var ySign = html.substring(9, 10);
				var yString = html.substring(10, 14);
				cachedX = parseInt(xString);
				cachedY = parseInt(yString);
				if(xSign== 'n')
					cachedX = 0-cachedX;
				if(ySign== 'n')
					cachedY = 0-cachedY;
				for( k = 0; k < a2.length; k++)
				{
						var kw2 = a2[k][0];
						if(hd.indexOf(kw2) != -1)
						{
							setListArray(kw1 + " " + kw2, hd, html)
						}						
						else
						{
							var kwa2 = a2[k][1];					
							for(l = 0; l < kwa2.length; l++)
							{
								var childhd =  kwa2[l++];
								for(w = 1; w < kwa2[l].length; w++)
								{
									var childhtml = kwa2[l][w];			
									var childnewPage =  childhtml.substring(0, 4);
									//alert(newPage + " " + childnewPage);
									if(childnewPage == newPage)
									{
										var childxSign = childhtml.substring(4, 5);
										var childxString = childhtml.substring(5, 9);
										var childySign = childhtml.substring(9, 10);
										var childyString = childhtml.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(testX <20 && testY < 10)
										{
											setListArray(kw1 + " " + kw2, hd, html)
										}
										else
										{
											if(childhd.indexOf(kw1) != -1)
											{
												setListArray(kw2 + " " + kw1, childhd, childhtml)
											}
							
										}
									}
								}
							}
						}
				}
			}
		}
	}
}

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(kw, hd, myhtml)
{
var mykeyword = escape(kw);
var myheading = escape(hd)
	for(x = 0; x < listArray.length; x=x+2)
	{
		if(listArray[x] == mykeyword)
		{
			for(y = 0; y < listArray[x+1].length; y=y+2)
			{
				if(listArray[x+1][y] == myheading)	
				{
					var add = true;
					for(p = 1; p < listArray[x+1][y+1].length; p++)
					{
						if(listArray[x+1][y+1][p] == myhtml)
							add = false;
					}
					if(add)
						listArray[x+1][y+1][listArray[x+1][y+1].length] = myhtml;
					return;
				}				
			}
			listArray[x+1][listArray[x+1].length] = myheading;
			listArray[x+1][listArray[x+1].length] = new Array();
			listArray[x+1][listArray[x+1].length-1][0] = 0;
			listArray[x+1][listArray[x+1].length-1][1] = myhtml;
			return;
		}
	}
	listArray[listArray.length] = mykeyword;
	listArray[listArray.length] = new Array();
	listArray[listArray.length-1][0] = myheading;
	listArray[listArray.length-1][1] = new Array();
	listArray[listArray.length-1][1][0] = 0;
	listArray[listArray.length-1][1][1] = myhtml;
	return;	
}

