// JavaScript Document
var menu,
	timer,
	popMenuTimer,
	i=0,
	menuItemsTemp,
	ml;
function showMenu(menuItems,uri)
{
	clearTimeout(timer);	
	
	var
	offsetX=0,//偏离标题元素的水平距离
	offsetY=28,//偏离标题元素的垂直距离
	//alert("test")
	pos,
	menuItemId;

if(menuItems)
{
	if(menu==null)
	{
		menu = new Menu ('menu', 'menuList', 'jumpUrl');
	}
	switch(arguments.length)
	{
		case 1:
			break;
		case 2:
			offsetX=arguments[1];
			break;
		case 3:
			offsetY=arguments[2];
			break;
		default:
			break;
	}	
	pos=getElementPos("item2");
	
	menu.clear();
	//for(var w=0;w<menuItems.length;w++)
	//{
	//	menu.add_item(menuItems[w]);
	//}	
     resetPopMenu();
	 menuItemsTemp=menuItems;
	popMenuTimer=setInterval('slowPopMenu(menuItemsTemp);',100);
	
	ml=document.getElementById("menuList");
	ml.style.postion="absulute";
	ml.style.left=pos.x+"px";
	ml.style.top=pos.y+offsetY+"px";
	ml.style.display="block";
	ml.onmouseout=hideMenu;
	ml.onmouseover=function (){clearTimeout(timer);}

}
else{return 0;}

}

function hideMenu()
{
	timer=setTimeout('$("menuList").style.display="none";',50)	
}

function resetPopMenu()
{
		clearInterval(popMenuTimer);
		popMenuTimer=null;
		i=0;
		return null;
}

function slowPopMenu(menuItems)
{
	menu.add_item(menuItems[i][0],menuItems[i][1]);
	i++;
	if(i == menuItems.length)
	{
		resetPopMenu()	
	}	
	
}
function getElementPos(elementId) //位置获取函数
{ 
    var ua = navigator.userAgent.toLowerCase(); 
    var isOpera = (ua.indexOf('opera') != -1); 
    var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof 
    var el = document.getElementById(elementId);
    if(el.parentNode === null || el.style.display == 'none') 
    {
       return false; 
    } 
        var parent = null;
        var pos = [];
        var box; 
if(el.getBoundingClientRect)    //IE 
{ 
         
      box = el.getBoundingClientRect(); 
      var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); 
      var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); 
      return {x:box.left + scrollLeft, y:box.top + scrollTop}; 
 } 
       else if(document.getBoxObjectFor)    // gecko 
       { 
        box = document.getBoxObjectFor(el); 
        var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0; 
         var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
            pos = [box.x - borderLeft, box.y - borderTop]; 
} 
else    // safari & opera
   {
      pos = [el.offsetLeft, el.offsetTop];
      parent = el.offsetParent; 
       if (parent != el) {
      while (parent) {
        pos[0] += parent.offsetLeft; 
        pos[1] += parent.offsetTop;
		parent = parent.offsetParent; 
	} 
} 
if (ua.indexOf('opera') != -1  || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) 
 { 
   pos[0] -= document.body.offsetLeft; 
   pos[1] -= document.body.offsetTop;
 } 
} 
           if (el.parentNode) { parent = el.parentNode; }
             else { parent = null; } 
     while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML')
    { // account for any scrolled ancestors 
	   pos[0] -= parent.scrollLeft; 
	   pos[1] -= parent.scrollTop; 
	   if (parent.parentNode) { parent = parent.parentNode; }
       else { parent = null; } 
	} 
     return {x:pos[0], y:pos[1]}; 
} 

function Menu(strObjName, strEID, strCallback) {
	this.itemNum = 0;
	this.items = Array();
	this.curSel = 0;
	this.objName = strObjName;
	this.elementID = strEID;
	this.callback = strCallback;

	this.selClassName = "son";		// Default class name
	this.unselClassName = "soff";		// Default class name
	
	if (arguments.length >= 5) {
		this.selClassName = arguments[3];
		this.unselClassName = arguments[4];

		if (arguments.length == 5) {
			this.maxSelection = arguments[5];
		}
	}
}

Menu.prototype.clear = function() {
	$(this.elementID).innerHTML = "";
	this.itemNum = 0;
	this.items.clear();
	this.curSel = 0;
}

Menu.prototype.add_item = function($content,uri) {
	$(this.elementID).innerHTML += '<div style="cursor:pointer" class="' + this.unselClassName + '" onmouseover="' + this.objName + '.highlight(\'' + this.itemNum + '\')" onmouseout="' + this.objName +'.highlight(\'' + this.itemNum + '\')" onclick="' + this.callback + '(\'' + uri + '\')" id="MENU_ITEM_' + this.itemNum + '">' + $content + '</div>';
	this.items.push ($content);
	this.itemNum ++;
}

Menu.prototype.highlight = function (id) {
	for (var i = 0; i < this.itemNum; i++) {
		var d = $('MENU_ITEM_' + i);
		if (id == i) {
			d.className = this.selClassName;
			this.curSel = i;
		} else {
			d.className = this.unselClassName;
		}
	}
}

Menu.prototype.sel_next = function () {
	if (this.itemNum == 0)
		return;
	if (this.curSel < this.itemNum - 1) {
		this.highlight (this.curSel + 1);
	}
}

Menu.prototype.sel_prev = function () {
	if (this.itemNum == 0)
		return;
	if (this.curSel > 0) {
		this.highlight (this.curSel - 1);
	}
}

Menu.prototype.get_content = function (id) {
	if (id >= 0 && id < this.itemNum) {
		return $('MENU_ITEM_' + id).innerHTML;
	} else {
		return false;
	}
}

Menu.prototype.get_current_content = function () {
	return this.get_content(this.curSel);
}

function jumpUrl(uri)
{
	window.location.href=uri;
}
