/*
	v2.03 : 111119 ph 
				• patch to fix the "+" issue :
											vars2send = vars2send.replace("+", "|#plus#|" );
*/
// v2.02 = ie8 create a problem because xhr.responseText can be null.
// So we add "xhr.responseText != null &&  " line 42.
var xhr = null;

// Fonction de creation de l'objet XMLHttpRequest qui resservira pour chaques fonctions AJAX

function getXhr() {
 if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject) { 
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
		}
 } else { 
	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour"); 
	xhr = false; 
	} 
}


//Deuxieme fonction : Vérifier que le numéro de série a le bon format
// Affichage dans un span en ayant recupéré une valeur
// vars2send = format : "var1=yope$var2=test"
function ajax_send_form(divId, path_file, vars2send, endFunction) {
	
	if (arguments.length == 2 || endFunction=="") var endFunction=undefined;
	
	getXhr(); 
	xhr.onreadystatechange = function() {
		if(xhr.readyState == 4 && xhr.status == 200) {
			 
			//-------------------------
			// AJAX bloque les balises <script> dans ses réponses.
			// Donc, pour lancer une function à la fin du process (appel de function écrite dans le php, pas ici),
			// on vérifie si le motif de functionAtEnd (|#f#|) existe dans la réponse et on splite le résultat.
			// Donc, dans le php qui crée et envoie la réponse, il faut mettre le nom de la function entre 2 paterns |#f#|.
			// On peut transmettre un argument en mettant un 2eme patern et l'argument après.
			
			// on vérifie si le motif de functionAtEnd (|#f#|) existe dans la réponse
			var reg1=new RegExp("[|#f#|]","g");
			if (xhr.responseText != null && xhr.responseText.match(reg1)) {
				// si oui, on splite et on lance la function
				var a_func=new Array();
				var a_func=xhr.responseText.split('|#f#|');
				if (a_func.length>1){ // if to avoid error of undefined problem
					if (a_func.length==2){
						eval(a_func[1])();
					}
					if (a_func.length==3){
						eval(a_func[1])(a_func[2]);
					}
					if (a_func.length==4){
						eval(a_func[1])(a_func[2],a_func[3]);
					}
					if (a_func.length==5){
						eval(a_func[1])(a_func[2],a_func[3],a_func[4]);
					}
				}
				document.getElementById(divId).innerHTML = a_func[0];
			}else{
				document.getElementById(divId).innerHTML = xhr.responseText;
			}
	
	//-------------------------
	
			document.getElementById(divId).innerHTML = xhr.responseText; 
			
			// on lance la function de sortie si besoin
			
			if (endFunction!=undefined)  eval (endFunction);
		
		}
	}
	 // On envoie la requete
	xhr.open("POST",path_file,true); 
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	// 111119 correction of the ajax "+" issue
	vars2send = vars2send.replace(/\+/g, "|#plus#|" );
	
	xhr.send(vars2send); 
}
