﻿/*
      Ajax Research Engine (ARE) Version 1.0 BÊTA par JDMCreator

Dernière Mise à jour le 29 mai 2009
  
*/
var historique='';
function SetCookie (name, value) {
	var argv=SetCookie.arguments;
	var argc=SetCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(value)+
		((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
		((path==null) ? "" : ("; path="+path))+
		((domain==null) ? "" : ("; domain="+domain))+
		((secure==true) ? "; secure" : "");
}
function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)
      		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg)
                        return getCookieVal (j);
                i=document.cookie.indexOf(" ",i)+1;
                        if (i==0) break;}
	return null;
}

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 prpstart(){

if(GetCookie("getHisto")!=null){
historique = GetCookie("getHisto");addHisto();
}

start();

}

function start(){

if(nbp!=psearch.length)
{
document.getElementById('status').innerHTML='... Veuillez Patienter... '+eval(nbp+1)+'/'+psearch.length;envoieRequete(psearch[nbp]);
}
else
{
document.getElementById('status').innerHTML='Votre recherche';
}
}

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:yellow;'>"+assureText(ny2)+"</b>";
if(ny.length-ny.indexOf(ny2)>51){
toreturnextrait=toreturnextrait+""+assureText(ny.substring(ny.indexOf(ny2)+ny2.length,ny.indexOf(ny2)+50))+" <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='_parent' name='nbresult'>"+title[i]+"</a><br>"+getExtrait(result[i],tsearch[j])+"<br><span style='color:green;font-size:small'>"+psearch[i]+"</span><hr>";
canweadd=false;
}

}
}
document.getElementById('status').innerHTML="Recherche Terminée. "+document.getElementsByName('nbresult').length+" résultat(s)";
document.title=titlepage+" - "+document.getElementById('ksearch').value.toLowerCase()+" : "+document.getElementsByName('nbresult').length+" résultat(s)";historique=historique+"\n"+document.getElementById('ksearch').value;addHisto();
}
function addHisto(){
reg=new RegExp("[\n]+", "g");
histo=historique.split(reg);

histo.reverse();

historique2='';

testHisto = document.createElement("div");
for (var i=0; i<histo.length; i++) {
if(testHisto.innerText!=undefined)
{testHisto.innerText=histo[i];}
else
{testHisto.textContent=histo[i];}
historique2=historique2+"<div onclick=\"document.getElementById('ksearch').value=getTxt(this);document.getElementById('bsearch').click();\" style='cursor:pointer' title='Rechercher « "+testHisto.innerHTML+" »'>"+testHisto.innerHTML+"</div>";

}

document.getElementById('histo').innerHTML=historique2;
}


function createHisto(){

	var pathname=location.pathname;
	var myDomain=pathname.substring(0,pathname.lastIndexOf('/')) +'/';
	var date_exp = new Date();
	date_exp.setTime(date_exp.getTime()+(24*3600*1000));

SetCookie("getHisto",historique,date_exp,myDomain);

}

function delHisto(){

historique='';
document.getElementById('histo').innerHTML='';

}
