var _mcMenuDiv = null;
var _mcMenuDivShadow = null;
var inTime = 0;
var cancelShow = false;
function initMCMenu() {
	
}
function attachMCMenu(p_Link, p_DataBoxID, p_Width, p_Orientation) {
	_createMCMenuDiv();
	var link = $(p_Link);
	var activator = function() {
		cancelShow = false;
		inTime = new Date().getTime();
		
		if(_mcMenuDiv.getAttribute('linkid')==link.id) return;
		_mcMenuDiv.style.visibility='hidden';
		var linkPos = _getElementPosition(link);
		_mcMenuDiv.setAttribute('linkid', link.id);
		_mcMenuDiv.setAttribute('orient', p_Orientation);
		
		_mcMenuDiv.update($(p_DataBoxID).innerHTML);
		
		_mcMenuDiv.style.width = p_Width+'px';
		if(p_Orientation=='right')
			_mcMenuDiv.style.left = (linkPos.x-p_Width+link.offsetWidth)+'px';
		else
			_mcMenuDiv.style.left = (linkPos.x)+'px';
		if(document.all)
			_mcMenuDiv.style.top = (linkPos.y+link.offsetHeight)+'px';
		else
			_mcMenuDiv.style.top = (linkPos.y+link.offsetHeight-4)+'px';
		_mcMenuDiv.setAttribute('mout_time', 0);
		
		var items = $$('div.mcmenu_link');
		items.each(function(x) {
			x.onmouseover = function() {
				x.addClassName('mcmenu_item_hover');
			};
			x.onmouseout = function() {
				x.removeClassName('mcmenu_item_hover');
			};
		});
		
		_startShadow();
	};
	var deactivator = function() {
		var outTime = new Date().getTime();
		if(outTime-inTime<=500) {
			cancelShow = true;
		}
		_mcMenuDivShadow.style.visibility = 'hidden';
		_mcMenuDiv.style.visibility = 'hidden';
		_mcMenuDiv.setAttribute('linkid', '');
	}
	var reactivator = function() {
		_mcMenuDivShadow.style.visibility = 'hidden';
		_mcMenuDiv.style.visibility = 'visible';
		_mcMenuDiv.setAttribute('linkid', link.id);
	}
	link.onmouseover = activator;
	link.onmouseout = deactivator;
	_mcMenuDiv.onmouseover = reactivator;
	_mcMenuDiv.onmouseout = deactivator;
}
function _createMCMenuDiv() {
	if(_mcMenuDiv==null) {
		_mcMenuDiv=document.createElement('div');
		_mcMenuDiv=Element.extend(_mcMenuDiv);
		_mcMenuDiv.identify();
		_mcMenuDiv.addClassName('mcmenu_menu');
		_mcMenuDiv.style.visibility='hidden';
		document.body.appendChild(_mcMenuDiv);
	}
	if(_mcMenuDivShadow==null) {
		_mcMenuDivShadow=document.createElement('div');
		_mcMenuDivShadow=Element.extend(_mcMenuDivShadow);
		_mcMenuDivShadow.identify();
		_mcMenuDivShadow.addClassName('mcmenu_menu_frame');
		_mcMenuDivShadow.style.visibility='hidden';
		document.body.appendChild(_mcMenuDivShadow);
	}
}
function _getElementPosition(e){
	var left = 0;
	var top  = 0;
	while (e.offsetParent){
		left += e.offsetLeft;// + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop;//  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}
	left += e.offsetLeft;// + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop;//  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
	return {x:left, y:top};
}
function _startShadow() {
	if(cancelShow) {
		_mcMenuDivShadow.style.visibility = 'hidden';
		_mcMenuDiv.style.visibility = 'hidden';
		_mcMenuDiv.setAttribute('linkid', '');
		return;
	}
	_mcMenuDivShadow.style.width='0px';
	_mcMenuDivShadow.style.height='0px';
	if(_mcMenuDiv.getAttribute('orient')=='left') {
		_mcMenuDivShadow.style.left = _mcMenuDiv.style.left;
		_mcMenuDivShadow.style.top = _mcMenuDiv.style.top;
	}
	else {
		_mcMenuDivShadow.style.left = (parseInt(_mcMenuDiv.style.left)+_mcMenuDiv.offsetWidth-20)+'px';
		_mcMenuDivShadow.style.top = _mcMenuDiv.style.top;
	}
	_mcMenuDivShadow.style.visibility = 'visible';
	_shadowAnim();
}
function _shadowAnim() {
	if(cancelShow) {
		_mcMenuDivShadow.style.visibility = 'hidden';
		_mcMenuDiv.style.visibility = 'hidden';
		_mcMenuDiv.setAttribute('linkid', '');
		return;
	}
	var w = parseInt(_mcMenuDivShadow.style.width);
	var h = parseInt(_mcMenuDivShadow.style.height);
	if(w<parseInt(_mcMenuDiv.offsetWidth/4)) {
		w=parseInt(_mcMenuDiv.offsetWidth/4);
		h=parseInt(_mcMenuDiv.offsetHeight/4);
	}
	else if(w<parseInt(_mcMenuDiv.offsetWidth/2)) {
		w=parseInt(_mcMenuDiv.offsetWidth/2);
		h=parseInt(_mcMenuDiv.offsetHeight/2);
	}
	else if(w<parseInt(_mcMenuDiv.offsetWidth-20)) {
		w=parseInt(_mcMenuDiv.offsetWidth-20);
		h=parseInt(_mcMenuDiv.offsetHeight-20);
	}
	else {
		_mcMenuDivShadow.style.visibility = 'hidden';
		_mcMenuDiv.style.visibility = 'visible';
		return;
	}
	if(_mcMenuDiv.getAttribute('orient')=='right') {
		_mcMenuDivShadow.style.left = (parseInt(_mcMenuDiv.style.left)+_mcMenuDiv.offsetWidth-w)+'px';
	}
	_mcMenuDivShadow.style.width=w+'px';
	_mcMenuDivShadow.style.height=h+'px';
	setTimeout(_shadowAnim, 100);
}