function AJAX(url, elt, js, add)
{	
	var mAjax = new ajaxClass(url ,elt, js, add);
	mAjax.execute();
}

// On passe en paramêtres l'url à apeller et l'objet qui recevra la réponse (exemple div)
function ajaxClass(url, refObj, js, add)
{
	var xhr_object = null;
	
	//Anti Cache => ajout d'un random
	url = url + "&rdmvar="+Math.floor(Math.random()*10000);

	this.mUrl = url;

	var js = js;
	var add = add;
	var type = 0;
	var mObj = document.getElementById(refObj);
	this.execute = function()
	{
		this.SendGetRequestSearch(this.url,mObj);
	}
	
	this.SendGetRequestSearch = function(URL,objectID){
		// code for Mozilla, IE7, etc.
		if (window.XMLHttpRequest){
			xhr_object = new XMLHttpRequest();			
			if (xhr_object.overrideMimeType)
			{
				xhr_object.overrideMimeType('text/html; charset=ISO-8859-1');
			}			
			type = 0;
		} else if (window.ActiveXObject){ // code for IE6
			try { 
				xhr_object = new ActiveXObject("Msxml2.XMLHTTP"); //marche avec ie6 mais pas d'image PNG :s
			} 
			catch (e) { 
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
			//xhr_object = new ActiveXObject('Msxml6.XMLHTTP');
			type = 1;
		} else {
			alert("votre nagigateur ne prend pas en compte XMLHTTPRequest");
			return;
		}
		
		xhr_object.open('GET',this.mUrl,true);
		xhr_object.setRequestHeader("Content-Type", "text/html; charset=UTF-8");
		if (mObj != "")
		{
			xhr_object.onreadystatechange = this.CallBackRequest;
			xhr_object.WaitForResponse;
		}	  
		if (type == 0)	{
			xhr_object.send(null);
		} else {
			xhr_object.send();
		}
	}
	
	this.CallBackRequest = function(){
		if (xhr_object.readyState == 4){			
			switch (mObj)
			{
				case "_close":
					self.close();
					break;
				default:	
					if (mObj != null)
					{						
						if (mObj.style != null)
						{
							var tHtml = mObj.innerHTML;
							if (add)
							{
								mObj.innerHTML += xhr_object.responseText;
							}
							else
							{
								mObj.innerHTML = xhr_object.responseText;
							}

							ParseJS(xhr_object.responseText);
							
							if (mObj.innerHTML != "")
							{
								mObj.style.display = "block";
							}	
							else
							{
								mObj.innerHTML = tHtml;
							}
						}
						if (js) eval(js);
						myAJAXJS();
					}
					break;
			}
		}
	}
}

function myAJAXJS()
{
}

function getAnchor()
{
	var url = document.location.href;
	var anchorPos = url.indexOf("#");
	var anchor = "";
	if (anchorPos>-1)
	{
		anchor = url.substr(anchorPos+1);
	}
	return anchor;
}

function isAnchor()
{
	var a = getAnchor();
	return (a.length>0);
}

//Class loadAjaxClass
function loadAjaxClass(defaultAnchor)
{
	var i = 0;
	var list = [ ];
	var defaultAnchor = defaultAnchor;
	
	this.add = function(anchor, url, div, js) {
		list[i] = new Array();
		list[i] = [anchor, url, div, js];
		i++;		
	}

	this.load = function() {
		if (window.addEventListener)
		{
			window.addEventListener("load",loadMyAJAX,false);
		}
		else if (window.attachEvent)
		{	
			window.attachEvent("onload", loadMyAJAX);
		}
	}
	
	this.doAjaxByAnchor = function() {		
		var url = document.location.href;
		var anchorPos = url.indexOf("#");
		var anchor = "";
		var bAnchor = false;
		if (anchorPos>-1)
		{
			anchor = url.substr(anchorPos+1);
		}
		
		if (anchor.length>0)
		{
			bAnchor = true;
		}

		if (!bAnchor && defaultAnchor.length>0)
		{
			anchor = defaultAnchor;
			bAnchor = true;
		}

		if (bAnchor)
		{		
			for (j=0;j<list.length;j++)
			{
				var elt = list[j];
				if (anchor == elt[0])
				{
					
					AJAX(elt[1], elt[2], elt[3], false);
					return;
				}
			}
		}
	}
}
