// Voor diegene...die dit wil na-apen...Quick sort funstie van PR3 gebruikt Dennis...vuile JATTERT!!!





function trecords(){


	this.index=(trecords.count++)


	this.link=''


	this.keywords=''


	this.description=''


	return this


}


trecords.prototype.set=function(link,keywords,description) {


	this.link=link


	this.keywords=keywords


	this.description=description


}


trecords.prototype.searchstring=function() { return this.link+' '+this.keywords+' '+this.description }


trecords.prototype.count=0





function add(link,keywords,description) {


	al=records.length


	records[al]=new trecords()


	records[al].set(link,keywords,description)


}





records = new Array()


finds=0


sites=0


andresult=false


SortResults=true


display_start=0


displast=10


function qsort(f, l){  


	var a=f


	var b=l


	var s


	var m = results[(a+b)>>1].val


   	while (a<=b) {


		while (results[a].val>m) {a++}


		while (m>results[b].val) {b--}





		if (a<=b) {


            		s=results[a]


			results[a]=results[b]


			results[b]=s


            	a++


            	b--


        	}


	} 


	if (f<b) this.qsort(f, b)


	if (a<l) this.qsort(a, l)


}


function bsort() {


	for (var i=results.length-1; i>=0; i--) {


		for (var j=i; j>=0; j--) {


			if (results[i].val>results[j].val) {


				s=results[i]


				results[i]=results[j]


				results[j]=s


			}


		}	


	}


}





function searchAll(keyword){


	var timeA=new Date()


	var nw=0


	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="../script_css/default_ie.css">')


	AddBody()





	if (keyword.length>50) keyword=keyword.substring(0,60)+"..."





	results=new Array()


	for (q=0; q<records.length; q++) {


		results[q]=new Array()


		results[q].rec=q


		results[q].val=0


	}





	for (nw=0; nw<keywords.length; nw+=1) search(keywords[nw])


	if (andresult) {


		for (a=0; a<results.length; a+=1) {


			if (results[a].val>0) {


				if (results[a].val<=(total_keywords-1)<<1) {


					results[a].val=0


					sites-=1


				}


			}


		}


	}


	if (SortResults && keywords!='[all]') bsort()





	


	displast=display_start


	displast+=10


	if (displast>sites) displast=sites





	var timeB=new Date()





	if (finds==0) { display_start=-1; displast=0 }


	document.write("<left><h6>Zoekresultaat <b>"+(display_start+1)+"-"+(displast)+"</b> uit <b>"+sites+"</b> op <b>"+keyword+"</b> uw zoekopdracht duurde <b>"+((timeB-timeA)/1000)+"</b> seconden.</h6></left>")





	if (displast>sites && finds!=0) displast=sites+1








	if (finds==0) {


		document.write("<h6><font color=#FF6400>niets gevonden op <b>''"+keyword+"''</b></font></h6>"+


						"<p>Uw zoekopdracht - <b>"+keyword+"</b> - is niet aangetroffen in de database.</p>"+


            					"<table border=0 cellspacing=0 cellpadding=0>"+


              					"<tr>"+ 


                				"<td width=20><img src=images/squere.gif width=5 height=5></td>"+


                				"<td>Zorg ervoor dat woorden goed gespeld zijn.</td>"+


              					"</tr>"+


              					"<tr>"+


                				"<td width=20><img src=images/squere.gif width=5 height=5></td>"+


                				"<td>Probeer eens met een gereduceerd aantal zoekwoorden.</td>"+


              					"</tr>"+


              					"<tr>"+


                				"<td width=20><img src=images/squere.gif width=5 height=5></td>"+


                				"<td>Probeer eens de meer gebruikelijkere woorden.</td>"+


              					"</tr>"+


						"<tr>"+


                				"<td width=20><img src=images/squere.gif width=5 height=5></td>"+


                				"<td>Probeer steeds verschillende zoekwoorden.</td>"+


              					"</tr>"+


            					"</table></span></p>")


						


		DisplaySearch()


		document.close()


		return


	}





	q2=display_start


	q3=displast


	for (q=display_start; q<q3; q+=1) {


		if (results[q].val>0) {


			rc=results[q].rec


			document.write("<span class='xtitle'>"+records[rc].link+"</span><br>")


			x1=records[rc].link.indexOf('http://')


			if (x1==-1) x1=records[rc].link.indexOf('href=')+5


			else x1+=7


			x2=records[rc].link.indexOf('>')-1


			if (x1>0 && x2>0) {


				tmp=records[rc].link.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-2)


				if (tmp.substring(0,1)=='"') tmp=tmp.substring(1,tmp.length-1)


				document.write("<table border=0 width=270><tr><td><span class='xresult'>"+records[rc].description+"</span></td></tr></table><span class='xlocation'>"+tmp+"</span><br><br>")


			}


			q2++


   		}


	}





	if (finds>10) {


		document.write("<BR>")


		pages=Math.round(finds/10)


		if (finds%10<6)	pages++





		


		paramstring=searchname+"?keywords="+keyword+"&and="+andresult+"&sort="+SortResults





		document.write("<center><span class='xsmall'>")


		if (display_start>0) document.write("<a href='"+paramstring+"&disp="+(display_start-10)+"'>vorige</a>")


		document.write("&nbsp;&nbsp;&nbsp;")





		for (i=1; i<=pages; i+=1){


			if ((((i-1)*10)+1)<=sites) document.write("<a href='"+paramstring+"&disp="+(((i-1)*10))+"'>"+i+"</a>&nbsp&nbsp ")


		}


		document.write("&nbsp;&nbsp;&nbsp;")


		if (displast<=sites) document.write("<a href='"+paramstring+"&disp="+(displast)+"'>volgende</a>")


		document.write("</span></center>")


	}


	DisplaySearch()


	document.close()


}





