﻿    //生成城市列表
    function setCity(provinceid,elemCity,defaultCityId,parentDiv,showDiv,showClassItem)
    {
       var divCityItem;
       divCityItem = document.getElementById("tmp_" + elemCity + "_" + provinceid);
       
       if(!divCityItem&&provinceid!=""&&provinceid!="0")
       {  
            var i,j;
            var isClass;
            var divWidth;
            var tmp_elemCity;
            
            divCityItem=getElem("tmp_" + elemCity + "_" + provinceid,"div",parentDiv); 
            divCityItem.innerHTML="";
            divCityItem.style.position="absolute";
            divCityItem.style.backgroundColor="#FFFCF3";
            divCityItem.style.height="170px";
            divCityItem.style.width="490px";

            for(j=0;j<arrcity.length;j++)
            {
                if(arrcity[j].classid==provinceid)
                {
                    if(showClassItem || arrcity[j].itemid < 1000)
                    {
                        isClass = (arrcity[j].itemid>=1000 ? true : false);
                        divCityItem.innerHTML += "<div style=\"float:left;width:" + (isClass ? "100%" : "80px") + ";\"><input onclick=\"return checkItem(this,'" + elemCity + "','" + showDiv + "'," + isClass + ")\" type=\"checkbox\" name=\"tmp_" + elemCity + "\" id='tmp_" + elemCity + arrcity[j].itemid + "' value=\"" + arrcity[j].itemid + "\"" + (IsItemChecked(arrcity[j].itemid,defaultCityId)?" checked=\"checked\"":"") + " /><label for='tmp_" + elemCity + arrcity[j].itemid + "'>" + (isClass ? "<b>" + arrcity[j].itemname + "</b>" : arrcity[j].itemname) + "</label></div>";
                        if(IsItemChecked(arrcity[j].itemid,defaultCityId))
                        {
                            tmp_elemCity=document.getElementById("tmp_" + elemCity + arrcity[j].itemid);
                            AddCheckItem(showDiv,tmp_elemCity);
                        }
                    }
                }
            }

            var chkClass = document.getElementById("tmp_" + elemCity + (provinceid * 1000));
            if(chkClass)if(chkClass.checked) disableItem(showDiv,chkClass,elemCity);
        }
    }
    
   //生成省份列表 
   function setProvince(elem,defaultid)
   {
        var i;
        elem.add(new Option(arrlang[0],"0")); 
        for(i=0;i<arrpro.length;i++)
        {
            elem.add(new Option(arrpro[i].classname,arrpro[i].classid));
        }
        if(defaultid==null||defaultid=="")
            elem.value="0";
        else
            elem.value=defaultid;
   }

   function getCitySelecter(sender,elemProvince,elemCity,showClassItem)
   {
	   
        var defaultProvinceId = document.getElementById(elemProvince).value;
        var defaultCityId = document.getElementById(elemCity).value;
        sender.value = getSelectedCityName(defaultCityId);
        
        var tmp_elemProvince = "tmp_" + elemProvince;
        var tmp_elemCity = "tmp_" + elemCity;
        var tmp_divMain = elemProvince + elemCity + "_divMain";
        var tmp_divTitle = elemProvince + elemCity + "_divTitle";
        var tmp_divClass= elemProvince + elemCity + "_divClass";
        var tmp_divItem= elemProvince + elemCity + "_divItem";
        var tmp_divShow = elemProvince + elemCity + "_divShow"; 
        var tmp_iframe= elemProvince + elemCity + "_iframe";
      
        if(document.getElementById(tmp_divMain))
        { 
            showCity(elemProvince,elemCity);
            return; 
        } 
        
        //创建主显示层
        var divMain=getElem(tmp_divMain,"div",document.body);
        divMain.style.textAlign="left";
        divMain.style.width="500px";
        divMain.style.height="280px";
        divMain.style.padding="3px";
        divMain.style.borderLeft="1px solid #999999";
        divMain.style.borderTop="1px solid #999999";
        divMain.style.borderRight="5px solid #999999";
        divMain.style.borderBottom="5px solid #999999";
        divMain.style.backgroundColor="#FFFCF3"; 
        divMain.style.position="absolute";
        divMain.style.zIndex="999999";
        divMain.style.left=getObjLeft(sender)-100; //+sender.offsetWidth/4;
        divMain.style.top=getObjTop(sender)+sender.offsetHeight/2;
        divMain.style.display="none";
        divMain.onselectstart=function(){ return false; }
       
        //创建框架，防止层被其它控件覆盖
        var iframe=getElem(tmp_iframe,"iFrame",document.body);
        iframe.style.position="absolute";
        iframe.style.padding=divMain.style.padding;
        iframe.style.border=divMain.style.border;
        iframe.style.width=divMain.style.width;
        iframe.style.height=divMain.style.height;
        iframe.style.left=divMain.style.left;
        iframe.style.top=divMain.style.top;
        iframe.style.zIndex=divMain.style.zIndex-1;
        iframe.style.display="none"; 

        //创建标题层
        var divTitle=getElem(tmp_divTitle,"div",divMain);
        divTitle.style.width="500px";
        divTitle.style.backgroundColor="#FFE4A0";
        divTitle.innerHTML="<div style=\"float:left;padding:5px;font-weight:bold;\"><img src=\"http://image.goodjob.cn/Image/search_dot02.gif\" style=\"border:0px;\" align=\"absmiddle\" />&nbsp;" + arrlang[1] + "</div><div style=\"float:right;text-align:right;padding:5px;\"><a href=\"javascript:\" onclick=\"hiddenCity('" + elemProvince + "','" + elemCity + "',document.getElementById('" + sender.id + "'));\">[" + arrlang[2] + "]</a></div>"
        
        //处理拖动开始
        divTitle.onmousedown=function(){
            curMoveObj=divMain;
            curMoveIframe=iframe;
            //curMoveObj.setCapture();
            pX=event.x-curMoveObj.style.pixelLeft;
            pY=event.y-curMoveObj.style.pixelTop;
        }

        //创建省份选择层 
        var divClass=getElem(tmp_divClass,"div",divMain);
        divClass.style.padding="5px";
        divClass.style.clear="both";
        
        divClass.innerHTML=arrlang[3];
        var selprovince=getElem(tmp_elemProvince,"select",divClass);
        
       //创建城市选择层 
       var divItem=getElem(tmp_divItem,"div",divMain);
       divItem.style.padding="5px";
       divItem.style.height="180px";
       divItem.style.clear="both";
       divItem.onclick=function(){ sender.focus(); }
       
       //创建已选城市层
       var divShow=getElem(tmp_divShow,"div",divMain);
       divShow.style.padding="5px";
       divShow.style.height="20px";
       divShow.style.clear="both";
       //divShow.style.borderBottom="5px solid #cccccc";
       divShow.onclick=function(){ sender.focus(); }
       
       setProvince(selprovince,defaultProvinceId);
       var arrcityid=defaultCityId.split(",");
       var i;
       var pid
       for(i=0;i<arrcityid.length;i++)
       {
            pid=getProvinceID(arrcityid[i]);
            selprovince.value=pid;
            setCity(pid,elemCity,defaultCityId,divItem,tmp_divShow,showClassItem);
       }
       
       //实现省份选择事件
       selprovince.onchange=function(){
            document.getElementById(elemProvince).value=selprovince.value;
            var i; 
            var div_province;
            setCity(selprovince.value,elemCity,defaultCityId,divItem,tmp_divShow,showClassItem);
            if(selprovince.value!=""&&selprovince.value!="0")
            {
                for(i=0;i<arrpro.length;i++)
                {
                    div_province = document.getElementById(tmp_elemCity + "_" + arrpro[i].classid);
                    if(div_province)
                        if(arrpro[i].classid==parseInt(selprovince.value))
                            div_province.style.zIndex=1;
                        else
                            div_province.style.zIndex=0;
                }
            }
       }
       
       //点击页面其它地方关闭选择器
//       sender.onblur=function(){
//            if(event.x<getInt(divMain.style.left)||event.y<getInt(divMain.style.top)||event.x>getInt(divMain.style.width)+getInt(divMain.style.left)||event.y>getInt(divMain.style.height)+getInt(divMain.style.top))
//            { 
//               hiddenCity(elemProvince,elemCity,sender);
//            }
//       } 
   }
   
   function getProvinceID(cityid)
   {
        var i;
        for(i=0;i<arrcity.length;i++)
        {
            if(arrcity[i].itemid==cityid)
                return arrcity[i].classid; 
        }
        return 0; 
   }
   
   function getCityName(cityid)
   {
        var i;
        for(i=0;i<arrcity.length;i++)
        {
            if(arrcity[i].itemid==cityid)
                return arrcity[i].itemname; 
        }
        return ""; 
   }
   
   function getSelectedCityName(idstr)
   {
        if(idstr=="")
            return "";
        if(idstr.indexOf(",")==-1)
            return getCityName(idstr);
        var arrid=idstr.split(",");
        var i;
        var rvalue="";
        for(i=0;i<arrid.length;i++)
        {
            var cityName = getCityName(arrid[i]);
            if(rvalue=="")
                rvalue = cityName;
            else
                if(cityName != "")
                { rvalue += "、" + cityName; }
        }
        return rvalue;
   }
   
   function AddCheckItem(elemstr,tmp_elemCity)
   {
        var divShow=document.getElementById(elemstr);
        var divItem=getElem(elemstr + "_" + tmp_elemCity.value,"span",divShow);
        divItem.style.textDecoration="underline";
        divItem.style.paddingRight="10px";
        divItem.style.cursor="hand";
        divItem.title=arrlang[4];
        divItem.innerHTML="<label for='" + tmp_elemCity.id + "'><img src=\"http://image.goodjob.cn/image/ico_del.gif\" align=\"absmiddle\" /> " + getCityName(tmp_elemCity.value) + "</label>";
        //divItem.innerHTML="<label for='" + tmp_elemCity.id + "'>" + getCityName(tmp_elemCity.value)+ "</label>";
   }
   
   function DelCheckItem(elemstr,tmp_elemCity,elemCity)
   {
        var divShow=document.getElementById(elemstr);
        var val=elemCity.value.split(",");
        var i;
        var cityvalue="";  
        for(i=0;i<val.length;i++)
        {
            if(val[i]!=tmp_elemCity.value)
            { 
                if(cityvalue=="")
                    cityvalue = val[i];
                else
                    cityvalue += ',' + val[i];
            }
        }
        elemCity.value = cityvalue;
        divShow.removeChild(document.getElementById(elemstr + "_" + tmp_elemCity.value));
   }
   
   function checkItem(tmp_elemCity,elemstr,tmp_divShow,isClass)
   {
        var elemCity=document.getElementById(elemstr);
        var divShow=document.getElementById(tmp_divShow); 
        
        if(tmp_elemCity.checked)
        {
            if(elemCity.value=="")
            { 
                elemCity.value = tmp_elemCity.value;
                //divShow.innerHTML += getCityName(tmp_elemCity.value);
                AddCheckItem(tmp_divShow,tmp_elemCity);
            }
            else
            { 
                var val=elemCity.value.split(",");
                if(val.length>4)
                {
                    alert(arrlang[5]);  
                    return false; 
                }
                elemCity.value += ',' + tmp_elemCity.value;
                //divShow.innerHTML += getCityName(tmp_elemCity.value);
                AddCheckItem(tmp_divShow,tmp_elemCity);
            } 
            if(isClass) disableItem(tmp_divShow,tmp_elemCity,elemstr);
        }
        else
        {
            DelCheckItem(tmp_divShow,tmp_elemCity,elemCity);
            if(isClass) enabledItem(tmp_elemCity,elemstr);
        }
   }
   
   function disableItem(tmp_divShow,tmp_elemCity,elemstr)
   {
        var elemCity=document.getElementById(elemstr);
        var classid=tmp_elemCity.value / 1000;
        var i;
        var item;
        for(i=0;i<arrcity.length;i++)
        {
            if(arrcity[i].classid==classid && arrcity[i].itemid<1000)
            {
                item = document.getElementById("tmp_" + elemstr + arrcity[i].itemid);
                if(item.checked)
                {
                    item.checked = "";
                    DelCheckItem(tmp_divShow,item,elemCity);
                }
                item.disabled = "disabled";
            }
        }
   }
   
   function enabledItem(tmp_elemCity,elemstr)
   {
        var classid=tmp_elemCity.value / 1000;
        var i;
        var item;
        
        for(i=0;i<arrcity.length;i++)
        {
            if(arrcity[i].classid==classid && arrcity[i].itemid<1000)
            {
                item = document.getElementById("tmp_" + elemstr + arrcity[i].itemid);
                item.disabled = "";
            }
        }
   }
   
   function IsItemChecked(itemid,defaultid)
   {
        var defaultidstr="," + defaultid + ",";
        var itemidstr="," + itemid + ",";
        if(defaultidstr.indexOf(itemidstr)!=-1)
            return true;
        else
            return false;    
   }
   
   function showCity(elemProvince,elemCity)
   {
        var divMain=document.getElementById(elemProvince + elemCity + "_divMain");
        var iframe=document.getElementById(elemProvince + elemCity + "_iframe"); 
        divMain.style.display="";
        iframe.style.display=""; 
   }
   
   function hiddenCity(elemProvince,elemCity,sender)
   {
        var divMain=document.getElementById(elemProvince + elemCity + "_divMain");
        var iframe=document.getElementById(elemProvince + elemCity + "_iframe"); 
        var txtCity=document.getElementById(elemCity);
        
        divMain.style.display="none";
        iframe.style.display="none";
        sender.value=getSelectedCityName(txtCity.value);
   }
