/* XSearch version5.0 http://www.twicefun.com/just4fun */var searchname = 'xsearch-5.0.htm';var usebannercode = true;var ButtonCode = "<img src='searchbutton.gif' border=0>";function templateBody(){	document.write('<html><head><title>search</title></head><body bgcolor="#CCCCCC" text="#330000" link="#330000" vlink="#330000" alink="#330000"><Center><font face="Arial" size="2"><font face=Arial size=4><b></b></font><table border=0 width=640><tr><td>');}function templateEnd(){	document.write('</td></tr></table></font></center></body></html>');}function bannerCode(){}//-----------------------------------------------------------------------------------------------var finds =0;var sites =0;var version = "v5.0"var andresult = false;var SortResults = true;var display_start = 1;	var displast = 10;function searchAll(keyword){	var timeA=new Date();	var nw=1;	finds=0;	sites=0;	var x = parseIt(keyword);	if(x == -1)	return;	total_keywords=x;	document.open();	document.clear();	document.write('<link rel="stylesheet" href="xsearch.css">');	AddBody();	if (keyword.length>50) keyword=keyword.substring(0,60)+"...";	results=new makeArray(records_count,1);	order=new makeArray(records_count,1);	for (q=1; q<=results.length; q++){		results[q]=0;		order[q]=q;	}	data=new makeRecordLinks(records_count);	while(keywords[nw].length > 1)	{		search(data,keywords[nw]);		nw++;	} 	if (andresult)	{		for (a=1; a<=results.length; a+=1)		{			if (results[a]>0)			{				if (results[a]<=(total_keywords-1)*2)				{					results[a]=0;					sites-=1;				}			}		}	}	var temp =0;	if ((SortResults==true)&&(keywords!='[all]'))	{	 	for (a=results.length; a>=2; a-=1)		{			for (b=1; b<a; b+=1)			{				if (results[order[a]]>results[order[b]])				{					temp=order[b];					order[b]=order[a];					order[a]=temp;				}			}		}	} else {		b=0;	 	for (a=results.length; a>=2; a-=1)		{			if (results[a]>0)			{				order[b]=a;				b++			}		}	}	// Now we build the output page	displast=display_start+10;	if (displast>sites) displast=sites+1;	var timeB=new Date();	document.write("<center><h3>Showing results <b>"+display_start+"-"+(displast-1)+"</b> of <b>"+sites+"</b> for <b>"+keyword+"</b>. Search took <b>"+((timeB-timeA)/1000)+"</b> seconds.</h3></center>");	if (finds==0)	{		document.write("<h3><font color=green>no hits on <b>''"+keyword+"''</b></font></h3>"+						"<p>Your search - <b>"+keyword+"</b> - did not match any documents in this database.</p>"+						"<LI>Make sure all words are spelled correctly.</li>"+						"<LI>Try using fewer words.</li>"+						"<LI>Try using more general keywords.</li>"+						"<LI>Try different keywords.</li></span>"+						"</p>");					DisplayXSearch();		document.close();		return	}	q2=display_start;	q3=displast;	for (q=display_start; q<q3;)	{		if (results[order[q]]>0)		{			document.write("<span class='xtitle'>"+data[order[q]].v1+"</span><br>");			x1=v1[order[q]].indexOf('http://')+7;			if (x1==6) x1=v1[order[q]].indexOf('href=')+5;			x2=v1[order[q]].indexOf('>');			if (x1>0 && x2>0)			{				tmp=v1[order[q]].substring(x1,x2);				x2=tmp.indexOf(' ');				if (x2>0) tmp=tmp.substring(0,x2);				if (tmp.substring(0,1)=="'") tmp=tmp.substring(1,tmp.length-1);				if (tmp.substring(0,1)=='"') tmp=tmp.substring(1,tmp.length-1);				document.write("<table border=0 width=500><tr><td><span class='xresult'>"+v3[order[q]]+"</span></td></tr></table><br>");			}			q2++;   		}		q+=1;	}	if (finds>10)	{		document.write("<BR>");		pages=Math.round(finds/10);		if (finds%10<6)	pages++;		// Create the parameter string		paramstring=searchname+"?keywords="+keyword+"&and="+andresult+"&sort="+SortResults;		document.write("<center><span class='xsmall'>");		if (display_start>1) document.write("<a href='"+paramstring+"&disp="+(display_start-10)+"'>previous page</a>");		document.write("&nbsp;&nbsp;&nbsp;");		for (i=1; i<=pages;){			if ((((i-1)*10)+1)<=sites) {				document.write("<a href='"+paramstring+"&disp="+(((i-1)*10)+1)+"'>"+i+"</a>&nbsp&nbsp ");			}			i++;		}		document.write("&nbsp;&nbsp;&nbsp;");		if (displast<=sites) document.write("<a href='"+paramstring+"&disp="+(displast)+"'>Next page</a>");		document.write("</span></center>");	}	DisplayXSearch();	document.close();}function Cat(){	document.open();	document.clear();	document.write('<link rel="stylesheet" href="xsearch.css">');	AddBody();	DisplayXSearch();	document.close();}function makeArray(n,vartype) {	this.length = n;	for (var k = 1; k <= n; k++) {		if (vartype==0){			this[k] = "";		} else {			this[k] = 0;		}	}	return this;}               function stripInput(key){	while(key.substring(0,1) == ","  || key.substring(0,1) == " " ) key = key.substring(1,key.length);	while(key.substring(key.length-1,key.length) == "," || key.substring(key.length-1,key.length) == " ") key = key.substring(0,key.length-1);	return key;}function parseIt(key) {	key = stripInput(key)+" ";	var y = 1;	while(key.indexOf(" ") > 0)	{		if (key.substring(0,1)=='"')		{			var pos=key.indexOf('"',2);			keywords[y]=key.substring(1,pos);			keywords[y]=stripInput(keywords[y]);			y++;			key=key.substring(pos+1,key.length);		} else {			var pos=key.indexOf(' AND ');			if ((pos>0) && (key.indexOf(' ')>=pos))			{				pos=key.indexOf(' ',pos+5);				keywords[y]=key.substring(0,pos);				keywords[y]=stripInput(keywords[y]);				y++;				key=key.substring(pos+1,key.length);				if (key.substring(0,4)=='AND ')				{					pos=keywords[y-1].indexOf(' ')+5;					key=keywords[y-1].substring(pos,keywords[y-1].length)+' '+key;				}			} else {		  		var pos=key.indexOf(' OR ');		  		if ((pos>0) && (key.indexOf(' ')>=pos))				{					pos=key.indexOf(' ');					keywords[y]=key.substring(0,pos);					keywords[y]=stripInput(keywords[y]);					if (keywords[y]!=keywords[y-1])	y++;					key=key.substring(pos+1,key.length);					pos=key.indexOf('OR ');					key=key.substring(pos+3,key.length);					pos=key.indexOf(' ');					keywords[y]=key.substring(0,pos);					keywords[y]=stripInput(keywords[y]);					y++;					key=key.substring(pos+1,key.length);					if (key.substring(0,3)=='OR ') key=keywords[y-1]+' '+key;				} else {					var pos = key.indexOf(" ");					keywords[y]=key.substring(0,pos);					keywords[y] = stripInput(keywords[y]); 					y++;					if(y > 50) return -1					key=key.substring(pos+1,key.length);				}			}		}	}	return y-1;}var keywords = new makeArray(50,0);var results;var foundword;var data;var order;var total_keywords;function dataEntry (){        this.v1="";        this.v2="";        return this;}function makeRecordLinks(size){	this.length = size;	for (var r=1; r<= size; r++) 	{           this[r] = new dataEntry();           this[r].v1 = v1[r];           this[r].v2 = v2[r]; 	}	return this;}function AddBody(){	var keytext='"'+searchname+'?keywords="+';	var andtext='"&and="+';	document.write('<script>function doSearch(){'+						'searchwords=document.searchform.searchwords.value; '+						'while (searchwords.indexOf(" ")>-1){ pos=searchwords.indexOf(" ");'+						'searchwords=searchwords.substring(0,pos)+"+"+searchwords.substring(pos+1); }'+						'document.location='+keytext+' searchwords+'+andtext+'"0"}'+						'<'+'/'+'script>'						);	templateBody();	document.write("<form name='searchform' method='post' action='javascript:doSearch()'><table border='0' width='100%'><tr><td align='center'><font face='Arial, Helvetica, sans-serif' size='3'><input name='searchwords' type='text' size='30'>&nbsp;&nbsp;<a href='javascript:doSearch()'>"+ButtonCode+"</a></font></td></tr></table></form><hr size=1>");	if (usebannercode) bannerCode();}function DisplayXSearch(){	document.write("<h3><center></center></h3>");	templateEnd();}function search(records, keyword){	var hit=0;	var addcomplete=0;		for (q=1; q<=records.length; q++) {	addcomplete=0;	search_parm=records[q].v2.toLowerCase()+" "+v3[q].toLowerCase();		if (keyword.indexOf(' AND ')>0)	{		firstword=keyword.substring(0,keyword.indexOf(' '));		lastword=keyword.substring(keyword.indexOf(' AND ')+5,keyword.length);		if ((search_parm.indexOf(" "+firstword+" ") != -1) && (search_parm.indexOf(" "+lastword+" ")!= -1 ))		{			hit++;			finds++;			if(hit < 2)			{ 				if (results[q]==0) sites++;				results[q] +=2;			} 		}	} else {		keyword=keyword.toLowerCase();		if ((search_parm.indexOf(" "+keyword+" ") != -1) ||(keyword=="[all]"))		{			hit++;			finds++;			if(hit<2)			{ 				if (results[q]==0) sites++;				results[q]+=2;			} 		} else {			// check for a half hit (ie. search:share find:SHAREware)			if (search_parm.indexOf(keyword) != -1)			{				hit++;				finds++;				if(hit < 2)				{					if (results[q]==0) sites++;					results[q]+=1;					x=search_parm.indexOf(keyword)+keyword.length;					pos=search_parm.substring(1,x-keyword.length);					while (pos.indexOf(" ")!=-1)					{						y=pos.indexOf(" ");						pos=pos.substring(y+1,pos.length);					}					if (pos.length<=2) addcomplete++;					pos=search_parm.substring(x,search_parm.length);					fullresult=search_parm.substring(x,x+pos.indexOf(" "));										if (fullresult.length<=2) addcomplete++;					if (addcomplete>1) results[q]+=1;				}			}		}	}	hit=0;	} }                                       var searchwords = '';var newload = true;function countParams(text){	pos=-1;	tmp = "";	if (text=='') return 0;	text=text+'&';	i=0;	while (text.length>0)	{		pos=text.indexOf('&',0);		tmp=text.substring(pos+1);		text=tmp;		i++;	}	return i;}	function getCommand(text,val){	pos=-2;	tmp = "";	text=text+'&';			for (i=0; i<=val;)	{		pos2=pos+2;		pos=text.indexOf('&',pos2);		tmp=text.substring(pos,pos2-1);		i++;	}	text=tmp;	pos=text.indexOf('=',0);	if (pos!=-1) tmp=text.substring(pos,0);	tmp=tmp.toLowerCase();	return tmp;}function getValues(text,val){	pos=-2;	tmp = "";	text=text+'&';	for (i=0; i<=val;)	{		pos2=pos+2;		pos=text.indexOf('&',pos2);		tmp=text.substring(pos,pos2-1);		i++;	}	text=tmp;	pos2=text.indexOf('=',0)+1;	if (pos2!=-1)	{		tmp=text.substring(pos2);	} else { 		tmp='' 	}		pos=-2;	text=tmp;		if (text.indexOf('%20')>0)	{		pos=text.indexOf('%20',0);		tmp=text.substring(0,pos2-4)+' '+text.substring(pos2-1,text.length);		text=tmp;	}	return tmp;}		function initXsearch(){	if (searchwords!='')	{		searchAll(searchwords);	} else {		if (newload) Cat();	}}function doParamStuff(findw){	Myparams=countParams(findw);	if (Myparams>0)	{		for (cnt=0; cnt<Myparams;)		{			tempw=getCommand(findw,cnt);			tempv=getValues(findw,cnt);			if (tempw=='keywords')			{				searchwords=getValues(findw,cnt);				origsearchwords=searchwords;				while (searchwords.indexOf('+')>-1)				{					pos=searchwords.indexOf('+');					searchwords=searchwords.substring(0,pos)+' '+searchwords.substring(pos+1);				}			}			if (tempw=='sort')			{				if ((tempv=='0')||(tempv=='false'))				{					SortResults=false;				} else {					SortResults=true;				}			}								if (tempw=='and')			{				if ((tempv=='1')||(tempv=='true'))				{					andresult=true;				} else {					andresult=false;				}			}			if (tempw=='disp') display_start=parseInt(tempv);			cnt +=1;		}	}}findw=document.location.search;findw="&"+findw.substring(1,findw.length);while (findw.indexOf('%20')>0){	pos2=findw.indexOf('%20',0);	tmp=findw.substring(0,pos2)+' '+findw.substring(pos2+3,findw.length);	findw=tmp;}doParamStuff(findw);