/**
 * ECSHOP 公用脚本函数库
 * ============================================================================
 * 版权所有 (C) 2005-2006 北京亿商互动科技发展有限公司，并保留所有权利。
 * 网站地址: http://www.ecshop.com
 * ----------------------------------------------------------------------------
 * 这是一个免费开源的软件；这意味着您可以在不用于商业目的的前提下对程序代码
 * 进行修改、使用和再发布。
 * ============================================================================
 * @author:     Weber Liu <weberliu@hotmail.com>
 * @version:    v2.0
 * ---------------------------------------------
 * $Author: weberliu $
 * $Date: 2006-08-24 22:58:12 +0800 (星期四, 24 八月 2006) $
 * $Id: region.js 972 2006-08-24 14:58:12Z weberliu $
 */
var region = new Object();

region.filename = location.href.substring((location.href.lastIndexOf("/")) + 1, location.href.lastIndexOf("."));
region.selCountries = 'selCountries';
region.selProvinces = 'selProvinces';
region.selCities    = 'selCities';
region.selDistricts = 'selDistricts';
region.isAdmin      = true;

/**
 * 载入指定的国家下所有的省份
 *
 * @country integer     国家的编号
 * @selName string      列表框的名称
 */
region.loadProvinces = function(country, selName)
{
    if (region.isAdmin)
    {
        listZone.showLoader();
    }
    else
    {
        toggleLoader(true);
    }
    
    var objName = (typeof selName == "undefined") ? "selProvinces" : selName;

    cp.set_response_type("object");
    cp.call(region.getFileName(), 'region_result', region.response, country, objName, 1);
}

/**
 * 载入指定的省份下所有的城市
 *
 * @province    integer 省份的编号
 * @selName     string  列表框的名称
 */
region.loadCities = function(province, selName)
{
    if (region.isAdmin)
    {
        listZone.showLoader();
    }
    else
    {
        toggleLoader(true);
    }

    var objName = (typeof selName == "undefined") ? "selCities" : selName;

    cp.set_response_type("object");
    cp.call(region.getFileName(), 'region_result', region.response, province, objName, 2);
}


/**
 * 载入指定的城市下的区/县
 *
 * @city    integer     城市的编号
 * @selName string      列表框的名称
 */
region.loadDistricts = function(city, selName)
{
    var objName = (typeof selName == "undefined") ? "selDistricts" : selName;

    if (region.isAdmin)
    {
        listZone.showLoader();
    }
    else
    {
        toggleLoader(true);
    }

    cp.set_response_type("object");
    cp.call(region.getFileName(), 'region_result', region.response, province, objName, 3);
}


/**
 * 处理下拉列表改变的函数
 *
 * @obj     object  下拉列表
 * @type    integer 类型
 * @selName string  目标列表框的名称
 */
region.changed = function(obj, type, selName)
{
    if (region.isAdmin)
    {
        listZone.showLoader();
    }
    else
    {
        toggleLoader(true);
    }

    var parent = obj.options[obj.selectedIndex].value;

    cp.set_response_type("object");
    cp.call(region.getFileName(), 'region_result', region.response, parent, selName, type);

    switch (type)
    {
        case 0:
            document.getElementById(region.selProvinces).length = 1;
            document.getElementById(region.selCities).length = 1;
            if (document.getElementById(region.selDistricts)) document.getElementById(region.selDistricts).length = 1;
            break;
        case 1:
            document.getElementById(region.selCities).length = 1;
            if (document.getElementById(region.selDistricts)) document.getElementById(region.selDistricts).length = 1;
            break;
        case 2:
            if (document.getElementById(region.selDistricts)) document.getElementById(region.selDistricts).length = 1;
            break;
    }
}

region.response = function(result, text_result)
{
    if (region.isAdmin)
    {
        listZone.hideLoader();
    }
    else
    {
        toggleLoader(false);
    }

    var sel = document.getElementById(result.ajaxResponse[0].select[0].data);
    sel.length = 1;
    
    if (!result.ajaxResponse[0].region)
    {
        return;
    }

    for (i = 0; i < result.ajaxResponse[0].region.length; i++)
    {
        opt = document.createElement("OPTION");
        opt.value   = result.ajaxResponse[0].region[i].id[0].data;
        opt.text    = result.ajaxResponse[0].region[i].name[0].data;

        sel.options.add(opt);
    }
}

region.getFileName = function()
{
    if (region.isAdmin)
    {
        return region.filename + ".php?act=ajax";
    }
    else
    {
        return "ajax.php";
    }
}