

var ig_menuTree;
var ig_currentMenu;
var ig_currentItem;
var ig_Browser;
var ig_menuPopup = null;
var ig_suspendClear = false;

function igmenu_initialize() {

	ig_dom = (document.getElementById) ? true : false;
	ig_IE = (document.all) ? true : false;
	ig_IE4 = ig_IE && !ig_dom;
	ig_IE5 = ig_IE && ig_dom;
	ig_Mac = (navigator.appVersion.indexOf("Mac") != -1);
	ig_IE5M = ig_IE5 && ig_Mac;
	ig_IEW = ig_IE && !ig_Mac;
	ig_IE4W = ig_IE4 && ig_IEW;
	ig_IE5W = ig_IE5 && ig_IEW;
	ig_NS = navigator.appName == ("Netscape");
	ig_NS4 = (document.layers) ? true : false;
	ig_NS6 = navigator.vendor == ("Netscape6");
    	if(ig_IE5M) {
		ig_DOM = false; ig_IE4 = true;
	}


	//lastMouseDown = (document.onmousedown) ? document.onmousedown : new Function;
	document.onmousedown = function() {	igmenu_mouseDown(); }
	//lastMouseUp = (document.onmouseup) ? document.onmouseup : new Function;
	//document.onmouseup = function() { igmenu_mouseUp(); lastMouseUp(); }
	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';
		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';
				var childDelete = child;
				child = child.ig_child;
				delete childDelete;
			}
			return;
		}
		child = child.ig_child;
	}
	if(ig_menuPopup == null)
		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);
	igmenu_clearDescendants(parent.parentElement.parentElement.parentElement);
	ig_currentItem = parent;
}

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); 	
			item.style.visibility = 'visible';
			item.style.display="";			}
	}
	else
	if(horz == 2) {
		if(item != null) {
			igmenu_clearDescendants(parent.parentElement.parentElement.parentElement);
			igmenu_menuTreeAdd(item);
			item.style.top = igmenu_getTopPos(parent);	
			item.style.left = igmenu_getLeftPos(parent) + parent.offsetWidth; 	
			item.style.visibility = 'visible';
			item.style.display="";
		}
	}
	else
	if(horz == 3) {
		igmenu_treeCreate(item);
		if(item != null) {
			item.style.top = igmenu_getTopPos(parent);	
			item.style.left = igmenu_getLeftPos(parent) + parent.offsetWidth; 	
			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()', 500);
	}
}

function igmenu_rollout(item) {
	ig_currentItem = null;
	igmenu_rollover(item, 0);
	setTimeout('TimerExpired()', 500);
}

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(e) {
    x = e.offsetLeft;
    tmpE = e.offsetParent;
    while (tmpE != null) {
        x += tmpE.offsetLeft;
        tmpE = tmpE.offsetParent;
    }
    return x;
}

function igmenu_getTopPos(e) {
    y = e.offsetHeight;
    y = e.offsetTop;
    tmpE = e.offsetParent;
    while (tmpE != null) {
        y += tmpE.offsetTop;
        tmpE = tmpE.offsetParent;
    }
    return y;
}

function igmenu_linkTo(linkUrl, linkTarget) {

	if(linkUrl.indexOf("javascript") != -1)
	    eval(linkUrl);
	else
	if(linkTarget != null){
		if(igtree_getElementById(linkTarget) != null)
			igtree_getElementById(linkTarget).src = linkUrl;
		else(window.open(linkUrl));
	}
	else
	{
	    location.href = linkUrl;
	}
}


function igmenu_itemClick(menu, item) {
	__doPostBack(menu, item  + ":" + "MenuClick");
}


function igmenu_getElementById(tagName) {
	if(ig_IE)
		return document.all[tagName];
	else
		return document.getElementById(tagName);
}


function igmenu_mouseDown() {
	if(ig_menuPopup != null) {
		igmenu_clearMenuTree();
		ig_menuPopup.style.display="none";
	}
	else
	if(ig_currentItem == null) {
		igmenu_clearMenuTree();
	}
}

function igmenu_mouseUp() {
	if(ig_currentItem != null)
		igmenu_clearMenuTree();
}

function igmenu_showMenu(name) {
	var item = igmenu_getElementById(name);
	if(item != null) {
		item.style.top = window.event.y - 2;			
		item.style.left = window.event.x - 2;
		item.style.visibility = 'visible';
		item.style.display="";
		ig_currentItem = item;
		ig_menuPopup = item;
		ig_suspendClear = true;
	}
}

igmenu_initialize();