function Ajax()
{
    var http_request;
    this.HttpRequest = null;
    this.StateChange = null;
    this.Params = "";

    Ajax.prototype.Create = function Create() {
        if (window.XMLHttpRequest) {
            try {
                http_request = new XMLHttpRequest;
            } catch(e) {
                alert(e);
            }
        } else if (window.ActiveXObject) {
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    alert(e);
                }
            }
        }

        if (http_request) {
            this.HttpRequest = http_request;
        } else {
            this.HttpRequest = null;
        }
    }

    Ajax.prototype.Request = function Request(url, post) {
        http_request.onreadystatechange = this.StateChange;
        if (post) {
            http_request.open("POST", url, true);
            http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            http_request.setRequestHeader("Content-Length", this.Params.length);
            http_request.setRequestHeader("Connection", "close");
            http_request.send(this.Params);
        } else {
            http_request.open("GET", url, true);
            http_request.send(null);
        }
    }
}

var _Ajax = new Ajax;

function Step1Handler(err_flag) {
    _Ajax.Create();
    _Ajax.StateChange = StepResponse;
    _Ajax.Request("r_step1.php?number=" + genOrderNumber() + "&flag=" + err_flag, false);
}

function LoadDomainForm() {
    LoadForm('domains_reg/reg_domain.html', false);
}

function LoadForm(s, p) {
    _Ajax.Create();
    _Ajax.StateChange = StepResponse;
    _Ajax.Request(s, p);
}

function StepResponse() {
    var dlgWindow = document.getElementById("dialogWindow");
    switch (_Ajax.HttpRequest.readyState)            {
        case 4:
            dlgWindow.innerHTML = _Ajax.HttpRequest.responseText;
            break;
        default:
            dlgWindow.innerHTML = "<div style=\"position: fixed; top:50%; left:50%; margin-top:-9px; margin-left:-130px\"><img src=\"load.gif\" height=\"19\" width=\"220\" alt=\"\" /></div>";
            break;
    }
}

function Step2Handler() {
    _Ajax.Create();
    _Ajax.StateChange = StepResponse;
    _Ajax.Params = Step2CreateParams();
    _Ajax.Request("r_step2.php", true);
}

function CompleteHandler() {
    _Ajax.Create();
    _Ajax.StateChange = StepResponse;
    _Ajax.Params = CompleteCreateParams();
    _Ajax.Request("r_complete.php", true);

}

function Step2CreateParams() {
    var _domain = document.getElementById("r_domain").value;
    var _name = document.getElementById("r_name").value;
    var _plan = document.getElementById("r_plan").value;
    var _number = document.getElementById("h_number").value;
    var _mail = document.getElementById("r_mail").value;
    var _comments = document.getElementById("r_comments").value;
    var param = new Array(6);
    param[0] = "r_domain=" + encodeURI(_domain);
    param[1] = "r_name=" + encodeURI(_name);
    param[2] = "r_plan=" + encodeURI(_plan);
    param[3] = "h_number=" + encodeURI(_number);
    param[4] = "r_mail=" + encodeURI(_mail);
    param[5] = "r_comments=" + encodeURI(_comments);
    param[5] = param[5].replace(/\&/g, "%26");
    param[5] = param[5].replace(/\;/g, "%3B");
    return param.join("&")
}

function CompleteCreateParams() {
    var _code = document.getElementById("valid_code").value;
    var param = new Array(1);
    param[0] = "valid_code=" + encodeURI(_code);
    return param.join("&");
}