0 && main=="0")
clearCurrentMenu=false;
}
return;
}
var oItem = igmenu_getItemById(item.id);
var ms=igmenu_getMenuByItemId(item.id);
if(ms == null || ms.MenuLoaded == false)
return;
if(ig_menuObject && ig_menuObject != ms) {
ig_menuObject.clearMenuTree(null, true);
}
clearCurrentMenu = false;
clearTimeout(igmenu_clearMenuId);
var currItemId = igmenu_getSubMenu(item).igCurrentItem;
if(currItemId != null && currItemId.length > 0) {
var childItem = igmenu_getElementById(currItemId)
ms.unhoverItem(childItem, true);
var thisMenu = igmenu_getSubMenu(item);
if(ig_csom.notEmpty(thisMenu.igCurrentChild)) {
var eCurrentChild = ig_csom.getElementById(thisMenu.igCurrentChild);
eCurrentChild.igCurrentChild = null;
}
}
var igSeparator = item.getAttribute("igSep");
if(igSeparator != null && igSeparator.length > 0) {
clearCurrentMenu = false;
return;
}
if(!oItem.getEnabled()) {
if(oItem.isTopLevelItem())
ms.clearMenuTree();
else {
var oOwnerSubMenu = oItem.getParent();
oChildMenu = oItem.Element.attributes["igChildId"];
if(oChildMenu)oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
}
return;
}
ms.hoverItem(item);
var childId = item.getAttribute("igChildId");
// Check that the child is not already being displayed.
var currentChildId = igmenu_getSubMenu(item).igCurrentChild;
if(ig_csom.notEmpty(childId) && childId==currentChildId) {
ms.clearDescendants(igmenu_getElementById(currentChildId), true);
var childItemId = igmenu_getElementById(childId).igCurrentItem;
if(ig_csom.notEmpty(childItemId)) {
ms.unhoverItem(igmenu_getElementById(childItemId), true);
}
// [KV 11/5/2004, 2:14 PM] Only return after making sure
// that the child is visible. Fix for UWN866
if (ig_csom.getElementById(currentChildId).style.visibility == 'visible')
return;
}
if(childId != null) {
var igDisabled = item.getAttribute("igDisabled");
var igtop = item.getAttribute("igTop");
if(igDisabled != null && igDisabled.length > 0) {
if(igtop!=null && igtop.length > 0) {
ms.clearMenuTree(null);
}
return;
}
if(ms.MenuTarget == 1) {
if(ms.WebMenuStyle>=2 && ms.TopHoverStarted==false && igtop!=null && igtop.length > 0) {
return;
}
}
if(viaMouse)
if(ms.MenuTarget == 1 && ms.WebMenuStyle>=1 && igtop!=null && igtop.length > 0) {
clearTimeout(igmenu_timerId);
ms.displayHorizontalSubMenu(item, childId);
igmenu_getSubMenu(item).igCurrentChild = childId;
igmenu_getSubMenu(item).igCurrentItem = item.id;
}
else {
if(igmenu_displayItem != item) {
igmenu_displayItem = item;
igmenu_displayChildId = childId;
clearTimeout(igmenu_timerId);
clearTimeout(igmenu_clearMenuId);
igmenu_timerId = setTimeout('igmenu_displayTimeOut()', ms.ExpandEffects.Delay);
}
else {
if(ig_csom.notEmpty(igtop) && (item.previousSibling==null && item.nextSibling==null)){
igmenu_displayChildId = childId;
clearTimeout(igmenu_timerId);
clearTimeout(igmenu_clearMenuId);
igmenu_timerId = setTimeout('igmenu_displayTimeOut()', ms.ExpandEffects.Delay);
}
}
}
}
else {
if(igmenu_getSubMenu(item).igCurrentChild !=null) {
ms.clearDescendants(igmenu_getSubMenu(item), true);
clearTimeout(igmenu_timerId);
igmenu_getSubMenu(item).igCurrentChild=null;
igmenu_displayItem = null;
igmenu_getSubMenu(item).igCurrentItem=null;
}
}
}
var igmenu_timerId;
var igmenu_displayItem;
var igmenu_displayChildId;
// private - displays submenus after time expiration
function igmenu_displayTimeOut() {
if(igmenu_displayItem == null)
return;
igmenu_getSubMenu(igmenu_displayItem).igCurrentChild = igmenu_displayChildId;
igmenu_getSubMenu(igmenu_displayItem).igCurrentItem = igmenu_displayItem.id;
var ms=igmenu_getMenuByItemId(igmenu_displayItem.id);
var igtop = igmenu_displayItem.getAttribute("igTop");
if(ms.MenuTarget >= 2 && igtop != null && igtop.length > 0) {
ms.displayVerticalSubMenu(igmenu_displayItem, igmenu_displayChildId, 4);
}
else
ms.displaySubSubMenu(igmenu_displayItem, igmenu_displayChildId, 2);
}
var igmenu_clearMenuId;
// private - implements mouseout event handling
function igmenu_mouseout(submenu, evnt) {
ig_inMenu = false;
var item = igmenu_getTblRow(evnt);
if(item == null) {
clearCurrentMenu = true;
clearTimeout(igmenu_clearMenuId);
if(ig_menuObject)
igmenu_clearMenuId = setTimeout('TimerExpired()', ig_menuObject.ExpandEffects.RemovalDelay);
return;
}
var igSeparator = item.getAttribute("igSep");
var ms = igmenu_getMenuByItemId(item.id);
if((ms == "undefined") || typeof(ms)=='undefined' || ms==null || (ms.MenuLoaded==false))
return;
if(igSeparator != null && igSeparator.length > 0) {
clearCurrentMenu = true;
if(ig_csom.IsIE) {
clearTimeout(igmenu_clearMenuId);
igmenu_clearMenuId = setTimeout('TimerExpired()', ms.ExpandEffects.RemovalDelay);
}
return;
}
var currItemId = igmenu_getSubMenu(item).igCurrentItem;
var currentChildId = igmenu_getSubMenu(item).igCurrentChild
var childId = item.getAttribute("igChildId");
if(ig_csom.isEmpty(childId) || ig_csom.isEmpty(currentChildId) || childId != currentChildId) {
//if(currItemId == null || currItemId.length == 0) { // commented to allow all unhoverings to occur
ms.unhoverItem(item, true);
}
igmenu_displayItem = null;
clearCurrentMenu = true;
clearTimeout(igmenu_clearMenuId);
igmenu_clearMenuId = setTimeout('TimerExpired()', ms.ExpandEffects.RemovalDelay);
}
// private - overloaded method for getTblRow
function igmenu_getTblRowByItemElement(item)
{
return igmenu_getTblRowHelp(item);
}
// Gets the table row object for which a TD or other element event fired.
// private - obtains the row element associated with the event
function igmenu_getTblRow(evnt) {
var item;
if(ig_csom.IsNetscape6) {
item = evnt.target;
}
else
item = evnt.srcElement;
return igmenu_getTblRowHelp(item);
}
// private helper function for getTblRow and getTblRowByItemElement
function igmenu_getTblRowHelp(item)
{
while(item.tagName != "TR") {
if(item.getAttribute != null) {
var attrib = item.getAttribute("igTop");
var submenu = item.getAttribute("submenu");
if(submenu == "1")
return null;
if(item.tagName == "TD" && attrib != null && attrib.length > 0)
return item;
}
if(item == null)
return null;
if(item.tagName == "TABLE")
return null;
item = item.parentNode;
}
return item;
}
// private - Gets the table object for which a TD or other element event fired.
function igmenu_getSubMenu(item) {
submenu = false;
while(!submenu) {
var a = item.getAttribute("submenu");
if(item.getAttribute("submenu") == '1')
submenu = true;
else
item = item.parentNode;
}
return item;
}
// private
function igmenu_getRightPos(e) {
var x = e.offsetRight;
var tmpE = e.offsetParent;
while (tmpE != null) {
x += tmpE.offsetRight;
tmpE = tmpE.offsetParent;
}
return x;
}
// private
function igmenu_getLeftPos(element) {
var x = 0;
var parent = element;
while (parent != null) {
x += parent.offsetLeft;
parent = parent.offsetParent;
}
return x;
}
// private
function igmenu_getTopPos(element) {
var y = 0;
var parent = element;
while(parent != null) {
y += parent.offsetTop;
parent = parent.offsetParent;
}
return y;
}
var clearCurrentMenu = true;
// private - Clears submenus at timer expiration
function TimerExpired() {
if(clearCurrentMenu && ig_menuObject != null) {
ig_menuObject.clearMenuTree(null, true);
clearTimeout(igmenu_timerId);
igmenu_hideDropDowns(false);
}
}
// private - Handles the mouse down event
function igmenu_mousedown(table, evnt) {
var item=igmenu_getTblRow(evnt);
if(item!=null) {
ig_inMenu = true;
var igDisabled = item.getAttribute("igDisabled");
if(igDisabled != null && igDisabled.length > 0) {
return;
}
}
else
return;
var ms=igmenu_getMenuByItemId(item.id);
if(ms == null || ms.MenuLoaded == false)
return;
var attrib = item.getAttribute("igTop");
if(ms.MenuTarget == 1 && ms.WebMenuStyle>=2 && attrib!=null && attrib.length > 0){
var childId = item.getAttribute("igChildId");
if(childId!=null && childId.length > 0) {
var currentChildId = igmenu_getSubMenu(item).igCurrentChild;
if(childId != null && childId.length > 0 && childId == currentChildId) {
ms.clearMenuTree(null, true);
ig_startClick=false;
ms.TopHoverStarted = false;
ms.hoverItem(item)
return;
}
var oldClass = item.igClass;
item.setAttribute("igPrevClass", oldClass);
clearTimeout(igmenu_timerId);
ms.TopHoverStarted = true;
ms.hoverItem(item)
ms.displayHorizontalSubMenu(item, childId);
igmenu_getSubMenu(item).igCurrentChild = childId;
igmenu_getSubMenu(item).igCurrentItem = item.id;
return;
}
else {
ig_startClick=false;
ms.TopHoverStarted = false;
ms.unhoverItem(item, false)
ms.hoverItem(item)
}
}
if(item.getAttribute("igChildId") == null)
ms.TopHoverStarted=false;
ig_startClick = true;
if(evnt.stopPropagation != null) evnt.stopPropagation();
if(evnt.preventDefault != null) evnt.preventDefault();
evnt.cancelBubble = true;
evnt.returnValue = false;
}
var ig_startClick = false;
function __igmenu_navigateUrl(igUrl, igFrame)
{
var url = unescape(igUrl);
var index = url.indexOf("javascript:") ;
if(index > 0)
url = eval(igUrl);
if(url == null)
url = igUrl;
ig.navigateUrl(url, igFrame);
return;
}
// private - Handles the mouse up event
// changed signature to capture extra case, since in JS extra params default to null
//function igmenu_mouseup(table, evnt) {
function igmenu_mouseup(table, evnt, oItemElement) {
//var item=igmenu_getTblRow(evnt);
var item=null;
if (!oItemElement)
item=igmenu_getTblRow(evnt);
else
item=igmenu_getTblRowByItemElement(oItemElement);
if(item==null){return;}
var ms=igmenu_getMenuByItemId(item.id);
if(ms==null) {
return;
}
var igDisabled = item.getAttribute("igDisabled");
var igTop = item.getAttribute("igTop");
var igChildId = item.getAttribute("igChildId");
var igUrl=item.getAttribute("igUrl");
var mn=igmenu_getMenuNameByItemId(item.id);
if(ig_csom.IsIE)
evnt.cancelBubble = true;
if(igDisabled != null && igDisabled.length > 0)
return;
var igSeparator = item.getAttribute("igSep");
if(igSeparator != null && igSeparator.length > 0) {
clearCurrentMenu = false;
return;
}
if(igChildId != null && igChildId.length > 0) {
if(igUrl == null || igUrl.length == 0) {
ms.fireEvent(ms.Events.ItemClick,"(\""+mn+"\",\""+item.id+"\")");
if(ms.NeedPostBack && ((ms.WebMenuStyle == 1) || (ms.WebMenuStyle >1 && igTop == null)))
ms._doPost(item.id+":MenuClick");
return;
}
}
if(ig_startClick==true)
{
var checked=item.getAttribute("igChk");
var checkbox=item.getAttribute("igChkBx");
ms.clearMenuTree(null, true);
if(checkbox!=null && checkbox.length>0)
{
var bCheck=(checked != null) && (checked == '0');
var postCommand="";
if(ms.fireEvent(ms.Events.ItemCheck,"(\""+mn+"\",\""+item.id+"\","+bCheck+")"))
return;
var bHorizontal;
var bTop = item.getAttribute("igTop");
if(bTop != null && bTop.length > 0)
bTop = true;
else
bTop = false;
if(ms.MenuTarget==1 && bTop)
bHorizontal = true;
var checkElement;
if(bHorizontal)
checkElement = item.childNodes[0];
else {
if(item.childNodes[0].nodeName == "#text")
checkElement = item.childNodes[1].childNodes[1];
else
checkElement = item.childNodes[0].childNodes[0];
}
var alt = checkElement.getAttribute("alt");
var newAlt = "";
if(alt == null)
alt = checkElement.getAttribute("title");
if(alt != null)
{
newAlt = checkElement.getAttribute("igAltCk");
if(newAlt == null)
newAlt = "";
checkElement.setAttribute("igAltCk", alt);
}
if(checked!=null && checked=="1") {
bCheck=false;
postCommand=":Uncheck";
if(checkElement.tagName == "IMG")
{
checkElement.src=ms.UncheckedImage;
checkElement.alt = newAlt;
}
else
{
if(checkElement.tagName == "SPAN")
{
checkElement.innerHTML = "";
checkElement.title = newAlt;
}
}
item.setAttribute("igChk", "0");
}
else {
if(checkElement.tagName == "IMG")
{
checkElement.src=ms.CheckedImage;
checkElement.alt = newAlt;
}
else
if(checkElement.tagName == "SPAN") {
if(ig_csom.IsIE)
checkElement.innerHTML = "a";
else
checkElement.innerHTML = "*";
checkElement.title = newAlt;
}
bCheck=true;
postCommand=":Check";
item.setAttribute("igChk", "1");
}
if(ms.NeedPostBack) {
ms._doPost(item.id+postCommand);
}
ms.clearMenuTree(null, true);
ms.updateItemCheck(item.id, bCheck);
ig_startClick=false;
if(ig_menuPopup != null) {
ms.hideSubMenu(ig_menuPopup);
ig_menuPopup = null;
}
var igFrame=item.getAttribute("igFrame");
if(igUrl!=null) {
__igmenu_navigateUrl(igUrl,igFrame);
}
return;
}
if(ms.fireEvent(ms.Events.ItemClick,"(\""+mn+"\",\""+item.id+"\")"))
return;
ms.clearMenuTree(null, true);
igmenu_mouseout(item,evnt);
// Reset current item tracking
igmenu_getSubMenu(item).igCurrentChild=null;
igmenu_displayItem = null;
igmenu_getSubMenu(item).igCurrentItem=null;
igmenu_hideDropDowns(false);
if(ig_menuPopup != null) {
ms.hideSubMenu(ig_menuPopup);
ig_menuPopup = null;
}
ig_startClick=false;
var igFrame=item.getAttribute("igFrame");
igUrl=item.getAttribute("igUrl");
if(igUrl!=null) {
__igmenu_navigateUrl(igUrl,igFrame);
return;
}
if(ms.NeedPostBack) {
ms._doPost(item.id+":MenuClick");
return;
}
}
}
var ig_inMenu=false;
var ig_MouseX;
var ig_MouseY;
// private - Handles the mouse down event
function igmenu_mouseDown(evnt) {
if(evnt != null) {
ig_MouseX = evnt.clientX;
ig_MouseY = evnt.clientY;
}
if(ig_inMenu == true)
return;
var ms = ig_menuObject;
if(ig_menuObject != null) {
ms.TopHoverStarted=false;
}
ig_startClick = false;
ig_inMenu = false;
if(ig_menuPopup != null) {
if(ms != null)
ms.clearMenuTree(null, true);
ig_menuPopup.menuObject.hideSubMenu(ig_menuPopup);
ig_menuPopup = null;
igmenu_hideDropDowns(false);
}
else {
if(ms != null)
ms.clearMenuTree(null, true);
igmenu_hideDropDowns(false);
}
}
// private - Handles the mouse up event
function igmenu_mouseUp() {
return;
}
// private - Handles mouse selection for the menu
function igmenu_selectStart() {
window.event.cancelBubble = true;
window.event.returnValue = false;
return false;
}
// private - Displays a submenu in the appropriate position
function igmenu_showMenu(name, evnt, x, y) {
if(ig_menuPopup != null)
{
if(ig_menuObject)
{
ig_menuObject.clearMenuTree(null, true);
ig_menuObject.hideSubMenu(ig_menuPopup);
}
ig_menuPopup = null;
igmenu_hideDropDowns(false);
}
var item = igmenu_getElementById(name + "_MainM");
if(evnt == null) {
if(ig_csom.IsIE)
evnt = window.event;
else
evnt = window.Event;
}
if(item != null) {
if(x && y) {
item.style.left = x.toString() + "px";
item.style.top = y.toString() + "px";
}
else {
if(ig_csom.IsIE) {
y = evnt.y - 2 + document.body.scrollTop + document.body.parentNode.scrollTop;
x = evnt.x - 2 + document.body.scrollLeft + document.body.parentNode.scrollLeft;
}
else {
y = ig_MouseY - 2 + document.body.scrollTop + document.body.parentNode.scrollTop;
x = ig_MouseX - 2 + document.body.scrollLeft + document.body.parentNode.scrollLeft;
}
var src = ig_csom.getSourceElement(evnt);
if(src)
{
var parent = src;
var tmpX = x;
var tmpY = y;
var sets = false;
while (parent != null && parent.tagName != "BODY")
{
if(parent.style.position=="relative")
{
sets = true;
tmpX = 0;
tmpY = 0;
}
tmpX += parent.offsetLeft;
tmpY += parent.offsetTop;
parent = parent.offsetParent;
}
if(sets && ig_csom.IsIE){//D.M. 2/27/07 BR19449 Skip this if you're firefox.) {
x += tmpX;
y += tmpY;
}
}
var parent = item;
while (parent != null) {
if(parent.style.position=="absolute" ) {
if(parent.offsetParent == null)
break;
x -= parent.offsetParent.offsetLeft;
y -= parent.offsetParent.offsetTop;
break;
}
parent = parent.offsetParent;
}
item.style.top = y.toString() + "px";
item.style.left = x.toString() + "px";
}
ig_menuPopup = item;
var ms = igmenu_getMenuById(name);
if(ms==null)
return;
if(!ig_csom.IsIE55Plus && ms.HideDropDowns)
igmenu_hideDropDowns(true);
ms.displaySubMenu(item, null, true);
ig_menuPopup.menuObject = ms;
ig_menuObject=ms;
}
}
// private - Initializes an Item object with properties and method references
function igmenu_initItem(item)
{
this.element=item;
this.Element=item;
this.Id = item.id;
this.WebMenu = igmenu_getMenuByItemId(this.Id);
this.getElement=igmenu_getElement;
this.getMenuId=igmenu_getMenuId;
this.getText=igmenu_getText;
this.setText=igmenu_setText;
this.getTag=igmenu_getTag;
this.setTag=igmenu_setTag;
this.getHoverClass=igmenu_getHoverClass;
this.setHoverClass=igmenu_setHoverClass;
this.getEnabled=igmenu_getEnabled;
this.setEnabled=igmenu_setEnabled;
this.getTargetFrame=igmenu_getTargetFrame;
this.setTargetFrame=igmenu_setTargetFrame;
this.getTargetUrl=igmenu_getTargetUrl;
this.setTargetUrl=igmenu_setTargetUrl;
this.getNextSibling=igmenu_getItemNextSibling;
this.getPrevSibling=igmenu_getItemPrevSibling;
this.getFirstChild=igmenu_getItemFirstChild;
this.getParent=igmenu_getItemParent;
this.getItems=igmenu_getItemItems;
this.setChecked=igmenu_setChecked;
this.getChecked=igmenu_getChecked;
this.getAccessKey=igmenu_getAccessKey;
this.getLevel = function () {
var itemName=this.element.id.split("_")
if(itemName.length>1)
{
return itemName.length - 2;
}
}
this.getIndex = function () {
var index=0;
var itemName=this.element.id.split("_")
if(itemName.length>1)
{
index = parseInt(itemName[itemName.length-1]);
return index-1;
}
}
this.IsSeparator = function()
{
var igSeparator = item.getAttribute("igSep");
return (null!=igSeparator && igSeparator.length > 0);
}
this.isTopLevelItem = function()
{
var igTop = this.element.getAttribute("igTop");
return (igTop != null && igTop.length > 0) ? true : false;
}
}
// private
function igmenu_getElement() {
return this.item;
}
// private
function igmenu_getMenuId() {
var menuName = this.element.id;
var strArray = menuName.split("_");
menuName = strArray[0];
return menuName;
}
// private
function igmenu_getText()
{
if(this.element.tagName == "TR"){
var i = 0;
var td = this.element.childNodes[0];
if(td.nodeName == "#text")
td = this.element.childNodes[1];
while(td.childNodes[i] != null) {
if(td.childNodes[i].tagName == "DIV") {
var txt = td.childNodes[i].getAttribute("igtxt");
if(txt != null) {
text = td.childNodes[i].innerHTML;
text = text.replace("", "");
text = text.replace("", "");
text = text.replace("", "");
text = text.replace("", "");
//text = text.replace("&", "&");
text = text.replace(/&/g, "&");
return text;
}
}
i++;
}
}
return ig_csom.getText(this.element);
}
// private
function igmenu_getAccessKey()
{
if(this.element.tagName == "TR"){
var i = 0;
var td;
if(ig_csom.IsIE)
td = this.element.childNodes[0];
else
td = this.element.childNodes[1];
while(td.childNodes[i] != null) {
if(td.childNodes[i].tagName == "DIV") {
return td.accessKey;
}
i++;
}
return "";
}
else
return this.element.accessKey;
}
// private
function igmenu_setText(text) {
if(this.element.tagName == "TR") {
var i = 0;
var td;
if(ig_csom.IsIE)
td = this.element.childNodes[0];
else
td = this.element.childNodes[1];
while(td.childNodes[i] != null) {
if(td.childNodes[i].tagName == "DIV") {
var txt = td.childNodes[i].getAttribute("igtxt");
if(txt != null)
td.childNodes[i].innerHTML = text;
}
i++;
}
return null;
}
else
this.element.innerHTML = text;
}
// private
function igmenu_getTag() {
var a = this.element.getAttribute("igTag");
if(a!=null && a.length>0)
return a;
else
return null;
}
// private
function igmenu_setTag(text) {
this.element.setAttribute("igTag", text);
}
// private
function igmenu_getHoverClass() {
return this.element.getAttribute("igHov")
}
// private
function igmenu_setHoverClass(hoverClass) {
this.element.setAttribute("igHov", hoverClass)
}
// private
function igmenu_getItemTdTag(e) {
if(e.tagName=="TD")
return e;
var i = e.childNodes.length;
while(i-- >= 0) {
if(e.childNodes[i].tagName == "TD")
return e.childNodes[i];
}
}
// private
function igmenu_getEnabled() {
if(this.element != null) {
if(ig_csom.IsFireFox && this.element.getAttribute("igDisabled") == null)
{
return(this.WebMenu.Element.hasAttribute("disabled") ? false : true)
}
else
return(this.element.getAttribute("igDisabled")?false:true);
}
}
// private
function igmenu_setEnabled(enabled) {
if(this.element != null) {
var e = igmenu_getItemTdTag(this.element);
if(enabled == true) {
if(this.element.getAttribute("igDisabled") == null)
return;
this.element.removeAttribute("igDisabled");
var oldClass=e.getAttribute("oldEnabledClass");
var oMenu = igmenu_getMenuById(this.getMenuId());
if(oldClass == null && oMenu.DefaultItemClass != null)
e.className = oMenu.DefaultItemClass;
else
e.className = oldClass;
e.removeAttribute("oldEnabledClass");
}
else {
if(this.element.getAttribute("igDisabled") == "1")
return;
var ms = igmenu_getMenuById(this.getMenuId());
var disabledClass = ms.DisabledClass;
this.element.setAttribute("igDisabled", "1");
if(e.className!=ms.HoverClass && e.className!=e.getAttribute("igHov"))
{
var oldClass = e.className;
e.setAttribute("oldEnabledClass", oldClass);
}
e.className=disabledClass;
e.removeAttribute("igtInitClass");
}
}
}
// private
function igmenu_getTargetFrame() {
var frame = this.element.getAttribute("igFrame");
if(ig_csom.notEmpty(frame))
return frame;
else
if(ig_csom.notEmpty(this.WebMenu.TargetFrame)) {
return this.WebMenu.TargetFrame;
}
else
return null;
}
// private
function igmenu_setTargetFrame(frame) {
this.element.setAttribute("igFrame", frame)
}
// private
function igmenu_getTargetUrl() {
var url = this.element.getAttribute("igUrl");
if(ig_csom.notEmpty(url))
return url;
else
if(ig_csom.notEmpty(this.WebMenu.TargetUrl)) {
return this.WebMenu.TargetUrl;
}
else
return null;
}
// private
function igmenu_setTargetUrl(url) {
this.element.setAttribute("igUrl", url)
}
// private
function igmenu_setChecked(bChecked) {
var ms=igmenu_getMenuByItemId(this.element.id);
var item = this.element;
var checkbox=item.getAttribute("igChkBx");
if(checkbox==null || checkbox.length==0)
return;
var topItem = item.getAttribute("igTop");
var checkElement = null;
if(topItem == "1" && ms.MenuTarget == 1)
checkElement = item.childNodes[0];
else {
if(item.childNodes[0].nodeName == "#text")
checkElement = item.childNodes[1].childNodes[1];
else
checkElement = item.childNodes[0].childNodes[0];
}
if(!bChecked)
{
if(checkElement.tagName == "IMG")
checkElement.src=ms.UncheckedImage;
else{
if(checkElement.tagName == "SPAN")
checkElement.innerHTML = "";
item.setAttribute("igChk", "0");
}
}
else {
if(checkElement.tagName == "IMG")
checkElement.src=ms.CheckedImage;
else
if(checkElement.tagName == "SPAN") {
if(ig_csom.IsIE)
checkElement.innerHTML = "a";
else
checkElement.innerHTML = "*";
}
item.setAttribute("igChk", "1");
}
ms.updateItemCheck(this.element.id,bChecked);
}
// private
function igmenu_getChecked(bChecked) {
var item = this.element;
var checked=item.getAttribute("igChk");
var checkbox=item.getAttribute("igChkBx");
if(checkbox!=null && checkbox.length>0)
if(checked!=null && checked.length>0 && checked == '1')
return true;
return false;
}
// private - Implements GetNextSibling for the Item object
function igmenu_getItemNextSibling()
{
var item = this.element.nextSibling;
while(item && item.nodeName == "#text")
item = item.nextSibling;
if(item)
item=igmenu_getItemById(item.id);
return item;
}
// private - Implements GetPrevSibling for the Item object
function igmenu_getItemPrevSibling()
{
var item = this.element.previousSibling;
while(item && item.nodeName == "#text")
item = item.previousSibling;
if(item)
item=igmenu_getItemById(item.id);
return item;
}
// private
function igmenu_getItemFirstChild()
{
var item=null;
item=igmenu_getItemById(this.element.id+"_1");
if(item==null) {
if(this.element.getAttribute("igChildId")) {
var index = 2;
while(item==null && index<100) {
item=igmenu_getItemById(this.element.id+"_"+index);
index++
}
}
}
return item;
}
// private
function igmenu_getItemParent()
{
var item=null;
var itemName=this.element.id.split("_")
if(itemName.length>1)
{
var parentName=this.element.id.substr(0,this.element.id.length-itemName[itemName.length-1].length-1);
item=igmenu_getItemById(parentName);
}
return item;
}
// private
function igmenu_getItemItems()
{
var itemAr=new Array();
var itemCount=0;
var item=this.getFirstChild();
while(item) {
itemAr[itemCount++]=item;
item=item.getNextSibling();
}
return itemAr;
}
function igmenu_kbMD(oItem,evt)
{
// make into an menu item
oItem = igmenu_getItemById(oItem.id.length>0?oItem.id:oItem.parentElement.id);
if (evt.keyCode==9){
if (oItem && oItem.Id!=oItem.WebMenu.getZerothMember().Id)
if(oItem.element.tabIndex!=-1)
AdjustTabIndex(oItem,null);
var tempItem = oItem;
do{
var oChildMenu = tempItem.Element.attributes["igChildId"];
if (oChildMenu)
tempItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
} while ((tempItem=tempItem.getParent()) != null)
oItem.WebMenu.unhoverItem(oItem.Element);
}
else if ( (evt.keyCode >= 48 && evt.keyCode <= 57) || // 0 - 9
(evt.keyCode >= 65 && evt.keyCode <= 122) // A - Z a - z
)
{
// check children first
var oItems = oItem.getItems();
var oTempItem = null;
for (var i = 0 ; i < oItems.length ; i++)
{
oTempItem = oItems[i];
oAccessKeyString = oTempItem.getAccessKey();
if (null!=oAccessKeyString && oAccessKeyString.length>0)
{
if (oAccessKeyString.toLowerCase().charCodeAt(0)==evt.keyCode ||
oAccessKeyString.toUpperCase().charCodeAt(0)==evt.keyCode)
if(oTempItem.getEnabled() || !oTempItem.IsSeparator())
{
AdjustTabIndex(oItem,oTempItem,true);
if (oTempItem.getItems().length==0)
igmenu_ExecuteItem(evt,oTempItem.Id,oTempItem.Element);
return;
}
}
}
oTempItem = oItem;
do
{
oTempItem = oTempItem.getNextSibling();
if (null==oTempItem)
{ // if none found, then navigate to the first item in the sibling set and go to that
if (oItem.getLevel()==0)
oTempItem = oItem.WebMenu.getItems();
else
oTempItem = oItem.getParent().getItems();
// if not null, grap first item and go to that
if (oTempItem) oTempItem = oTempItem[0];
}
if(oTempItem && oTempItem.Id==oItem.Id) break;
oAccessKeyString = oTempItem.getAccessKey();
if (null!=oAccessKeyString && oAccessKeyString.length>0)
{
if (oAccessKeyString.toLocaleLowerCase().charCodeAt(0)==evt.keyCode ||
oAccessKeyString.toLocaleUpperCase().charCodeAt(0)==evt.keyCode)
if(oTempItem.getEnabled() || !oTempItem.IsSeparator())
{
AdjustTabIndex(oItem,oTempItem,true);
if (oTempItem.getItems().length==0)
igmenu_ExecuteItem(evt,oTempItem.Id);
return;
}
}
}
while(oTempItem);
}
}
var bFromKeyBoardNav = false;
function igmenu_kbNav(oItem,evt)
{
if (evt.keyCode==37 ||
evt.keyCode==38 ||
evt.keyCode==39 ||
evt.keyCode==40 ||
evt.keyCode==27)
{
bFromKeyBoardNav = true;
KeyBoardMove(igmenu_getItemById(evt.srcElement.id.length>0?evt.srcElement.id:oItem.parentElement.id ), evt.keyCode, evt); // process arrow keys
return;
}
var oChildItem = null;
if (evt.keyCode==32) // space key
{
if (oItem.id=="") oItem = oItem.parentElement;
if (null == (oChildItem = igmenu_getItemById(oItem.id).getFirstChild()))
igmenu_ExecuteItem(evt,oItem);
else // show the child menu
{
var oChildMenu=null;
var oObjItem = igmenu_getItemById(oItem.id);
if (oObjItem.getLevel()==0 & oObjItem.WebMenu.MenuTarget==1)
{
oChildMenu = oObjItem.Element.attributes["igChildId"];
if (oChildMenu) oObjItem.WebMenu.displayHorizontalSubMenu(oObjItem.Element,oChildMenu.value);
AdjustTabIndex(null,oChildItem);
}
else
{
oChildMenu = oObjItem.Element.attributes["igChildId"];
if (oChildMenu) oObjItem.WebMenu.displaySubSubMenu(oObjItem.Element,oChildMenu.value);
}
AdjustTabIndex(null,oChildItem)
}
}
}
function igmenu_kbFocus(oItem,evt)
{
var oError = false;
var igDisabled = oItem.getAttribute("igDisabled");
if(igDisabled != null && igDisabled.length > 0) {
return;
}
if (oItem.id==null || oItem.id=="")
{
oItem = oItem.parentElement;
try
{
oItem.focus();
}
catch(e)
{oError=true}
}
if (!oError && oItem)
{
igmenu_mouseover(oItem, evt, false);
var oObjItem = igmenu_getItemById(oItem.id);
if(oObjItem.WebMenu == null || oObjItem.WebMenu.MenuLoaded == false)
return;
var bSameItem = igmenu_Enqueue(oObjItem);
if (null!=oObjItem && !bSameItem)
if (oObjItem.getLevel()==0 && oObjItem.WebMenu.MenuTarget==1)
{
oChildMenu = oObjItem.Element.attributes["igChildId"];
if (bOpenSubMenuOnFocus)
if (oChildMenu)
oObjItem.WebMenu.displayHorizontalSubMenu(oObjItem.Element,oChildMenu.value);
//else
//igmenu_ExecuteItem(evt,oObjItem.Id,oObjItem.Element);
}
else
{
oChildMenu = oObjItem.Element.attributes["igChildId"];
if (bOpenSubMenuOnFocus)
if(oChildMenu)
oObjItem.WebMenu.displaySubSubMenu(oObjItem.Element,oChildMenu.value);
}
}
bFromKeyBoardNav = false;
bOpenSubMenuOnFocus = true;
ig_inMenu = false;
}
var bOpenSubMenuOnFocus = true;
function KeyBoardMove(oItem, keyCode, evt)
{
if (oItem==null) return;
var oLevel = oItem.getLevel();
var oMenuTarget = oItem.WebMenu.MenuTarget;
var oNextItem = null;
var bSetFocus = true;
var oChildMenu = null;
switch(keyCode)
{
case(27):
// on an escape, navigate up a menu lvl. At level zero????
var oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu)
oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
oItem.WebMenu.unhoverItem(oItem.Element, false);
if (oLevel>0)
{
oNextItem = oItem.getParent();
oChildMenu = oNextItem.Element.attributes["igChildId"];
oItem.WebMenu.unhoverItem(oItem.Element, false);
bOpenSubMenuOnFocus = false
AdjustTabIndex(oItem,oNextItem,true);
if (oChildMenu) oNextItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
}
else
{
oItem.Element.blur();
AdjustTabIndex(oItem,oNextItem);
}
break;
case(37): // left arrow (base)
if ( oMenuTarget==1&&oLevel<=1 ) // and a horizontal menu
{
oNextItem = igmenu_getNextKBParent(oItem,-1);
var oOldItem = oItem;
while(oOldItem.getLevel()>0) oOldItem=oOldItem.getParent();
oChildMenu = oOldItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
AdjustTabIndex(oItem,oNextItem); // if found, focus on that
igmenu_unhoverPath(oItem);
}
else //if (oMenuTarget==1)
{
oNextItem = oItem.getParent();
if(! (typeof(oNextItem.getLevel())=="number")){oNextItem=null;}
AdjustTabIndex(oItem,oNextItem); // if found, focus on that
oItem.WebMenu.unhoverItem(oItem.Element, false);
if(oNextItem) oChildMenu = oNextItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
}
if (oMenuTarget==1 && oItem.getLevel()==1 && oNextItem.getLevel()==0)
{
oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
oChildMenu = oNextItem.Element.attributes["igChildId"];
if (oChildMenu)
{
oItem.WebMenu.displayHorizontalSubMenu(oNextItem.Element,oChildMenu.value);
oNextItem.WebMenu.hoverItem(oNextItem.Element);
}
}
break;
case(38): //up
if (oLevel==0&&oMenuTarget==1)
{
if (null == (oNextItem = igmenu_getItemById(oItem.Id).getFirstChild()))
{
AdjustTabIndex(null,oNextItem);
}
else // show the child menu
{
oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.displayHorizontalSubMenu(oItem.Element,oChildMenu.value);
AdjustTabIndex(null,oNextItem);
}
}
else
{
oNextItem = oItem;
do
{
oNextItem = oNextItem.getPrevSibling(); // get next sibling item
if (null==oNextItem)
{ // if none found, then navigate to the first item in the sibling set and go to that
if (oItem.getLevel()==0)
oNextItem = oItem.WebMenu.getItems();
else
oNextItem = oItem.getParent().getItems();
// if not null, grap first item and go to that
if (oNextItem) oNextItem = oNextItem[oNextItem.length-1];
}
}
while(oNextItem && (!oNextItem.getEnabled() || oNextItem.IsSeparator()));
oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu)
oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
AdjustTabIndex(oItem,oNextItem); // if found, focus on that
}
break;
case(39): // right arrow (base)
if (oMenuTarget==1&&oLevel==0) // if at the top level and a horizontal menu
{
oNextItem = igmenu_getNextKBParent(oItem,1) ;
AdjustTabIndex(oItem,oNextItem); // if found, focus on that
oChildMenu = oItem.Element.attributes["igChildId"];
if(oChildMenu) oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
igmenu_unhoverPath(oItem);
}
else if(oMenuTarget==1&&oLevel>0)
{
if (oItem.getItems().length>0) oNextItem = oItem.getItems()[0];
else oNextItem = igmenu_getNextKBParent(oItem,1) ;
//if (oMenuTarget==1 && oItem.getLevel()>=1 && oNextItem.getLevel()==0)
if (oMenuTarget==1 && oItem.getLevel()==1 && oNextItem.getLevel()==0)
{
// need to close the menu
oChildMenu = oItem.getParent().Element.attributes["igChildId"];
if(oChildMenu)oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
oChildMenu = oNextItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.displayHorizontalSubMenu(oNextItem.Element,oChildMenu.value);
igmenu_unhoverPath(oItem);
}
else if (oNextItem.getLevel()>0)
{
oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.displaySubSubMenu(oItem.Element,oChildMenu.value);
oItem.WebMenu.hoverItem(oItem.Element);
}
else
{
// need to close the menu
var oTempItem=oItem;
for (var i = oTempItem.getLevel() ; i>0 ; i-- )
{
oTempItem.WebMenu.unhoverItem(oTempItem.Element, true);
oTempItem = oTempItem.getParent();
oChildMenu = oTempItem.Element.attributes["igChildId"];
if(oChildMenu)oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
}
oChildMenu = oItem.getParent().Element.attributes["igChildId"];
if(oChildMenu)oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
oChildMenu = oNextItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.displayHorizontalSubMenu(oNextItem.Element,oChildMenu.value);
igmenu_unhoverPath(oItem, true);
}
AdjustTabIndex(oItem,oNextItem,bSetFocus); // if found, focus on that
}
else // Vertical menu
{
var oTempItem = oItem.getItems();
if (oTempItem.length>0)
{
oNextItem=null;
for(var i=0; i < oTempItem.length && oNextItem==null; i++)
if (oTempItem[i].getEnabled())
oNextItem = oTempItem[i];
oChildMenu = oItem.Element.attributes["igChildId"];
if(oChildMenu)
if (oItem.getLevel()==0)
oItem.WebMenu.displayVerticalSubMenu(oItem.Element,oChildMenu.value);
else
oItem.WebMenu.displaySubSubMenu(oItem.Element,oChildMenu.value);
AdjustTabIndex(oItem,oNextItem);
oItem.WebMenu.hoverItem(oItem.Element);
}
else
{
// for right now, if we arrow off a vertical menu, go back to the topmost parent Item
oNextItem=oItem;
for (var i = oItem.getLevel() ; i>0 ; i-- )
{
oNextItem.WebMenu.unhoverItem(oNextItem.Element, true);
oNextItem = oNextItem.getParent();
oChildMenu = oNextItem.Element.attributes["igChildId"];
if(oChildMenu)oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
}
AdjustTabIndex(null,oNextItem,true);
}
}
break;
case(40): // down
if (oLevel==0&&oMenuTarget==1)
{
if (null == (oNextItem = igmenu_getItemById(oItem.Id).getFirstChild()))
{
AdjustTabIndex(null,oItem);
}
else // show the child menu
{
oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu) oItem.WebMenu.displayHorizontalSubMenu(oItem.Element,oChildMenu.value);
AdjustTabIndex(oItem,oNextItem);
oItem.WebMenu.hoverItem(oItem.Element);
}
}
else
{
oNextItem = oItem;
do
{
oNextItem = oNextItem.getNextSibling();
if (null==oNextItem)
{ // if none found, then navigate to the first item in the sibling set and go to that
if (oItem.getLevel()==0)
oNextItem = oItem.WebMenu.getItems();
else
oNextItem = oItem.getParent().getItems();
// if not null, grap first item and go to that
if (oNextItem) oNextItem = oNextItem[0];
}
}
while(oNextItem && (!oNextItem.getEnabled() || oNextItem.IsSeparator()));
oChildMenu = oItem.Element.attributes["igChildId"];
if (oChildMenu)
oItem.WebMenu.hideSubMenu(igmenu_getElementById(oChildMenu.value));
AdjustTabIndex(oItem,oNextItem); // if found, focus on that
}
break;
}
}
// private
// In IE, in order for the focus to be settable, we need to set the tab index on the element.
// however we don't want the tab index to remain on that element forever, so we need to strip it off the
// old TD (as long as it's not the first in the first row) and assign a temp value to the new item
function AdjustTabIndex(oldItem,newItem,bFocus)
{
if (bFocus==null) bFocus=true;
var iTabOrder= newItem ? newItem.WebMenu.getTabIndex(): -1;
if(oldItem)
if (oldItem.Id!=oldItem.WebMenu.getZerothMember().Id )
//if (oldItem && oldItem.Id!=oldItem.WebMenu.getZerothMember().Id ) // well the first part appears redundant
{
if (oldItem.element.tagName=="TD") oldItem.element.tabIndex = -1;
else if (oldItem.element.tagName=="TR") oldItem.element.childNodes[0].tabIndex = -1;
}
if (newItem)
{
if (newItem.Id!=newItem.WebMenu.getZerothMember().Id)
{
newItem = newItem.element;
// if the menu is vertical then we need to adjust fromt the TR to the TD
if (newItem.tagName=="TR") newItem = newItem.childNodes[0];
newItem.tabIndex = iTabOrder;
}
else
{
newItem = newItem.element;
// if the menu is vertical then we need to adjust fromt the TR to the TD
if (newItem.tagName=="TR") newItem = newItem.childNodes[0];
newItem.tabIndex = iTabOrder;
}
if (bFocus) newItem.focus();
}
}
// private - this function is used by a horizontal menu to determine what the next parent item is
// oItem - the item that was navigated off
// oDirection -
// -1 - Get the previous parent item
// 1 - Get the next parent item
function igmenu_getNextKBParent(oItem,oDirection)
{
var oNextItem = null;
while(oItem.getLevel()>0)
oItem = oItem.getParent();
if(oDirection==-1)
{
oNextItem = oItem;
do {
oNextItem = oNextItem.getPrevSibling(); // get previous sibling item
if (null==oNextItem)
{ // if none found, then navigate to the first item in the sibling set and go to that
oNextItem = oItem.WebMenu.getItems();
// if not null, grap first item and go to that
if (oNextItem) oNextItem = oNextItem[oNextItem.length-1];
}
}
while(oNextItem && (!oNextItem.getEnabled() || oNextItem.IsSeparator()));
}
else
{
oNextItem = oItem;
do{
oNextItem = oNextItem.getNextSibling(); // get next sibling item
if (null==oNextItem)
{ // if none found, then navigate to the first item in the sibling set and go to that
oNextItem = oItem.WebMenu.getItems();
// if not null, grap first item and go to that
if (oNextItem) oNextItem = oNextItem[0];
}
}
while(oNextItem && (!oNextItem.getEnabled() || oNextItem.IsSeparator()));
}
return oNextItem;
}
// private
function igmenu_unhoverPath(oItem)
{
if (oItem)
{
var oWM=oItem.WebMenu;
while(oItem)
{
oWM.unhoverItem(oItem.Element, false);
if(oItem != oWM)
oItem = oItem.getParent();
else
oItem = null;
}
}
}
function igmenu_PurgeQueue()
{
if (ig_menuObject && ig_menuObject.ItemQueue.length>0) igmenu_unhoverPath(ig_menuObject.ItemQueue.pop());
}
function igmenu_Enqueue(obj)
{
var oWM=obj.WebMenu;
// need to decide how to handle correct coloration of items
if (oWM.ItemQueue.length>0)
{
oItem = oWM.ItemQueue.pop();
if (oItem && obj)
{
if (oItem.Id==obj.Id){
oWM.ItemQueue = oWM.ItemQueue.concat(oItem);
return true;
}
if (oItem.Id.indexOf(obj.Id) == -1 && obj.Id.indexOf(oItem.Id) == -1) // then we are in a new tree entirely
if (igmenu_AreSiblings(oItem,obj)) oWM.unhoverItem(oItem.Element, false);
else
{
igmenu_unhoverPath(oItem);
while(oWM.ItemQueue.length>0) oWM.ItemQueue.pop();
}
else
{
var parent = obj.getParent();
if(parent != null)
if (oItem.Id == parent.Id) oWM.ItemQueue.concat(oItem); // if the node being added is a child of oItem, then push back oItem
}
}
}
oWM.ItemQueue = oWM.ItemQueue.concat(obj);
}
function igmenu_AreSiblings(oItem,obj)
{
if (null==oItem || null==obj) return false;
var parent = oItem.getParent();
if(parent != null) return (oItem.getParent().Id==obj.getParent().Id);
else return null;
}
function igmenu_unhoverAll(oSubMenu)
{
var oTItems = null;
if (oSubMenu && null!=(oTItems=igmenu_getItemById(oSubMenu.id).getItems()))
for (var i = oTItems.length - 1; i > -1 ; --i)
oTItems[i].WebMenu.unhoverItem(oTItems[i].Element, false);
}
function igmenu_ExecuteItem(evt,oItem, oItemElement)
{
// execute the item
ig_startClick=true;
igmenu_mouseup(null, evt, oItemElement);
oItem = igmenu_getItemById(oItem.id);
AdjustTabIndex(oItem,null);
igmenu_unhoverPath(oItem);
igmenu_PurgeQueue();
}
function igmenu_pageUnload(){
if(ig_csom.IsIE55Plus)
{
ig_delete(igmenu_panelArray);
ig_delete(igmenu_array);
ig_delete(igmenu_itemarray);
}
}
if(typeof(ig_csom)!="undefined" && ig_csom.IsIE)
ig_csom.addEventListener(window, "unload", igmenu_pageUnload, true);
|