/**
* AFW module Ajax
* 
*/
afw.module.ajax = 
{
    XMLHttpFactories :
    [
        function(){ return new XMLHttpRequest(); }
        ,function(){ return new ActiveXObject("Msxml2.XMLHTTP"); }
        ,function(){ return new ActiveXObject("Msxml3.XMLHTTP"); }
        ,function(){ return new ActiveXObject("Microsoft.XMLHTTP"); }
    ]
    ,request : function(url, callback, postData)
    {
        var method, req = afw.module.ajax.createXMLHTTPObject();
        if(!req)
        {
            return;
        }
        method = (postData) ? 'POST' : 'GET';
        req.open(method, url, true);
        req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
        if(postData)
        {
            req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        }
        req.onreadystatechange = function()
        {
            if(req.readyState != 4)
            {
                return;
            }
            if(req.status != 200 && req.status != 304)
            {
//                alert('HTTP error ' + req.status);
                return;
            }
            callback(req.responseText);
        }
        if(req.readyState == 4)
        {
            return;
        }
        req.send(postData);
    }
    ,createXMLHTTPObject : function()
    {
        var i, m, xmlhttp = false;
        for(i = 0, m = afw.module.ajax.XMLHttpFactories.length; i < m; ++i)
        {
            try
            {
                xmlhttp = afw.module.ajax.XMLHttpFactories[i]();
            }
            catch(e)
            {
                continue;
            }
            break;
        }
        return xmlhttp;
    }
};