﻿// JScript 文件
/// <remarks>
/// TopMenu
/// 超人工作室公共JS，隐藏DIV，显示蒙版，去空格等
/// 
/// 修改纪录
///    

///		
/// 版本：2.0
/// 
/// <author>
///		<name>zxc</name>
///		<date>2007-08-16</date>
/// </author> 
/// </remarks>


        function IeTrueBody()
        {
            return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
        }

        function GetScrollTop()
        {
            var w3c=(document.getElementById)? true: false;
            var agt=navigator.userAgent.toLowerCase();
            var ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1) && (agt.indexOf("omniweb") == -1));

             return ie ? IeTrueBody().scrollTop : window.pageYOffset;
        }



	    //显示或隐藏最底层DIV(基础页面)
	    function ShowHideLowerDiv(divId, isShow)//1 ShowHideLowerDiv("divMain",true)
	    {
	        if(isShow == true)
	        {
	            document.getElementById(divId).style.display = "";
	        }
	        else
	        {
	            document.getElementById(divId).style.display = "none";
	        }
	    }
	    
	    //显示或隐藏最高层DIV(弹出的小窗口)
	    function ShowHideUpperDiv(divId, isShow) //4 ShowHideUpperDiv("divPopup"+ID,true);
	    {
	        if(isShow == true)
	        {
                document.getElementById(divId).style.display = "";
                document.getElementById(divId).style.position = "absolute";
                document.getElementById(divId).style.zIndex = "789";
                var tmp = document.body.scrollTop;
                //设置弹出小窗口上边距
                //document.getElementById(divId).style.top = 150 + GetScrollTop() + "px";//document.documentElement.scrollTop
                //IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。
                if(document.body.offsetHeight<document.getElementById(divId).clientHeight)
                {
                  document.getElementById(divId).style.top = 150  + "px";
                }
                else
                {
                  document.getElementById(divId).style.top =(document.body.offsetHeight -document.getElementById(divId).clientHeight)/2+"px";
                }
               
                //设置弹出小窗口左边距
                //alert(document.body.offsetHeight);
                //alert(document.getElementById(divId).clientHeight);
                document.getElementById(divId).style.left = (document.body.offsetWidth-document.getElementById(divId).clientWidth)/2+"px";
	        }
	        else
	        {
	            document.getElementById(divId).style.display = "none";
	        }
	    }
	    
	    //显示或隐藏蒙版层
	    function ShowHideMaskDiv(divId, isShow)//2 ShowHideMaskDiv("maskDiv"+ID,true);
	    {
	        if(isShow == true)
	        {
                document.getElementById(divId).style.position = "absolute";
                document.getElementById(divId).style.zIndex = "1";
                
                //设置蒙版层的宽
                document.getElementById(divId).style.width = document.body.offsetWidth + "px";
                //设置蒙版层的高
                document.getElementById(divId).style.height = document.body.offsetHeight + "px";
                //设置蒙版层上边距
                document.getElementById(divId).style.top = "0px";
                //设置蒙版层左边距
                document.getElementById(divId).style.left = "0px";
                document.getElementById(divId).style.background = "#000000"; //把灰色蒙板去掉
                document.getElementById(divId).style.filter = "alpha(opacity=40)";
                document.getElementById(divId).style.opacity = "0.40";
                document.getElementById(divId).style.display = "";
            }
            else
            {
                document.getElementById(divId).style.display = "none";
                document.getElementById(divId).style.position = "";
                document.getElementById(divId).style.background = "#ffffff";
                document.getElementById(divId).style.filter = "alpha(opacity=100)";
            }
	    }
	
	    //设置蒙版层框架,盖住下拉框

	    function ShowMaskIFrame(iframeId)//3 ShowMaskIFrame("maskIFrame"+ID);
	    {
            document.getElementById(iframeId).style.position = "absolute";
            document.getElementById(iframeId).style.visibility = "inherit";
            document.getElementById(iframeId).style.top = "0px";
            document.getElementById(iframeId).style.left = "0px";
            document.getElementById(iframeId).style.width = document.body.offsetWidth + "px";
            document.getElementById(iframeId).style.height = document.body.offsetHeight + "px";
            document.getElementById(iframeId).style.zIndex = "-1";
            document.getElementById(iframeId).style.background = "#000000";
            document.getElementById(iframeId).style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
	    }
	    
        //去除空格
        function  trim(str)
        {
            for(var  i  =  0  ;  i<str.length  &&  (str.charAt(i)==" " || str.charAt(i)=="　" || str.charAt(i)=="%" )  ;  i++  )  ;
            for(var  j  =str.length;  j>0  &&  (str.charAt(j-1)==" " || str.charAt(i)=="　" || str.charAt(i)=="%" )  ;  j--)  ;
            if(i>j)  return  "";  
            return  str.substring(i,j);  
        }

        //权限集Div生成脚本
        //显示
        function showDiv(treeID,iCount,ctlID)
        {
            if(iCount > 0)
            {
                for(var i=1; i <= iCount; i++)
                {
                    var strTemp = "";
                    if(i < 10)
                    {
                        strTemp = treeID.substr(0,3) + '00' + i;
                    }
                    else if(i < 100)
                    {
                        strTemp = treeID.substr(0,3) + '0' + i;
                    }
                    else
                    {
                        strTemp = treeID.substr(0,3) + i;
                    }
                    
                    if(document.getElementById(ctlID + "_pnl_List_" + strTemp)!=null)
                    {
                        ShowHideLowerDiv(ctlID + "_pnl_List_"+strTemp,false);
	                    document.getElementById(ctlID + "_pnl_tab_child_" + strTemp).className = "tabDiv";
	                    document.getElementById(ctlID + "_chk_tab_" + strTemp).disabled = false;
	                }
                }
                
                ShowHideLowerDiv(ctlID + "_pnl_List_" + treeID,true);
	            document.getElementById(ctlID + "_pnl_tab_child_" + treeID).className = "tabDiv tabFocusDiv";
	            document.getElementById(ctlID + "_chk_tab_" + treeID).disabled = false;
            }
            
            return false;
        }
        
        function showHideContentDiv(treeID,iCount,ctlID)
        {
            var imgTemp = document.getElementById(ctlID + "_img_title_" + treeID)
            var strSrc = imgTemp.src;
            var iStart = strSrc.indexOf("images");
            var strStart = strSrc.substr(0,iStart);
            if(strSrc.substr(iStart) == "images/collapse.gif")
            {
                imgTemp.src = strStart + "images/bu_expand.gif";
            }
            else
            {
                imgTemp.src = strStart + "images/collapse.gif";
            }
            
            if(iCount > 0)
            {
                for(var i=1; i <= iCount; i++)
                {
                    var strTemp = "";
                    if(i < 10)
                    {
                        strTemp = treeID + '00' + i;
                    }
                    else if(i < 100)
                    {
                        strTemp = treeID + '0' + i;
                    }
                    else
                    {
                        strTemp = treeID + i;
                    }
                    
	                if(document.getElementById(ctlID + "_pnl_content_" + strTemp).style.display == "")
	                {
                        ShowHideLowerDiv(ctlID + "_pnl_content_" + strTemp,false);
                    }
                    else
                    {
                        ShowHideLowerDiv(ctlID + "_pnl_content_" + strTemp,true);
                    }
                }
            }
            
            return false;
        }
        
        function checkTabChild(treeID,iCount,ctlID)
        {
            var isChecked = document.getElementById(ctlID + "_chk_tab_"+treeID).checked;
            if(iCount > 0)
            {
                for(var i=1; i <= iCount; i++)
                {
                    var strTemp = "";
                    if(i < 10)
                    {
                        strTemp = treeID + '00' + i;
                    }
                    else if(i < 100)
                    {
                        strTemp = treeID + '0' + i;
                    }
                    else
                    {
                        strTemp = treeID + i;
                    }
                    
	                document.getElementById(ctlID + "_chk_title_" + strTemp).checked = isChecked;
	                var iChildCount = getTreeCount(strTemp,ctlID);
                    checkTitleChild(strTemp,iChildCount,ctlID);
                }
            }       
            return false;
        }

        function checkTitleChild(treeID,iCount,ctlID)
        {
            var isChecked = document.getElementById(ctlID + "_chk_title_"+treeID).checked;
            if(iCount > 0)
            {
                for(var i=1; i <= iCount; i++)
                {
                    var strTemp = "";
                    if(i < 10)
                    {
                        strTemp = treeID + '00' + i;
                    }
                    else if(i < 100)
                    {
                        strTemp = treeID + '0' + i;
                    }
                    else
                    {
                        strTemp = treeID + i;
                    }
                    
	                document.getElementById(ctlID + "_chk_content_" + strTemp).checked = isChecked;
                }
            }    
            if(isChecked == false)
            {
                document.getElementById(ctlID + "_chk_tab_" + treeID.substr(0,6)).checked = isChecked;
            }
            else
            {
                var iTabCount = getTreeCount(treeID.substr(0,6),ctlID)
                var iTabCheckedCount = getTreeIsCheckedCount(treeID.substr(0,6),ctlID);
                if(iTabCheckedCount == iTabCount)
                {
                    document.getElementById(ctlID + "_chk_tab_" + treeID.substr(0,6)).checked = isChecked;
                }
            }
            
            return false;
        }
        
        function checkContent(treeID,ctlID)
        {
            var isChecked = document.getElementById(ctlID + "_chk_content_"+treeID).checked;
            if(isChecked == false)
            {
                document.getElementById(ctlID + "_chk_tab_" + treeID.substr(0,6)).checked = isChecked;
                document.getElementById(ctlID + "_chk_title_" + treeID.substr(0,9)).checked = isChecked;
            }
            else
            {
                var iTitleCount = getTreeCount(treeID.substr(0,9),ctlID)
                var iTitleCheckedCount = getTreeIsCheckedCount(treeID.substr(0,9),ctlID);
                if(iTitleCheckedCount == iTitleCount)
                {
                    document.getElementById(ctlID + "_chk_title_" + treeID.substr(0,9)).checked = isChecked;
                }
                
                var iTabCount = getTreeCount(treeID.substr(0,6),ctlID)
                var iTabCheckedCount = getTreeIsCheckedCount(treeID.substr(0,6),ctlID);
                if(iTabCheckedCount == iTabCount)
                {
                    document.getElementById(ctlID + "_chk_tab_" + treeID.substr(0,6)).checked = isChecked;
                }
            }
            return false;
        }
        
        function getTreeCount(treeID,ctlID)
        {
            var iCount = 20;
            var iNum = 0;
            var strIDBefore = "";
           
            for(var i=1; i <= iCount; i++)
            {
                var strTemp = "";
                if(i < 10)
                {
                    strTemp = treeID + '00' + i;
                }
                else if(i < 100)
                {
                    strTemp = treeID + '0' + i;
                }
                else
                {
                    strTemp = treeID + i;
                }
                
                if(treeID.length == 6)
                {
                    strIDBefore = ctlID + "_chk_title_";
                }
                else if(treeID.length == 9)
                {
                    strIDBefore = ctlID + "_chk_content_";
                }
                
                if(document.getElementById(strIDBefore + strTemp) != null)
                {
                    iNum ++;
                }
                else
                {
                    break;
                }
            }
            
            return iNum
        }

        function getTreeIsCheckedCount(treeID,ctlID)
        {
            var iCount = 20;
            var iNum = 0;
            var strIDBefore = "";
           
            for(var i=1; i <= iCount; i++)
            {
                var strTemp = "";
                if(i < 10)
                {
                    strTemp = treeID + '00' + i;
                }
                else if(i < 100)
                {
                    strTemp = treeID + '0' + i;
                }
                else
                {
                    strTemp = treeID + i;
                }
                
                if(treeID.length == 6)
                {
                    strIDBefore = ctlID + "_chk_title_";
                }
                else if(treeID.length == 9)
                {
                    strIDBefore = ctlID + "_chk_content_";
                }
                
                if(document.getElementById(strIDBefore + strTemp) != null)
                {
                    if(document.getElementById(strIDBefore + strTemp).checked)
                    {
                        iNum ++;
                    }
                }
                else
                {
                    break;
                }
            }
            
            return iNum
        }


    //按回车使表单获得焦点需要设置下TabIndex值

	function KeyDown()
    {
        if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!='')
        {
            event.keyCode=9;
        }
    }
