/* creation d'un objet XMLHttpRequest */
function createXMLHttp(){
// xmlHttp will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // try to instantiate the native XMLHttpRequest object
  try
  {
    // create an XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
    }
    catch(e) { }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}
/* Determiner la position absolue d'un element */
function findPos(obj) {
	var curleft = curtop = 0;
	document.getElementById('title').innerHTML='';
	if (obj.offsetParent) {
	do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
	} while (obj = obj.offsetParent);
	return [curleft,curtop];
}}

/* Modifier la class getimg en img pour afficher les images de fond */
function getImg(){
	var listdiv=document.getElementsByTagName("div");
	var imax=listdiv.length;
	for(i=0;i<imax;i++){
		if (listdiv[i].className==="getimg"){
			listdiv[i].setAttribute("className","img");
			listdiv[i].setAttribute("class","img");
		}
	}
	};

/* suppression des espaces en debut et fin de ligne */	
function trim(aString) {
	var regExpBeginning = /^\s+/;
	var regExpEnd       = /\s+$/; 
    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}

/* met en gras les sous chaine substr de text  - ne tient compte ni le la casse ni de l'accentuation */
function miseEnGras(text,substr){
 	//alert(text);
	/* on determiner la position des balises <b> */
	var textO=text.replace(/<\/b>/g,"");
	var bOuvrant=textO.split("<b>");
	
	var l=0;
	var Nb=bOuvrant.length-1;
//	alert(Nb);
	var posbO = new Array();
	for(var i=0;i<Nb;i++) {
		l+=bOuvrant[i].length;
		posbO[i]=l;
	}
	
	/* on determiner la position des balises </b> */
	var textF=text.replace(/<b>/g,"");
	var bFermant=textF.split("</b>");
	l=0;
	var posbF = new Array();
	//alert(text+"; Nb="+Nb+"; Nb="+(bFermant.length-1));
	
	for(var i=0;i<Nb;i++) {
		l+=bFermant[i].length;
		posbF[i]=l;
	}
	
	
	/* on enleve les balises b (on les reinserera a la fin) */
	text=text.replace(/<[\/]*b>/g,"");
	
	//alert("ouvrant:"+text+"\n"+posbO+"\n"+bOuvrant);
	//alert("fremant:"+text+"\n"+posbF+"\n"+bFermant);
	
	var kO=Nb;
	var kF=Nb;
	var pO;
	var pF;

	while ((kO>0)||(kF>0))
	{
		if(kO==0) {
			pO=-1;
		} else {
			pO=posbO[kO-1];
		};
		if(kF==0) {
			pF=-1;
		} else {
			pF=posbF[kF-1];
		};
		//alert("po="+pO+"; pF="+pF);
		if(pO>pF) {
			text=text.substring(0,pO)+"<b>"+text.substring(pO); kO--;
			//alert("insertion O:"+pO+"\n"+text);
		}
		else {
			text=text.substring(0,pF)+"</b>"+text.substring(pF); kF--;
			//alert("insertion F:"+pF+"\n"+text);
		};
	} 
	//alert("pas de changement ?=\n"+text);
	text=text.replace(/<[\/]*b>/g,"");
	//alert("vierge="+text);
	
	
	if (substr!=""){
	var TEXT=text.toUpperCase();
	TEXT =TEXT.replace(/[ÊËÈÉ]/g,"E");
	TEXT =TEXT.replace(/[ÂÄÀÁ]/g,"A");
	TEXT =TEXT.replace(/[ÔÔÒÓ]/g,"O");
	TEXT =TEXT.replace(/[ÜÛÙÚ]/g,"U");
	
	var SUBSTR=substr.toUpperCase();
	SUBSTR =SUBSTR.replace(/[ÊËÈÉ]/g,"E");
	SUBSTR =SUBSTR.replace(/[ÂÄÀÁ]/g,"A");
	SUBSTR =SUBSTR.replace(/[ÔÔÒÓ]/g,"O");
	SUBSTR =SUBSTR.replace(/[ÜÛÙÚ]/g,"U");
	
	
	//alert("before\n"+text+"\n"+posbO);
	//alert("before\n"+text+"\n"+posbF);
	
	var l0;
	while ((l0=TEXT.lastIndexOf(SUBSTR))!=-1){
		var l1=l0+substr.length;
		text=text.substring(0,l0)+"<b>"+text.substring(l0,l1)+"</b>"+text.substring(l1);
		for(var k=0;k<Nb;k++) {
			if (posbO[k]>l0) posbO[k]+=3;
			if (posbF[k]>l0) posbF[k]+=3;
			if (posbO[k]-3>l1) posbO[k]+=4;
			if (posbF[k]-3>l1) posbF[k]+=4;
			}
		TEXT=TEXT.substring(0,l0)
	}}
	//alert(text+"\n"+posbO);
	//alert(text+"\n"+posbF);
	var kO=Nb;
	var kF=Nb;
	var pO;
	var pF;
	while ((kO>0)||(kF>0))
	{
		if(kO==0) {
			pO=-1;
		} else {
			pO=posbO[kO-1];
		};
		if(kF==0) {
			pF=-1;
		} else {
			pF=posbF[kF-1];
		};
		//alert("po="+pO+"; pF="+pF);
		if(pO>pF) {
			text=text.substring(0,pO)+"<b>"+text.substring(pO); kO--;
			//alert("insertion O:"+pO+"\n"+text);
		}
		else {
			text=text.substring(0,pF)+"</b>"+text.substring(pF); kF--;
			//alert("insertion F:"+pF+"\n"+text);
		};
	} 
	//alert(text);
	return text;
}

/* test du navigateur */
function navigatorTest(name){
	var ua = navigator.userAgent.toLowerCase();
	if (ua.indexOf(name+'/') != -1){
		return true;
	}	
	else if ((ua.indexOf(name)!=-1)&&(name=="msie")) { 
		return true;}
	return false;
}

function getElementsByTagAndClassName(doc,tag,classname){
	var listinit=doc.getElementsByTagName(tag);
	var imax=listinit.length;
	var res=new Array();
	var j=0;
	for (var i=0;i<imax;i++) if (listinit[i].className===classname) {
		res[j++]=listinit[i];
	}
	return res;
}

