
/**
* Permet d'envoyer des donn�es en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(data, page, method,jsessionid,divname,functionCall,numroom)
{
    if(document.all)
    {
        //Internet Explorer
        XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    }//fin if
    else
    {
        //Mozilla
        XhrObj = new XMLHttpRequest();
    }//fin else
    
    //si on envoie par la m�thode GET:
    if(method == "GET")
    {
        if(data == 'null')
        {
            //Ouverture du fichier s�lectionn�:
            XhrObj.open("GET", page);

        }//fin if
        else
        {
            //Ouverture du fichier en methode GET
	    if(page.indexOf('?')>-1)
	            XhrObj.open("GET", page+"&"+data);
	    else
		    XhrObj.open("GET", page+"?"+data);
        }//fin else
    }//fin if
    else if(method == "POST")
    {
	//Ouverture du fichier en methode POST
        XhrObj.open("POST", page);
    }//fin elseif

    if (jsessionid)
    {
	XhrObj.setRequestHeader('Set-Cookie', 'JSESSIONID='+jsessionid);
    }

    //Ok pour la page cible
    self.XhrObj.onreadystatechange = function()
    {
        // if (self.XhrObj.readyState == 4 && self.XhrObj.status == 200)
        if (self.XhrObj.readyState == 4)
        {
		    response = self.XhrObj.responseText;
		    var idx = response.indexOf("<SCRIPT",0);
		    while (idx > -1){
		    	iBegin = response.indexOf("<SCRIPT", idx);
				iEnd = response.indexOf("</SCRIPT>", idx);
				eval(response.substring(response.indexOf(">",iBegin+5)+1, iEnd));
				idx = response.indexOf("<SCRIPT", iBegin+5);
		    }
//		    if (response.indexOf("<SCRIPT",0) > -1)
//		    {
//				iBegin = response.indexOf("<SCRIPT");
//				iEnd = response.indexOf("</SCRIPT>");
//				eval(response.substring(response.indexOf(">",iBegin+5)+1,iEnd));
//		    }

		    if (divname)
		    	var divnameobj = document.getElementById(divname);
		    else
		        var divnameobj = document.getElementById("contenu");
		    
		    divnameobj.innerHTML=response;
		    if(functionCall && functionCall!="")
		    {		   
		    	eval(functionCall);
		    }
        }
    }    

    if(method == "GET")
    {
        self.XhrObj.send(null);
    }//fin if
    else if(method == "POST")
    {
    	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
    	XhrObj.overrideMimeType('text/html; charset=ISO-8859-1');
    	XhrObj.send(data);
    }//fin elseif
}//fin fonction SendData 

function getAllDataForm(formName) {
	datas = "";
	nbField = eval('document.'+formName+'.length');
	for (index = 0; index < nbField; index++) {
		field = eval('document.'+formName+'.elements['+index+']');
		var nameField = new String(field.name);           
		var valueField = escape(field.value);
		
		if (index > 0) datas += "&";
		datas += nameField+"="+valueField;
	}
	return datas;
}


function submitFormInternalByAjax(formName) {
	datas = getAllDataForm(formName);
	sendData(datas, eval("document."+formName+".action"), "POST");
}

function submitFormInternalByAjax(formName,jsessionid,divname,functionCall) {
	datas = getAllDataForm(formName);
	sendData(datas, eval("document."+formName+".action"), "GET",jsessionid,divname,functionCall);
}

function submitFormByAjax(formName) {
	submitFormInternalByAjax(formName);
	closeMessage();
}

function makeRequest(url) {

        var httpRequest = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
                // Voir la note ci-dessous � propos de cette ligne
            }
        } else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!httpRequest) {
            alert('Abandon :( Impossible de cr�er une instance XMLHTTP');
            return false;
        }
	if (typeof(alertContents) == 'function')
	  {
	    httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
	  }
        httpRequest.open('GET', url, true);
        httpRequest.send(null);

    }
    
    
function xmlhttpPost(strURL,formname,responsediv,responsemsg,jsessionid) {
    var xmlHttpReq = false;
    var self = this;
    // Xhr per Mozilla/Safari/Ie7
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // per tutte le altre versioni di IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    if (jsessionid)
    {
	self.xmlHttpReq.setRequestHeader('Cookie', 'JSESSIONID='+jsessionid);
    }
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
    
    self.xmlHttpReq.onreadystatechange = function() {
		  if (self.xmlHttpReq.readyState == 4) {
				// Quando pronta, visualizzo la risposta del form
		          updatepage(self.xmlHttpReq.responseText,responsediv);
		      }
			else
			{
				// In attesa della risposta del form visualizzo il msg di attesa
				updatepage(responsemsg,responsediv);

			}
    }
    queryString = getquerystring(formname);
    self.xmlHttpReq.send(queryString);
}

function getquerystring(formname) {
    var form = document.forms[formname];
	var qstr = "";

    function GetElemValue(name, value) {
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
//            + escape(value ? value : "").replace(/\+/g, "%2B");
            + (value ? value : "").replace(/\+/g, "%2B").replace(/&/g, "%26");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
        var elemType = element.type.toUpperCase();
        var elemName = element.name;
        if (elemName) {
            if (elemType == "TEXT"
                    || elemType == "TEXTAREA"
                    || elemType == "PASSWORD"
					|| elemType == "BUTTON"
					|| elemType == "RESET"
					|| elemType == "SUBMIT"
					|| elemType == "FILE"
					|| elemType == "IMAGE"
                    || elemType == "HIDDEN")
                GetElemValue(elemName, element.value);
            else if (elemType == "CHECKBOX" && element.checked)
                GetElemValue(elemName, 
                    element.value ? element.value : "On");
            else if (elemType == "RADIO" && element.checked)
                GetElemValue(elemName, element.value);
            else if (elemType.indexOf("SELECT") != -1)
                for (var j = 0; j < element.options.length; j++) {
                    var option = element.options[j];
                    if (option.selected)
                        GetElemValue(elemName,
                            option.value ? option.value : option.text);
                }
        }
    }
    return qstr;
}




