	var timeout = new Array(4);
	var flag = new Array(4);
	var obj =  new Array(3);

	var eoldids = new Array();
	var papers = new Array();

	var shift_x = 120;

function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


	function menuShow(item,id, x, y) {
		menu = document.getElementById(id);
		controlWinObj('regions','regionSpare',0,menu);
		controlWinObj('branchs','branchSpare',0,menu);
		var shift_y = 0;
		var coords = findPos(item);
		x = coords[0] + item.offsetWidth;
		y = coords[1];
		menu.style.left = x-10+'px';
		menu.style.top = y-shift_y+'px';
		menu.style.visibility = 'visible';
        if ( timeout[3] != null ) {
                clearInterval( timeout[3] );
        }
	}

	function menuHide(item, id) {
		menu = document.getElementById(id);
		menu.style.visibility = 'hidden';
		if (!flag[3]){
			timeout[3] = setTimeout("check_isopen()", 100);
		}
	}


	function controlWinObj (name,em, flag,menu){
		win = document.getElementById(name);
		div = document.getElementById(em);
		if (!win || !div) return false;
		if (win){
			// Need to hide
			if (flag==1) {
				flag[3] = 0;
				div_control(win,div,1);
				return false;
			}else{
				flag[3] = 1;
			}
			if (win.style.display != 'none'){
				st = win.offsetTop;
				sb = st + win.offsetHeight;
				dt = menu.parentNode.offsetTop;
				db = dt + menu.offsetHeight;
				alert('select Y: '+st+'H:'+sb+"\n"+' menu Y:'+dt+'H:'+db);
				alert('test = '+dt+' < '+sb+' &&  '+db+' > '+st);
				if (menu.parentNode.offsetHeight && ( dt < sb && db > st ) ){
					div_control(win,div,0)
				}
			}
		}
	}

    function check_isopen (){
		var f=0;
                for (i=0; i < flag.length ; i++){
                        f = (flag[i])? f+1 : f;
                }
                if (!f) {
			 controlWinObj('regions','regionSpare',1);
			 controlWinObj('branchs','branchSpare',1);
		}
	}

    function subMenuHide(item, i) {
		flag[i] = false;
		if ( timeout[i] != null ) {
			clearInterval( timeout[i] );
		}
		window.event.cancelBubble = true;
		obj[i] = item;
                timeout[i] = setTimeout("subMenuHideReal("+i+")", 0);
                timeout[3] = setTimeout("check_isopen()", 1000);
    }

    function subMenuHideReal(i) {
		if (!flag[i]){
			obj[i].style.visibility = 'hidden';
			if ( i > 1 ){
				if ( flag[1] != 'true' && flag[2] !='true'  ){
					var k = i-1;
					flag[k] = false;
					timeout[k] = setTimeout("subMenuHideReal("+k+")", 1000);
					timeout[3] = setTimeout("check_isopen()", 1000);
				}
			}
		}
		clearInterval( timeout[i] );
	}

	function subMenuShow(item, i) {
		menu = item;
		flag[i] = true;
		if ( i-1 == 1 ) { flag[i-1] = true  }
		menu.style.visibility = 'visible';
		item =  item.parentNode;
		if ( timeout[i] != null ) {
			clearInterval( timeout[i] );
		}
		if ( timeout[3] != null ) {
			clearInterval( timeout[3] );
		}
		window.event.cancelBubble = true;
	}