var isHoveringOn;var userAgent = navigator.userAgent.toLowerCase();var isIE = ((userAgent.indexOf("msie") != -1) && (userAgent.indexOf("opera") == -1));
var gIsPreviewMode = false;var gIsLoaded = false;var gHoverMode = false;var localScrollLeft = 0;var gLeftPos = 0;var gNumOfTLNs = 0;var gTLNNum = 1;var gLevelOneActiveID = 0;var gLevelTwoActiveID = 0;var gLevelOneHoverID = -1;var gLevelTwoHoverID = -1;var gTimerID = -1;var curNode;
var currentPagePersonalizationUrl;
function TLN_getElementById(id) {if(gNumOfTLNs==1) {return document.getElementById(id);}
var elem = document.getElementsByName(id)[gTLNNum-1];if(elem) {return elem;}
return document.getElementById(id);}
function StartScrollTLN(side) {if(gTimerID==-1) {gTimerID = window.setInterval("ScrollTLN('" + side + "')", 20);}
}
function StopScrollTLN() {if(gTimerID!=-1) {window.clearInterval(gTimerID);}
gTimerID = -1;}
function adjustLeftAndWidth(divElement) {if(localScrollLeft!=0) {if(isRtL) {
} else {divElement.scrollLeft = 0;divElement.style.width = parseInt(divElement.style.width) + localScrollLeft;divElement.style.left = parseInt(divElement.style.left) - localScrollLeft;}
}
return true;}
function adjustFocusToNode(node) {if(node==null || node.tagName!="A") {return;}
var divElement = TLN_getElementById("TLNDiv");var nodeParentOffsetLeft = node.parentNode.offsetLeft;if(isRtL) {var divRight = divElement.style.posRight;
var nodeRight = divElement.scrollWidth - nodeParentOffsetLeft - node.scrollWidth;var relRight = divElement.scrollWidth - (divElement.scrollLeft + divElement.offsetWidth);if(nodeRight < relRight) {divElement.scrollLeft += relRight - nodeRight + 4;
} else if(nodeRight + node.scrollWidth > relRight + divElement.offsetWidth) {divElement.scrollLeft -= nodeRight + node.scrollWidth - (relRight + divElement.offsetWidth) + 4;}
} else {
if(divElement.style.posLeft + nodeParentOffsetLeft + node.offsetWidth > divElement.style.posWidth + divElement.style.posLeft) {localScrollLeft = nodeParentOffsetLeft + node.offsetWidth - divElement.style.posWidth + (2 * node.offsetLeft);adjustLeftAndWidth(divElement);
} else if(divElement.style.posLeft + nodeParentOffsetLeft < gLeftPos) {localScrollLeft = divElement.style.posLeft + nodeParentOffsetLeft - node.offsetLeft;adjustLeftAndWidth(divElement);}
}
return true;}
function setTLNSizeWithResetOnRtL() {if(isRtL) {SetTLNSize(true);} else {SetTLNSize(false);}
}
function SetTLNSize(reset) {if(reset==null) {reset = false;}
var divElement = TLN_getElementById("TLNDiv" );var notchElement = TLN_getElementById("NotchTD");gLeftPos = notchElement.offsetWidth - 2;if(isRtL)
{notchElement.style.posLeft = document.body.offsetWidth - notchElement.offsetWidth - 4;if(reset)
{if(divElement.offsetLeft < TLN_getElementById("LeftScroll" ).offsetWidth +
TLN_getElementById("RightScroll").offsetWidth)
{divElement.style.right = gLeftPos - 1; 

divElement.style.right = gLeftPos;}
else
{divElement.style.right = gLeftPos;}
}
setTLNWidth(reset); 

if(reset && !isIE)
{divElement.style.left = -28
}
}
else{if(reset) {divElement.style.left = gLeftPos;}
}
SetScrollbars();
if(isRtL) {setTLNWidth(reset); 

setTLNWidth(reset); 

if(!isIE)
{
var extraWidth = 0;extraWidth = gLeftPos - 1;extraWidth -= TLN_getElementById("LeftScroll" ).offsetWidth + TLN_getElementById("RightScroll").offsetWidth+12;divElement.style.width = divElement.parentNode.offsetWidth - parseInt(divElement.style.left) + extraWidth;divElement.style.left =divElement.parentNode.offsetWidth;}
} else {var extraWidth = 0;if (!isIE)
extraWidth = gLeftPos - 10;divElement.style.width = divElement.parentNode.offsetWidth - parseInt(divElement.style.left) + extraWidth;}
}
var lastTDOnLevel1 = null;var lastTDOnLevel2 = null;
function setTLNWidth(reset)
{var divElement = TLN_getElementById("TLNDiv");var div1 = TLN_getElementById("Level1DIV");var div2 = TLN_getElementById("Level2DIV");
if(isRtL)
{var notchElement = TLN_getElementById("NotchTD" );divElement.style.posWidth = divElement.parentNode.offsetWidth - gLeftPos - 1;if(lastTDOnLevel1!=null)
{var levelsMaxRightSideOffset = (lastTDOnLevel1.offsetLeft < lastTDOnLevel2.offsetLeft?
divElement.scrollWidth - lastTDOnLevel1.offsetLeft :
divElement.scrollWidth - lastTDOnLevel2.offsetLeft) + 10;var neededWidth = (levelsMaxRightSideOffset > divElement.style.posWidth ?
levelsMaxRightSideOffset : divElement.style.posWidth) - 1;div1.style.posWidth = neededWidth;div2.style.posWidth = neededWidth;}
else
{var levelsMaxRightSideOffset = divElement.scrollWidth - lastTDOnLevel2.offsetLeft;div2.style.posWidth = (levelsMaxRightSideOffset > divElement.style.posWidth ?
levelsMaxRightSideOffset : divElement.style.posWidth) -1;}
divElement.style.posWidth = (divElement.style.posWidth < div2.style.posWidth ?
divElement.style.posWidth : div2.style.posWidth);}
else
{div1Width = parseInt(div1.style.width);div2Width = parseInt(div2.style.width);if(div1Width>div2Width)
{div2.style.width = div1Width;}
else
{div1.style.width = div2Width;}
if(isIE)
{divElement.style.posWidth = divElement.parentNode.offsetWidth - divElement.style.posLeft;}
else
{divElement.style.width = divElement.parentNode.offsetWidth - parseInt(divElement.style.left) + gLeftPos - 1;}
}
}
function SetTLNHeightAndSize() {var divElement = TLN_getElementById("TLNDiv");var scrollHeight = divElement.scrollHeight;var heightAdjustment = (isIE)? 0:2;if(scrollHeight!=parseInt(divElement.style.height)) {divElement.style.height = scrollHeight;TLN_getElementById("NotchTD" ).style.height = scrollHeight - heightAdjustment;TLN_getElementById("LeftScroll" ).style.height = scrollHeight;TLN_getElementById("RightScroll").style.height = scrollHeight;TLN_getElementById("TLNTable" ).style.height = scrollHeight + 1;SetTLNSize(true);AdjustFrameworkPage();}
}
function AdjustFrameworkPage() {try {
pageSupport.adjustFullPageIViews();} catch(e) {}
}
function SetScrollbars() {var levelOneEndElem = TLN_getElementById("LevelOneEnd");var levelTwoEndElem = TLN_getElementById("LevelTwoEnd");var divElement = TLN_getElementById("TLNDiv" );var parentOffsetWidth = divElement.parentNode.offsetWidth;
if(levelOneEndElem==null) {levelOneEndElem = levelTwoEndElem;}
var dispalyMode = 'none';var visibleMode = (isIE? 'block' : '');
if(gIsPreviewMode) {dispalyMode = visibleMode;} else if(divElement.offsetWidth > 0) {if(isRtL) {if(divElement.scrollWidth > divElement.offsetWidth) {dispalyMode = visibleMode;}
} else if(levelTwoEndElem.offsetLeft + gLeftPos > parentOffsetWidth ||
levelOneEndElem.offsetLeft + gLeftPos > parentOffsetWidth ||
divElement.style.posLeft < gLeftPos) {dispalyMode = visibleMode;}
}
TLN_getElementById("LeftScroll" ).style.display = dispalyMode;TLN_getElementById("RightScroll").style.display = dispalyMode;}
function SetTopPosition() {var divElement = TLN_getElementById("TLNDiv");if(isIE) {var notchElem = TLN_getElementById("NotchTD");var offsetTop = notchElem.offsetTop;var myParent = notchElem.offsetParent;while(myParent.tagName!="BODY") {offsetTop += myParent.offsetTop;myParent = myParent.offsetParent;}
divElement.style.top = offsetTop;} else {var tableElem = TLN_getElementById("TLNTable");var offsetTop = tableElem.offsetTop;var myParent = tableElem.offsetParent;while(myParent.tagName!="BODY") {offsetTop += myParent.offsetTop;myParent = myParent.offsetParent;}
divElement.style.top = offsetTop + divElement.offsetTop;}
}
function NavNode(name, title, showType, windowName, windowHeight, windowWidth, windowFeatures) {this.name = name;this.title = title;this.showType = showType;this.windowName = windowName;this.windowHeight = windowHeight;this.windowWidth = windowWidth;this.windowFeatures = windowFeatures;this.children = new Array(arguments.length - 7);for(var i=7 ; i<arguments.length ; i++) {this.children[i-7] = arguments[i];}
this.render = render;}
function doOnMouseEnter(level, id) {
if(gIsPreviewMode) {return;}
if((level == 2) || (gLevelOneActiveID != id)) {gHoverMode = true;}
if(level==1) {gLevelOneHoverID = id;printLevel1Table(gNavTree, gLevelOneActiveID, id);printLevel2Table(gNavTree.children[id], gLevelTwoActiveID, id);SetTLNSize();}
gHoverMode = false;}
function printLevel(navNodes, level, activeID, hoverID, firstLevelStyle) {var str = "";var rightTDClassSuffix = "";var numOfNodes = navNodes.children.length;for(var i=0; i<numOfNodes; i++) {str += navNodes.children[i].render(level, i, (i == activeID), (i == hoverID), (i == numOfNodes-1), firstLevelStyle, gHoverMode);}
if(gHoverMode) {rightTDClassSuffix = "Hover";}
if(level==1) {str += "<TD id=LevelOneEnd width=0></TD><TD id='LevelOneEndSpace' nowrap class=\"prtlTopNav1stLvl-right\">&nbsp;</TD>";} else if(firstLevelStyle) {str += "<TD id=LevelTwoEnd width=0></TD><TD id='LevelTwoEndSpace' nowrap class=\"prtlTopNav1stLvl-right\">&nbsp;</TD>"
} else {str += "<TD id=LevelTwoEnd width=0></TD><TD id='LevelTwoEndSpace' nowrap class=\"prtlTopNav2ndLvlRight" + rightTDClassSuffix + "\">&nbsp;</TD>";}
return str;}
function printLevel1Table(navNodes, levelOneActiveID, levelOneHoverID) {var levelContent = printLevel(navNodes, 1, levelOneActiveID, levelOneHoverID);
if(isIE) {TLN_getElementById("level1").outerHTML = "<TABLE id=level1 border=0 cellspacing=0 cellpadding=0 onresize='SetTLNHeightAndSize()' style=\"width:100%;\"><TR>" + levelContent + "</TR></TABLE>";} else {TLN_getElementById("level1").innerHTML = "<TR>" + levelContent + "</TR>";}
if(isRtL) {lastTDOnLevel1 = TLN_getElementById("navNode_1_" + (navNodes.children.length-1));}
gLevelOneActiveID = levelOneActiveID;}
function printLevel2Table(navNodes, levelTwoActiveID, levelOneHoverID, firstLevelStyle) {var levelContent = printLevel(navNodes, 2, levelTwoActiveID, levelOneHoverID, firstLevelStyle);
if(isIE) {TLN_getElementById("level2").outerHTML = "<TABLE id=level2 border=\"0\"cellspacing=\"0\" cellpadding=\"0\" style=\"width:100%;\"><TR>" + levelContent + "</TR></TABLE>";} else {TLN_getElementById("level2").innerHTML = "<TR>" + levelContent + "<TD nowrap class=\"prtlTopNav2ndLvlRight\" style=\"width:100%;\">&nbsp;</TD></TR>";}
if(isRtL) {lastTDOnLevel2 = TLN_getElementById("navNode_2_" + (navNodes.children.length-1));}
gLevelTwoActiveID = levelTwoActiveID;}
function onNewHistoryObj(evt) {var target = evt.dataObject.URL;EPCM.getSAPTop().amirselected = target;EPCM.raiseEvent("urn:com.sapportals:navigation", "UpdateTLNByBrowser", target);}
function walkTheDOM(node, func) {func(node);node = node.firstChild;while (node) {walkTheDOM(node, func);node = node.nextSibling;}
}
function purgeEventHandlersFromNode(node) {for (var n in node) {if (typeof node[n] === 'function') {node[n] = null;}
}
}
function purgeEventHandlers(node) {walkTheDOM(node, purgeEventHandlersFromNode);}
EPCM.subscribeEvent("urn:com.sapportals.portal:browser" , "resize" , setTLNSizeWithResetOnRtL);EPCM.subscribeEvent("urn:com.sapportals:navigation" , "AddNavTarget" , onNewHistoryObj);EPCM.subscribeEvent("urn:com.sapportals:navigation" , "AddNavTargetAllowDuplicate", onNewHistoryObj);EPCM.subscribeEvent("urn:com.sapportals.portal:navigation", "setTlnSize" , setTLNSizeWithResetOnRtL);
