﻿
//扩展firefox，支持outerHTML属性
if(typeof(HTMLElement)!="undefined"   &&   !window.opera)   
{   
  HTMLElement.prototype.__defineGetter__("outerHTML",function()   
  {   
      var   a=this.attributes,   str="<"+this.tagName,   i=0;for(;i<a.length;i++)   
      if(a[i].specified)   str+="   "+a[i].name+'="'+a[i].value+'"';   
      if(!this.canHaveChildren)   return   str+"   />";   
      return   str+">"+this.innerHTML+"</"+this.tagName+">";   
  });   
  HTMLElement.prototype.__defineGetter__("canHaveChildren",function()   
  {   
      return   !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());   
  });   
}   

//定义背景层ID
var MaskLayerName="BackDiv";
//定义已选项ID列表
var ResultSelsStr = "";

//变换样式
function ChangeClass(obj,cssname)
{
    obj.className = cssname;
}

//显示背景层
function ShowModalLayer()
{
    //创建背景层
    var MaskLayer = document.createElement("div");
    MaskLayer.id = MaskLayerName;
    MaskLayer.style.position = "absolute";
    MaskLayer.style.zIndex = "500";
    MaskLayer.style.width = document.body.scrollWidth + "px";
    MaskLayer.style.height = document.body.scrollHeight + "px";
    MaskLayer.style.top = "0px";
    MaskLayer.style.left = "0px";
    MaskLayer.style.filter = "alpha(opacity=40)";
    MaskLayer.style.background = "black";
    MaskLayer.style.opacity = "0.40";
    MaskLayer.style.display = "block";
    
    document.body.appendChild(MaskLayer);
}

//获取指定ID的HTML控件
function $(id) 
{
    return document.getElementById(id)||false;
}

//新建标准对话框(ID:窗口标志,Caption:窗口标题,Width:宽度px,Hight:高度px)
function ShowDialog(ID,Title,Content,Width,Hight,HasTitle,IsModal,isResume)
{ 
    hiddenSelect();
    //创建窗口
    var DialogDiv = document.createElement("div");
    DialogDiv.id = ID;
    DialogDiv.style.position = "absolute";
    DialogDiv.style.zIndex = "999";
    DialogDiv.style.width = Width + "px";    
    DialogDiv.style.left = (parseInt(document.body.scrollWidth) - Width) / 2 + "px"; // 屏幕居中
    //阎文强修改于2月25日   
     y=document.documentElement.scrollTop ;     
     if(isResume)
     {
          DialogDiv.style.top = 1000 + "px"; 

     }
     else
     { 
     DialogDiv.style.top = y + "px"; 
     }

    DialogDiv.className ="Dialoglayer";
    
    //创建内容区域
    var ContentDiv = document.createElement("div");
    ContentDiv.id = ID + "ContentDiv";
    ContentDiv.className = "porela";
    
    if (HasTitle)
    {
        //创建窗口标题栏
        var CaptionTable = document.createElement("div");
        CaptionTable.id= ID + "TitleDiv";
        CaptionTable.width="100%";
        CaptionTable.className = "h1blk3";
        CaptionTable.innerHTML = "<img src=\"http://img.ehr99.com/images/delete1.gif\" alt=\"关闭\"  onclick=\"CloseDialog('" + ID + "');\" />" + Title;
        
        ContentDiv.appendChild(CaptionTable);
    }
    
    //创建窗口内容栏
    var ContentTable = document.createElement("div");
    ContentTable.id= ID + "Content";
    ContentTable.width="100%";
    ContentTable.height= parseInt(Hight) - 20 + "px";   
    ContentTable.className = "midcon";
    ContentTable.innerHTML = Content;
    
    ContentDiv.appendChild(ContentTable);
    
    DialogDiv.appendChild(ContentDiv);
    document.body.appendChild(DialogDiv);
    
    if (IsModal)
    {
        //显示背景层
        ShowModalLayer();
    }
   
}

function CloseDialog(id)
{    
    //关闭背景层
    if ($(MaskLayerName))
    {
        document.body.removeChild($(MaskLayerName));
    }

    //关闭窗口
    if ($(id))
    {
        document.body.removeChild($(id));
    }
    showSelect();
}

