// JavaScript Document

// Pile des commandes sendData à exécuter
var sendDataPile = new Array();

/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(data, page, method, conteneur)
{
	if(document.all && !window.opera)    
	{
        //Internet Explorer
        var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    }//fin if
    else
    {
        //Mozilla
        var XhrObj = new XMLHttpRequest();
    }//fin else
    
    //définition de l'endroit d'affichage:
    var content = document.getElementById(conteneur);
    
    //si on envoie par la méthode GET:
    if(method == "GET")
    {
        if(data == 'null')
        {
            //Ouverture du fichier sélectionné:
            XhrObj.open("GET", page + "?ms=" + new Date().getTime());
        }//fin if
        else
        {
            //Ouverture du fichier en methode GET
            XhrObj.open("GET", page + "?" + data + "&ms=" + new Date().getTime());
        }//fin else
    }//fin if
    else if(method == "POST")
    {
        if(data == 'null')
        {
            //Ouverture du fichier sélectionné:
            XhrObj.open("POST", page + "?ms=" + new Date().getTime());
        }//fin if
        else
        {
            //Ouverture du fichier en methode POST
            XhrObj.open("POST", page + "?" + data + "&ms=" + new Date().getTime());
        }//fin else
    }//fin elseif

    //Ok pour la page cible
    XhrObj.onreadystatechange = function()
    {
        if (XhrObj.readyState == 4 && XhrObj.status == 200) {
        	
        	// Récupération des blocList
        	var regle = /(blocList.push\()(\d+)/g;
        	resultat = XhrObj.responseText.match(regle);
        	if(resultat) {
        		for(i=0 ; i< resultat.length ; i++) {
        			blocList.push(resultat[i].replace('blocList.push(',''));
        		}
        	}
        	
        	// Remplacement du contenu
        	content.innerHTML = XhrObj.responseText;
        	
        	// On dépile le tableau des sendData pour voir s'il y en a encore à exécuter
        	if (sendDataPile.length) {
        		var sendSuivant = sendDataPile.shift();
        		sendData(sendSuivant[0],sendSuivant[1],sendSuivant[2],sendSuivant[3]);
        	}
		}
    }    

    if(method == "GET")
    {
        XhrObj.send(null);
    }//fin if
    else if(method == "POST")
    {
        XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XhrObj.send(data);
    }//fin elseif
}//fin fonction SendData


/**
* Permet de récupérer les données d'un fichier via les XmlHttpRequest:
*/
function getFile(page)
{
    sendData('null', page, 'GET')
}//fin fonction getFile   


// Fonction permettant de soumettre un formulaire avec un appel de page en ajax
function ajaxSubmitForm(myform, page, method, conteneur) {
	
	var maChaine = "";
	
	// On parcourt le formulaire
	for(i=0 ; i<document.forms[myform].length ; i++) {
		maChaine = maChaine + "&" + document.forms[myform].elements[i].name + "=" + document.forms[myform].elements[i].value;
	}
	sendData('ajax=1' + maChaine, page, method, conteneur);
}
