/**
*
* Gestion des appels asynchrone au serveur d'application.
* Utilisation de la technique Ajax.
*
* @version  : $Revision:   1.2  $
* @author   : SOPRA Group - $Author:   nChampanhac  $
*
*/


functionName=null;function AjaxConnection()
{this.setOptions=setOptions;this.setFunct=setFunct;this.getOptions=getOptions;this.connect=connect;this.ajaxCallback=ajaxCallback;this.setUri=setUri;this.setMethod=setMethod;this.HTTPMethod="POST";this.options=new Array("");}
function setFunct(f)
{functionName=f;}
function setMethod(m)
{this.method=m;}
function setUri(u)
{this.uri=u;}
function setOptions(opt)
{for(i=0;i<opt.length;i++)
{this.options+="&"+opt[i];}}
function getOptions()
{return this.options;}
function connect(){with(this)
{init_object();if(typeof uri=="undefined"){alert("AjaxConnection.connect : l'objet URI ne peux pas être nul");return;}
httpRequest.open(HTTPMethod,uri,true);httpRequest.onreadystatechange=ajaxCallback;httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');if(options!=""){httpRequest.send(options);}else{httpRequest.send(null);}}}
function ajaxCallback(){error=false;with(this)
{if((httpRequest.readyState==4)&&(functionName!=null)){if(httpRequest.status==200){chaine_exec=functionName+"('";xmldoc=httpRequest.responseXML;if(xmldoc!=null){noeuds=xmldoc.getElementsByTagName('root');for(i=0;i<noeuds.length;i++){if(error!=true){for(j=0;j<noeuds[i].childNodes.length;j++){if(noeuds[i].childNodes[j].nodeType!=1)
continue;if(noeuds[i].childNodes[j].nodeName=='error'){alert("Une erreur s'est produite : "+noeuds[i].childNodes[j].firstChild.nodeValue);error=true;break;}else{chaine_exec=chaine_exec+noeuds[i].childNodes[j].firstChild.nodeValue+"','";}}}else{break;}}
if(error!=true){chaine_exec=chaine_exec.substr(0,chaine_exec.length-2)+')';eval(chaine_exec);}}else{alert("Une erreur s'est produite lors de l'accès aux données XML");}}else{alert("Une erreur s'est produite lors de la réponse du serveur");}}}}
function init_object(){this.httpRequest=null;try{this.httpRequest=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{this.httpRequest=new ActiveXObject("Microsoft.XMLHTTP");}catch(oc){this.httpRequest=null;}}
if((!this.httpRequest)&&(typeof XMLHttpRequest!="undefined"))
this.httpRequest=new XMLHttpRequest();}
