var IE = document.all?true:false;

var mouse_x=0;
var mouse_y=0;
var shown=0;
var menu_x1=0;
var menu_y1=0;
var menu_x2=0;
var menu_y2=0;
var link_x1=0;
var link_y1=0;
var link_x2=0;
var link_y2=0;
var timerID=0;
var id_to_hide=null;
var id_shown=null;

function mshow(id,how) {
	
	
    var el;
    var x1,x2,y1,y2;
    if (shown){
	el=document.getElementById('menu'+id_shown);
        if(timerID) {
    	    clearTimeout(timerID);
	    timerID  = 0;
	}
	el.style.display="none";
	shown=0;
	id_shown=null;
    }
    el=document.getElementById('menu'+id);
    if (el){
	var il=document.getElementById(id);
        var m=findPos(il)
	if (how){
	    
		//el.style.left=parseInt(m[0])+parseInt(il.offsetWidth);
		el.style.left=parseInt(m[0])+145;
            el.style.top=parseInt(m[1]);
			
	}
	else {
	    
		var body_width = document.body.clientWidth;
		var maks = body_width/2 + 475 - 800;//355;
		//parseInt(m[1])+parseInt(il.offsetHeight);
		var this_current = parseInt(m[0]) + il.style.width;
		//634
		
		if(this_current>maks)
		{
			el.style.left = maks;
			el.style.textAlign = "right";
		}
		else
		{
			el.style.left = m[0];
			el.style.textAlign = "left";
		}
		
		//el.style.left=m[0];
            el.style.top=parseInt(m[1])+parseInt(il.offsetHeight);
			
	}
        el.style.display="block";
		hideElement( 'SELECT', document.getElementById("menu_tree") );
        shown=1;
        id_shown=id;

        x1=il.style.left;
        y1=il.style.top;
        x1 = x1.replace(/px/,""); x1 = x1 * 1;
        y1 = y1.replace(/px/,""); y1 = y1 * 1;
        x2=x1+il.offsetWidth;
        y2=y1+il.offsetHeight;
        link_x1=x1;
        link_y1=y1;
        link_x2=x2;
        link_y2=y2;
    
	
        el=document.getElementById('menu'+id);
        x1=parseInt(el.style.left);
        y1=parseInt(el.style.top);
        x2=x1+parseInt(el.offsetWidth);
        y2=y1+parseInt(el.offsetHeight);
        menu_x1=x1;
        menu_y1=y1;
        menu_x2=x2;
        menu_y2=y2;
        if(timerID) {
    	    clearTimeout(timerID);
	    timerID  = 0;
	}
    }
}


function mhide(id) {
    if (shown){
        id_to_hide=id;
	timerID=setTimeout("realhide()", 500);
    }
}

function realhide(){
    var el=document.getElementById('menu'+id_shown);
    if (el){
	if (id_to_hide == id_shown && shown){
	    if (mouse_x < menu_x1-1 || mouse_x> menu_x2+1 || mouse_y<menu_y1-1 || mouse_y>menu_y2+1){
		if (mouse_x < link_x1-1 || mouse_x> link_x2+1 || mouse_y<link_y1-1 || mouse_y>link_y2+1){
		    el.style.display="none";
			showElement( 'SELECT' );
	    	    shown=0;
		    obj_shown=null;
		}
	    }
	}
    }
}

function realhide2(){
    var el=document.getElementById('menu'+id_shown);
    if (el){
	if (id_to_hide == id_shown && shown){
		
		    el.style.display="none";
			showElement( 'SELECT' );
	    	    shown=0;
		    obj_shown=null;
			
		
	}
    }
}


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 getMouseXY(event) {
    var ev;
    if (!IE){
	ev = event;
	mouse_x=ev.pageX;
        mouse_y=ev.pageY;
    }
    else {
	ev=window.event;
	mouse_x = ev.clientX + document.body.scrollLeft;
        mouse_y = ev.clientY + document.body.scrollTop;
    }

//    document.getElementById('posdata').innerHTML="MOUSE: "+mouse_x+","+mouse_y + "  BOX:"+menu_x1+","+menu_y1+ " - " +menu_x2+","+menu_y2+ "  SHOWN: "+shown;
    

    return true;
}

document.onmousemove = getMouseXY;



