﻿// JScript 文件

//------ajax---------
var Ajax = {
  getTransport: function() {
    return Try.these(
      function() {return new XMLHttpRequest()},
      function() {return new ActiveXObject("Msxml2.XMLHTTP")},
      function() {return new ActiveXObject("Microsoft.XMLHTTP")}
    ) || false;
  },

  activeRequestCount: 0
}

var Try = {
  these: function() {
    var returnValue;

    for (var i = 0, length = arguments.length; i < length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) {}
    }

    return returnValue;
  }
}

//------select options control-----
function addOptions(selectId, arrValue, arrText){
	if(document.getElementById(selectId) != undefined){
		for(i = 0, arrLen = arrValue.length; i < arrLen; i++){
			document.getElementById(selectId).options.add( new Option(arrText[i], arrValue[i]) );
		}
	}else{
		return false;
	}
}

function clearOptions(selectId){
	if(document.getElementById(selectId) != undefined){
		document.getElementById(selectId).options.length=0;
	}else{
		return false;
	}
}

function setSelected(selectId, index){
	if(document.getElementById(selectId) != undefined){
	for(i=0;i<document.getElementById(selectId).options.length;i++)
	{
	  if(document.getElementById(selectId).options[i].value==index)
		document.getElementById(selectId).options[i].selected = true;
	}
	}else{
		return false;
	}	
}

// JavaScript Document for China Province, City, Town link select
var myAjax = Ajax.getTransport();
var default_province;
var default_city;
var default_area;


var CPCTSelect = {
	init: function(){
		try{
		default_province=document.getElementById("province").value;
		default_city=document.getElementById("city").value;
		default_area=document.getElementById("area").value;
		}
		catch(exception)
		{}
		initProvince();
	},
	
	POnChange: function(){
		clearOptions("city_select");
		clearOptions("area_select");
		var select_index = document.getElementById("province_select").selectedIndex;
		var provinceId = document.getElementById("province_select").options[select_index].value;
		default_city = 0;
		default_area = 0;
		initCity(provinceId);
	}
}

var CPATSelect = {
	POnChange: function(){
		clearOptions("area_select");
		var select_index = document.getElementById("city_select").selectedIndex;
		var cityId = document.getElementById("city_select").options[select_index].value;
		default_area = 0;
		initArea(cityId);
	}
}

function CPCTConstruct(){
html = "<table cellspacing='0' cellpadding='0' border='0'><tr><td align='left'>*省份<br/>"+
		   "<select name='province_select' id='province_select' onChange='CPCTSelect.POnChange()' class='select_city'>" +
           "</select>" +
           " </td><td align='left'>*城市<br/>" +
           " <select name='city_select' id='city_select' onChange='CPATSelect.POnChange()' class='select_city'>" +
           " </select></td></tr>"+
		   "<tr><td align='left' colspan=2>区<br/>"+
		   " <select name='area_select' id='area_select' class='select_city'>" +
           " </select></td></tr></table>";

	document.write(html);
}

function initProvince(){
	try{
		var url = "Area/getProvince.aspx";
		myAjax.open("GET", url, true);
		myAjax.onreadystatechange = initProvinceOK;
		myAjax.send(null);
		Ajax.activeRequestCount++;
	}catch(exception){}
}

function initProvinceOK(){
	if (myAjax.readyState == 4) {
		var response = myAjax.responseText;
		var province_id=0;
		try{
			clearOptions("province_select");
			var arr = response.split(",");
			var arrValue = new Array(), arrText = new Array(), arrTemp = new Array();
			arrValue[0] ="-1";
			arrText[0] = "      ";
			for(i=0, arrLen = arr.length; i < arrLen; i++){
				if(arr[i].indexOf("-")!=-1)
				{
				arrTemp = arr[i].split("-");
				arrValue[i+1] = arrTemp[0];
				if(arrTemp[0]==default_province)
				 province_id=i+1;
				arrText[i+1] = arrTemp[1];
				}
			}
			
			addOptions("province_select", arrValue, arrText);
			setSelected("province_select", default_province);
			initCity(arrValue[province_id]);
		}catch(exception){}
		Ajax.activeRequestCount--;
	}	
}

function initCity(provinceId){
	try{
		var url = "Area/getCity.aspx?provinceId=" + escape(provinceId);
		myAjax.open("GET", url, true);
		myAjax.onreadystatechange = initCityOk;
		myAjax.send(null);
		Ajax.activeRequestCount++;
	}catch(exception){}	
}

function initCityOk(){
	if (myAjax.readyState == 4) {
		var response = myAjax.responseText;
		var city_id=0;
		try{
			clearOptions("city_select");
			var arr = response.split(",");
			var arrValue = new Array(), arrText = new Array(), arrTemp = new Array();
			arrValue[0] ="-1";
			arrText[0] = "      ";
			for(i=0, arrLen = arr.length; i < arrLen; i++){
				if(arr[i].indexOf("-")!=-1)
				{
				arrTemp = arr[i].split("-");
				arrValue[i+1] = arrTemp[0];
				if(arrTemp[0]==default_city)
				 city_id=i+1;
				arrText[i+1] = arrTemp[1];
				}
			}
			
			addOptions("city_select", arrValue, arrText);
			setSelected("city_select", default_city);
			initArea(arrValue[city_id]);
		}catch(exception){}
		Ajax.activeRequestCount--;
	}
}


function initArea(cityId){
	try{
		var url = "Area/getArea.aspx?cityId=" + escape(cityId);
		myAjax.open("GET", url, true);
		myAjax.onreadystatechange = initAreaOk;
		myAjax.send(null);
		Ajax.activeRequestCount++;
	}catch(exception){}	
}

function initAreaOk(){
	if (myAjax.readyState == 4) {
		var response = myAjax.responseText;
		try{
			clearOptions("area_select");
			var arr = response.split(",");
			var arrValue = new Array(), arrText = new Array(), arrTemp = new Array();
			arrValue[0] ="-1";
			arrText[0] = "      ";
			for(i=0, arrLen = arr.length; i < arrLen; i++){
				if(arr[i].indexOf("-")!=-1)
				{
				arrTemp = arr[i].split("-");
				arrValue[i+1] = arrTemp[0];
				arrText[i+1] = arrTemp[1];
				}
			}
			
			addOptions("area_select", arrValue, arrText);
			setSelected("area_select", default_area);
		}catch(exception){}
		Ajax.activeRequestCount--;
	}
}


