function CityEditControlFindControls(ctrlid) {
    var ctrls = eval(ctrlid + "_ctrls");
    var ctrl = new Object();

    ctrl.mlCityInfoId = ctrls[0];
    ctrl.ddlCity = findObj(ctrls[1]);
    ctrl.tbCity = findObj(ctrls[2]);
    ctrl.hiCityId = findObj(ctrls[3]);
    ctrl.lbCity = findObj(ctrls[4]);

    return ctrl;
}

function CityEditControlOnChangeCity(ctrlid) {
    var ctrl = CityEditControlFindControls(ctrlid);

    ctrl.hiCityId.value = ctrl.ddlCity.value;
}

function CityEditControlOnChangeCountry(ctrlid, id, ziplenght, phonemask, countryindex) {
    var ctrl = CityEditControlFindControls(ctrlid);
    var initArr = eval(ctrlid + "_init");
    var useCityList = initArr[0];

    var arr = countryindex != -1 ? eval(ctrlid + "_country_cities_" + id) : null;

    layerIndex = arr != null ? arr[0] : 0;

    changeLayer1(ctrl.mlCityInfoId, parseInt(layerIndex));

    if (layerIndex != '1') {
        ctrl.hiCityId.value = 0;
        ctrl.lbCity.innerHTML = '';
    } else {
        CityEditControlFillLookupList(ctrl.ddlCity, arr, ctrl.hiCityId)
    }
}

function hideAllLayers1(multiLayerID) {
    var layerIDs = eval(multiLayerID + "_ml");

    for (j = 1; j < layerIDs.length; j++) {
        layer = findObj(layerIDs[j]);
        if (layer != null) layer.style.display = "none";
    }
}

function changeLayer1(multiLayerID, index) {
    var form = getForm();

    var layerIDs = eval(multiLayerID + "_ml");
    var h = form[layerIDs[0]];

    hideAllLayers1(multiLayerID);

    var showLayerID = layerIDs[index + 1];
    var showLayer = findObj(showLayerID);

    if (showLayer != null) showLayer.style.display = "block";
    h.value = showLayerID;
}

function getSelectedLayerIndex(multiLayerID) {
    var form = getForm();

    var layerIDs = eval(multiLayerID + "_ml");
    var h = form[layerIDs[0]];

    for (m = 1; m < layerIDs.length; m++) {
        if (layerIDs[m] == h.value) return m - 1;
    }

    return -1;
}

function CityEditControlGetCityName(ctrlid) {
    var ctrl = CityEditControlFindControls(ctrlid);

    return ctrl.tbCity.value;
}

function CityEditControlSetCityInfo(ctrlid, cityName, cityId) {
    var ctrl = CityEditControlFindControls(ctrlid);
    var initArr = eval(ctrlid + "_init");
    var useCityList = initArr[0];

    ctrl.hiCityId.value = cityId;

    if (cityId == 0) {
        CityEditControlSetValue(ctrl.tbCity, cityName);
        ctrl.lbCity.innerHTML = cityName;
        if (useCityList) CityEditControlLookupByName(ctrl.ddlCity, cityName);
        if (getSelectedLayerIndex(ctrl.mlCityInfoId) == 3 && cityName != null && cityName != '') changeLayer1(ctrl.mlCityInfoId, 2);
    } else {
        ctrl.ddlCity.value = cityId;
    }
}

function CityEditControlLookupByName(ddlCity, cityName) {
    for (var i = 0; i < ddlCity.length; i++) {
        if (ddlCity.options[i].text == cityName) {
            ddlCity.selectedIndex = i; break;
        }
    }
}

function CityEditControlSetValue(ctrl, value) {
    if (ctrl != null) ctrl.value = value;
}

function CityEditControlFillLookupList(lookup, arr, hiCityId) {
    //lookup.options.length = 0;
    while (lookup.length > 0) lookup.remove(0);

    index = 0;

    for (k = 1; k < arr.length; k += 2) {
        if (k == 1) hiCityId.value = arr[k];

        lookup.options[index] = new Option(arr[k + 1], arr[k], false, false);

        index++;
    }
}

function CityEditControlChangeEnabled(ctrl, enabled) {
    if (ctrl == null) return;

    if (enabled) {
        ctrl.disabled = null;
    } else {
        ctrl.disabled = "disabled";
    }
}

function CityEditChangeEnabled(ctrlid, enabled) {
    var ctrl = CityEditControlFindControls(ctrlid);

    CityEditControlChangeEnabled(ctrl.tbCity, enabled);
    CityEditControlChangeEnabled(ctrl.ddlCity, enabled);
}