/*
AJAX =Asynchronous Javascript And Xml
Return un object Ajax XMLHttpRequest()
*/
function getXMLHttpRequest() {
	var xhr = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xhr = new XMLHttpRequest();
		if (xhr.overrideMimeType) {
			xhr.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}

	if (!xhr) {
		// Impossible de créer une instance XMLHTTP'
		return false;
	} else {
		return xhr;
	}
}

/*
Netoie les nodes DOM XML suivant les navigateurs les tab ne sont pas cod� pareil
*/
function nodeCleaner(n) {
	if(!n.data.replace(/\s/g,'')) n.parentNode.removeChild(n);
}

/*
Parcour le DOM XML en entier pour netoyer les nodes
*/
function cleanXML(docElement) {
	var node = docElement.getElementsByTagName('*');
	for(i = 0; i < node.length; i++) {
		a = node[i].previousSibling;
		if(a && a.nodeType == 3) nodeCleaner(a);
		b = node[i].nextSibling;
		if(b && b.nodeType == 3) nodeCleaner(b);
	}
	return docElement;
}
