/* $Id : region.js 4865 2007-01-31 14:04:10Z paulgao $ */



var region = new Object();



region.isAdmin = false;



region.loadRegions = function(parent, type, target)

{

  Ajax.call(region.getFileName(), 'type=' + type + '&target=' + target + "&parent=" + parent , region.response, "GET", "JSON");

}



/* *

 * 载入指定的国家下所有的省份

 *

 * @country integer     国家的编号

 * @selName string      列表框的名称

 */

region.loadProvinces = function(country, selName)

{

  var objName = (typeof selName == "undefined") ? "selProvinces" : selName;



  region.loadRegions(country, 1, objName);

}



/* *

 * 载入指定的省份下所有的城市

 *

 * @province    integer 省份的编号

 * @selName     string  列表框的名称

 */

region.loadCities = function(province, selName)

{

  var objName = (typeof selName == "undefined") ? "selCities" : selName;



  region.loadRegions(province, 2, objName);

}



/* *

 * 载入指定的城市下的区 / 县

 *

 * @city    integer     城市的编号

 * @selName string      列表框的名称

 */

region.loadDistricts = function(city, selName)

{

  var objName = (typeof selName == "undefined") ? "selDistricts" : selName;



  region.loadRegions(city, 3, objName);

}



/* *

 * 处理下拉列表改变的函数

 *

 * @obj     object  下拉列表

 * @type    integer 类型

 * @selName string  目标列表框的名称

 */

region.changed = function(obj, type, selName)

{

  var parent = obj.options[obj.selectedIndex].value;



  region.loadRegions(parent, type, selName);

}



region.response = function(result, text_result)

{

  var sel = document.getElementById(result.target);



  sel.length = 1;

  sel.selectedIndex = 0;

  sel.style.display = (result.regions.length == 0 && ! region.isAdmin && result.type + 0 == 3) ? "none" : '';



  if (document.all)

  {

    sel.fireEvent("onchange");

  }

  else

  {

    var evt = document.createEvent("HTMLEvents");

    evt.initEvent('change', true, true);

    sel.dispatchEvent(evt);

  }



  if (result.regions)

  {

    for (i = 0; i < result.regions.length; i ++ )

    {

      var opt = document.createElement("OPTION");

      opt.value = result.regions[i].region_id;

      opt.text  = result.regions[i].region_name;



      sel.options.add(opt);

    }

  }

}



region.getFileName = function()

{

  if (region.isAdmin)

  {

    return "../region.php";

  }

  else

  {

    return "region.php";

  }

}