//根据参数创建复选框列表
//TargetTbl 目标表格对象,ContentType 内容类型（Area，Occ，Industry）,ParSelID 当前父级ID
//SelIDs 记录选择结果的字符串（逗号分割） ,eventName 复选框改选事件名称, colsNum 目标表格列数
function CreateCheckBoxList(TargetTbl,ContentType,ParSelID,SelIDs,eventName,colsNum) 
{	
	var sumRows;//总行数（不含全选项，全选项单独占第一行）
	var sumItems;//总项数（不含全选项）
	
	var aryID;//ID数组
	var aryName;//Text数组
	
	//根据类型获取ID数组和Text数组
	switch(ContentType)   
    {   
		    case 'Area':
		        aryID = getAreaIDs(ParSelID);
		        aryName = getAreaNames(ParSelID);
		        break;
		    case 'Occ':
		        aryID = getOccIDs(ParSelID);
		        aryName = getOccNames(ParSelID);
		        break;
		    case 'Industry':
		        aryID = GetIndustryIDs();
		        aryName = GetIndustryNames();
		        break;
		    default:
		        aryID = new Array();
		        aryName = new Array();
		        break;
    }
	
	sumItems = aryID.length - 1;
	
	//计算子选项总行数
	if( sumItems%colsNum > 0 )
		sumRows = sumItems/colsNum + 1 ;
	else
		sumRows = sumItems/colsNum;
	
	sumRows = parseInt(sumRows);
	
	//清空目标表格
	for( i = TargetTbl.rows.length - 1; i >= 0; i--)
	{
		TargetTbl.deleteRow( i );
	}
	
	//填充第一行全选项
	var CheckedStr = "";//选择属性字符串
	
	tr = TargetTbl.insertRow(TargetTbl.rows.length);
	td = tr.insertCell(0);
	
	if (sumRows > 1)
	{
	    td.colSpan = colsNum * 2;
	}
	else if (sumRows == 1)
	{
	    td.colSpan = sumItems * 2;
	}
	
	td.height = "20px";
	
	if (IfContainsStr(SelIDs,aryID[0]))
	{
	    CheckedStr = "checked";
	}
	else
	{
	    CheckedStr = "";
	}
	
	td.innerHTML = "<input id='Chk" + ContentType + aryID[0] + "' onclick=\"" + eventName + "( this,'" + aryID[0] + "' )\" class=\"checkbox\" type=\"checkbox\" " + CheckedStr + " value=\"" + aryID[0] + "\" />"
	            + "<a onclick=\" $('Chk" + ContentType + aryID[0] + "').checked = ! $('Chk" + ContentType + aryID[0] + "').checked;" + eventName + "( $('Chk" + ContentType + aryID[0] + "'),'" + aryID[0] + "');\"><strong>" + aryName[0] + "</strong></a>  (选择此大类，将包括以下所有小类)<br />";

	index = 1;
	
	var IsSelAll = false;
	if (CheckedStr!="")
	{
	    IsSelAll = true;
	}
	
	//填充子选择项
	for( i=0 ; i<sumRows ; i++ )
	{
		tr = TargetTbl.insertRow(TargetTbl.rows.length);
		for( j=0 ; j<colsNum ; j++ )
		{
			tdChk = tr.insertCell(j*2);
			td = tr.insertCell(j*2+1);
			//计算每列的宽度
			everyColsWidth = parseInt((1/colsNum)*100) + "%";
			td.width = everyColsWidth;
			
			td.align = "left";
			
			if( index <= sumItems )
			{
				if( aryName[index] != undefined && aryName[index] != "" )
				{
					spChk = document.createElement("span");
					spChk.id = "SpChk" + ContentType + aryID[index];
					
					if (IsSelAll)
					{
					    spChk.setAttribute("disabled","disabled");
					}

					
					var spText = document.createElement("SPAN");
					spText.id = "Txt" + ContentType + aryID[index];
			
					chkEvent = " var spChk = $('Chk" + ContentType + aryID[index] + "');  ";
					chkEvent +=" if(spChk.disabled == false ) ";
					chkEvent +=" {  ";
					chkEvent +="	$('Chk" + ContentType + aryID[index] + "').checked = !$('Chk" + ContentType + aryID[index] + "').checked; ";
					chkEvent +="	spChk.disabled=false; ";
					chkEvent +=" }";
					chkEvent +=" else ";
					chkEvent +=" { ";
					chkEvent +="	spChk.disabled=true;";
					chkEvent +=" } ";
				    
					spText.innerHTML = "<a style=\"color: black; cursor:hand\" onclick=\"" + chkEvent + eventName + "( $('Chk" + ContentType + aryID[index] + "'),'" + aryID[index] + "')\">" + aryName[index] + "</a>";
                    
                    var strChk;
                    if (IfContainsStr(SelIDs,aryID[index]))
                    {
					    CheckedStr = " checked ";
					    
					}
					else
					{
					    CheckedStr = "";
					}
					
					var DisabledStr = "";
					if (IsSelAll)
					{
					    DisabledStr = " disabled ";
					}
					
					strChk = "<INPUT id='Chk" + ContentType + aryID[index] + "' TYPE='CHECKBOX' " + CheckedStr + DisabledStr + " onclick=\"" + eventName + "( this,'" + aryID[index] + "')\" VALUE=" + aryID[index] + " />";
					
					spChk.innerHTML = strChk;	
					tdChk.appendChild( spChk );	
					td.appendChild( spText );	
	
				}
			}
			else
				td.innerHTML = "&nbsp;";
			
			index++;
		}
	}
	
}

