﻿    //生成城市列表
    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="190px";
            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);
                        isImportantCity = ((arrcity[j].itemid==724||arrcity[j].itemid==725||arrcity[j].itemid==10)? true : false); 
		        isSubCity = ((arrcity[j].itemid == 1 || arrcity[j].itemid == 3 || arrcity[j].itemid == 726)? true : false);
			isQingyuanCity = ((arrcity[j].itemid == 726 || arrcity[j].itemid == 727 || arrcity[j].itemid == 728 || arrcity[j].itemid == 729 || arrcity[j].itemid == 730 || arrcity[j].itemid == 731 || arrcity[j].itemid == 732 || arrcity[j].itemid == 733)? true : false);
          divCityItem.innerHTML += "<div style=\"float:left;width:" + (isSubCity ? "14px" : "0px") + ";\">&nbsp;</div><div style=\"float:left;width:" + ((isClass || isImportantCity) ? "100%" : (isQingyuanCity ? "58px" :"68px")) + ";\"><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[elem.length] = new Option(arrlang[0],"0"); 
        for(i=0;i<arrpro.length;i++)
        {
            elem[elem.length] = new Option(arrpro[i].classname, arrpro[i].classid);
        }
        if(defaultid==null||defaultid=="")
            elem.value="1";
        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="290px";
        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)+sender.offsetWidth/4) + "px";
        divMain.style.top=(getObjTop(sender)+sender.offsetHeight/2) + "px";
        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.style.overflow = "auto";
        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:hiddenCity('" + elemProvince + "','" + elemCity + "',document.getElementById('" + sender.id + "'));\">[" + arrlang[2] + "]</a></div>"
        
        //处理拖动开始
        divTitle.onmousedown=function(evt){
            curMoveObj=divMain;
            //curMoveIframe=iframe;
            pX=evt.pageX-getInt(curMoveObj.style.left);
            pY=evt.pageY-getInt(curMoveObj.style.top);
        }

        //创建省份选择层 
        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="190px";
       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="pointer";
        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 delSubItem(elemstr,tmp_elemCity,elemCity)
{
  var divShow=document.getElementById(elemstr);
  var val=elemCity.value.split(",");
  var i;
  var cityvalue="";
  switch(tmp_elemCity)
  {
    case "724":
    for(i=0;i<val.length;i++)
    {
      switch(val[i])
      {
        case "1":
        case "2":
        case "28":
        case "25":
        case "26":
        case "27":
        break;
        default:
        if(cityvalue=="")
        cityvalue = val[i];
        else
        cityvalue += "," + val[i];
        break;
      }
    }
    break;
    case "725":
    for(i=0;i<val.length;i++)
    {
      switch(val[i])
      {
        case "3":
        case "4":
        case "45":
        case "46":
        case "47":
        break;
        default:
        if(cityvalue=="")
        cityvalue = val[i];
        else
        cityvalue += "," + val[i];
        break;
      }
    }
    break;
    case "10":
    for(i=0;i<val.length;i++)
    {
      switch(val[i])
      {
        case "726":
        case "727":
        case "728":
        case "729":
        case "730":
        case "731":
        case "732":
		case "733":
        break;
        default:
        if(cityvalue=="")
        cityvalue = val[i];
        else
        cityvalue += "," + val[i];
        break;
      }
    }
    break;
  }
  elemCity.value = cityvalue;
  divShow.removeChild(document.getElementById(elemstr + "_" + tmp_elemCity.value));
}
//禁用指定项
function disableImpItem(tmp_divShow,tmp_elemCity,elemstr)
{
  var subItems = new Array();
  var itemvalue = tmp_elemCity.value;
  var elemCity=document.getElementById(elemstr);
  var j;
  switch(itemvalue)
  {
    case "724":
    subItems[0] = document.getElementById("tmp_" + elemstr + "1");
    subItems[1] = document.getElementById("tmp_" + elemstr + "2");
    subItems[2] = document.getElementById("tmp_" + elemstr + "25");
    subItems[3] = document.getElementById("tmp_" + elemstr + "26");
    subItems[4] = document.getElementById("tmp_" + elemstr + "27");
    subItems[5] = document.getElementById("tmp_" + elemstr + "28");
	for(j=0;j<subItems.length;j++)
	{
	    if(subItems[j].checked)
		{
		    subItems[j].checked = "";
			delSubItem(tmp_divShow,subItems[j],elemCity);
		}
	    subItems[j].disabled = "disabled";
	}
    break;
    case "725":
    subItems[0] = document.getElementById("tmp_" + elemstr + "3");
    subItems[1] = document.getElementById("tmp_" + elemstr + "4");
    subItems[2] = document.getElementById("tmp_" + elemstr + "45");
    subItems[3] = document.getElementById("tmp_" + elemstr + "46");
    subItems[4] = document.getElementById("tmp_" + elemstr + "47");
    for(j=0;j<subItems.length;j++)
	{
	    if(subItems[j].checked)
		{
		    subItems[j].checked = "";
			delSubItem(tmp_divShow,subItems[j],elemCity);
		}
	    subItems[j].disabled = "disabled";
	}
	break;
    case "10":
    subItems[0] = document.getElementById("tmp_" + elemstr + "726");
    subItems[1] = document.getElementById("tmp_" + elemstr + "727");
    subItems[2] = document.getElementById("tmp_" + elemstr + "728");
    subItems[3] = document.getElementById("tmp_" + elemstr + "729");
    subItems[4] = document.getElementById("tmp_" + elemstr + "730");
    subItems[5] = document.getElementById("tmp_" + elemstr + "731");
    subItems[6] = document.getElementById("tmp_" + elemstr + "732");
	subItems[6] = document.getElementById("tmp_" + elemstr + "733");
    for(j=0;j<subItems.length;j++)
	{
	    if(subItems[j].checked)
		{
		    subItems[j].checked = "";
			delSubItem(tmp_divShow,subItems[j],elemCity);
		}
	    subItems[j].disabled = "disabled";
	}
	break;
  }
}
function checkItem(tmp_elemCity,elemstr,tmp_divShow,isClass)
{
  var elemCity=document.getElementById(elemstr);
  var divShow=document.getElementById(tmp_divShow);
  if(tmp_elemCity.checked)
  {
    disableImpItem(tmp_divShow,tmp_elemCity,elemstr);
    if(elemCity.value=="")
    {
      elemCity.value = 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;
      AddCheckItem(tmp_divShow,tmp_elemCity);
    }
    if(isClass) disableItem(tmp_divShow,tmp_elemCity,elemstr);
  }
  else
  {
    enableSubItem(tmp_elemCity,elemstr);
    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 enableSubItem(tmp_elemCity,elemstr)
{
    switch(tmp_elemCity.value)
    {
        case "724":
            document.getElementById("tmp_" + elemstr + "1").disabled = "";
            document.getElementById("tmp_" + elemstr + "2").disabled = "";
            document.getElementById("tmp_" + elemstr + "25").disabled = "";
            document.getElementById("tmp_" + elemstr + "26").disabled = "";
            document.getElementById("tmp_" + elemstr + "27").disabled = "";
            document.getElementById("tmp_" + elemstr + "28").disabled = "";
        break;
        case "725":
            document.getElementById("tmp_" + elemstr + "3").disabled = "";
            document.getElementById("tmp_" + elemstr + "4").disabled = "";
            document.getElementById("tmp_" + elemstr + "45").disabled = "";
            document.getElementById("tmp_" + elemstr + "46").disabled = "";
            document.getElementById("tmp_" + elemstr + "47").disabled = "";
        break;
        case "10":
            document.getElementById("tmp_" + elemstr + "726").disabled = "";
            document.getElementById("tmp_" + elemstr + "727").disabled = "";
            document.getElementById("tmp_" + elemstr + "728").disabled = "";
            document.getElementById("tmp_" + elemstr + "729").disabled = "";
            document.getElementById("tmp_" + elemstr + "730").disabled = "";
            document.getElementById("tmp_" + elemstr + "731").disabled = "";
            document.getElementById("tmp_" + elemstr + "732").disabled = "";
			document.getElementById("tmp_" + elemstr + "733").disabled = "";
        break;
		default:
		break;
   }
}
   
   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);
   }