﻿// JScript 文件
var it_comboDiv=null;
var it_comboButton=null;
var it_comboTextBox=null;
var it_IsShow=false;
//
function Divclose()
{
    if(it_IsShow)
    {
        
    }    
}
//
function Combox_init()
{
    
}
//取得Combo和Div对象
function getCombo(iDiv,iButton,iTextBox)
{
    it_comboButton=document.getElementById(iButton);
    it_comboDiv=document.getElementById(iDiv);
    it_comboTextBox=document.getElementById(iTextBox);
}
//算层的位置
function comboDivPlace()
{
    var eDiv=it_comboDiv
    var eButton=it_comboButton
    if(eDiv==null) return;
    if(eButton==null)return;
    var eTop=eButton.offsetTop;
    var eLeft=eButton.offsetLeft;
    var eHeight=eButton.offsetHeight;
    //查找eButton的父元素
    while(eButton=eButton.offsetParent)
    {
        eTop+=eButton.offsetTop;
        eLeft+=eButton.offsetLeft;
    }
    
    eTop+=eHeight;
    eDiv.style.top=eTop;
    eDiv.style.left=eLeft;
}
//显示层
function comboShowDiv()
{
    if(it_comboDiv==null) return ;
    it_comboDiv.style.display="";
    it_comboDiv.style.visibility="visible";
    comboDivPlace();
    it_IsShow=true;
    openShim(it_comboDiv,120);
}
//隐藏层
function comboHideDiv()
{
    if(it_comboDiv==null) return ;
    it_comboDiv.style.visibility="hidden";
    it_comboDiv.style.display="none";
    it_IsShow=false;
    closeShim(it_comboDiv);
}
//判断是显示还是隐藏层
function comboIsoper()
{
    if(it_comboDiv==null) return;
    if(it_comboDiv.style.display=="none" || it_comboDiv.style.visibility=="hidden")
    {
        comboShowDiv();
    }
    else
    {
        comboHideDiv();
    }
}
//取得层和接钮
function getCombox(iDiv,iButton)
{
    it_comboButton=document.getElementById(iButton);
    it_comboDiv=document.getElementById(iDiv);    
}
//显示层位置
function comboxDiv(iDiv,iButton)
{
    getCombox(iDiv,iButton);
    comboIsoper();
}
//显示树形下拉框主程序
function comboMain(iDiv,iButton,iTextBox)
{
    getCombo(iDiv,iButton,iTextBox);
    comboIsoper();
}
//-----------------------------------------------------------------------------------------------
//垫片技术
//-----------------------------------------------------------------------------------------------
function openShim(menu,menuItem)
{
    if (menu==null) return;
    var shim = getShim(menu);
    if (shim==null) shim = createMenuShim(menu,getShimId(menu));
    
    //Change menu zIndex so shim can work with it
    menu.style.zIndex = 100;
    
    var width = (menu.offsetWidth == 0 ? 120: menu.offsetWidth);
    var height;
    
    if (menu.offsetHeight == 0)
    {
        height=menuItem
    }
    else
    {
        var height = menu.offsetHeight;
    }
    
    shim.style.width = width;
    shim.style.height = height;
    shim.style.top = menu.style.top;
    shim.style.left = menu.style.left;
    shim.style.zIndex = menu.style.zIndex - 1;
    shim.style.position = "absolute";
    shim.style.display = "";
}

//Closes the shim associated with the menu
function closeShim(menu)
{
    if (menu==null) return;
    var shim = getShim(menu);
    if (shim!=null) shim.style.display = "none";
}

//Creates a new shim for the menu
function createMenuShim(menu)
{
    if (menu==null) return null;

    var shim = document.createElement("<iframe scrolling='no' frameborder='0'"+
                                      "style='position:absolute; top:0px;"+
                                      "left:0px; display:none'></iframe>"); 
    shim.name = getShimId(menu);
    shim.id = getShimId(menu);
    //Unremark this line if you need your menus to be transparent for some reason
    //shim.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";

    if (menu.offsetParent==null || menu.offsetParent.id=="")
    {
        window.document.body.appendChild(shim);
    }
    else 
    {
        menu.offsetParent.appendChild(shim);
    }

    return shim;
}

//Creates an id for the shim based on the menu id
function getShimId(menu)
{
    if (menu.id==null) return "__shim";
    return "__shim"+menu.id;
}

//Returns the shim for a specific menu
function getShim(menu)
{
    return document.getElementById(getShimId(menu));
}

function getMenuItemCount(menu)
{
    var count = 0;
    var child = menu.firstChild;

    while (child)
    {
        if (child.nodeName=="DIV") count = count + 1;
        child = child.nextSibling;
    }
    return count;    
}


//---------------------------------------------------------------------------
//树操作
//---------------------------------------------------------------------------
function AfterNodeSelChange(treeId, nodeId) {
        
        var node = igtree_getNodeById(nodeId);
        if(node == null)
            return;
        if(it_comboTextBox!=null)
            it_comboTextBox.value=node.getText();
        if(!node.hasChildren())    
        {
            var iIndex=node.getElement().all.length-2;
			var kNode=node.getElement().all[iIndex+1];
			if(kNode!=null)
			{
			    kNode.ondblclick=function(){comboHideDiv();};
			}	
        }
        return false;
}

function AfterNodeSelChange1(treeId, nodeId) {
        
        var node = igtree_getNodeById(nodeId);
        if(node == null)
            return;
        if(node.hasChildren()) return;            
        if(it_comboTextBox!=null)
            it_comboTextBox.value=node.getText();
        return false;
}

function hidePopupMenu(el, m) {
	if (el && m && m.style.display=='') {
		if ((document.body.scrollLeft + window.event.x > el.offsetLeft) 
				&& (document.body.scrollLeft + window.event.x < el.offsetLeft + el.offsetWidth) 
				&& (document.body.scrollTop + window.event.y > el.offsetTop) 
				&& (document.body.scrollTop + window.event.y < el.offsetTop + el.offsetHeight)
				|| (document.body.scrollLeft + window.event.x > m.offsetLeft)                
				&& (document.body.scrollLeft + window.event.x < m.offsetLeft + m.offsetWidth) 
				&& (document.body.scrollTop + window.event.y > m.offsetTop)
				&& (document.body.scrollTop + window.event.y < m.offsetTop + m.offsetHeight)) {
		} else {
			comboHideDiv();
		}
	}
}
function hideSelf(m) {	
	if (m.style.display=='') {
		if ((document.body.scrollLeft + window.event.x >= m.offsetLeft)                
		&& (document.body.scrollLeft + window.event.x <= m.offsetLeft + m.offsetWidth) 
		&& (document.body.scrollTop + window.event.y >= m.offsetTop)
		&& (document.body.scrollTop + window.event.y <= m.offsetTop + m.offsetHeight)) {
		} else {
			comboHideDiv();
		}
	}
}

