function getEvent() {
	if (document.all) return window.event;
	func = getEvent.caller;
	while (func != null) {
		var arg0 = func.arguments[0];
		if (arg0) {
			if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) {
				return arg0;
			}
		}
		func=func.caller;
	}
	return null;
 }
function openSub(obj, target, isclick) {
	var tSub = $('b_sub' + target);
	if (tSub.style.display != 'block') {
		closeSub();
		var tMenu = obj.previousSibling;
		var tMenuP = obj.parentNode;
			tMenuP.id = 'b_subopen';
		var tLeft = tMenu.offsetLeft;
		var tTop = tMenu.offsetTop;
		while(tMenu=tMenu.offsetParent) {
			tLeft+=tMenu.offsetLeft;
			tTop+=tMenu.offsetTop;
		}

		tTop += document.documentElement.scrollTop - 275;

		tSub.style.top = tTop + 'px';
		tSub.style.left = tLeft + 'px';
		tSub.style.display = 'block';
		obj.blur();
	} else {
		closeSub();
	}

	if(isclick) {
		var clickId = 0;
		document.body.onclick = function() {
			clickId = clickId + 1;
			if( clickId > 1 ) {
				closeSub();
			}
		}
	} else {
		document.body.onclick = function() {
			closeSub();
		}
	}
}

window.onscroll = function() {
	if($('b_subapp')&&$('b_subapp').style.display=='block')
	{
		closeSub();
	}
	hideTip();
}

function closeSub() {
	var evt = getEvent();
	if(evt != null) {
		var srcElement = evt.srcElement || evt.target;
		var subMenu = $('b_submenu').getElementsByTagName('div');
		if($('b_subopen')){
			$('b_subopen').className = '';
			$('b_subopen').id = '';
		}
		for (i=0;i<subMenu.length;i++) {
			subMenu[i].style.display = 'none';
		}
	}
}

function showTip(obj, str) {
    var tip = $("b_tip_span");
    if (tip == undefined) {
        h   =  document.createElement("span");
        h.id="b_tip_span";
        h.setAttribute("id","b_tip_span");
		//h.className = "tip_span";
        document.getElementsByTagName("body")[0].appendChild(h);
        tip = $("b_tip_span");
		tip.innerHTML = "<span id=\"b_tip_text\"></span><span id=\"b_tip_img\"></span>";
    }
    var o = obj;
    o.onmouseout = hideTip;
    var x=0, y=0;

    if (obj.offsetParent) {
        while (obj.offsetParent) {
          x += obj.offsetLeft;
          obj = obj.offsetParent;
        }
    } else if (obj.x && obj.y) {
        x += obj.x;
    }
	y = $('b_toolbar_o').offsetTop;

	if(document.documentElement.scrollTop || window.pageYOffset) {
		y += document.documentElement.scrollTop || window.pageYOffset - 6;
	}
    tip.style.left = (x-4) +'px';
	tip.style.top  = (y-24) +'px';
    $("b_tip_text").innerHTML = str;
    tip.style.display = "block";
}

function hideTip() {
    var tip = $("b_tip_span");

    if (tip != undefined) {
        if (tip.style.display != "none") {
            tip.style.display = "none";
        }
    }
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
var currPcnNav=null;
var s_t_o;
function t_showmenu(o, id){
	var offLeft = findPosX(o);
	var offTop = findPosY(o);

	shwPcnNav(id,offLeft,offTop);
	o.onmouseout = function() {
		s_t_o = setTimeout(function(){hidPcnNav(id);},100);
	}
	$(id).onmouseover = function() {
		if(s_t_o) {
			clearTimeout(s_t_o);
		}
	}
	if(!document.all){
		$(id).onmouseout=function(e){
			e=e||window.event;
			var oRT=e.relatedTarget;
			
			if(oRT&&oRT!=this&&!isSubNode(this,oRT)){
				hidPcnNav(id);
			}    
		}
	} else {
		$(id).onmouseleave = function() {
			hidPcnNav(id);
		}
	}
}
function isSubNode(oNode,oSubNode){
    oNode=oNode instanceof String?$(oNode):oNode;
    oSubNode=oSubNode instanceof String?$(oSubNode):oSubNode;

    var ParNode=oSubNode.parentNode;
    var isSub=false;
    
    while(ParNode&&ParNode.tagName!="HTML"){
        if(ParNode==oNode){
            isSub=true;
            break;
        }else{
            ParNode=ParNode.parentNode;
        }
    }
    return isSub;
}
function shwPcnNav(o,n,t){
	currPcnNav?hidPcnNav(currPcnNav):"";
	currPcnNav = o;
	$(o).style.left=n+"px";
	$(o).style.top=(t+30)+"px";
	$(o).style.display="";
}
function hidPcnNav(o){
	$(o).style.display="none";
	$('wrap').onmouseover = null;
}
function hide_all() {
	currPcnNav?hidPcnNav(currPcnNav):"";
}