//根据参数创建复选框列表
//TargetTbl 目标表格对象,ContentType 内容类型（Area，Occ，Industry）
//SelIDs 记录选择结果的字符串（逗号分割） ,eventName 复选框改选事件名称, colsNum 目标表格列数
function CreateSelCheckBoxList(TargetTbl,ContentType,SelIDs,eventName,colsNum)
{
    //清空目标表格
	for(var i = TargetTbl.rows.length - 1; i >= 0; i--)
	{
		TargetTbl.deleteRow( i );
	}
	
    if (ResultSelsStr.length<=0)
    {
        return;
    }
    
    //如果选择ID列表以逗号结束，去掉结尾逗号
    if (ResultSelsStr.substr(ResultSelsStr.length-1,1)==",")
    {
        ResultSelsStr = ResultSelsStr.substr(0,ResultSelsStr.length-1);
    }
    
    //得到ID数组
    var aryID = ResultSelsStr.split(",");
    
    
    //得到Text数组
    var aryName = new Array();
    
    for (i=0; i<aryID.length; i++)
    {
        switch(ContentType)   
        {   
	            case 'Area':
	                aryName.push(GetAreaNameByID(aryID[i]));
	                break;
	            case 'Occ':
	                aryName.push(GetOccNameByID(aryID[i]));
	                break;
	            case 'Industry':
	                aryName.push(GetIndustryNameByID(aryID[i]));
	                break;
	            default:
	                aryName.push("");
	                break;
        }
    }
    
    
    //生成表格
    var sumRows;//总行数
	var sumItems;//总项数
		
	sumItems = aryID.length;
	
	//计算子选项总行数
	if( sumItems%colsNum > 0 )
		sumRows = sumItems/colsNum + 1 ;
	else
		sumRows = sumItems/colsNum;
	
	sumRows = parseInt(sumRows);
	
	
    
    index = 0;
	
	//填充子选择项
	for( i=0 ; i<sumRows ; i++ )
	{
		tr = TargetTbl.insertRow(TargetTbl.rows.length);
		for( j=0 ; j<colsNum ; j++ )
		{
			tdChk = tr.insertCell(j*2);
			td = tr.insertCell(j*2+1);
			//计算每列的宽度
			everyColsWidth = parseInt((1/colsNum)*100) + "%";
			td.width = everyColsWidth;
			
			td.align = "left";
			
			if( index <sumItems )
			{
				if( aryName[index] != undefined && aryName[index] != "" )
				{
					spChk = document.createElement("SPAN");
					spChk.id = "SpChk" + ContentType + aryID[index];
					
					spText = document.createElement("SPAN");
					spText.id = "Txt" + ContentType + aryID[index];
			
                    chkEvent = "$('SelChk" + ContentType + aryID[index] + "').checked = !$('SelChk" + ContentType + aryID[index] + "').checked; ";
                    //chkEvent += "$('Chk" + ContentType + aryID[index] + "').checked = ！$('Chk" + ContentType + aryID[index] + "').checked; ";

					var strChk;
                    if (IfContainsStr(SelIDs,aryID[index]))
                    {
					    CheckedStr = " checked ";				    
					}
					else
					{
					    CheckedStr = "";
					}
					
					strChk = "<INPUT id='SelChk" + ContentType + aryID[index] + "' TYPE='CHECKBOX' " + CheckedStr + " onclick=\"" + eventName + "( this,'" + aryID[index] + "')\" VALUE=" + aryID[index] + " />";
					
					spText.innerHTML = "<a style=\"color: black; cursor:hand\" onclick=\"" + chkEvent + eventName + "( $('SelChk" + ContentType + aryID[index] + "'),'" + aryID[index] + "')\">" + aryName[index] + "</a>";
					
					spChk.innerHTML = strChk;	
					tdChk.appendChild( spChk );	
					td.appendChild( spText );
				}
			}
			else
				td.innerHTML = "&nbsp;";
			
			index++;
		}
	}
	
	if (ResultSelsStr!="")
	{
	    ResultSelsStr = ResultSelsStr + ",";
	}
	
}

