function createHttpRequest() {
    var http_request ;
    try {
        http_request = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
        //if (http_request.overrideMimeType) {
        //    http_request.overrideMimeType('text/xml');
        //}
    } catch (e) {
        var MSXML_XMLHTTP_PROGIDS = new Array(
            'MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP',      // Internet Explorer 6
            'Microsoft.XMLHTTP'   // Internet Explorer 4,5
        );
        var success = false;
        for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
            try {
                http_request = new  ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
                success = true;
            } catch (e) {}
        }
        if ( !success ) {
            alert('Cant create HttpRequest - Not supported Browser');
        }
    }
    return http_request;
}

function getFile(file, callbackFunction) {
    var myHttpObj = null;
    myHttpObj=createHttpRequest();
    myHttpObj.onreadystatechange = function() {
        if (myHttpObj.readyState == 4) {
            switch(myHttpObj.status) {
                case 200: // Page found
                case 304: // Status Code on Opera when page reload
                    if (callbackFunction != null) {
                        //this.size = myHttpObj.getResponseHeader("Content-Length");
                        //this.text = myHttpObj.responseText;
                        callbackFunction(myHttpObj);
                    } else {
                        eval(myHttpObj.responseText);
                    }
                    return false;
                    break;
                case 0: // Worong protocol
                    alert("001 Can't load file using 'file://' protocol")
                    return;
                    break;
                case 404: // Page not found
                    alert("002 File not found: "+file);
                    return;
                    break;
                default:
                    alert("003 Unrecognized status code: ["+myHttpObj.status+"]")
                    return;
                    break;
            }
        }
    }
    myHttpObj.open('GET', file);
    myHttpObj.send(null);
    delete myHttpObj;
}


function postFile(file, param, callbackFunction) {
    var myHttpObj = null;

    myHttpObj=createHttpRequest();
    myHttpObj.open('POST', file);
    if (param == '') {
        myHttpObj.send(null);
    } else {
        //alert(param);
        myHttpObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        myHttpObj.send(param);
    }

    myHttpObj.onreadystatechange = function() {
        if (myHttpObj.readyState == 4) {
            switch(myHttpObj.status) {
                case 200: // Page found
                case 304: // Status Code on Opera when page reload
                    if (callbackFunction != null) {
                        callbackFunction(myHttpObj);
                    } else {
                        eval(myHttpObj.responseText);
                    }
                    return false;
                    break;
                case 0: // Worong protocol
                    alert("001 Can't load file using 'file://' protocol")
                    return;
                    break;
                case 404: // Page not found
                    alert("002 File not found: "+file);
                    return;
                    break;
                default:
                    alert("003 Unrecognized status code: ["+myHttpObj.status+"]")
                    return;
                    break;
            }
        }
    }
    delete myHttpObj;
    //return false;
}

function showResult(e) {
    //alert(e.responseText);
    eval(e.responseText);
}

function writeResult(e) {
    //alert(e.responseText);
    document.write(e.responseText);
}

