/*
      Ajax Research Engine (ARE) Version 1.0 BÊTA par JDMCreator

Dernière Mise à jour le 29 mai 2009
  
*/

var psearch = new Array();


var nbp = 0;

var result = new Array();

var title = new Array();

var titlepage = document.title;

function enter(e){
var touche = (window.Event) ? e.which : e.keyCode;
if(touche == 13){
document.getElementById('bsearch').click();
}
}

function start(){

if(nbp!=psearch.length)
{
document.getElementById('status').innerHTML='Indexation en cours... Veuillez Patienter... Chargement de la page '+eval(nbp+1)+'/'+psearch.length;envoieRequete(psearch[nbp]);
}
else
{
document.getElementById('status').innerHTML='Fin de l\'indexation. Vous pouvez commencer vos recherches';
}
}

function getTitle(tn){

var reg=new RegExp("<[/]*title>", "g");
var tableau=tn.split(reg);

if(tableau[1]==undefined)
{
return "Document Sans Nom"
}
else if(tableau[1].length>50)
{
return "<span title='"+tableau[1]+"'>"+tableau[1].substring(0,49)+"...</span>";
}
else
{
return tableau[1];
}
}

function envoieRequete(url)
{
var getText= document.createElement("div");
	var xhr_object = null;
	   if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
	  else
	    if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 

	// On ouvre la requete vers la page désirée
	xhr_object.open("GET", url, true);
	xhr_object.onreadystatechange = function(){
	if ( xhr_object.readyState == 4 )
	{
getText.innerHTML=xhr_object.responseText;result[result.length]=getTxt(getText);title[title.length]=getTitle(xhr_object.responseText);nbp++;start();


	}
	}
	// dans le cas du get
	xhr_object.send(null);
}

function getTxt(ny){
if(ny.innerText==undefined)
{return ny.textContent.toLowerCase();}
else
{return ny.innerText.toLowerCase()}

}

function getExtrait(ny,ny2){
var toreturnextrait='';

if(ny.indexOf(ny2)<51){
toreturnextrait=assureText(ny.substring(0,ny.indexOf(ny2)));
}
else
{toreturnextrait="<i>[...] </i>"+assureText(ny.substring(ny.indexOf(ny2)-50,ny.indexOf(ny2)));}
toreturnextrait=toreturnextrait+"<b style='background-color:#003300;'>"+assureText(ny2)+"</b>";
if(ny.length-ny.indexOf(ny2)>51){
toreturnextrait=toreturnextrait+""+assureText(ny.substring(ny.indexOf(ny2)+ny2.length,ny.indexOf(ny2)+100))+" <i>[...]</i>";
}
else
{toreturnextrait=toreturnextrait+""+assureText(ny.substring(ny.indexOf(ny2)+ny2.length,ny2.length-1))+" <i>[...]</i>";}
return toreturnextrait;
}
function assureText(ty){
var reg=new RegExp("\n", "g");
ty=ty.replace(reg,"");
var assure=document.createElement("div");
if(assure.innerText!=undefined)
{assure.innerText=ty;}
else
{assure.textContent=ty;}
return assure.innerHTML;
}

function ssearch(){
var reg=new RegExp("[ ]+", "g");
var tsearch=document.getElementById('ksearch').value.toLowerCase().split(reg);
document.getElementById('rsearch').innerHTML='';

for (var i=0; i<result.length; i++) {

canweadd=true;

for (var j=0; j<tsearch.length; j++) {

if((result[i].indexOf(tsearch[j])!=-1)&&(result[i].substring(0,7)!='sp:ERRO')&&(canweadd))
{
document.getElementById('rsearch').innerHTML=document.getElementById('rsearch').innerHTML+"<a href='"+psearch[i]+"' target='_blank' name='nbresult'>"+title[i]+"</a><br>"+getExtrait(result[i],tsearch[j])+"<br><span style='color:green;font-size:xx-small'>"+psearch[i]+"</span><hr>";
canweadd=false;
}

}
}
document.getElementById('status').innerHTML="Recherche Terminee. "+document.getElementsByName('nbresult').length+" resultat(s)";
document.title=titlepage+" - "+document.getElementById('ksearch').value.toLowerCase()+" : "+document.getElementsByName('nbresult').length+" resultat(s)";
}

