/** Simplification Ajax ! **/

// Plus d'informations : 
// 		Guillaume <sct.oxyweb at gmail.com>

function AjaxQuery(_query, _func, _params) {
        // Crée l'objet !
        var _XmlHttp = false;
        if(window.XMLHttpRequest) {
                try {
                        _XmlHttp = new XMLHttpRequest();
                } catch(e) {
                        _XmlHttp = false;
                }
        } else if(window.ActiveXObject) {
                try {
                        _XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch(e) {
                        try {
                                _XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch(e) {
                                _XmlHttp = false;
                        }
                }
        }

        // Si y'a pas d'Ajax possible !
        if (!_XmlHttp) {
        	return false;
        }

        // Cherche le Point d'interrogation puis ajoute la valeur aléatoire pour empécher le cache !
        var query_http = _query;

        if (query_http.indexOf("?") < 0) {
                query_http = query_http + "?";
        } else {
                query_http = query_http + "&";
        }
        query_http = query_http + "RNDVALUE=" + escape(Math.floor(Math.random()*1000000));

        _XmlHttp.open("GET",query_http,true);

        // Fonction executée quand l'état change.


        _XmlHttp.onreadystatechange = function()        {
                if (_func) {
                        if (_XmlHttp.readyState == 4 && _XmlHttp.status == 200) {
                                // D'abord on envoie le XML si c'en est
                                /*
                                if (_XmlHttp.responseXML) {
                                        _func(_XmlHttp.responseXML, _params);
                                        delete _XmlHttp;
                                } else
                                */
                                if (_XmlHttp.responseText) {
                                        _func(_XmlHttp.responseText, _params);
                                        delete _XmlHttp;
                                } else {
                                        _func("ERR NO RESPONSE", _params);
                                        delete _XmlHttp;      
                                }
                                
                                
                        } else
                        if (_XmlHttp.readyState == 4) {
                                _func("ERR Status : " + _XmlHttp.status, _params);
                                delete _XmlHttp;
                                
                        }
                }
        };

        // Envoie la demande !

        _XmlHttp.send(null);

        return true;
}

