﻿// 用于多个地点多选的js文件
        function HideDiv()
        {
            document.getElementById("province_common").selectedIndex=0;
            if(divP==null) divP=document.getElementById("DivProvince");
            divP.innerText="";
            if(divC==null) divC=document.getElementById("citys");
            divC.innerText="";
            if(divD==null) divD=document.getElementById("Divdistricts");
            divD.innerText="";
            if(divR==null) divR=document.getElementById("DivResult");
            divR.innerText="";
            closeLayer();
          
        }

        var divP=document.getElementById("DivProvince");
        var divC=document.getElementById("citys");
        var divD=document.getElementById("Divdistricts");
        var divR=document.getElementById("DivResult");
        
        //用于注册页面
        function showResult(text,value)
        {
            document.getElementById('btnCity').value = text.lenght > 5 ?text.substring(0,2)+'..':text;
            document.getElementById('hidCName').value = text;
            document.getElementById('hidCID').value=value;            
        }    
        function getData()
        {
            var p=document.getElementById("province_common");
            LoadProvince(p);
        }
        
        function readCitys(d)
        {
            if(d.text!="省份名称")
            {
                var c=LoadCity(d.value);
                var prefix="chk";
                var afix="a";
                if (divP==null)
                {
                    divP=document.getElementById("DivProvince");
                }
                 /*--------------删除省份区域中的子元素-------------*/
                for(p_i=divP.childNodes.length-1;p_i>=0;p_i--)
                {
                    divP.removeChild(divP.childNodes[p_i]);
                }
                
                /*--------------在省份区域中的增加子元素-------------*/
                var profix="pro";
                var prospan=document.createElement("span");
                var prospan_child=document.createElement("span");
                prospan_child.innerHTML="<a id='"+profix+i+"' onmouseover=\"this.style.cursor='pointer';\" onclick=\"showResult('"
                    +d.text+"','"+d.value+"');HideDiv();\" title ='"+ d.text +"'><b>"+ d.text +"</b></a>"
                prospan.appendChild(prospan_child);
                divP.appendChild(prospan);
                
                if(divC==null) divC=document.getElementById("citys");
                /*--------------删除城市区域中的子元素-------------*/
                for(j=divC.childNodes.length-1;j>=0;j--)
                {
                    divC.removeChild(divC.childNodes[j]);
                }
                
                if(divD==null) divD=document.getElementById("Divdistricts");
                /*--------------删除县区区域中的子元素-------------*/
                for(j=divD.childNodes.length-1;j>=0;j--)
                {
                    divD.removeChild(divD.childNodes[j]);
                }
                /*-------------在城市名称显示的区域中增加城市子元素-------------onclick='selectDistrict(this)'<u></u>*/
                var tbl=document.createElement("table");
                tbl.border="0";
                tbl.width="100%";
                tbl.cellpadding="0";
                tbl.cellspacing="1";
                //tbl.style="fong:12px";
                var rowCount=(c.length%4==0)?c.length/4:((c.length)-(c.length)%4)/4+1;
                var row;
              
                for(i=0;i<4*rowCount;i++)
                {      
                  var td = document.createElement("td");
                   td.width="20%";
                   td.height="20px";
                   td.valign="top";
                    if(i<c.length)
                    {
                        var o=c[i];
                        var span_child=document.createElement("span");
                        var span=document.createElement("span");
                        span_child.innerHTML="<a id='"+afix+i+"' onmouseover=\"this.style.cursor='pointer';\" style=\"font-size:12px;\" onclick=\"showResult('"
                        +o.text+"','"+o.value+"');HideDiv();\" title ='"+ o.text +"'><u>"+ (o.text.length > 8 ? o.text.substring(0,8)+'..':o.text) +"</u></a>"
                        span_child.id="sp"+i;
                        span.appendChild(span_child);
                        td.appendChild(span);
                    }
                    if(i%4==0)
                    {                       
                       row=document.createElement("tr");                        
                       tbl.appendChild(row);
                    }   
                    row.appendChild(td);                               
                }  
                if(Sys.firefox) 
                {             
                    divC.appendChild(tbl);                 
                }
                else
                {
                    divC.innerHTML=tbl.outerHTML;
                }
                setStatus();      
            }
            //如果选择了"请选择",则将各个区域中的数据删除
            else
            {
                for(p=divP.childNodes.length-1;p>=0;p--)//删除省区域
                {
                    divP.removeChild(divP.childNodes[p]);
                }
                for(c=divC.childNodes.length-1;c>=0;c--)//删除市区域
                {
                    divC.removeChild(divC.childNodes[c]);
                }
                for(d=divD.childNodes.length-1;d>=0;d--)//删除县区
                {
                    divD.removeChild(divD.childNodes[d]);
                }
            }
                  
        }
        
        
        /*如果结果区域有与上面备选区域中的省\市\县区,那么备选择区域中的复选框为被选中状态*/
        function setStatus()
        {

                if(divR==null) divR=document.getElementById("DivResult");
                if(divP==null) divP=document.getElementById("DivProvince");
                if(divC==null) divC=document.getElementById("citys");
                if(divD==null) divD=document.getElementById("Divdistricts");
               
                for(iselect=divR.childNodes.length-1;iselect>=0;iselect--)
                {
                    var rid=divR.childNodes[iselect].firstChild.value;
                    //从结果区域读取选择地区类型,如果是省,则直接在省的区域将其子元素的选择情况设置为选中
                    if(rid.substring(2,6)=='0000')
                    {
                        if(rid==divP.childNodes[0].firstChild.value)
                        {
                            divP.childNodes[0].firstChild.checked=true;
                            disableCity(divP.childNodes[0].firstChild);
                        }                    
                    }
                    //如果结果区域中选择的是市,则从市的区域中将相应的城市设置为选中状态
                    else if(rid.substring(2,4)!="00")
                    {                    
                        for(j=divC.childNodes.length-1;j>=0;j--)
                        {
                            if(divC.childNodes[j].firstChild.value==rid)
                            {
                                divC.childNodes[j].firstChild.checked=true;
                            }
                        }
                    }
                    //如果结果区域中选择的是县区的名,则从县区区域中将相应的县区设置为选中状态
                    else if(rid.substring(4,6)!='00')
                    {
                        for(t=divD.childNodes.length-1;t>=0;t--)
                        {
                            if(divD.childNodes[t].firstChild.value==rid)
                            {
                                divD.childNodes[t].firstChild.checked=true;
                            }
                        }                    
                    }
                }
        }
        
        /*如果选择城市名称前的复选框,则在下面的选择结果中出现该城市的名字*/
        /*如果复选框选择了一个城市,但是这个城市中的某个县区已经在选择结果中,这时,应该将该城市的这个县区
          从选择结果的Div中删除,然后直接将该市添加进来,否则,选择结果中既有该市,又有该市中的某个县区会造成
          意义不明确
        */
        function chooseLocation(theloc)
        {
                if(divR==null) divR=document.getElementById("DivResult");
                if(divP==null) divP=document.getElementById("DivProvince");
                if(divC==null) divC=document.getElementById("citys");
                if(divD==null) divD=document.getElementById("Divdistricts");
             /*如果被传入的对象是被选中的状态，如果该对象是省的编号，如果结果区域中若有该省的下属城市或地区，则
             在结果区域中将该省的下属城市和县区清除，如果该对象是城市编号，如果结果区域中有该城市的上级省级地点编号，
             则提示“结果区域中有其上级省直单位编号，不能添加”，如果结果区域中存在该城市的下属县区编号，则
             该县区将被清除，同时选择的城市被添加进结果区域中。如果该对象是县区编号，如果结果区域中存在该县区
             上级城市或省的编号，则提示“结果区域中有其上级城市或省直单位编号，不能添加”，否则，添加成功。
             */  
             var addcitiname="<a style='cursor:pointer'>"+theloc.nextSibling.innerText+"</a>";
             if(theloc.checked)
             { 
                if(theloc.value.substring(2,6)=='0000')//判断点击的是省，则去掉结果区域中与该省相关的城市或县区
                {
                    for(iprovince=divR.childNodes.length-1;iprovince>=0;iprovince--)
                    {
                        var thevalue=divR.childNodes[iprovince].firstChild.value;
                        if(thevalue.substring(0,2)==theloc.value.substring(0,2))
                        {
                            divR.removeChild(divR.childNodes[iprovince]);
                            disableCity(theloc); 
                        }
                    }
                }  
                /*判断点击的是城市，如果结果区域中存在其上级省直单位，则提示不能添加，如果结果区域中存在
                其下属县区，则先将其下属县区在结果区域中清除后，在将城市添加进来*/
                else if(theloc.value.substring(2,4)!='00' & theloc.value.substring(4,6)=='00')
                {
                    for(icity=divR.childNodes.length-1;icity>=0;icity--)
                    {
                        var thevalue=divR.childNodes[icity].firstChild.value;
                        if(thevalue.substring(0,2)==theloc.value.substring(0,2) & thevalue.substring(2,6)=='0000')
                        {
                            alert("结果区域中存在该城市的上级省单位，不能添加该城市");
                            theloc.checked=false;
                            return false;
                        }
                        else if(thevalue.substring(0,4)==theloc.value.substring(0,4) & thevalue.substring(4,6)!='00')
                        {
                            //在将县区从选择区域中删除之前,如果在县区区域中的对应县区为选中状态,则选中状态被取消
                            for(d=divD.childNodes.length-1;d>=0;d--)
                            {
                                if(divD.childNodes[d].firstChild.value==divR.childNodes[icity].firstChild.value)
                                {
                                    if(divD.childNodes[d].firstChild.checked)
                                    {
                                        divD.childNodes[d].firstChild.checked=false;
                                    }
                                }
                            }
                            divR.removeChild(divR.childNodes[icity]);                            
                        }
                    }
                } 
                /*判断点击的地点如果是县区，如果结果区域中存在其上级城市或省，则提示添加失败，否则添加成功*/
                else if(theloc.value.substring(2,4)!='00' & theloc.value.substring(4,6)!='00')
                {
                    for(idis=divR.childNodes.length-1;idis>=0;idis--)
                    {
                        var thevalue=divR.childNodes[idis].firstChild.value;
                        if(thevalue.substring(0,4)==theloc.value.substring(0,4) & thevalue.substring(4,6)=='00')
                        {
                            alert("结果区域中存在该县区的上级地点，不能添加");
                            theloc.checked=false;
                            return false;
                        }                                                       
                    }
                    var tmpName=LoadCity(theloc.value.substring(0,2)+'0000');
                    var theName=null;
                    for(i=0;i<tmpName.length;i++)
                    {
                        if(tmpName[i].value.substring(0,4)==theloc.value.substring(0,4))
                        {
                            theName=tmpName[i].text;
                        }
                    } 
                    addcitiname="<a style='cursor:pointer'>"+theName+'--'+theloc.nextSibling.innerText+"</a>";
                }         
                if(divR.childNodes.length==1)
                {
                    alert("只能选择1个地点!");
                    theloc.checked=false;
                    return false;
                }                       
                var profix="divr";
                var i=divR.childNodes.length;
                var prospan=document.createElement("span");
                var strpro="<input id='"+profix+i+"' checked type='checkbox' value='"+  theloc.value +"' onclick='chooseLocation(this)'>";
                var prochk=document.createElement(strpro);
                var prospan_child=document.createElement("span");
                prospan_child.innerHTML=addcitiname;
                prospan.appendChild(prochk);
                prospan.appendChild(prospan_child);
                                
                divR.appendChild(prospan);
                            
             }
             /*如果被传入的对象的复选框选中被取消，如果在结果区域中发现与点击的地点的编号一致，
             则从结果区域中将该地点清除，如果该值与省的地点编号相同，则在省区域中的选择被去掉*/
             else
             {
                 for(i=divR.childNodes.length-1;i>=0;i--)
                 {
                     if(divR.childNodes[i].firstChild.value==theloc.value)
                     {                         
                         divR.removeChild(divR.childNodes[i]);
                         if(divP.childNodes[0].firstChild.value==theloc.value)
                         {
                             divP.childNodes[0].firstChild.checked=false;
                         }
                         else if(theloc.value.substring(2,4)!='00' & theloc.value.substring(4,6)=='00')
                         {
                             for(jcity=divC.childNodes.length-1;jcity>=0;jcity--)
                             {
                                 if(divC.childNodes[jcity].firstChild.value==theloc.value)
                                 {
                                     divC.childNodes[jcity].firstChild.checked=false;
                                 }
                             }
                         } 
                         else if(theloc.value.substring(4,6)!='00')
                         {
                             for(jdis=divD.childNodes.length-1;jdis>=0;jdis--)
                             {
                                 if(divD.childNodes[jdis].firstChild.value==theloc.value)
                                 {
                                     divD.childNodes[jdis].firstChild.checked=false;
                                 }
                             }
                         }                        
                     }
                 }
              
                 
             }
             /*如果结果区域中的被取消选择的是省份的名字，则对应省份区域中的选择也同时取消，
             同时该省的下属城市的复选都变为可用状态*/
             if(theloc.value.substring(2,6)=="0000")
             {
                 var targetDiv=divP.childNodes[0].firstChild;
                 disableCity(targetDiv);
             }             
             
        }
        /*--------------如果点城市的名称，则在县区区域中显示该城市的县区-------------*/
        function selectDistrict(v)
        {
            var chk=document.getElementById(v.id).parentNode.parentNode.firstChild;
            var chkValue=chk.value.substring(0,4);
            var flag=true;
            if(divD==null) divD=document.getElementById("Divdistricts");
            for(i=Divdistricts.childNodes.length-1;i>=0;i--)
            {   
                if(divD.childNodes[i].childNodes.length>1)
                { 
                                
                    if(divD.childNodes[i].firstChild.value.substring(0,4)==chkValue)
                    {
                        divD.removeChild(divD.childNodes[i]);
                        flag=false;                       
                    }
                }

            }
            if(!flag)
            {
                return;
            }
             /*--------------删除县区区域中的子元素-------------*/
                for(j=divD.childNodes.length-1;j>=0;j--)
                {
                    divD.removeChild(divD.childNodes[j]);
                }
            /*在建立县区区域元素的时候统一格式为两个子元素组成一个元素*/
            /*两个子元素分别是<input type='checkbox' value="地区编号"/><span value="地区编号"></span>*/
            /*或者<span value="地区编号">地区名</span><br>或者<span value="地区编号前"></span><br>*/
            /*这样建立了统一格式可以方便上面的删除操作*/
            var district=LoadDistrict(chk.getAttribute('value'));
            var prefix="chk_d";
            var span_title=document.createElement("span");
            var span_foot=document.createElement("span");
            span_title.innerHTML="<span value='"+chkValue+"'><b>"+document.getElementById(v.id).innerText+"</b></span><br>";
            span_foot.innerHTML="<span value='"+chkValue+"'></span><br>";
            divD.appendChild(span_title);
            for(i=0;i<district.length;i++)
            {
                var o=district[i];
                var strchk="<input id='"+prefix+i+"' type='checkbox' value='"+o.value+"' onclick='chooseLocation(this)' />"; 
                for(j=0;j<=divR.childNodes.length-1;j++)
                {
                    if(divR.childNodes[j].firstChild.value==o.value)
                    {
                        strchk="<input id='"+prefix+i+"' checked type='checkbox' value='"+o.value+"' onclick='chooseLocation(this)' />";    
                    }
                }                
                var chkcity=document.createElement(strchk);
                var span_child=document.createElement("span");
                var span=document.createElement("span");
                span_child.innerHTML="<a>"+o.text+"</a>"
                span.appendChild(chkcity);
                span.appendChild(span_child);                                            
                divD.appendChild(span);            
            }   
             divD.appendChild(span_foot);  
         
        }
        
        /*--------------如果省份被选中，则其下的所有城市和县区的选择将都不可以用-------------*/
        function disableCity(disablePro)
        {
            var d=document.getElementById(disablePro.id);
            if(d.checked)//如果省被选中,则其下的所有城市的名字和复选都失效
            {
                for(i=0;i<citys.childNodes.length;i++)
                {
                    var incityDiv=citys.childNodes[i].firstChild;
                    incityDiv.setAttribute('disabled','disabled'); 
                    incityDiv.checked=false;
                    var incitySpan=incityDiv.nextSibling;
                }
                
                for(j=0;j<divD.childNodes.length;j++)
                {
                    var indisDiv=divD.childNodes[j].firstChild;
                    indisDiv.setAttribute('disabled','disabled');
                    indisDiv.checked=false;
                }
            }
            else//如果复选去掉,则所有的功能恢复
            {
                for(i=0;i<divC.childNodes.length;i++)
                {
                    var incityDiv=divC.childNodes[i].firstChild;
                    incityDiv.setAttribute('disabled','');
                }
                for(i=0;i<divD.childNodes.length;i++)
                {
                    var indisDiv=divD.childNodes[i].firstChild;
                    indisDiv.setAttribute('disabled','');
                }
            }
        }