
 /*地域列表生成和选择的函数*/
    function getID() {
        return this.ID;
    }

    function getName() {
        return this.name;
    }

    function addChild(child) {
        this.children[this.childrenCount] = child;
        this.childrenCount++;
    }

    function getChildrenCount() {
        return this.childrenCount;
    }

    function getChild(idx) {
        return this.children[idx];        
    }

    function getChildByID(pID) {
        var child = null;
        for (var i=0; i<this.getChildrenCount(); i++) {
            if (this.getChild(i).getID==pID) {
                child = this.getChild(i);
            }
        }
        return child;
    }

    /*区域数据的构造函数*/
    function Region(pID, pName) {
        this.ID = pID;
        this.name = pName;
        this.children = new Array();
        this.childrenCount = 0;
        this.getID = getID;
        this.getName = getName;
        this.addChild = addChild;
        this.getChild = getChild;
        this.getChildrenCount = getChildrenCount;
    }

    function clearSelect(sel,type) {
        var len = sel.length;
        if (len>0) {
            for (var i=len-1; i>=0; i--) {
                sel.options[i] = null;
            }
        }
        sel.length = 1;
        sel.options[0] = new Option("选择" + type, "00");
        sel.options[0].selected = true;
    }

    function firstLevelSelectChanged(rootRegion, thisSelect,  
            subSelect,type) {
        var opt;
        for (var i=1; i<thisSelect.length; i++) {
            opt = thisSelect.options[i];
            if (opt.selected==true) {
                var reg = rootRegion.getChild(i-1);
                if (reg!=null) {
                    displaySub(subSelect, reg, type);
                }
            }
        }
    }

    function secondLevelSelectChanged(rootRegion, thisSelect,  
            parentSelect, subSelect, type) {
        var opt;
        var i;
        var reg;
        for (i=1; i<parentSelect.length; i++) {
            opt = parentSelect.options[i];
            if (opt.selected==true) {
                reg = rootRegion.getChild(i-1);
                if (reg!=null) {
                    firstLevelSelectChanged(reg, thisSelect, subSelect, type);
                }
            }
        }
    }

    function displaySub(subSelect,reg,type) {
        var cnt = 0;
		if(type==null)type="省(市)"
        if (reg!=null) {
            cnt = reg.getChildrenCount();
        }
        clearSelect(subSelect,type);
        var child;
        var preIdx = subSelect.length;
        for (var i=0; i<cnt; i++) {
            subSelect.length = preIdx + i + 1;
            child = reg.getChild(i);
            subSelect.options[preIdx + i] = new Option(child.getName(), child.getID());
        }		
    }
	function initCity(obj1,obj2,obj3,value1,value2,value3) {
		//初始化一级城市，二级城市，三级城市
		var cnt = 0;
		if (rootRegion!=null) {
			cnt = rootRegion.getChildrenCount();
		}
		clearSelect(obj1,"大类");
		var child;
		var preIdx = obj1.length;
		for (var i=0; i<cnt; i++) {
			//初始化并选择一级城市名称、值
			obj1.length = preIdx + i + 1;
			child = rootRegion.getChild(i);
			obj1.options[preIdx + i] = new Option(child.getName(), child.getID());
			if ( obj1.options[preIdx + i] .value==value1){
				obj1.options[preIdx + i].selected=true;
				provChange(obj1,obj2,obj3);
				var subPreIdx=obj2.length;				
				for(j=0;j<subPreIdx;j++){
					//选择二级城市
					if(obj2.options[j].value==value2){
						obj2.options[j].selected=true;
						cityChange(obj1,obj2,obj3);
						var thirdPreIdx=obj3.length;
						for(k=0;k<thirdPreIdx;k++){
							//选定三级城市
							if(obj3.options[k].value==value3)obj3.options[k].selected=true;
						}						
					}
				}
			}
		}
    }

    function getRegionIDArray(rootRegion, sel1, sel2, sel3) {
        var arr = new Array();
        var opt;
        var reg;
        var i, j, k;
        for (i=1; i<sel1.length; i++) {
            opt = sel1.options[i];
            if (opt.selected==true) {
                reg = rootRegion.getChild(i-1);
                arr[0] = reg.getID();
                for (j=0; j<sel2.length; j++) {
                    opt = sel2.options[j];
                    if (opt.selected==true) {
                        if (j==0) {
                            arr[1] = '00';
                            arr[2] = '00';
                            break;
                        }
                        reg = reg.getChild(j-1);
                        arr[1] = reg.getID();
                        for (k=0; k<sel3.length; k++) {
                            opt = sel3.options[k];
                            if (opt.selected==true) {
                                if (k==0) {
                                    arr[2] = '00';
                                    break;  
                                }
                                reg = reg.getChild(k-1);
                                arr[2] = reg.getID();
                                break;
                            }
                        }
                        break;
                    }
                }
                break;
            }
        }
        return arr;
    }

    function getRegionName(rootRegion, sel1, sel2, sel3) {
        var arr = new Array();
        var opt;
        var reg;
        var i, j, k;
        for (i=1; i<sel1.length; i++) {
            opt = sel1.options[i];
            if (opt.selected==true) {
                reg = rootRegion.getChild(i-1);
                arr[0] = reg.getName();
                for (j=0; j<sel2.length; j++) {
                    opt = sel2.options[j];
                    if (opt.selected==true) {
                        if (j==0) {
                            arr[1] = '00';
                            arr[2] = '00';
                            break;
                        }
                        reg = reg.getChild(j-1);
                        arr[1] = reg.getName();
                        for (k=0; k<sel3.length; k++) {
                            opt = sel3.options[k];
                            if (opt.selected==true) {
                                if (k==0) {
                                    arr[2] = '00';
                                    break;  
                                }
                                reg = reg.getChild(k-1);
                                arr[2] = reg.getName();
                                break;
                            }
                        }
                        break;
                    }
                }
                break;
            }
        }
        return arr[0] + getCityName(arr[1]) + arr[2];
    }

    function getCityName(s) {
        if (s=="市辖区") {
            return "";
        } else if (s=="市辖县") {
            return "";
        } else if (s=="县级市区") {
            return "";
        } else if (s=="县级市") {
            return "";
        } else if (s=="直属市县岛屿") {
            return "";
        } else {
            return s;
        }
    }


    var rootRegion = new Region("00", "");
    var reg1, reg2, reg3;


    reg1 = new Region("94", "服装服饰");
    rootRegion.addChild(reg1);

    reg2 = new Region("111", "男女装");
    reg1.addChild(reg2);

    reg2 = new Region("112", "休闲运动装");
    reg1.addChild(reg2);

    reg2 = new Region("113", "中老年装");
    reg1.addChild(reg2);

    reg2 = new Region("114", "皮革箱包");
    reg1.addChild(reg2);

    reg2 = new Region("115", "男女鞋");
    reg1.addChild(reg2);

    reg2 = new Region("116", "儿童服饰");
    reg1.addChild(reg2);

    reg1 = new Region("95", "中介咨询");
    rootRegion.addChild(reg1);

    reg2 = new Region("117", "房产中介");
    reg1.addChild(reg2);

    reg2 = new Region("118", "家政服务");
    reg1.addChild(reg2);

    reg2 = new Region("119", "商业服务");
    reg1.addChild(reg2);

    reg2 = new Region("120", "汽车中介");
    reg1.addChild(reg2);

    reg2 = new Region("121", "金融机构");
    reg1.addChild(reg2);

    reg2 = new Region("122", "旅游中介");
    reg1.addChild(reg2);
    
    reg1 = new Region("96", "教育培训");
    rootRegion.addChild(reg1);

    reg2 = new Region("123", "语言培训");
    reg1.addChild(reg2);

    reg2 = new Region("124", "技术培训");
    reg1.addChild(reg2);

    reg2 = new Region("125", "儿童教育");
    reg1.addChild(reg2);

    reg2 = new Region("126", "教育机构");
    reg1.addChild(reg2);

    reg1 = new Region("97", "医疗保健");
    rootRegion.addChild(reg1);

    reg2 = new Region("127", "医疗设备");
    reg1.addChild(reg2);

    reg2 = new Region("128", "医疗机构");
    reg1.addChild(reg2);

    reg2 = new Region("129", "连锁药店");
    reg1.addChild(reg2);

    reg2 = new Region("130", "保健中介");
    reg1.addChild(reg2);

    reg2 = new Region("131", "保健品");
    reg1.addChild(reg2);

    reg1 = new Region("98", "美容健身");
    rootRegion.addChild(reg1);

    reg2 = new Region("132", "美容机构");
    reg1.addChild(reg2);

    reg2 = new Region("133", "美容产品");
    reg1.addChild(reg2);

    reg2 = new Region("134", "健身中心");
    reg1.addChild(reg2);

    reg2 = new Region("135", "健身设备");
    reg1.addChild(reg2);

    reg1 = new Region("99", "礼品饰品");
    rootRegion.addChild(reg1);

    reg2 = new Region("136", "礼品专卖");
    reg1.addChild(reg2);

    reg2 = new Region("137", "鲜花连锁");
    reg1.addChild(reg2);

    reg2 = new Region("138", "珠宝首饰");
    reg1.addChild(reg2);

    reg1 = new Region("100", "汽车服务");
    rootRegion.addChild(reg1);

    reg2 = new Region("139", "汽车美容");
    reg1.addChild(reg2);

    reg2 = new Region("140", "汽车维修");
    reg1.addChild(reg2);

    reg2 = new Region("141", "汽车用品");
    reg1.addChild(reg2);

    reg1 = new Region("101", "装潢家居");
    rootRegion.addChild(reg1);

    reg2 = new Region("142", "建材");
    reg1.addChild(reg2);

    reg2 = new Region("143", "家具");
    reg1.addChild(reg2);

    reg2 = new Region("144", "装潢装修");
    reg1.addChild(reg2);

    reg2 = new Region("145", "家饰家居");
    reg1.addChild(reg2);

    reg1 = new Region("103", "幼儿玩具");
    rootRegion.addChild(reg1);

    reg2 = new Region("146", "婴儿用品");
    reg1.addChild(reg2);

    reg2 = new Region("147", "儿童玩具");
    reg1.addChild(reg2);

    reg2 = new Region("148", "婴儿服务");
    reg1.addChild(reg2);

    reg1 = new Region("105", "摄影彩扩");
    rootRegion.addChild(reg1);

    reg2 = new Region("149", "摄影连锁");
    reg1.addChild(reg2);

    reg2 = new Region("150", "摄影设备");
    reg1.addChild(reg2);

    reg2 = new Region("151", "数码彩扩");
    reg1.addChild(reg2);

    reg1 = new Region("106", "数码科技");
    rootRegion.addChild(reg1);

    reg2 = new Region("152", "网络");
    reg1.addChild(reg2);

    reg2 = new Region("153", "数码");
    reg1.addChild(reg2);

    reg2 = new Region("154", "电子");
    reg1.addChild(reg2);

    reg2 = new Region("155", "通讯");
    reg1.addChild(reg2);

    reg2 = new Region("156", "游戏");
    reg1.addChild(reg2);

    reg1 = new Region("107", "图书音像");
    rootRegion.addChild(reg1);

    reg2 = new Region("157", "图书连锁");
    reg1.addChild(reg2);

    reg2 = new Region("158", "音像连锁");
    reg1.addChild(reg2);

    reg1 = new Region("108", "眼镜钟表");
    rootRegion.addChild(reg1);

    reg2 = new Region("159", "眼镜");
    reg1.addChild(reg2);

    reg2 = new Region("160", "钟表");
    reg1.addChild(reg2);

    reg1 = new Region("109", "洗衣干洗");
    rootRegion.addChild(reg1);

    reg2 = new Region("161", "洗衣干洗 ");
    reg1.addChild(reg2);

    reg1 = new Region("162", "餐饮食品");
    rootRegion.addChild(reg1);

    reg2 = new Region("163", "中式餐饮");
    reg1.addChild(reg2);

    reg2 = new Region("164", "西式餐饮");
    reg1.addChild(reg2);

    reg2 = new Region("165", "快餐便当");
    reg1.addChild(reg2);

    reg2 = new Region("166", "料理");
    reg1.addChild(reg2);

    reg2 = new Region("167", "小吃糕点");
    reg1.addChild(reg2);

    reg2 = new Region("168", "牛排批萨");
    reg1.addChild(reg2);

    reg2 = new Region("169", "火锅烧烤");
    reg1.addChild(reg2);

    reg2 = new Region("170", "咖啡酒吧");
    reg1.addChild(reg2);

    reg2 = new Region("171", "冰激凌");
    reg1.addChild(reg2);


    reg1 = new Region("110", "其他行业");
    rootRegion.addChild(reg1);

    reg2 = new Region("172", "其他行业");
    reg1.addChild(reg2);


   
    function provChange(obj1,obj2,obj3) {
        clearSelect(obj2,"小类");
        clearSelect(obj3,"");
        firstLevelSelectChanged(rootRegion, obj1, obj2, "小类"); 
    }

    function cityChange(obj1,obj2,obj3) {
        clearSelect(obj3,"");
        secondLevelSelectChanged(rootRegion, obj2, obj1, obj3,""); 
    }

    function countyChange(obj1,obj2,obj3,obj4) {
        if (!obj3.options[0].selected) {
            obj4.value = getRegionName(rootRegion,obj1,obj2,obj3);
        }
    }
    