/* 
Infragistics Hierarchical Menu Script 
Version 1.0.21
Copyright (c) 2002 Infragistics, Inc. All Rights Reserved.
*/

var ig_menuTree;
var ig_currentMenu;
var ig_currentItem;
var ig_Browser;
var ig_menuPopup = null;
var ig_suspendClear = false;
var ig_IE;
function igmenu_initialize() {

	ig_IE = (document.all) ? true : false;

	document.onmousedown = function() {	igmenu_mouseDown(); }
	document.onmouseup = function() { igmenu_mouseUp();  }

	ig_currentMenu = null;
	ig_menuTree = null;
	ig_currentItem = null;
	ig_menuPopup = null;
}

function igmenu_clearMenuTree() {
	var child = ig_menuTree;
	while(child != null) {
		if(child.ig_item.style != null) {
			child.ig_item.style.visibility = 'hidden';
			igmenu_callDisplayMenu(false, child.ig_item.id);
		}
		var childDelete = child;
		child = child.ig_child;
		delete childDelete;
	}
	ig_menuTree = null;
	ig_currentItem = null;
	ig_currentMenu = null;
}

function igmenu_clearDescendants(item) {
	var child = ig_menuTree;
	while(child != null) {
		if(child.ig_item == item) {
			ig_currentMenu = child;
			child = child.ig_child;
			ig_currentMenu.ig_child = null;
			while(child != null) {
				if(child.ig_item.style != null) {
					child.ig_item.style.visibility = 'hidden';
					igmenu_callDisplayMenu(false, child.ig_item.id);
				}
				var childDelete = child;
				child = child.ig_child;
				delete childDelete;
			}
			return;
		}
		child = child.ig_child;
	}
	igmenu_clearMenuTree();
}

function igmenu_treeCreate(_item) {
	igmenu_clearMenuTree();
	ig_menuTree = new igmenu_node(null, _item);
	ig_currentMenu = ig_menuTree;
}

function igmenu_menuTreeAdd(item) {
	var node = new igmenu_node(ig_currentMenu, item);
	ig_currentMenu = node;
}

function igmenu_node(_parent, _item) {
	this.ig_parent = _parent;
	this.ig_item = _item;
	if(_parent != null)
		_parent.ig_child = this;
}

function igmenu_rollin(parent, hoverClass) {
	igmenu_rollover(parent, 1, hoverClass);
	ig_currentItem = parent;
	igmenu_clearDescendants(parent.parentNode.parentNode.parentNode);
	ig_currentItem = parent;
}

var igmenu_displayMenu = null;
function igmenu_callDisplayMenu(bShow, id) {
	if(igmenu_displayMenu != null)
		igmenu_displayMenu(bShow, id);
}

function igmenu_rollinsub(parent, _item, horz, hoverClass) {
	var item = igmenu_getElementById(_item);
	igmenu_rollover(parent, 1, hoverClass);
	if(horz == 1) {
		igmenu_treeCreate(item);
		if(item != null) {
			item.style.top = igmenu_getTopPos(parent)  + parent.offsetHeight;	
			item.style.left = igmenu_getLeftPos(parent); 	
			igmenu_callDisplayMenu(true, _item);
			item.style.visibility = 'visible';
			item.style.display="";	
			var screenWidth = document.body.clientWidth;
			var menuWidth = item.clientWidth;
			var menuX = item.offsetLeft;
			if((menuX + menuWidth) > screenWidth) {
				item.style.left=screenWidth-menuWidth;
			}
		}
	}
	else
	if(horz == 2) {
		if(item != null) {
			if(!ig_IE) {
				igmenu_clearDescendants(parent.parentNode.parentNode.parentNode);
			}
			else {
				igmenu_clearDescendants(parent.parentElement.parentElement.parentElement);
			}
			igmenu_menuTreeAdd(item);
			item.style.top = igmenu_getTopPos(parent);	
			item.style.left = igmenu_getLeftPos(parent) + parent.offsetWidth; 	
			igmenu_callDisplayMenu(true, _item);
			item.style.visibility = 'visible';
			item.style.display="";
			var screenWidth = document.body.clientWidth;
			var menuWidth = item.clientWidth;
			var menuX = item.offsetLeft;
			if((menuX + menuWidth) > screenWidth) {
				item.style.left=screenWidth-menuWidth;
			}
		}
	}
	else
	if(horz == 3) {
		igmenu_treeCreate(item);
		if(item != null) {
			item.style.top = igmenu_getTopPos(parent);	
			item.style.left = igmenu_getLeftPos(parent) + parent.offsetWidth; 	
			igmenu_callDisplayMenu(true, _item);
			item.style.visibility = 'visible';
			item.style.display="";
		}
	}

	ig_currentItem = parent;

}