function ClearSelectedItems(ContentType)
{
    //根据ContentType获取选取结果表格
    var SelTable = $("TblSel" + ContentType);
    
    //删除目标表格的内容
	for(var i = SelTable.rows.length - 1; i >= 0; i--)
	{
		SelTable.deleteRow( i );
	}
	
    ResultSelsStr="";
}

//确认父字符串中是否包含子字符串
//SrcStr:父字符串，逗号分割  ChdStr：子字符串
function IfContainsStr(SrcStr,ChdStr)
{    
    var SrcAry = SrcStr.split(",");
    
    for(var i=0; i<SrcAry.length; i++)
    {
        if (SrcAry[i]==ChdStr)
        {
            return true;
        }
    }
    
    return false;
    
}

//删除列表中所有指定ID的子ID
function RemoveAllChd(SrcStr, ParID)
{
    var SrcAry = SrcStr.split(",");
    var TarAry = new Array();
    
    for(var i=0,n=0; i<SrcAry.length; i++)
    {
        if (SrcAry[i].substr(0,2) != ParID)
        {
            TarAry.push(SrcAry[i]);
        }
    }
    
    return TarAry.toString();
}

//删除列表中指定ID
function RemoveChd(SrcStr, ChdID)
{
    var SrcAry = SrcStr.split(",");
    var TarAry = new Array();
    
    for(var i=0,n=0; i<SrcAry.length; i++)
    {
        if (SrcAry[i] != ChdID)
        {
            TarAry.push(SrcAry[i]);
        }
    }
    
    return TarAry.toString();
}

//获取已选项数目
function GetSelsCount(SrcStr)
{    
    var SrcAry = SrcStr.split(",");
    var SelsCount = 0;
    
    for(var i=0; i<SrcAry.length; i++)
    {
        if (SrcAry[i]!="")
        {
            SelsCount += 1;
        }
    }
    
    return SelsCount;
    
}

//保存已选项
function SaveSels(ContentType,SrcStr,objIDs,objTexts,isSingleSelect)
{
    //保存ID列表
    objIDs.value = SrcStr.substr(0,SrcStr.length-1);
    
    //获取Text列表
    var NameStr = GetNamesByIDs(ContentType,SrcStr);
    
    //保存Text列表
    objTexts.value = NameStr.substr(0,NameStr.length-1);
    if(ContentType=="Area"&&objIDs.value=="")
    {
    objTexts.value=" 工作地区>>";
    }
    if(ContentType=="Industry"&&objIDs.value=="")
    {
    objTexts.value=" 行业类别>>";
    }
    if(ContentType=="Occ"&&objIDs.value=="")
    {
    objTexts.value=" 职位类别>>";
    }
}

//根据已选ID列表，生成Text列表
function GetNamesByIDs(ContentType,SrcStr)
{
    var NameStr="";
    
    var SrcAry = SrcStr.split(",");
    
    for(var i=0; i<SrcAry.length; i++)
    {
        if (SrcAry[i]!="")
        {
            var Name = "";
            
            switch(ContentType)   
            {   
                case 'Area':
                    Name = GetAreaNameByID(SrcAry[i]);
                    break;
                case 'Occ':
                    Name = GetOccNameByID(SrcAry[i]);
                    break;
                case 'Industry':
                    Name = GetIndustryNameByID(SrcAry[i]);
                    break;
                default:
                    break;
            }
            
            if (Name!="")
            {
                NameStr += Name + "+";
            }
        }
    }
    
    return NameStr;
}


function hiddenSelect()
{
       var ar = document.getElementsByTagName("select");
       var cc = null;      
      for (var i = ar.length; i > 0;) 
       {
       		cc = ar[--i];      
		    cc.style.visibility = "hidden";
		   //alert(cc);
	      
 	  }
 }
 function showSelect()
{
       var ar = document.getElementsByTagName("select");
       var cc = null;       
      for (var i = ar.length; i > 0;) 
       {
       		cc = ar[--i];      
		    cc.style.visibility = "";
		  
	      
 	  }
 }
