
var HideElementTemp = new Array(); //被隐藏的select的数数组
	
//隐藏所有比div级别大的元素
function cal_hideElementAll(obj){ 
        cal_HideElement("SELECT",obj);
}

//隐藏元素，用当前层的offsetTop和offsetLeft来跟元素的offsetLeft与offsetTop进行比较
//把隐藏的元素放入数组中，以待恢复
function cal_HideElement(strElementTagName,obj){
try{
    var showDivElement = obj;
    var intDivLeft = GetAbsoluteLocation(showDivElement).absoluteLeft;
    var intDivTop = GetAbsoluteLocation(showDivElement).absoluteTop;
    for(i=0;i<window.document.all.tags(strElementTagName).length; i++){
 var objTemp = window.document.all.tags(strElementTagName)[i];
 if(!objTemp||!objTemp.offsetParent)
     continue;
 var intObjLeft=GetAbsoluteLocation(objTemp).absoluteLeft;
 var intObjTop=GetAbsoluteLocation(objTemp).absoluteTop;
 if(((intObjLeft+objTemp.clientWidth)>intDivLeft)&&
    (intObjLeft<intDivLeft+showDivElement.clientWidth)&&
    (intObjTop+objTemp.clientHeight>intDivTop)&&
    (intObjTop<intDivTop+showDivElement.clientHeight)){
     HideElementTemp[HideElementTemp.length]=objTemp
     objTemp.style.visibility="hidden";
        }
    }
}catch(e){alert(e.message)
}
}

//显示元素，从隐藏数组中恢复被隐藏的元素
function cal_ShowElement(){
    var i;
    for(i=0;i<HideElementTemp.length; i++){
 var objTemp = HideElementTemp[i]
 if(!objTemp||!objTemp.offsetParent)
     continue;
 objTemp.style.visibility=''
    }
    HideElementTemp=new Array();
}

//获得元素的绝对位置，用当前元素的offsetLeft+offsetParent.offsetLeft计算得到
function GetAbsoluteLocation(element) 
{ 
    var offsetTop = element.offsetTop; 
    var offsetLeft = element.offsetLeft; 
    var offsetWidth = element.offsetWidth; 
    var offsetHeight = element.offsetHeight; 
    while( element = element.offsetParent ) 
    { 
        offsetTop += element.offsetTop; 
        offsetLeft += element.offsetLeft; 
    } 
    return { absoluteTop: offsetTop, absoluteLeft: offsetLeft, 
        offsetWidth: offsetWidth, offsetHeight: offsetHeight }; 
} 