/* XSearch version5.0 http://www.twicefun.com/just4fun */
// Le nom du fichier
var searchname = 'xsearch.htm';
// Le nom et l'adresse du boutonvar usebannercode = true;
var ButtonCode = "<img src='searchbutton.gif' border=0>";
var usebannercode = true;
function templateBody(){
////// modifications possibles ///////
document.write('<html><head><title>Moteur de recherche</title></head><body bgcolor="#ffffff" text="#000000" link="#000099" vlink="#996699" alink="#996699"><p><br></p><table width=760><tr><td width=730><center><font color="#000080"><font face="Arial" size="5"><font face=Arial, Verdana size=3><b>Moteur de recherche </font></font></center></td></tr></table><center><table border=0 width=680><tr><td>');
}

function templateEnd(){
document.write('<table><td width=30><div align=right><a href="divers.html"><font size=1></font></a></div></td</td></tr></table></font></center></body></html>');
}
////// fin de  modifications ///////
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();
////// modifications possibles ///////
	document.write("<center><h3>R&eacute;sultats : <b>"+display_start+"-"+(displast-1)+"</b> de <b>"+sites+"</b> pour 		<b>"+keyword+"</b>. Dur&eacute;e de la recherche : <b>"+((timeB-timeA)/1000)+"</b> secondes.</h3></center>");
	if (finds==0)
	{
	document.write("<h3><font color=green>Pas de r&eacute;sultats pour  <b>''"+keyword+"''</b>.</font></h3>"+
	"<p>Votre recherche sur - <b>"+keyword+"</b> - n'a trouv&eacute; aucun document correspondant dans la base de 		donn&eacute;es.</p>"+
	"<ul><LI>Assurez-vous que les mots sont bien orthographi&eacute;s.</li>"+
	"<LI>Essayez avec moins de mots.</li>"+
	"<LI>Essayez d\'autres mots-clés.</li></ul></span>"+
	"</p>");
////// fin de  modifications ///////			
	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><span class='xlocation'>"+tmp+"</span><br><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'>");
////// modifications possibles ///////
	if (display_start>1) document.write("<a href='"+paramstring+"&disp="+(display_start-10)+"'>page pr&eacute;c&eacute;dente</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)+"'>page suivante</a>");
	document.write("</span></center>");
	}
////// fin de  modifications ///////			
	DisplayXSearch();
	document.close();
}

function Cat(){
	document.open();
	document.clear();
	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();
////// modifications possibles ///////
	document.write("<br><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>");
////// fin de  modifications ///////			
	if (usebannercode) bannerCode();
}

function DisplayXSearch(){
////// modifications possibles ///////
document.write("<center><hr size=1></center>")
	document.write("<Font size=-1><center>R&eacute;alis&eacute; avec <a href=http://www.twicefun.com/just4fun>XSearch 	"+version+"</a>  - Free Javascript SearchEngine</center></font>");
////// fin de  modifications ///////		
	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);
