function SetActionParams(ActionTypeInputName, ParamInputName, ActionType, Param) {
    document.getElementById(ActionTypeInputName).value = ActionType;
    document.getElementById(ParamInputName).value = Param;
}

function SubmitForm(FormName) {
    document.forms[FormName].submit();
}

function SendCommonRequest_Click() {
    SetActionParams('ActionType', 'ActionParam', 'SendCommonRequest', '');
    SubmitForm('CommonRequestForm');
}

function GetHTTPObject() {
    if (httpObject != null)
        return httpObject;
    try {return new XMLHttpRequest();}
    catch (e) { }
    try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
    catch (e) { }
    try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
    catch (e) { }
    try { return new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e) { }
    try { return new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) { }
    return null;
}

function SetAjaxMode() {
    AjaxMode = (GetHTTPObject() != null);
}

function FillSelect(element, data, splitter, enbled) {
    element.options.length = 0;
    var items = data.split(";");
    var count = items.length;
    for (var i = 0; i < count; i++) {
        var options = items[i].split(splitter);
        element.options[i] = new Option(options[1], options[0]);
    }

    if (count <= 0) {
        element.options[0] = new Option("-");
    }
    else {
        element.selectedIndex = 0;
        element.disabled = !enbled;
    }
}

function SetSelectLoading(element) {
    element.options.length = 0;
    element.options[0] = new Option("Загрузка...");
    element.disabled = 1;
}

function FillRegionsList() {
    if (httpObject.readyState == 4) {
        var region = document.getElementById('Region');
        var response = httpObject.responseText;
        FillSelect(region, response, '+', true);
        GetData('cities');
    }
}

function FillCitiesList() {
    if (httpObject.readyState == 4) {
        var city = document.getElementById('City');
        var response = httpObject.responseText;
        FillSelect(city, response, '+', true);
    }
}

function GetRegions() {
    var region = document.getElementById('Region');
    var city = document.getElementById('City');
    SetSelectLoading(region);
    SetSelectLoading(city);
    httpObject.open("GET", "getdata.php?type=regions&countryid=" + document.getElementById('Country').value, true);
    httpObject.onreadystatechange = FillRegionsList;
}

function GetCities() {
    var country = document.getElementById('Country');
    var region = document.getElementById('Region');
    var city = document.getElementById('City');
    SetSelectLoading(city);
    var request = "getdata.php?type=cities&countryid=" + country.value;
    if (region.value != "") {
        request += "&regionid=" + region.value;
    }

    httpObject.open("GET", request, true);
    httpObject.onreadystatechange = FillCitiesList;
}

function GetData(type) {
    httpObject = GetHTTPObject();
    if (httpObject != null) {
        switch (type) {
            case 'regions':
                {
                    GetRegions();
                    break;
                }
            case 'cities':
                {
                    GetCities();
                    break;
                }
        }
        httpObject.send(null);
    }
}

function CountryChanged() {
    if (AjaxMode) {
        clearTimeout(UserInteractionTimer);
        UserInteractionTimer = setTimeout("GetData('regions')", UserInteractionPasue);
    }
    else {
        SubmitForm('CommonRequestForm');
    }
}

function RegionChanged() {
    if (AjaxMode) {
        clearTimeout(UserInteractionTimer);
        UserInteractionTimer = setTimeout("GetData('cities')", UserInteractionPasue);
    }
    else {
        SubmitForm('CommonRequestForm');
    }
}