function Cat() {


	document.open()


	document.clear()


	document.write('<link rel="stylesheet" href="bg/default.css">')


	AddBody()


	DisplaySearch()


	document.close()


}





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=0





	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 Array()


var results





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='left'><b>Zoek</b> naar: <font face='Arial, Verdana, Tahoma' size='10px'><input name='searchwords' type='text' size='20'>&nbsp;&nbsp;<a href='javascript:doSearch()'>"+ButtonCode+"</a></font></td></tr></table></form>")


	if (usebannercode) bannerCode()


}





function DisplaySearch() 


{


  //document.write("Typ in het bovenstaande veld uw zoekopdracht en klik op zoeken om te starten met zoeken")


  templateEnd()


}





function search(keyword) {


	var hit=0


	var addcomplete=0





	for (q=0; q<records.length; q++) {


		addcomplete=0


		search_parm=" "+records[q].searchstring()+" "


		search_parm=search_parm.toLowerCase()





		if (keyword.indexOf(' AND ')>0) {


			firstword=keyword.substring(0,keyword.indexOf(' ')).toLowerCase()


			lastword=keyword.substring(keyword.indexOf(' AND ')+5,keyword.length).toLowerCase()


			if ((search_parm.indexOf(" "+firstword+" ") != -1) && (search_parm.indexOf(" "+lastword+" ")!= -1 )) {


				hit++


				finds++


				if(hit<2) { 


					if (results[q].val==0) sites++


					results[q].val +=2


				} 


			}


		} else {


			keyword=keyword.toLowerCase()


			if ((search_parm.indexOf(" "+keyword+" ") != -1) ||(keyword=="[all]")) {


				hit++


				finds++


				if(hit<2) { 


					if (results[q].val==0) sites++


					results[q].val+=2


				} 


			} else {


				


				if (search_parm.indexOf(keyword) != -1)	{


					hit++


					finds++


					if(hit < 2) {


						if (results[q].val==0) sites++


						results[q].val+=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].val+=1


					}


				}


			}


		}


		hit=0


	} 


}                                       





var searchwords = ''


var newload = true





function initsearch() {


	if (searchwords!='') searchAll(searchwords)


	else if (newload) Cat()


}





function tparams(){


	parameters=document.location.search


	parameters=unescape(parameters.substring(1,parameters.length)+'&')





	this.params=new Array()


	i=0


	while (parameters.indexOf('&',0)!=-1) {


		al=this.params.length


		this.params[al]=new Array()


	


		tmp=parameters.substring(0,parameters.indexOf('&',0))


		parameters=parameters.substring(parameters.indexOf('&',0)+1)





		if (tmp.indexOf('=')!=-1) {


			this.params[al].command=tmp.substring(0,tmp.indexOf('='))


			this.params[al].value=tmp.substring(tmp.indexOf('=')+1)


		} else {


			this.params[al].command=tmp


			this.params[al].value=''


		}


	}





	return this


}


tparams.prototype.getValue=function(param){


	value=''


	param=param.toLowerCase()


	al=this.params.length


	for (var i=0; i<al; i+=1) if (this.params[i].command==param) value=this.params[i].value


	return value


}





params=new tparams()


if (params.getValue('keywords')!=''){


	searchwords=params.getValue('keywords')


	origsearchwords=searchwords


	while (searchwords.indexOf('+')>-1) {


		pos=searchwords.indexOf('+')


		searchwords=searchwords.substring(0,pos)+' '+searchwords.substring(pos+1)


	}


}


if (params.getValue('sort')!='')


	if (params.getValue('sort')=='0' || params.getValue('sort')=='false') SortResults=false


	else SortResults=true


if (params.getValue('and')!='')


	if (params.getValue('and')=='0' || params.getValue('and')=='false') andresult=false


	else andresult=true


if (params.getValue('disp')!='') display_start=parseInt(params.getValue('disp'))
