﻿    //生成工种明细列表
    function setJob(classid,elemJob,defaultJobId,parentDiv,showDiv,showClassItem)
    {
       var divJobItem=document.getElementById("tmp_" + elemJob + "_" + classid);
       if(!divJobItem && classid!="" && classid!="0")
       {  
            var i,j;
            var divJobItem;
            var isClass;
            var divWidth;
            var tmp_elemJob;
            
            divJobItem=getElem("tmp_" + elemJob + "_" + classid,"div",parentDiv); 
            divJobItem.innerHTML="";
            divJobItem.style.position="absolute";
            divJobItem.style.backgroundColor="#FFFCF3";
            divJobItem.style.height= isEnglish ? "240px" : "170px";
            divJobItem.style.width= isEnglish ? "590px" : "490px";

            for(j=0;j<arrjob.length;j++)
            {
                if(arrjob[j].classid==classid)
                {
                    if(showClassItem || arrjob[j].itemid < 10000)
                    {
                        isClass = (arrjob[j].itemid>=10000 ? true : false);
                        divJobItem.innerHTML += "<div style=\"float:left;width:" + (isClass ? "100%" : (isEnglish ? "180px" : "120px")) + ";\"><input onclick=\"return checkJobItem(this,'" + elemJob + "','" + showDiv + "'," + isClass + ")\" type=\"checkbox\" name=\"tmp_" + elemJob + "\" id='tmp_" + elemJob + arrjob[j].itemid + "' value=\"" + arrjob[j].itemid + "\"" + (IsJobItemChecked(arrjob[j].itemid,defaultJobId)?" checked=\"checked\"":"") + " /><label for='tmp_" + elemJob + arrjob[j].itemid + "'>" + (isClass ? "<b>" + arrjob[j].itemname + "</b>" : arrjob[j].itemname) + "</label></div>";
                        if(IsJobItemChecked(arrjob[j].itemid,defaultJobId))
                        {
                            tmp_elemJob=document.getElementById("tmp_" + elemJob + arrjob[j].itemid);
                            AddCheckJobItem(showDiv,tmp_elemJob);
                        }
                    }
                }
            }
            var chkClass = document.getElementById("tmp_" + elemJob + (classid * 10000));
            if(chkClass)if(chkClass.checked) disableJobItem(showDiv,chkClass,elemJob);
        }  
    }
    
   //生成工种列表 
   function setClass(elem,defaultid)
   {
        var i;
        elem[elem.length] = new Option(arrjoblang[0],"0"); 
        for(i=0;i<arrclass.length;i++)
        {
            elem[elem.length] = new Option(arrclass[i].classname,arrclass[i].classid);
        }
        if(defaultid==null||defaultid=="")
            elem.value="0";
        else
            elem.value=defaultid;
   }

   function getJobSelecter(sender,elemClass,elemJob,showClassItem)
   {
        var defaultClassId = document.getElementById(elemClass).value;
        var defaultJobId = document.getElementById(elemJob).value;
        sender.value = getSelectedJobName(defaultJobId);
        
        var tmp_elemClass = "tmp_" + elemClass;
        var tmp_elemJob = "tmp_" + elemJob;
        var tmp_divMain = elemClass + elemJob + "_divMain";
        var tmp_divTitle = elemClass + elemJob + "_divTitle";
        var tmp_divClass= elemClass + elemJob + "_divClass";
        var tmp_divItem= elemClass + elemJob + "_divItem";
        var tmp_divShow = elemClass + elemJob + "_divShow"; 
        var tmp_iframe= elemClass + elemJob + "_iframe";
       
        if(document.getElementById(tmp_divMain))
        { 
            showJob(elemClass,elemJob);
            return; 
        } 
        
        //创建主显示层
        var divMain=getElem(tmp_divMain,"div",document.body);
        divMain.style.textAlign="left";
        divMain.style.width= isEnglish ? "700px" : "600px";
        divMain.style.height= isEnglish ? "480px" : "380px";
        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= isEnglish ? "600px" : "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;" + arrjoblang[1] + "</div><div style=\"float:right;text-align:right;padding:5px;\"><a href=\"javascript:hiddenJob('" + elemClass + "','" + elemJob + "',document.getElementById('" + sender.id + "'));\">[" + arrjoblang[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=arrjoblang[3];
        var selclass=getElem(tmp_elemClass,"select",divClass);
        
       //创建工种明细选择层 
       var divItem=getElem(tmp_divItem,"div",divMain);
       divItem.style.padding="5px";
       divItem.style.height= isEnglish ? "240px" : "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(); }
       
       setClass(selclass,defaultClassId);
       var arrjobid=defaultJobId.split(",");
       var i;
       var cid
       for(i=0;i<arrjobid.length;i++)
       {
            cid=getClassID(arrjobid[i]);
            selclass.value=cid;
            setJob(cid,elemJob,defaultJobId,divItem,tmp_divShow,showClassItem);
       }
       
       //实现工种选择事件
       selclass.onchange=function(){
            var i; 
            var div_class;
            document.getElementById(elemClass).value=selclass.value; 
            setJob(selclass.value,elemJob,defaultJobId,divItem,tmp_divShow,showClassItem); 
            if(selclass.value!=""&&selclass.value!="0")
            {
                for(i=0;i<arrclass.length;i++)
                {
                    div_class = document.getElementById(tmp_elemJob + "_" + arrclass[i].classid);
                    if(div_class) 
                        if(arrclass[i].classid==parseInt(selclass.value)) 
                            //div_class.style.display="";
                            div_class.style.zIndex=1;
                        else
                            //div_class.style.display="none"; 
                            div_class.style.zIndex=0;
                }
            }
       }

       //点击页面其它地方关闭选择器
//       sender.onblur=function(){
//            if(event.clientX<getInt(divMain.style.left)||event.clientY<getInt(divMain.style.top)||event.clientX>getInt(divMain.style.width)+getInt(divMain.style.left)||event.clientY>getInt(divMain.style.height)+getInt(divMain.style.top))
//            { 
//               hiddenJob(elemClass,elemJob,sender);
//            }
//       } 
   }
   
   function getClassID(jobid)
   {
        var i;
        for(i=0;i<arrjob.length;i++)
        {
            if(arrjob[i].itemid==jobid)
                return arrjob[i].classid; 
        }
        return 0; 
   }
   
   function getJobName(jobid)
   {
        var i;
        for(i=0;i<arrjob.length;i++)
        {
            if(arrjob[i].itemid==jobid)
                return arrjob[i].itemname; 
        }
        return ""; 
   }
   
   function getSelectedJobName(idstr)
   {
        if(idstr=="")
            return "";
        if(idstr.indexOf(",")==-1)
            return getJobName(idstr);
        var arrid=idstr.split(",");
        var i;
        var rvalue="";
        for(i=0;i<arrid.length;i++)
        {
            jobName = getJobName(arrid[i]);
            if(rvalue=="")
                rvalue = jobName;
            else
                if(jobName != "")
                { rvalue += "、" + jobName; }
        }
        return rvalue;
   }
   
   function AddCheckJobItem(elemstr,tmp_elemJob)
   {
        var divShow=document.getElementById(elemstr);
        var divItem=getElem(elemstr + "_" + tmp_elemJob.value,"span",divShow);
        var name=getJobName(tmp_elemJob.value);
        var maxLen = isEnglish ? 20 : 5;
        if(name.length> maxLen)
            name=name.substr(0,maxLen) + "...";
        divItem.style.textDecoration="underline";
        divItem.style.paddingRight="10px";
        divItem.style.cursor="hand";
        divItem.title=arrjoblang[4];
        divItem.innerHTML="<label for='" + tmp_elemJob.id + "'><img src=\"http://image.goodjob.cn/image/ico_del.gif\" align=\"absmiddle\" /> " + name + "</label>";
        //divItem.innerHTML="<label for='" + tmp_elemJob.id + "'>" + name + "</label>";
   }
   
   function DelCheckJobItem(elemstr,tmp_elemJob,elemJob)
   {
        var divShow=document.getElementById(elemstr);
        var val=elemJob.value.split(",");
        var i;
        var jobvalue="";  
        for(i=0;i<val.length;i++)
        {
            if(val[i]!=tmp_elemJob.value)
            { 
                if(jobvalue=="")
                    jobvalue = val[i];
                else
                    jobvalue += ',' + val[i];
            }
        }
        elemJob.value = jobvalue;
        divShow.removeChild(document.getElementById(elemstr + "_" + tmp_elemJob.value));
   }
   
   function checkJobItem(tmp_elemJob,elemstr,tmp_divShow,isClass)
   {
        var elemJob=document.getElementById(elemstr);
        var divShow=document.getElementById(tmp_divShow); 

        if(tmp_elemJob.checked)
        {
            if(elemJob.value=="")
            { 
                elemJob.value = tmp_elemJob.value;
                //divShow.innerHTML += getJobName(tmp_elemJob.value);
                AddCheckJobItem(tmp_divShow,tmp_elemJob);
            }
            else
            { 
                var val=elemJob.value.split(",");
                if(val.length>4)
                {
                    alert(arrjoblang[5]);  
                    return false; 
                }
                elemJob.value += ',' + tmp_elemJob.value;
                //divShow.innerHTML += getJobName(tmp_elemJob.value);
                AddCheckJobItem(tmp_divShow,tmp_elemJob);
            }
            if(isClass) disableJobItem(tmp_divShow,tmp_elemJob,elemstr);
        }
        else
        {
            DelCheckJobItem(tmp_divShow,tmp_elemJob,elemJob);
            if(isClass) enabledJobItem(tmp_elemJob,elemstr);
        }
   }
   
   function disableJobItem(tmp_divShow,tmp_elemJob,elemstr)
   {
        var elemJob=document.getElementById(elemstr);
        var classid=tmp_elemJob.value / 10000;
        var i;
        var item;
        for(i=0;i<arrjob.length;i++)
        {
            if(arrjob[i].classid==classid && arrjob[i].itemid<10000)
            {
                item = document.getElementById("tmp_" + elemstr + arrjob[i].itemid);
                if(item.checked)
                {
                    item.checked = "";
                    DelCheckJobItem(tmp_divShow,item,elemJob);
                }
                item.disabled = "disabled";
            }
        }
   }
   
   function enabledJobItem(tmp_elemJob,elemstr)
   {
        var classid=tmp_elemJob.value / 10000;
        var i;
        var item;
        
        for(i=0;i<arrjob.length;i++)
        {
            if(arrjob[i].classid==classid && arrjob[i].itemid<10000)
            {
                item = document.getElementById("tmp_" + elemstr + arrjob[i].itemid);
                item.disabled = "";
            }
        }
   }
   
   function IsJobItemChecked(itemid,defaultid)
   {
        var defaultidstr="," + defaultid + ",";
        var itemidstr="," + itemid + ",";
        if(defaultidstr.indexOf(itemidstr)!=-1)
            return true;
        else
            return false;    
   }
   
   function showJob(elemClass,elemJob)
   {
        var divMain=document.getElementById(elemClass + elemJob + "_divMain");
        var iframe=document.getElementById(elemClass + elemJob + "_iframe"); 
        divMain.style.display="";
        iframe.style.display=""; 
   }
   
   function hiddenJob(elemClass,elemJob,sender)
   {
        var divMain=document.getElementById(elemClass + elemJob + "_divMain");
        var iframe=document.getElementById(elemClass + elemJob + "_iframe"); 
        var txtJob=document.getElementById(elemJob);
        
        divMain.style.display="none";
        iframe.style.display="none";
        sender.value=getSelectedJobName(txtJob.value);
   }