function Essai(){
//On mémorise la requete :
//Cas de la recherche simple	
	var noeudReq = document.getElementById('request');

	if(document.getElementById('request')!=null){
		RechSimple();
	}

	if(document.getElementById('quest')!=null){
		RechAvancee();
	}	
}

function RechSimple(){
	var noeudReq = document.getElementById('request');
	if(noeudReq!=null){
	var requete = noeudReq.value;
	var test = requete.substring(requete.indexOf(':')+1,requete.length);
	
	if(test.indexOf(':')!=-1 || test.indexOf('|')!=-1){//Cas d'une recherche simple classique ou d'une recherche biblio
		var tab = new Array();
		var tab1 = new Array();
		var i=0;
		var j=0;	
		tab = requete.split(' ');
			
		if(requete.indexOf('|')==-1){//Cas d'une recherche sur article, illus ou brève
			while(i!=tab.length){
				if(tab[i].indexOf(':')!=-1){
					tab1[j]=tab[i].substring(tab[i].indexOf(':')+1,tab[i].length);
					j++;
				}
				i++;
			}
					
			tab1.sort();
			var k=0;
			var m=0;
			var tab2 = new Array();
				
			while(k!=tab1.length){
				if(tab1[k].indexOf(')')==-1){
					if(tab1[k]!=tab1[k+1]){
						tab2[m]=tab1[k];
						m++;						
					}
				}
				k++;					
			}
			
			nb = document.getElementById('divres');
				
			k=0;				
			while(k!=tab2.length){
				nb.appendChild(document.createTextNode(tab2[k]));					
				nb.appendChild(document.createTextNode(" "));					
				k++;
			}
			
		}
		else {//Cas d'une recherche sur biblio
			var req = requete.substring(requete.indexOf('|')+1,requete.length);
			req = req.substring(0,req.indexOf('|'));
			nb = document.getElementById('divres');
			nb.appendChild(document.createTextNode(req));
		}

	} 
	else{//Cas d'une recherche prédéfinie avec affichage Gallia ou BSR -> Affichage simple
		var res = requete.substring(requete.indexOf('(')+1,requete.indexOf(')'));
		nb = document.getElementById('divres');
		nb.appendChild(document.createTextNode(res));
	}
	}
}


