/*********************************************************************
*	 Librairie Ajax simple:
*	 Version : 1.0
*	 Utilisation : 	
*	 var ajax = new Ajax();
*	 ajax.initialiser();
*	 ajax.get("NOM DU SCRIPT PHP", "ID DE LA DIV","LES PARAME GET (sans ?)");
**********************************************************************/
var _url_image_loading = "http://www.agencestourcom.com/images.php?fichier=ajax-loader.gif";
var _pointeur_ajax;

function Ajax()
{
	this.xmlHttpRequest = null;
	this.requetesMultiples = null;
	
	this.initialiser =  function()
	{
		if(window.XMLHttpRequest) // Firefox et autres
		{
			this.xmlHttpRequest = new XMLHttpRequest();
		}
		else if(window.ActiveXObject) // Internet Explorer
		{
    		try 
    		{
      			this.xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
      			try 
      			{
        			this.xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      			} 
      			catch (e1) 
      			{
        			this.xmlHttpRequest = null;
      			}
    		}
		}
	}
	this.open = function (method, url)
	{
		if(this.xmlHttpRequest != null)
		{
			this.xmlHttpRequest.open(method, url, true);
		}
	}
	this.send = function(valeur)
	{
		if(this.xmlHttpRequest != null)
		{
			this.xmlHttpRequest.send(valeur);
		}
	}
	this.get = function(url, id, param, evaluerJS)
	{
		if (document.getElementById(id))
		{
			document.getElementById(id).innerHTML = "<img src='"+_url_image_loading+"' />";
		}				
		if (this.xmlHttpRequest!= null)
		{
			_pointeur_ajax = this.xmlHttpRequest;
			this.xmlHttpRequest.onreadystatechange = function ()
			{
				if (_pointeur_ajax.readyState == 4 && _pointeur_ajax.status == 200)
				{
					if (document.getElementById(id))
					{
						var noeud = document.getElementById(id);
						noeud.innerHTML = _pointeur_ajax.responseText;
						if(evaluerJS == true)
						{
							evaluer(noeud);
						}
					}
				}
			};
			
			if(param!=null)
			{
				url+="?"+param;
			}
			
			this.open("GET", url);
			this.send(null);
		}
		
	}
	this.post = function(url, id, param, evaluerJS)
	{
		this.initialiser();
		if (document.getElementById(id))
		{
			document.getElementById(id).innerHTML = "<img src='"+_url_image_loading+"' />";
		}				
		if (this.xmlHttpRequest!= null)
		{
			_pointeur_ajax = this.xmlHttpRequest;
			_pointeur_ajax.onreadystatechange = function ()
			{
				if (_pointeur_ajax.readyState == 4 && _pointeur_ajax.status == 200)
				{
					if (document.getElementById(id))
					{
						var noeud = document.getElementById(id);
						noeud.innerHTML = _pointeur_ajax.responseText;
						if(evaluerJS == true)
						{
							evaluer(noeud);
						}
					}
				}
			};

			this.open("POST", url);
			this.xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
			this.send(param);
		}
		
	}
	this.escape = function(chaine)
	{
		if(encodeURIComponent) 
		{
    		return encodeURIComponent(chaine);
  		}
  		if(escape) 
  		{
    		return escape(chaine)
  		}
	}
	this.getMultiples = function(requetes)
	{
		this.initialiser();
		if (this.xmlHttpRequest!= null && typeof(requetes[0]) != "undefined")
		{
			this.xmlHttpRequest.parent = this;
			this.requetesMultiples = requetes;
			var url = requetes[0][0];
			var id = requetes[0][1];
			var param = requetes[0][2];
			var evaluerJS = requetes[0][3];
			if (document.getElementById(id))
			{
				document.getElementById(id).innerHTML = "<img src='"+_url_image_loading+"' />";
			}	
			
			_pointeur_ajax = this.xmlHttpRequest;
			this.xmlHttpRequest.onreadystatechange = this.reponseGetMultiples;
				
			
			if(param!=null)
			{
				url+="?"+param;
			}

			this.open("GET", url);
			this.send(null);
		}
		return false;
	}
	this.reponseGetMultiples = function()
	{
		if (_pointeur_ajax.readyState == 4 && _pointeur_ajax.status == 200)
		{
			var requetes = this.parent.requetesMultiples;
			if(typeof(requetes[0]) != "undefined")
			{
				var url = requetes[0][0];
				var id = requetes[0][1];
				var param = requetes[0][2];
				var evaluerJS = requetes[0][3];
				requetes.shift();
				if (document.getElementById(id))
				{
					document.getElementById(id).innerHTML = "<img src='"+_url_image_loading+"' />";
				}	
			
				if (document.getElementById(id))
				{
					var noeud = document.getElementById(id);
					noeud.innerHTML = _pointeur_ajax.responseText;
					if(evaluerJS == true)
					{
						evaluer(noeud);
					}
				}
				if(typeof(requetes[0]) != "undefined")
					this.parent.getMultiples(requetes);
			}
			
		}
	}
	this.postMultiples = function(requetes)
	{
		this.initialiser();
		if (this.xmlHttpRequest!= null && typeof(requetes[0]) != "undefined")
		{
			this.xmlHttpRequest.parent = this;
			this.requetesMultiples = requetes;
			var url = requetes[0][0];
			var id = requetes[0][1];
			var param = requetes[0][2];
			var evaluerJS = requetes[0][3];
			if (document.getElementById(id))
			{
				document.getElementById(id).innerHTML = "<img src='"+_url_image_loading+"' />";
			}
			
			_pointeur_ajax = this.xmlHttpRequest;
			this.xmlHttpRequest.onreadystatechange = this.reponsePostMultiples;
		
			this.open("POST", url);
			this.xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
			this.send(param);
		}
	}
	this.reponsePostMultiples = function()
	{
		if (_pointeur_ajax.readyState == 4 && _pointeur_ajax.status == 200)
		{
			var requetes = this.parent.requetesMultiples;
			if(typeof(requetes[0]) != "undefined")
			{
				var url = requetes[0][0];
				var id = requetes[0][1];
				var param = requetes[0][2];
				var evaluerJS = requetes[0][3];
				requetes.shift();
				if (document.getElementById(id))
				{
					document.getElementById(id).innerHTML = "<img src='"+_url_image_loading+"' />";
				}	
			
				if (document.getElementById(id))
				{
					var noeud = document.getElementById(id);
					noeud.innerHTML = _pointeur_ajax.responseText;
					if(evaluerJS == true)
					{
						evaluer(noeud);
					}
				}
				if(typeof(requetes[0]) != "undefined")
					this.parent.postMultiples(requetes);
			}
			
		}
	}
}


// fonction qui permet d'evaluer le code js
function evaluer(node) {
	var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
	var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
	var bMoz = (navigator.appName == 'Netscape');
  	var st = node.getElementsByTagName('SCRIPT');
  	var strExec;
  	for(var i=0;i<st.length; i++) {     
    if (bSaf) {
      strExec = st[i].innerHTML;
    }
    else if (bOpera) {
      strExec = st[i].text;
    }
    else if (bMoz) {
      strExec = st[i].textContent;
    }
    else {
      strExec = st[i].text;
    }
    try {
      eval(strExec);
    } catch(e) {
      //alert("Erreur : "+e);
    }
  }
}
