﻿var psel="请选择";
var paddr="地址不完全";
$(function(){$(".countrySelect").change(getArea).val(0);});  //初始化事件  
      
    function getArea(ev) //联动事件，从后台读取数据 json数组：
    {
            $(ev.target).nextAll('select').remove();
            $.getJSON("AjaxMethod/GetArea.ashx",{id:  $(ev.target).val()},function(d){            
            if(d.length>0)
            {
               var areaSelect=$("<select id='"+ev.target+"_next'></select>");
               $(ev.target).after(areaSelect);
               areaSelect.change(getArea);              
               areaSelect.append($("<option value='0'>"+psel+"</option>"));
               for(var i in d)
               {
                    var option=$("<option value='"+d[i][0]+"'>"+d[i][1]+"</option>");
                    areaSelect.append(option);
               } 
                 $(ev.target).after(areaSelect);               
              }
        
        });
    }
    
    function checkArea()
    {
    
      var sels= $("#selects select"); 
      var str="";    
      for(var i=0;i<sels.length;i++)
      {
        if(sels[i].value=="0")
        {
            return paddr;
        }
        else
        {
            str+=sels[i].value+"|";
        }
      }
     
     
      $("#hidArea").val(str); 
       return true;        
    }
    
    function Initialization(obj,str)  //初始化多级联动框，适合编辑和修改的情况下使用
    {   
        //alert(str);           
        if(str!="")
        {    
        var ind=str.indexOf("|");
        var str1=str.substring(0,ind);
        var str2=str.substring(ind+1);
        obj.val(str1).change();  
            xunhuan(obj,str2); 
        }             
    }
    
    function xunhuan(obj,strs) //判断是否生成下级，如果生成，继续初始化，否则继续判断
    {
       if(obj.next().val())
            Initialization(obj.next(),strs);
       else
            window.setTimeout(xunhuan,50,obj,strs);
    }
    
    //以下为重写 window.setTimeout
 var __sto = setTimeout;
window.setTimeout = function(callback,timeout,param)
{
    var args = Array.prototype.slice.call(arguments,2);
    var _cb = function()
    {
        callback.apply(null,args);
    }    
    __sto(_cb,timeout);
}