function igmenu_rollover(src,col, hoverClass)
{

	if (col == 1) {
		var className;
		src.setAttribute("igClass", src.className);
		if(hoverClass == null) {
	                var treeName = src.id;
        	        var strArray = treeName.split("_");
                	treeName = strArray[0];
			className = eval(treeName + "HoverClass");
		}
		else {
			className = hoverClass;
		}
		if(className.length > 0)
	        	src.className = className;
		clearCurrentMenu = false;
	} 
	else 
	if(src.style != null) {
		src.className = src.getAttribute("igClass");
		clearCurrentMenu = true;
		setTimeout('TimerExpired()', 2000);
	}
}

function igmenu_rollout(item) {
	ig_currentItem = null;
	igmenu_rollover(item, 0);
	setTimeout('TimerExpired()', 2000);
}

var clearCurrentMenu = true;
function TimerExpired() {
	if(clearCurrentMenu)
		igmenu_clearMenuTree();
}

function igmenu_getRightPos(e) {
    var x = e.offsetRight;
    var tmpE = e.offsetParent;
    while (tmpE != null) {
        x += tmpE.offsetRight;
        tmpE = tmpE.offsetParent;
    }
    return x;
}


function igmenu_getLeftPos(element) {
    var x = 0;
    var parent = element;
    while (parent != null) {
        x += parent.offsetLeft;
        parent = parent.offsetParent;
        if(ig_IE)
	        if(parent!=null && parent.onselectstart==null && parent.currentStyle.left != "auto")
				break;
    }
    return x;
}

function igmenu_getTopPos(element) {
    var y = 0;
    var parent = element;
    while(parent != null) {
		y += parent.offsetTop;
        parent = parent.offsetParent;
        if(ig_IE)
			if(parent!=null && parent.onselectstart==null && parent.currentStyle.top != "auto")
				break;
	}
    return y;
}

function igmenu_linkTo(linkUrl, linkTarget) {

	if(linkUrl.indexOf("javascript") != -1)
	    eval(linkUrl);
	else
	if(linkTarget != null){
		if(igmenu_getElementById(linkTarget) != null) {
			igmenu_getElementById(linkTarget).src = linkUrl;
		}
		else
		if(eval("parent.frames."+linkTarget) != null) {
		   eval("parent.frames."+linkTarget+".location=\""+linkUrl+"\";");
		}
		else {
		   window.open(linkUrl);
		}
	}
	else
	{
	    location.href = linkUrl;
	}
}


function igmenu_itemClick(menu, item) {
	__doPostBack(igmenu_getUniqueId(menu), item  + ":" + "MenuClick");
}

function igmenu_getUniqueId(menuId) {
	var uniqueId = eval(menuId + "UniqueId");
	if(uniqueId != null)
		return uniqueId;
	else
		return menuId;
}

function igmenu_getElementById(tagName) {
	if(ig_IE)
		return document.all[tagName];
	else
		return document.getElementById(tagName);
}

function igmenu_mouseDown(evnt) {
	if(evnt == null)
		evnt = event;
	if(ig_menuPopup != null && ig_currentItem == null) {
		igmenu_clearMenuTree();
		ig_menuPopup.style.visibility = 'hidden';
		ig_menuPopup = null;
	}
	else
	if(ig_currentItem == null) {
		igmenu_clearMenuTree();
	}
}

function igmenu_mouseUp() {
	if(ig_currentItem != null)
		igmenu_clearMenuTree();
}

function igmenu_selectStart() {
	window.event.cancelBubble = true; 
	window.event.returnValue = false; 
	return false;	
}

function igmenu_showMenu(name, evnt) {
	var item = igmenu_getElementById(name + "MainM");
	if(evnt == null)
		evnt = window.event;
	if(item != null) {
		if(ig_IE) {
			item.style.top = evnt.y - 2;	
			item.style.left = evnt.x - 2;
		}
		else {
			item.style.top = evnt.clientY - 2;	
			item.style.left = evnt.clientX -2;
		}
		item.style.visibility = 'visible';
		item.style.display="";
		ig_currentItem = item;
		ig_menuPopup = item;
		ig_suspendClear = true;
	}
}

igmenu_initialize();