//! ################################################################ //! Copyright (c) 2004-2007 Amazon.com, Inc., and its Affiliates. //! All rights reserved. //! Not to be reused without permission //! $DateTime: 2007/08/18 00:57:44 $ //! ################################################################ function n2SimplePopoverInitLibrary() { // Begin library code wrapper. Goes all the way to the bottom of the file if (window.goN2LibMon) { goN2LibMon.beginLoad('simplePopover', 'n2CoreLibs'); } window.N2SimplePopover=function() { var oCfg = goN2U.getConfigurationObject('N2SimplePopover'); this.nEdgePad = oCfg.getValue('this.nEdgePad', 6); // padding from screen edge to popup (when applicable) this.nHotPad = oCfg.getValue('this.nHotPad', 2); this.className = 'N2SimplePopover'; this.version = '1.0.2'; this.myMouseOverCallback=n2MouseOverFeature; // put here not in initialization this.myMouseOutCallback=n2MouseOutFeature; // put here not in initialization this.myOnCloseCallback=n2OverlayClosed; // put here not in initialization this.myFeatureChangedCallback=n2OverlayChanged; // put here not in initialization this.myCustomCallbacks = []; this.myID=null; this.popObj=null; this.bIsVisible = false; this.cursorCanLeavePopover = false; this.staticTimer = null; this.content = null; this.nHAdjust=0; this.nVAdjust=0; this.nAnimateOpen=5; this.nAnimateClose=4; this.sAnimateOpenStyle = 'animatedBox'; this.sAnimateCloseStyle = 'animatedBoxHollow'; this.sBorderStyle = null; this.bIsTabTitled = false; this.oBorderImg = { t: goN2Locale.getImageURL('JSF-popover-border-t','gno/popover-border-t.gif'), b: goN2Locale.getImageURL('JSF-popover-border-b','gno/popover-border-b.gif'), l: goN2Locale.getImageURL('JSF-popover-border-l','gno/popover-border-l.gif'), r: goN2Locale.getImageURL('JSF-popover-border-r','gno/popover-border-r.gif'), tl: goN2Locale.getImageURL('JSF-popover-border-tl','gno/popover-border-tl.gif'), tr: goN2Locale.getImageURL('JSF-popover-border-tr','gno/popover-border-tr.gif'), bl: goN2Locale.getImageURL('JSF-popover-border-bl','gno/popover-border-bl.gif'), br: goN2Locale.getImageURL('JSF-popover-border-br','gno/popover-border-br.gif'), ct: goN2Locale.getImageURL('JSF-popover-border-t','gno/popover-border-t.gif'), cb: goN2Locale.getImageURL('JSF-popover-border-b','gno/popover-border-b.gif'), cl: goN2Locale.getImageURL('JSF-popover-border-l','gno/popover-border-l.gif'), cr: goN2Locale.getImageURL('JSF-popover-border-r','gno/popover-border-r.gif'), ctl:goN2Locale.getImageURL('JSF-popover-border-ctl','gno/popover-border-ctl.gif'), ctr:goN2Locale.getImageURL('JSF-popover-border-ctr','gno/popover-border-ctr.gif'), cbl:goN2Locale.getImageURL('JSF-popover-border-cbl','gno/popover-border-cbl.gif'), cbr:goN2Locale.getImageURL('JSF-popover-border-cbr','gno/popover-border-cbr.gif') }; this.sTransImg = goN2Locale.getImageURL('JSF-popover-trans', 'gno/popover-trans.gif'); this.oCurHotspot = null; this.oCurTabTitle = null; this.connID = null; this.nPopLevel = null; this.childPopFeatureID = null; this.parentPopFeatureID = null; this.regFeatureID; this.bLADSupported = true; this.nLADTimeoutMs = 16000; // ms to wait this.nLADRetryMs = 250; // ms delay between checks this.sLADKey = null; // gaTD[key] exists this.sLADField = null; // gaTD[].field or gaTD[key].field exists var imagePath = goN2Locale.getImageURL('JSF-loading-bar', 'nav2/images/loading-bar.gif'); this.sLADLoadingMessage = goN2Locale.getString('loading_13548', 'Loading...') + ''; this.sLADTimeoutMessage = goN2Locale.getString('unable_to_get_info_36020', "Unable to obtain necessary information. Please try again later"); this.bMoveHEContent = true; } new N2SimplePopover(); N2SimplePopover.sClickGrabberID = 'n2SPopClickGrab'; //WARNING: events.js uses N2SimplePopover.sClickGrabberID N2SimplePopover.prototype.initialize = function (id, objectName, dataArrayName, populateMethod, sLocateMethodID, nHAdjust, nVAdjust, sBorderStyle) { ; this.myID=id; // ID of HTML layer element this.objectName=objectName; // JS Object name if(dataArrayName) { try { this.aDataArray = eval(dataArrayName); } catch(e) { ; } } this.sDataArrayName = dataArrayName; // JS Object name ; this.sBorderStyle = sBorderStyle; this.createPopHTML(id, objectName, this.content); this._createHotspotClickGrabber(); this.popObj = goN2U.getRawObject(this.myID); this.popObjStyle = goN2U.getObject(this.myID); ; ; this._presetLocate(sLocateMethodID, nHAdjust, nVAdjust); }; N2SimplePopover.prototype.destructor = function() { this.popObj = null; this.popObjStyle = null; } N2SimplePopover.prototype.getObject = function () { return this.popObj; }; N2SimplePopover.prototype.simplePopoverInitialize = N2SimplePopover.prototype.initialize; N2SimplePopover.prototype.setMouseOverCallback = function (fn) { this.myMouseOverCallback = fn; }; N2SimplePopover.prototype.setMouseOutCallback = function (fn) { this.myMouseOutCallback = fn; }; N2SimplePopover.prototype.setPopoverChangedCallback = function (fn) { this.myFeatureChangedCallback = fn; }; N2SimplePopover.prototype.setOnCloseCallback = function (fn) { this.myOnCloseCallback = fn; }; N2SimplePopover.prototype.setCallback = function (sID, fFn) { this.myCustomCallbacks[sID] = fFn; } N2SimplePopover.prototype.getID = function() { return this.myID; }; N2SimplePopover.prototype.getObjectName = function() { return this.objectName; }; N2SimplePopover.prototype.getHotspotID = function() { return this.linkID; }; N2SimplePopover.prototype.setPopulate = function (fn) { this.populate = fn; }; N2SimplePopover.prototype.configureAnimation = function(nOpen, nClose, sOpenStyle, sCloseStyle) { this.nAnimateOpen=nOpen; this.nAnimateClose=nClose; this.sAnimateOpenStyle = sOpenStyle; this.sAnimateCloseStyle = sCloseStyle; }; N2SimplePopover.prototype.configureTabTitle = function(bNoConnector) { this.bIsTabTitled = true; if (!bNoConnector) { this.connID = this.myID + "_conn"; this.createConnectorHTML(); } } N2SimplePopover.prototype.preConfigureNTier = function(nPopLevel, regFeatureID, parentFeatureID, childFeatureID) { this.regFeatureID = regFeatureID; this.parentPopFeatureID = parentFeatureID; this.childPopFeatureID = childFeatureID; this.nPopLevel = nPopLevel; } N2SimplePopover.prototype.setBorderImage = function(sImg, sURL) { this.oBorderImg[sImg] = sURL; } N2SimplePopover.prototype.configureLADSupport = function(b, sKey, sField, nTimeoutMs, nRetryMs, sLoadingMsg, sTimeoutMsg) { this.bLADSupported = b; if (sKey) {this.sLADKey = sKey;} if (sField) {this.sLADField = sField;} if (nTimeoutMs) {this.nLADTimeoutMs = nTimeoutMs;} if (nRetryMs) {this.nLADRetryMs = nRetryMs;} if (sLoadingMsg) {this.sLADLoadingMessage = sLoadingMsg;} if (sTimeoutMsg) {this.sLADTimeoutMessage = sTimeoutMsg;} }; N2SimplePopover.prototype.show = function (oHotspot) { if (goN2U.isDefined(this.myCustomCallbacks['beforeShow'])) { ; this.myCustomCallbacks['beforeShow'](this); } if (this.bIsTabTitled) { this.oCurHotspot = oHotspot.oLink; this.oCurTabTitle = this.oCurHotspot; if (this.oCurHotspot.id) { var eTab = goN2U.getElement(this.oCurHotspot.id + '_tab', true); if (eTab) { this.oCurTabTitle = eTab; } } } this._showPrepare(oHotspot); var sLinkID = oHotspot.sLinkID; var oLNI = new N2LinkNameInfo(sLinkID); var sID = oLNI.getID(); var sType = oLNI.getType(); var sParams = oLNI.getParams(); var sHref = oHotspot.href; var sLinkText = oHotspot.linkText; var re = /([^\\])'/gi; sLinkText=sLinkText.replace(re, "$1\\'") ; ; ; this._hideTooltip(oHotspot.oLink); this.setCurrentThingData (null, sID, sType, sParams, sLinkID, sHref, sLinkText); this._showPopulate(null, sID, sType, sParams, sLinkID, sHref, sLinkText); this._showLocate(oHotspot); this.saveCurrentElementData(); }; N2SimplePopover.prototype._showPrepare = function (oHotspot) { this.initialMouseOver=true; this.initialUpdate=true; this.cursorCanLeavePopover = (oHotspot.staticFlag & 2); if (this.makeStatic) { this.makeStatic(oHotspot.staticFlag); } this.nLADRetries = this.nLADTimeoutMs/this.nLADRetryMs; this.bLADLoading = false; this.bWasLADDelayed = false; this._blurFormElements(); var oParent = this.getParentPopover(); if (oParent) { oParent.cursorCanLeavePopover = true; } if (goN2U.bIsSafari) { goN2U.show(this.myID); } else { goN2U.display(this.myID, 'inline'); } this.bIsVisible = true; this.hookEvents(); }; N2SimplePopover.prototype._blurFormElements = function() { var aForms = document.getElementsByTagName('form'); for (var i=0; i this.width) { popX = oHotspot.absleft + oHotspot.width + this.nHotPad; } else { var nWindowWidth = goN2U.getInsideWindowWidth(); var nWindowRight = goN2U.getScrollLeft() + nWindowWidth; popX = nWindowRight - this.width - 6; bOverlapsHotspot = true; } } var totalAvailFromLinkTop = oHotspot.height + oHotspot.availUnder; if (bOverlapsHotspot && this.height <= oHotspot.availUnder) { popY = oHotspot.abstop + oHotspot.height + 2; } else if (this.height <= totalAvailFromLinkTop) { popY = oHotspot.availAbove > 0 ? oHotspot.abstop : oHotspot.abstop - oHotspot.availAbove; } else { popY = oHotspot.abstop - (this.height-totalAvailFromLinkTop+this.nEdgePad); } this._doLocate(popX, popY); }; N2SimplePopover.prototype._doLocate = function (popX, popY) { goN2U.shiftTo(this.myID, popX, popY); this.updateLocation(); this.initialLeft = this.left; this.initialTop = this.top; ; if (window.goN2Debug) { var ePop = goN2U.getElement(this.myID); ; ; ; ; } }; N2SimplePopover.prototype._locateLinkTopLeft = function (oHotspot) { var popX = oHotspot.absleft; var popY = oHotspot.abstop; var nHAdj = this.nHAdjust; var nVAdj = this.nVAdjust; if (nVAdj == 'c') { nVAdj = parseInt(oHotspot.height/2); } if (nHAdj == 'c') { nHAdj = parseInt(oHotspot.width/2); } this._doLocate (popX + nHAdj, popY + nVAdj); }; N2SimplePopover.prototype._locateLinkRight = function (oHotspot) { var popX = oHotspot.absleft + oHotspot.width; var popY = oHotspot.abstop; var nHAdj = this.nHAdjust; var nVAdj = this.nVAdjust; if (nVAdj == 'c') { nVAdj = parseInt(oHotspot.height/2 - this.height/2); } else if (nVAdj == 'b') { nVAdj = oHotspot.height-this.height; } var popLeft = popX + nHAdj; this._doLocate (popLeft, popY + nVAdj); if (this.bIsTabTitled && this.connID) { var connLeft = Math.min(oHotspot.absleft + oHotspot.width - 1, popLeft - 1); var eConn = goN2U.getElement(this.connID, true); eConn.style.left = connLeft; eConn.style.top = oHotspot.abstop; eConn.style.width = (popLeft - connLeft) + 7; eConn.style.height = oHotspot.height; } }; N2SimplePopover.prototype._locateLinkLeft = function (oHotspot) { var popX = oHotspot.absleft - this.width; var popY = oHotspot.abstop; var nHAdj = this.nHAdjust; var nVAdj = this.nVAdjust; if (nVAdj == 'c') { nVAdj = parseInt(oHotspot.height/2 - this.height/2); } else if (nVAdj == 'b') { nVAdj = oHotspot.height-this.height; } this._doLocate (popX + nHAdj, Math.max(popY + nVAdj, 4)); }; N2SimplePopover.prototype._locateBelowLink = function (oHotspot) { var popX = oHotspot.absleft; var popY = oHotspot.abstop + oHotspot.height; var nHAdj = this.nHAdjust; var nVAdj = this.nVAdjust; if (nHAdj == 'c') { nHAdj = parseInt(oHotspot.width/2 - this.width/2); } else if (nHAdj == 'r') { nHAdj = oHotspot.width-this.width; } var popTop = popY + nVAdj; this._doLocate (Math.max(popX + nHAdj, 4), popTop); if (this.bIsTabTitled && this.connID) { var connTop = Math.min(oHotspot.abstop + oHotspot.height - 1, popTop - 1); var eConn = goN2U.getElement(this.connID, true); eConn.style.left = oHotspot.absleft; eConn.style.width = oHotspot.width; eConn.style.top = connTop; eConn.style.height = (popTop - connTop) + 7; } }; N2SimplePopover.prototype._locateAboveLink = function (oHotspot) { var popX = oHotspot.absleft; var popY = oHotspot.abstop - this.height; var nHAdj = this.nHAdjust; var nVAdj = this.nVAdjust; if (nHAdj == 'c') { nHAdj = parseInt(oHotspot.width/2 - this.width/2); } else if (nHAdj == 'r') { nHAdj = oHotspot.width-this.width; } this._doLocate (Math.max(popX + nHAdj, 4), popY + nVAdj); }; N2SimplePopover.prototype._locateLinkBelowAbove = function (oHotspot) { var popX; var popY; var nXOffset = 100; var nXOffsetL = 20; var totalAvailFromLinkLeft = oHotspot.availRight + oHotspot.width; if (this.width < (totalAvailFromLinkLeft - nXOffset) ) { this.expandsH ='r'; } else { this.expandsH ='l'; } this.availDown = oHotspot.availUnder + oHotspot.height; this.availUp = oHotspot.availAbove; if (this.availUp < this.availDown - this.height ) { this.expandsV = 'd'; } else { this.expandsV = 'u'; } if (this.expandsH == 'l') { if (this.width + this.nHotPad < oHotspot.availLeft) { popX = oHotspot.absleft - this.width - this.nHotPad + nXOffsetL; } else { popX = this.nEdgePad; } } else { if (oHotspot.width >120) { popX = oHotspot.absleft + nXOffset; } else { popX = oHotspot.absleft + oHotspot.width - nXOffsetL; } } var totalAvailFromLinkTop = oHotspot.height + oHotspot.availUnder; if (this.height <= oHotspot.availUnder) { popY = oHotspot.abstop + oHotspot.height + this.nHotPad; } else { popY = oHotspot.abstop - (this.height-totalAvailFromLinkTop+this.nEdgePad); if (oHotspot.width < 120) { if (this.expandsH == 'r') { popX = oHotspot.absleft + oHotspot.width + this.nHotPad; } else { popX = oHotspot.absleft - this.width - this.nHotPad; } } } this._doLocate(popX, popY); }; N2SimplePopover.prototype._locateWindowCenter = function (oHotspot) { var popX = Math.max(goN2U.getScrollLeft()+((goN2U.getInsideWindowWidth()-this.width)/2), this.nEdgePad); var popY = Math.max(goN2U.getScrollTop()+((goN2U.getInsideWindowHeight()-this.height)/2), this.nEdgePad); this._doLocate(popX, popY); }; N2SimplePopover.prototype.createPopHTML = function (id, objectID, content) { var gp = ''; var zOrder = 200; if (this.nPopLevel != null) { zOrder += (this.nPopLevel * 20) ; } if (this.sBorderStyle == 'rounded') { gp+=''; } else { gp+=''; } var spanEl = document.createElement("span"); spanEl.innerHTML = gp; spanEl.id = id +"_OuterX"; document.body.insertBefore(spanEl,document.body.firstChild); }; N2SimplePopover.prototype.createConnectorHTML = function() { var gp = ''; var zOrder = 210; if (this.nPopLevel != null){ zOrder += (this.nPopLevel * 20); } gp =''; var connEl = document.createElement("span"); connEl.innerHTML = gp; connEl.id = this.connID + "_OuterX"; document.body.insertBefore(connEl, document.body.firstChild); }; N2SimplePopover.prototype.saveCurrentElementData = function() { }; N2SimplePopover.prototype._defaultPopulate = function(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText) { ; if (this.bLADSupported) { if (!this.isDataAvailable(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText)) { return false; } } switch (sType) { case 'he': // id of an HTML element this.populateUsingElementContents(sID); break; case 'ak': // array key this.populateUsingArrayContents(sID); break; case 'a': case 'am': case 'n': case 's': case 'l': break; default: ; } if (this.bLADLoading) { this.sizeOrPositionChanged(); } return true; }; N2SimplePopover.prototype.populate = N2SimplePopover.prototype._defaultPopulate; N2SimplePopover.prototype.populateUsingElementContents = function(id, type, linkID, href, linkText) { ; ; var eElem = goN2U.getRawObject(id); if (eElem) { var tempHTML = eElem.innerHTML; if (this.bMoveHEContent) { this.sCurrentContent = eElem.innerHTML; this.sCurrentHeID = id; eElem.innerHTML = ''; } this.setContent(tempHTML); } else { ; } }; N2SimplePopover.prototype.populateUsingArrayContents = function(id, type, linkID, href, linkText) { ; ; if (goN2U.isDefined(this.aDataArray) ) { if (goN2U.isDefined(this.aDataArray[id])) { this.setContent(this.aDataArray[id]); } else { ; } } else { ; } }; N2SimplePopover.prototype.isDataAvailable = function(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText) { ; ; if ( this._isDataAvailable (sAction, sID, sType, sParams, sLinkID, this.sLADKey, this.sLADField) ) { return true; } else { if (--this.nLADRetries && this.isVisible()) { if (!this.bLADLoading) { this.setContent(this.sLADLoadingMessage); this.bLADLoading = true; } setTimeout (new Function("", this.objectName + ".populate(" + "'" + (sAction ? sAction : 'null') + "'," + "'" + (sID ? sID : 'null') + "'," + "'" + (sType ? sType : 'null') + "'," + "'" + (sParams ? sParams : 'null') + "'," + "'" + (sLinkID ? sLinkID : 'null') + "'," + "'" + (sHref ? sHref : 'null') + "'," + "'" + (sLinkText ? sLinkText : 'null') + "'" + ");"), this.nLADRetryMs); } else { ; this.setContent(this.sLADTimeoutMessage); } return false; } }; N2SimplePopover.prototype._isDataAvailable = function(sAction, sID, sType, sParams, sLinkID, sKey, sField) { ; ; var bIsAvailable = true; switch(sType) { case 'he': // id of an HTML element if ( sKey && goN2U.getRawObject(sKey)=== null ) { bIsAvailable = false; } else if ( goN2U.getRawObject(sID)=== null ) { bIsAvailable = false; } break; case 'ak': // array key if (this.aDataArray) { if ( sKey && goN2U.isUndefined(this.aDataArray[sKey]) ) { bIsAvailable = false; } else if ( goN2U.isUndefined(this.aDataArray[sID]) ) { bIsAvailable = false; } } break; case 'a': // key is an ASIN (which means that the aDataArray should usually point ot gaTD) case 'am': var sTDKey = sType+sID; if (this.aDataArray) { if ( // an entry for this key goN2U.isUndefined(this.aDataArray[sTDKey]) || ( sField && goN2U.isUndefined(this.aDataArray[sTDKey][sField]) ) || ( sKey && goN2U.isUndefined(this.aDataArray[sKey]) ) || ( sKey && sField && goN2U.isUndefined(this.aDataArray[sKey][sField]) )) { bIsAvailable = false; } } break; } ; return bIsAvailable; }; N2SimplePopover.prototype.sizeOrPositionChanged = function () { if (this.myFeatureChangedCallback) { this.myFeatureChangedCallback(this); } }; N2SimplePopover.prototype.updateLocation = function (flag){ var po = this.popObj; this.left = goN2U.getObjectLeft(po); this.top = goN2U.getObjectTop(po); this.width = goN2U.getObjectWidth(po); this.height = goN2U.getObjectHeight(po); this.right = this.left + this.width; this.bottom = this.top + this.height; }; N2SimplePopover.prototype.isElementContained = function(elem) { var inPop = false; if (goN2U.elementIsContainedBy(elem, this.popObj)) { inPop = true; } else if (this.bIsTabTitled) { if (this.connID && goN2U.elementIsContainedBy(elem, goN2U.getElement(this.connID, true))) { inPop = true; } else if (goN2U.elementIsContainedBy(elem, this.oCurTabTitle) && !goN2U.elementIsContainedBy(elem, this.oCurHotspot)) { inPop = true; } } return inPop; }; N2SimplePopover.prototype.isCoordContained = function(x, y) { var inPop = false; var e = this.popObj; var left = goN2U.getPageElementLeft(e); var top = goN2U.getPageElementTop(e); var width = goN2U.getElementWidth(e); var height = goN2U.getElementHeight(e); if ((x >= left) && (x < left + width) && (y >= top) && (y < top + height)) { inPop = true; } else if (this.bIsTabTitled) { e = goN2U.getElement(this.connID, true); left = goN2U.getPageElementLeft(e); top = goN2U.getPageElementTop(e); width = goN2U.getElementWidth(e); height = goN2U.getElementHeight(e); if ((x >= left) && (x < left + width) && (y >= top) && (y < top + height)) { inPop = true; } e = this.oCurTabTitle; left = goN2U.getPageElementLeft(e); top = goN2U.getPageElementTop(e); width = goN2U.getElementWidth(e); height = goN2U.getElementHeight(e); if ((x >= left) && (x < left + width) && (y >= top) && (y < top + height)) { e = this.oCurHotspot; left = goN2U.getPageElementLeft(e); top = goN2U.getPageElementTop(e); width = goN2U.getElementWidth(e); height = goN2U.getElementHeight(e); if (!((x >= left) && (x < left + width) && (y >= top) && (y < top + height))) { inPop = true; } } } return inPop; } N2SimplePopover.prototype.mouseOver = function () { if (this.initialMouseOver) { ; this.initialMouseOver = false; var ret = true; if (this.myMouseOverCallback) { ; ret = this.myMouseOverCallback(this); } if (ret) { } } }; N2SimplePopover.prototype.mouseMove = function (evt) { if (this.initialMouseOver) { this.mouseOver(); } }; N2SimplePopover.prototype.mouseOut = function (evt) { var inPop = false; var inChildPop = false; var oChildFeature = this.getChildPopover(); evt = (evt) ? evt : ((window.event) ? window.event : null); if (evt) { if (goN2U.bIsIE) { inPop = this.isElementContained(evt.toElement); if (oChildFeature) { inChildPop = oChildFeature.isElementContained(evt.toElement); } } else { var x = evt.pageX; var y = evt.pageY; inPop = this.isCoordContained(x, y); if (oChildFeature){ inChildPop = oChildFeature.isCoordContained(x, y); } } } if ( inChildPop ){ this._makePopoverStatic(true); } else if (this.isParent() && !inPop) { //mouse is clearly out of the parent this._makePopoverStatic(false); } if (!inPop && !this.cursorCanLeavePopover && !this.buttonIsDown) { ; this.initialMouseOver = true; var ret = true; if (this.myMouseOutCallback) { ; ret = this.myMouseOutCallback(this); ; } if (ret) { ; this.hide(); } var oParentFeature = this.getParentPopover(); if (oParentFeature) { oParentFeature._makePopoverStatic(false); //make parent non-static if this (child) popover has a mouse out oParentFeature.mouseOut(evt); } } }; N2SimplePopover.prototype._hideTooltip = function (oLink) { var firstChild = oLink.firstChild; if (firstChild && firstChild.alt) { this.sImgAlt = firstChild.alt; firstChild.alt = ''; } }; N2SimplePopover.prototype.hookEvents = function () { }; N2SimplePopover.prototype.unhookEvents = function () { }; if (window.goN2LibMon) { goN2LibMon.endLoad('simplePopover'); } } // END library code wrapper n2RunIfLoaded("events", n2SimplePopoverInitLibrary, "simplepopover");