function RechAvancee(){
	var noeudReq = document.getElementById('quest');
	if(noeudReq!=null){
	
	var requete = noeudReq.value;
	var tab = new Array();
	var tab1 = new Array();
	var i=1;
	
	var chaine =requete;
	
	//==========> Finalement, le champ "Tous les champs" a été supprimé
	
	//On traite le cas particulier de "Tous les champs" dès le début
	//wresponsable:céramique wauteur:céramique winventeur:céramique wsuivi:céramique operation:céramique cadre:céramique wpeuples:céramique wanthroponyme:céramique wchronologie:céramique wlieux:céramique wthemes:céramique wregion:céramique wdepartement:céramique wcommune:céramique pleintexte:céramique wtitre:céramique

	//Où récupérer le champ entré dans tous les champs via un getElement (sur "pleintexte")
	var pleintexte = document.getElementById('pleintexte');
	/*if(pleintexte.value!=""){
		var texte = pleintexte.value;
		var tabPleintexte = texte.split(' ');
		var indexReqDeb = 0;
		var chaineTemp = "";
		for(j=0;j<tabPleintexte.length;j++){
			w = chaine.indexOf("wresponsable");
			reqDeb = chaine.substring(indexReqDeb,chaine.indexOf("wresponsable"));
			reqFin = chaine.substring(chaine.indexOf("wtitre")+6, chaine.indexOf(')')+1);//chaine.indexOf(')')
			chaineTemp = chaineTemp + reqDeb +"wtousleschamps"+reqFin ;
			chaine = chaine.substring(chaine.indexOf(')')+1, chaine.length)
		}
		chaine=chaineTemp+')';*/ //OK si juste plusieurs mots avec espaces
		
		//Test avec les Regexp
		//var regexp = /\s([\(\)\+\-])*\w*wresponsable:\w* wauteur:\w* winventeur:\w* wsuivi:\w* operation:\w* cadre:\w* wpeuples:\w* wanthroponyme:\w* wchronologie:\w* wlieux:\w* wthemes:\w* wregion:\w* wdepartement:\w* wcommune:\w* pleintexte:\w* wtitre:\w*\s([\(\)\+\-])*\s/ //juste ? => donne test = null
		//var regexp = /wresponsable:\w* wauteur:\w* winventeur:\w* wsuivi:\w* operation:\w* cadre:\w* wpeuples:\w* wanthroponyme:\w* wchronologie:\w* wlieux:\w* wthemes:\w* wregion:\w* wdepartement:\w* wcommune:\w* pleintexte:\w* wtitre:\w*/ //juste ?
		//TODO : rajouter les " = " !!!
		/*var test = chaine.match(regexp);
		if(test==null){
			alert("test 2 null");
		}
		else{
			alert("test = "+test);
		}
			
	}*/
	
	//On "sauvegarde" les données qui sont entre || pour ne pas y insérer des OU :
	
	var temp;
	var temp2 ;
	
	var taille = requete.split('|').length;
	
	while(i!=taille){
		//on mets la chaine entre || dans temp
		temp = chaine.substring(chaine.indexOf('|')+1,chaine.length);
		temp = temp.substring(0,temp.indexOf('|'));
		//On remplace les espaces de temp par ';'
		temp2 = temp;
		while(temp.indexOf(' ')!=-1){
			temp=temp.replace(' ',';');
		}
		chaine=chaine.replace(temp2,temp);
		chaine=chaine.replace('|','/');
		chaine=chaine.replace('|','/');
		
		i=i+2;
	}
	
	//On récupère dans tab la requête découpée par les espaces
	tab = chaine.split(' ');
	
	//On "traduit" les éléments de la requête :
	i=0;
	while(i!=tab.length){
		//initialisation
		tab1[i]=tab[i];
		//Modifications : 
		if(tab1[i].indexOf("-")==0 || tab1[i].indexOf("+")==0){
			tab1[i]=tab1[i].replace('+', 'ET ');
			if(tab1[i].indexOf("-")==0){
				tab1[i]=tab1[i].replace('-', 'SAUF ');
			}
		} 
		else {
			if(tab1[i]!=""){
				if(tab1[i]!="OR" && pleintexte.value==""){
					tab1[i] = "OU "+tab[i];
				}
			}
		}
		while(tab1[i].indexOf('/')!=-1){
			tab1[i]=tab1[i].replace('/', ' ');
		}
		//tab1[i]=tab1[i].replace('|', ' ');
		tab1[i]=tab1[i].replace('OR', ' ');//tab1[i]=tab1[i].replace('OR', 'OU');
		tab1[i]=tab1[i].replace('+', ' ET ');
		
		//On nettoie sur les champ de recherche :
		tab1[i]=tab1[i].replace('wtitre', 'Mot(s) du titre ou de la legende ');
		tab1[i]=tab1[i].replace('wbrtitre', 'Mot(s) du titre ou de la legende ');
		tab1[i]=tab1[i].replace('wlegende', 'Mot(s) du titre ou de la legende ');
		tab1[i]=tab1[i].replace('brpleintexte', 'Mot(s) du texte ');
		tab1[i]=tab1[i].replace('pleintexte', 'Mot(s) du texte ');
		tab1[i]=tab1[i].replace('fauteur', 'Nom de personne ');
		tab1[i]=tab1[i].replace('fiauteur', 'Nom de personne ');
		tab1[i]=tab1[i].replace('fbrauteur', 'Nom de personne ');
		tab1[i]=tab1[i].replace('fregion', 'Region ');
		tab1[i]=tab1[i].replace('fbrregion', 'Region ');
		tab1[i]=tab1[i].replace('firegion', 'Region ');
		tab1[i]=tab1[i].replace('fdepartement', 'Departement ');
		tab1[i]=tab1[i].replace('fidepartement', 'Departement ');
		tab1[i]=tab1[i].replace('fbrdepartement', 'Departement ');
		tab1[i]=tab1[i].replace('fcommune', 'Commune ');
		tab1[i]=tab1[i].replace('ficommune', 'Commune ');
		tab1[i]=tab1[i].replace('fbrcommune', 'Commune ');
		tab1[i]=tab1[i].replace('fpeuples', 'Thesaurus Peuples ');
		tab1[i]=tab1[i].replace('fanthroponyme', 'Thesaurus Anthroponymes ');
		tab1[i]=tab1[i].replace('fchronologie', 'Thesaurus Chronologies ');
		tab1[i]=tab1[i].replace('flieux', 'Thesaurus Lieux ');
		tab1[i]=tab1[i].replace('fthemes', 'Thesaurus Sujets ');
		tab1[i]=tab1[i].replace('brdates_operations', "Date de l'operrration archeologique ");
		tab1[i]=tab1[i].replace('dates_operations', "Date de l'operrration archeologique ");
		tab1[i]=tab1[i].replace('broperation', "Nature de l'operrration archeologique ");
		tab1[i]=tab1[i].replace('operation', "Nature de l'operrration archeologique ");
		tab1[i]=tab1[i].replace('operrration', "operation"); //Sinon probleme de double remplacement
		tab1[i]=tab1[i].replace('brcadre', "Cadre d'etude ");
		tab1[i]=tab1[i].replace('cadre', "Cadre d'etude ");
		tab1[i]=tab1[i].replace('fbrchronologie', 'Thesaurus Chronologies ');
		tab1[i]=tab1[i].replace('fisujets', 'Thesaurus Sujets ');
		tab1[i]=tab1[i].replace('figureId', 'Identifiant ');
		tab1[i]=tab1[i].replace('breveId', 'Identifiant ');
		tab1[i]=tab1[i].replace('noticeId', 'Identifiant ');
		tab1[i]=tab1[i].replace('type', "Type d'illustration ");
		
		//On traite le cas particulier de "Tous les champs":
		tab1[i]=tab1[i].replace('wtousleschamps', "Tous les champs ");
		
		tab1[i]=tab1[i].replace(':', " = ");
		while(tab1[i].indexOf(';')!=-1){
			tab1[i]=tab1[i].replace(';', ' ');
		}
		i++;
	}
	
	//On supprime les doublons si on fait la recherche sur plusieurs type de document (pour ne pas avoir "OU Region = Haute-Normandie OU Region = Haute-Normandie")
	i=0;	
	var tab2 = new Array();
	
	while(i!=tab1.length){
		var j=i;
		tab2[i]=tab1[i];
		while(j!=tab1.length){			
			if(i!=j){
				if(tab1[i]==tab1[j]){
					tab2[i]="";
				}
			}else {
				tab2[i]=tab1[i];
			}			
			j++;
		}
		i++;
	}
	
	//On rassemble la requête en une seule phrase :
	var req ="";
	i=0;
	
	while(i!=tab2.length){
		req = req+tab2[i]+" ";
		i++;
	}
	
	req=req.replace('AND OU', "ET");
	
	//Dans le cas d'une recherche sur tous les champs, on enlève toutes les parenthèses :
	if(pleintexte.value!=""){
		while(req.indexOf('(')!=-1){
			req=req.replace('(', '');
		}
		while(req.indexOf(')')!=-1){
			req=req.replace(')', '');
		}
	}
	
	//On met les éléments sur la page :
	nb = document.getElementById('divres');
	nb.appendChild(document.createTextNode(req));
	}
}

Event.observe(window, 'load', Essai);
