var canShowAddress = new Array();
var allAddressGroup = new Array();
$.extend({
	//获得可以显示的地址
	getCanShowAddress : function(parentId,flag,para){
		$.ajax({
			type:"get",
			url:"/AddressServlet?doaction=canShowAddress",
			dateType:"text",
			success : function(msg){
			    var result = eval('('+msg+')');
			    canShowAddress = result.list.split("|");
			    $.createAddressSelect(parentId,flag,para);
		    }
		});
	},
	//创建地址下拉列表
	createAddressSelect : function(parentId,flag,para){
		 var nameAry = ['city','qu','street','housingEstate','building','entrance','floor','room'];
		 $("#"+parentId).append("<div id='address_div' style='border:0px solid black;width:620px;height:42px;'></div>");
		 var select = "";
		 for(var i=0;i<canShowAddress.length-1;i++){
			 var address = canShowAddress[i].split(",");
			 var nameAryIndex = parseInt(address[1])-1;
			 if(address[1]>4){
				 select += "<select style='margin-top:10px;'id='select_"+address[1]+"' name='"+nameAry[nameAryIndex]+"' onchange='selected("+address[1]+",this,"+flag+")'>"+
		           "<option value='0'>--"+address[2]+"--</option> </select>&nbsp;";
			 }else{
				 select += "<select style='margin-top:10px;'id='select_"+address[1]+"' name='"+nameAry[nameAryIndex]+"' onchange='selected("+address[1]+",this,"+flag+")'>"+
				           "<option value='0'>-----"+address[2]+"----</option> </select>&nbsp;";
			 }
		 }
		 //select+= "<input type='text' name='address_input'/>";
		 $("#address_div").append(select);
	     $.loadAllAddressAjax(flag,para);
	},
	//加载地址下拉列表内容
	loadAllAddressAjax : function(flag,para){
	      $.ajax({
	    	     type:"get",
	    	     url:"/AddressServlet?doaction=addlist",
	   	         success:function(msg){
	   	              $.loadAllAddressSuccess(msg,flag,para);
	   	         } 
	   	   });
	},
	//加载地址下拉列表成功
	loadAllAddressSuccess : function(msg,flag,para){
        var result = eval('('+msg+')');
	    var list = result.list.split("|");
        for(var i=0;i<list.length-1;i++){
            var address = list[i].split(",");
            var upid = address[1];
            if(allAddressGroup[upid] == null){
          	   allAddressGroup[upid] = new Array;
            }
            allAddressGroup[upid][allAddressGroup[upid].length] = list[i];
        }
        if(para=="OK"){
            var selectID = $("#address_div").children("select:first").attr("id").split("_");
		    var upid = -1;
			var id = $("input[name='address_i']").val();
			var level = -1;
			for(var s = 0;s<8;s++){
				for(var i=0;i<allAddressGroup.length;i++){
				    if(allAddressGroup[i]!=null){
				       var addressList = allAddressGroup[i];
				       for(var j =0;j<addressList.length;j++){
							var address = addressList[j].split(",");				       
				            if(address[0]==id){
				               upid = parseInt(address[1]);
				               level = parseInt(address[2]);
				               break;
				            }
				       }
				    }
				    if(upid != -1){
				        break;
				    }
				}
				factory(upid);
				var select = document.getElementById("select_"+level);
				var length = select.length;
	            for(var i=0;i<length;i++){
	                if(select.options[i].value==id){
	                    select.options[i].selected= true;
	                    break;
	                }
	            }
				if(level==selectID[1]){
				   break;
				}
				id = upid;
				upid = -1;
			}   
	    		
        }else{
           $.initFirstSelectContent(flag);
        }
	},
	//初始化第一个地址下拉列表
	initFirstSelectContent : function(flag){
		var level = canShowAddress[0].split(",")[1];
		var select = document.getElementById("select_"+level);
		for(var i=0;i<allAddressGroup.length;i++){
            if(allAddressGroup[i]==null){
            	continue;
            }
            var address = allAddressGroup[i][0].split(",");
            if(address[2]==level){
            	for(var j=0;j<allAddressGroup[i].length;j++){
            		address = allAddressGroup[i][j].split(",");
            		if(!flag){
	                   	 if($.trim(address[3])=="其他"){
	                   		 continue;	
	                   	 }
                    }
            		select.options[select.options.length] = new Option(address[3],address[0]);
            	}
            }
		}
	}
	
});

function selectFactory(index,flag){
       var select = null;
       var level = 0;
       if(allAddressGroup[index]!=null){
           for(var i=0;i<allAddressGroup[index].length;i++){
                 var place = allAddressGroup[index][i].split(",");
                 if(!flag){
                	 if($.trim(place[3])=="其他"){
                		 continue;	
                	 }
                 }
                 level = place[2];
                 select = document.getElementById("select_"+level);	
                 select.options[select.options.length] = new Option(place[3],place[0]); 
	          }
       }
       var firstSelectlevel = canShowAddress[0].split(",")[1];
       for(var i=firstSelectlevel;i<level;i++){ 
          select = document.getElementById("select_"+i);
          if(select.options.length==1){
               $("#select_"+i).hide();
          }
      } 
       
}
function selected(level,select,flag){
	 if(flag){
		 if($("#address_div").find("input[name='address_input']").length>0){
			 $("input[name='address_input']").remove();
		 }
	 }
	 
	 if(level==8 && flag){
		 var text = $.trim($("#select_8").find("option:selected").text());
		 if(text=="其他"){
			 $("#address_div").append("<input type='text' name='address_input'/>");
		 }
	 }

	 for(var i=level;i<9;i++){    	           
	       $("#select_"+i).show();
	 }  
	 var value = select.options[select.options.selectedIndex].value;
	 if(value==0){
	    initSelectMessage(level+1);
	 }else{
	    initSelectMessage(level+1);
	    selectFactory(value,flag);
	 }
}
function initSelectMessage(level){
	for(var i=level;i<9;i++){
		 var select = document.getElementById("select_"+i);
		 var length = select.length;
		 for(var j=1;j<length;j++){			 
			 select.remove(1);
			 select.options.selectedIndex = 0;
		 }
	}
}

function factory(index){
    var select = null;
    var level = 0;
    if(allAddressGroup[index]!=null){
       for(var i=0;i<allAddressGroup[index].length;i++){
	          var place = allAddressGroup[index][i].split(",");
	          if($.trim(place[3])=="其他"){
	        		 continue;	
	          }
	          level = place[2];
	          select = document.getElementById("select_"+level);	
	          select.options[select.options.length] = new Option(place[3],place[0]); 
	     }
    }
}	





