function readRemoteUrl(url, handler, targetId, params, HttpMethod)
{

    if (!HttpMethod || HttpMethod == "GET") {
        HttpMethod = "GET";
        if (url.indexOf('?') >= 0) {
            url = url + "&reformat=ajax";
        }
        else {
            url = url + "?reformat=ajax";
        }
    }
    else if (HttpMethod == "POST") {
        if (params == null) {
            params = "reformat=ajax";
        }
        else {
            params = params + "&reformat=ajax";
        }
    }

    if (url.indexOf('http') < 0) {
        url = $('http').value + url;
    }


    var req = initXMLHTTPRequest();
    if (req) {
        function onReadyState()
        {
            var ready = req.readyState;
            var data = null;
            if (ready == 4) {
                //ready
                //TODO
                if ($("home_content")) {
                    $("home_content").style.height = "auto";
                }
                data = req.responseText;
                if (data.indexOf("not_login") == 0) {
                    if (targetId) {
                        document.getElementById(targetId).innerHTML = data;
                    }
                    window.alert(data.substr("not_login".length + 1, data.length));
                    document.location = "Login.do";
                    return;
                }
                else if (data.indexOf("have_not_login") == 0) {
                    if (targetId) {
                        document.getElementById(targetId).innerHTML = data;
                    }
                    document.location = "PublicHome.do";
                    return;
                }
                else if (data.indexOf("no_invicode") == 0) {
                    if (targetId) {
                        document.getElementById(targetId).innerHTML = data;
                    }
                    document.location = "invitationCodePage.do";
                    return;
                }
                if (targetId) {
                    document.getElementById(targetId).innerHTML = data;
                }
                else {
                    handler(data);
                }
            }
            else {
                data = "Loading...";
                if (targetId) {
                    document.getElementById(targetId).innerHTML = data;
                }
            }
        }

        req.onreadystatechange = onReadyState;
        req.open(HttpMethod, url, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.setRequestHeader("If-Modified-Since", "0");
        req.setRequestHeader("Cache-Control", "no-cache");

        req.send(params);
    }
}

//Init XML Http Request
function initXMLHTTPRequest()
{
    var xRequest = null;
    if (window.XMLHttpRequest) {
        xRequest = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xRequest;
}

