

/* popoverPane Starts */

//! ################################################################
//! Copyright (c) 2004 Amazon.com, Inc., and its Affiliates.
//! All rights reserved.
//! Not to be reused without permission
//! $Change: 1675744 $
//! $Revision: #3 $
//! $DateTime: 2008/01/21 02:16:50 $
//! ################################################################
function n2PopoverPaneInitLibrary() { // Begin library code wrapper. Goes all the way to the bottom of the file
if (window.goN2LibMon) goN2LibMon.beginLoad('popoverPane', 'n2CoreLibs');
window.N2PopoverPane=function(oPopover, sID) {
this.sID = sID;
this.aSubPanes=null;
this.bIsSubPane=false;
this.maxSubPaneWidth;
this.currentWidth;
this.currentHeight;
this.bUseHistory = false;
this.bAllowDynamicUpdate = false;
this.sDefaultContent = '{PANE_ID}';
this.oPopover=oPopover;
this.nDefaultWidth ='auto';   // overrides everything else (inc. min/max)
this.nMinWidth = 0; //61;     // overrides value obtained from sizing content
this.nMaxWidth = 0; //600;    // overrides value obtained from sizing content
this.nDefaultHeight ='auto';  // overrides everything else (inc. min/max)
this.nMinHeight = 0; //60;    // overrides value obtained from sizing content
this.nMaxHeight = 0; //300;   // overrides value obtained from sizing content
this.sElementID;              // set to change the default elementID to populate/update
this.bDisableScrollbars = false; // if true would not allow scrollbars to be added automatically
this.bDisableResizing = false;   // if true would not compute new pane/popover sizes automatically
this.bTemplateHasPlaceholders = false;
this.bReplaceTemplateTDFieldPlaceholders = false;
this.myStyle;
this.LADTimer = null;
this.bbLADSupported = false;
this.nLADRetries; // calculated in show()
this.sLADKey = null;    // gaTD[key] exists
this.sLADField = null;    // gaTD[<sID>].field or gaTD[key].field exists
this.sLADDUAction = null;
var imagePath = goN2Locale.getImageURL('JSF-loading-bar', 'nav2/images/loading-bar');
this.sLADLoadingMessage = '<div align="center">' + goN2Locale.getString('loading_13548', 'Loading...') + '<im'+'g s'+'rc="' + imagePath + '" height="9" align="absmiddle"></div>';
this.sLADTimeoutMessage = goN2Locale.getString('unable_to_get_info_36020', "Unable to obtain necessary information. Please try again later");
this.bPersistContent = false;
}
new N2PopoverPane();
N2PopoverPane.prototype.locate=null;
N2PopoverPane.prototype.relocate=null;
N2PopoverPane.prototype.postPopulate=null;
N2PopoverPane.prototype.getID = function() { return this.sID;}
N2PopoverPane.prototype.setDefaultWidth = function(n) { this.nDefaultWidth = n; }
N2PopoverPane.prototype.setMinWidth = function(n) { this.nMinWidth = n; }
N2PopoverPane.prototype.setMaxWidth = function(n) { this.nMaxWidth = n; }
N2PopoverPane.prototype.setCurrentWidth = function(n) {this.currentWidth = n; }
N2PopoverPane.prototype.setDefaultHeight = function(n) { this.nDefaultHeight = n; }
N2PopoverPane.prototype.setMinHeight = function(n) { this.nMinHeight = n; }
N2PopoverPane.prototype.setMaxHeight = function(n) { this.nMaxHeight = n; }
N2PopoverPane.prototype.setCurrentHeight = function(n) {this.currentHeight = n; }
N2PopoverPane.prototype.disableScrollbars = function(f) { this.bDisableScrollbars = f; }
N2PopoverPane.prototype.setElementID = function(sID) { this.sElementID = sID; }
N2PopoverPane.prototype.getElementID = function() { return this.sElementID; }
N2PopoverPane.prototype.persistContent = function (b) { this.bPersistContent = b; }
N2PopoverPane.prototype.setStyle= function(n) { this.myStyle = n; }
N2PopoverPane.prototype.setUseHistory = function(f) { this.bUseHistory = f; }
N2PopoverPane.prototype.useHistory = function(f)    { return this.bUseHistory; }
N2PopoverPane.prototype.setTemplate = function(s) {
this.sTemplate = s;
this.sDefaultContent = s; // 9/19/2004, essential currently for the templating(?) code to work?
if (this.sTemplate.indexOf('{') >=0) this.bTemplateHasPlaceholders = true;
}
N2PopoverPane.prototype.replaceTemplateTDFieldPlaceholders = function (b) { this.bReplaceTemplateTDFieldPlaceholders = b; }
N2PopoverPane.prototype.setDefaultContent = function (s) { this.sDefaultContent = s; }
N2PopoverPane.prototype.isSubPane = function() { return this.bIsSubPane; }
N2PopoverPane.prototype.hasSubPanes = function() { return this.aSubPanes != null; }
N2PopoverPane.prototype.configureLADSupport = function(b, sKey, sField,
sDUAction, sDUParams,
sLoadingMsg, sTimeoutMsg) {
this.bLADSupported = b;
if (sKey)       this.sLADKey = sKey;
if (sField)     this.sLADField = sField;
if (sDUAction)     this.sLADDUAction = sDUAction;
if (sDUParams)     this.sDUParams = sDUParams;
if (sLoadingMsg) this.sLADLoadingMessage = sLoadingMsg;
if (sTimeoutMsg) this.sLADTimeoutMessage = sTimeoutMsg;
}
N2PopoverPane.prototype._initialize = function(bFirstPopulate) {
;
this.resetLAD();
if (bFirstPopulate && this.bPersistContent)
this.sDefaultContent = null;
var aSubPanes = this.aSubPanes;
if (aSubPanes != null) {
var nSubs = aSubPanes.length;
for (var i=0; i<nSubs; i++) {
this.aSubPanes[i].initialize(bFirstPopulate);
}
} else {
;
}
}
N2PopoverPane.prototype.initialize = N2PopoverPane.prototype._initialize;
N2PopoverPane.prototype.resetLAD = function() {
this.nLADRetries = this.oPopover.nLADTimeoutMs/this.oPopover.nLADRetryMs;
this.bLADLoading = false;
this.nLADAllow = 1;
if (this.LADTimer) {
;
clearTimeout(this.LADTimer);
this.LADTimer = null;
}
}
N2PopoverPane.prototype.aCloneList = { oPopover:1, nDefaultWidth:1, nMinWidth:1, nMaxWidth:1, nDefaultHeight:1, nMinHeight:1, nMaxHeight:1, sElementID:1}
N2PopoverPane.prototype.clone = function() {
var pane = new N2PopoverPane();
for (var key in this) {
if (this.aCloneList[key] && key != 'toString') {
pane[key] = this[key];
}
}
return pane;
}
N2PopoverPane.prototype.findPane = function (sPaneID) {
;
var oPane=null;
var oTmp;
if (sPaneID == this.sID) {
oPane =  this;
} else {
var aSubPanesHash = this.aSubPanesHash;
if(aSubPanesHash) {
oPane = aSubPanesHash[sPaneID];
if (goN2U.isUndefOrNull(oPane)) {
for (var sID in aSubPanesHash) {
if (sID == this.sID) next;
oPane = aSubPanesHash[sID].findPane(sPaneID);
if (!goN2U.isUndefOrNull(oPane)) {
break;
}
}
}
}
}
return oPane;
}
N2PopoverPane.prototype.toString = function () {
var txt= "\nPaneID: " + this.sID +"\n";
txt+= "ElementID: " + this.sElementID + "\n";
txt+= "nDefaultWidth: " + this.nDefaultWidth + "\n";
txt+= "nMinWidth: " + this.nMinWidth + "\n";
txt+= "nMaxWidth: " + this.nMaxWidth + "\n";
txt+= "nDefaultHeight: " + this.nDefaultHeight + "\n";
txt+= "nMinHeight: " + this.nMinHeight + "\n";
txt+= "nMaxHeight: " + this.nMaxHeight + "\n";
txt+= "myStyle: " + this.myStyle + "\n";
return txt;
}
N2PopoverPane.prototype.addSubPane = function(oPane, sID) {
;
;
;
if(!this.aSubPanes) this.aSubPanes = new Array();
if(!this.aSubPanesHash) this.aSubPanesHash = new Object();
this.aSubPanes[this.aSubPanes.length] = oPane;
this.aSubPanesHash[sID] = oPane;
oPane.sID = sID;
oPane.bIsSubPane = true;
oPane.setElementID(sID);
oPane.oPopover = this.oPopover;  // safety(?)
return oPane;
}
N2PopoverPane.prototype.newSubPane = function(sID) {
;
var oPane = new N2PopoverPane(this.oPopover, sID);
this.addSubPane(oPane, sID);
return  oPane;
}
N2PopoverPane.prototype.getSubPane = function (sID) {
;
if(!this.aSubPanesHash) this.aSubPanesHash = new Array();
if (!this.aSubPanesHash[sID]) {
;
this.newSubPane(sID);
}
return this.aSubPanesHash[sID];
}
N2PopoverPane.prototype.populateSubPanes = function(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText) {
var aSubPanes = this.aSubPanes;
if (aSubPanes != null) {
this.maxSubPaneWidth = 0;
;
var nSubs = aSubPanes.length;
for (var i=0; i<nSubs; i++) {
var oSubPane = aSubPanes[i];
; // + oPane.index.toString() );
if (oSubPane.populate) {
;
;
oSubPane.populate(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText);
this.maxSubPaneWidth = Math.max(this.maxSubPaneWidth, oSubPane.currentWidth);
}
}
if ((this.nDefaultWidth == 'auto') && !this.bIsSubPane && this.maxSubPaneWidth) {
;
goN2U.setWidth(this.oPopover, this.maxSubPaneWidth+6);
}
} else {
;
}
}
N2PopoverPane.prototype.prepareClose = function(bInit) {
var aSubPanes = this.aSubPanes;
;
if (aSubPanes != null) {
var nSubs = aSubPanes.length;
for (var i=0; i<nSubs; i++) {
aSubPanes[i].prepareClose(bInit);
}
}
this._prepareClose(bInit);
}
N2PopoverPane.prototype._prepareClose = function(bInit) {
if (this.bPersistContent) this.sDefaultContent = this.oPopover.getContent(this);
}
N2PopoverPane.prototype.enableDynamicUpdate = function (bF) { this.bAllowDynamicUpdate = bF;  }
N2PopoverPane.prototype.setDUHandler = function(sH, sM) {
this.sDUHandlerName = sH;
this.sRequestMode = sM;
}
N2PopoverPane.prototype.setDUAction = function(s) { this.bAllowDynamicUpdate = true; this.sDUAction = s; }
N2PopoverPane.prototype.setDUParams = function(s) { this.sDUParams = s; }
N2PopoverPane.prototype.setDUTarget = function(v) { this.sDUTarget = v; }
N2PopoverPane.prototype.getDUHandlerName = function() { return this.sDUHandlerName; }
N2PopoverPane.prototype.getDURequestMode = function() { return this.sRequestMode; }
N2PopoverPane.prototype.getCurrentRequest = function() { return this.sCurrentRequestID; }
N2PopoverPane.prototype.sLoadingMessage = window.gsN2LoadingMessage;
N2PopoverPane.prototype.sTimeoutMessage = window.gsN2TimeoutMessage;
N2PopoverPane.prototype.setLoadingMessage = function (sHtmlFragment) { this.sLoadingMessage = sHtmlFragment; }
N2PopoverPane.prototype.setTimeoutMessage = function (sHtmlFragment) { this.sTimeoutMessage = sHtmlFragment; }
N2PopoverPane.prototype.setDefaultDUContent = function (s) {  this.sTimeoutMessage = s; }
N2PopoverPane.prototype.hookForm = function (sFormName, sAction, sID, sType, params) {
this.sHookFormName = sFormName;
this.sHookAction = sAction;
this.sHookID = sID;
this.sHookType = sType;
this.hookParams = params;
}
N2PopoverPane.prototype.rehookForm = function () {
if (this.sHookFormName) {
n2HookForm (this.sHookFormName, this, this.oPopover.objectName,
this.sHookAction, this.sHookID, this.sHookType, this.hookParams, this.sID);
} else {
;
}
}
N2PopoverPane.prototype.requestUpdate = function (action, id, type, params,
overrideSuccess, overrideFailure) {
this.sCurrentRequestID = this.oPopover.requestUpdate (this, action, id, type, params,
overrideSuccess, overrideFailure);
}
N2PopoverPane.prototype.submitCallback = function (sAction, sID, sType, sParams, bUseCachedArgs) {
return true;
}
N2PopoverPane.prototype._submitFormUpdate = function (sAction, sID, sType, sParams, bUseCachedArgs) {
;
if (!this.submitCallback(sAction, sID, sType, sParams, bUseCachedArgs)) {
;
return false;
}
if (bUseCachedArgs) {
sAction = sAction ? sAction : this.sActionC;
sID = sID ? sID : this.sIDC;
sType = sType ? sType : this.sTypeC;
sParams = sParams ? sParams : this.sParamsC;
}
this.sActionC = sAction;
this.sIDC = sID;
this.sTypeC = sType;
this.sParamsC = sParams;
sAction = n2GetFieldValue(this.oForm, sAction, 'action');
sID = n2GetFieldValue(this.oForm, sID, 'id');
sType = n2GetFieldValue(this.oForm, sType, 'type');
sParams = n2GetFieldValue(this.oForm, sParams, 'params');
this.sCurrentRequestID = this.oPopover.requestUpdate (this, sAction, sID, sType, sParams);
return false;
}
N2PopoverPane.prototype.onRequestSuccess = function (dataArray, fnArray, nStatus, sRequestID) {
;
;
if (dataArray && dataArray.length) {
this.setContent(dataArray[0]);
}
if (fnArray && fnArray.length) {
var fn = fnArray[0];
if (fn.length) {
fn = this.replacePlaceholders(fn);
fn = this.oPopover.replacePlaceholders(fn);
try { eval (fn); }
catch (e) { ; }
}
}
}
N2PopoverPane.prototype.onRequestFailure = function (sMessage, nStatus) {
this.setContent(this.sTimeoutMessage);
}
N2PopoverPane.prototype.requestComplete = function () {
this.sCurrentRequestID = null;
}
N2PopoverPane.prototype.cancelAllRequests = function (bAbortRequestInProcess) {
;
if (this.sCurrentRequestID) {
this.oPopover.oUpdateManager.cancelRequest(this.sCurrentRequestID, bAbortRequestInProcess)
this.sCurrentRequestID = null;
}
var aSubPanes = this.aSubPanes;
if(aSubPanes) {
for (var sID in aSubPanes) {
aSubPanes[sID].cancelAllRequests (bAbortRequestInProcess);
}
}
if (this.LADTimer) {
;
clearTimeout(this.LADTimer);
}
}
N2PopoverPane.prototype.setContent = function (sHtml, bDisableScrollbars, bDisableResizing) {
var bDisableScrollbars = this.bDisableScrollbars | bDisableScrollbars;
var bDisableResizing = this.bDisableResizing | bDisableResizing;
sHtml = this.replacePlaceholders(sHtml);
this.oPopover.setContent(sHtml, this, bDisableScrollbars, bDisableResizing);
}
N2PopoverPane.prototype.replacePlaceholders = function (sHtml, sAction, sID, sType, sParams, sLinkID, sHref, sLinkText) {
;
;
;
if ( sHtml.indexOf('{') == -1 ) return sHtml;
var oPopover = this.oPopover;
;
sAction = sAction ? sAction : oPopover.action ? oPopover.action :'summary';
sID = sID ? sID : oPopover.thingID;
sType = sType ? sType : oPopover.thingType;
var aData = oPopover.getDataArray();
var sCategory='';
var sKey;
if (sType == 'ak')
sKey = sID;
else if (aData) {
sKey = sType+sID;
if (goN2U.isDefined(aData[sKey]) && aData[sKey].cat != null)
sCategory=aData[sKey].cat
}
if (!goN2U.isString(sHtml)) sHtml = sHtml.toString();
if (!sHtml ) return '';
if ( sHtml.indexOf('{') == -1) return sHtml;
if ( this.bReplaceTemplateTDFieldPlaceholders )
sHtml = sHtml.replace(/{DUMP_ARRAY}/g, this._dumpArrayKeyValues(sKey));
sHtml = sHtml.replace(/{THING_ID}/g, sID);
sHtml = sHtml.replace(/{THING_TYPE}/g, sType);
sHtml = sHtml.replace(/{ACTION}/g, sAction);
sHtml = sHtml.replace(/{CATEGORY}/g, sCategory);
return  sHtml.replace(/{PANE_ID}/g, this.sID);
}
N2PopoverPane.prototype._replaceTemplateTDFieldPlaceholders = function (sTemplate, aArray) {
;
if (!this.bReplaceTemplateTDFieldPlaceholders) return sTemplate;
;
var sHtml = sTemplate;
for (var sKey in aArray) {
var sVal = aArray[sKey];
var sPh = '{' + sKey + '}';
var re = new RegExp(sPh, 'g');
;
sHtml = sHtml.replace(re, sVal);
}
return sHtml;
}
N2PopoverPane.prototype._replaceTemplateElementPlaceholder = function (sTemplate, sText) {
;
var sHtml = sTemplate;
if (sText)
sHtml = sHtml.replace(/{PLACEHOLDER}/, sText);
return sHtml;
}
N2PopoverPane.prototype._replaceTemplateTDFieldPlaceholdersWithArrayEntryContents = function (sTemplate, sKey) {
var aArray = this._getArrayEntryContents(sKey);
var sHtml;
if (goN2U.isObject(aArray)) {
if(sTemplate) {
sHtml = this._replaceTemplateTDFieldPlaceholders(sTemplate, aArray);
} else {
sHtml = this._dumpArrayKeyValues(sKey);
}
} else {
;
sHtml = sTemplate;
}
return sHtml;
}
N2PopoverPane.prototype._dumpArrayKeyValues =  function (sID) {
;
var xEntry = this._getArrayEntryContents(sID);
var sHtml;
if (goN2U.isObject(xEntry)) {
var sHtml = 'Nav2 Framework Default Array Content Display. <br/>';
for (var sKey in xEntry) {
var sVal = xEntry[sKey];
sHtml += sKey+": "+sVal+"<br/>";
}
} else {
sHtml = xEntry
}
sHtml += '<br/>Use setLayout(...) to modify what/how entries are displayed.';
return sHtml;
}
N2PopoverPane.prototype.preparePopulateSubpanes = function(oHotspot) {
var aSubPanes = this.aSubPanes;
if (aSubPanes != null) {
;
var nSubs = aSubPanes.length;
for (var i=0; i<nSubs; i++) {
var oSubPane = aSubPanes[i];
if (oSubPane.preparePopulate) {
;
oSubPane.preparePopulate(oHotspot);
}
}
}
}
N2PopoverPane.prototype._defaultPopulate = function(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText, fLADMethod) {
;
var bAllowDefault = true;
var sNewContent;
if (this.bLADSupported) {
if (!this.isDataAvailable(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText, fLADMethod)) {
return false;
}
}
switch (sType) {
case 'he': // id of an HTML element
if (this.sTemplate && this.bTemplateHasPlaceholders)
sNewContent = this._replaceTemplateElementPlaceholder(this.sTemplate, this._getElementContents(sID));
else
sNewContent = this._getElementContents(sID);
bAllowDefault = (sNewContent && sNewContent.length) ? false : true;
break;
case 'ak': // array key
if (this.sTemplate && this.bTemplateHasPlaceholders && this.oPopover.aDataArray)
sNewContent = this._replaceTemplateTDFieldPlaceholdersWithArrayEntryContents(this.sTemplate, sID)
else
sNewContent = this._getArrayEntryContents(sID);
bAllowDefault = sNewContent.length ? false : true;
break;
case 'a':  // ASIN
case 'as': // ASIN
case 'am': // ASIN + merchantID (in optional field)
if (this.sTemplate  && this.bTemplateHasPlaceholders && this.oPopover.aDataArray) {
sNewContent = this._replaceTemplateTDFieldPlaceholdersWithArrayEntryContents(this.sTemplate, sType+sID)
bAllowDefault = sNewContent.length ? false : true;
}
break;
case 'n': // node
case 's': // search
case 'l': // listmania
case '-': // none
break;
default:
;
}
if (bAllowDefault && this.sDefaultContent) sNewContent = this.sDefaultContent;
if (sNewContent && sNewContent.indexOf('{') >=0) {
sNewContent = this.replacePlaceholders (sNewContent, sAction, sID, sType, sParams, sLinkID, sHref, sLinkText);
}
if (sNewContent) {
this.setContent(sNewContent, null, null, false);
}
if (this.bAllowDynamicUpdate) this.populateUsingDynamicUpdate(sAction, sID, sType, sParams);
this.populateSubPanes(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText);
;
if (this.postPopulate) this.postPopulate (sAction, sID, sType, sParams, sLinkID, sHref, sLinkText);
if (this.bLADLoading) this.oPopover.sizeOrPositionChanged();
if (this.sHookFormName) {
n2HookForm (this.sHookFormName, this, this.oPopover.objectName,
this.sHookAction, this.sHookID, this.sHookType, this.hookParams, this.sID);
}
return true;
}
N2PopoverPane.prototype.populate = N2PopoverPane.prototype._defaultPopulate;
N2PopoverPane.prototype._getElementContents = function(sID) {
;
;
var eElem = goN2U.getRawObject(sID);
if (eElem) return eElem.innerHTML;
else {
;
return null;
}
}
N2PopoverPane.prototype._getArrayEntryContents = function(sKey) {
;
;
var retval = null
if (goN2U.isUndefOrNull(this.oPopover.aDataArray)) {
;
} else if (goN2U.isNull(this.oPopover.aDataArray[sKey])) {
;
} else {
retval = this.oPopover.aDataArray[sKey];
}
;//goN2Debug.debug("N2PopoverPane._getArrayEntryContents ["+sKey+"]+ returned: "+ (retval ? retval : 'null'));
return retval;
}
N2PopoverPane.prototype.populateUsingDynamicUpdate = function(sAction, sID, sType, sParams) {
;
sAction = this.sDUAction ? this.sDUAction : sAction;
if (!sAction) {
;
return;
}
sParams = sParams ? sParams : this.sDUParams;
;
this.requestUpdate(sAction, sID, sType, sParams);
}
N2PopoverPane.prototype.isDataAvailable = function(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText, fLADMethod) {
;
;
if (this.oPopover._isDataAvailable (sAction, sID, sType, sParams, sLinkID,
this.sLADKey, this.sLADField)) {
this.LADTimer = null;
return true;
} else {
if (--this.nLADRetries  && this.oPopover.isVisible()) {
if (!this.bLADLoading) {
this.setContent(this.sLADLoadingMessage);
this.bLADLoading = true;
if (this.sLADDUAction) {
;
this.sCurrentRequestID = this.oPopover.requestAnonomousUpdate(this.sRequestMode,
this.sDUHandlerName,
this.sLADDUAction,
sID, sType,
this.sDUParams);
}
}
var sObjectMethod = this.oPopover.getObjectName() + ".findPane('" + this.sID +"').populate";
if (sLinkText) {
var re = /([^\\])'/gi;
sLinkText=sLinkText.replace(re, "$1\\'") ;
}
if (fLADMethod) {
this.LADTimer = setTimeout (fLADMethod, this.oPopover.nLADRetryMs);
} else {
this.LADTimer = setTimeout (new Function("",
sObjectMethod + "(" +
(sAction ? "'" + sAction + "'" : null) + "," +
(sID ? "'" + sID + "'" : null) + "," +
(sType ? "'" + sType + "'" : null) + "," +
(sParams ? "'" + sParams + "'" : null) + "," +
(sLinkID ? "'" + sLinkID + "'" : null) + "," +
(sHref ? "'" + sHref + "'" : null) + "," +
(sLinkText ? "'" + sLinkText + "'" : null) +
");"),
this.oPopover.nLADRetryMs);
}
;//goN2Debug.info ("LAD Pane ("+this.sID+") retry ("+this.nLADRetries+")");
} else {
this.LADTimer = null;
;
this.setContent(this.sLADTimeoutMessage);
this.resetLAD();
}
return false;
}
}
N2PopoverPane.prototype.setOwner = function(oO) { this.oOwner = oO; }
if (window.goN2LibMon) goN2LibMon.endLoad('popoverPane');
} // END library code wrapper
function n2PopoverPaneHasStaticPopover()
{
n2RunIfLoaded("dynUpdate", n2PopoverPaneInitLibrary, "popoverpaneLoad");
}
n2RunIfLoaded("staticpopover", n2PopoverPaneHasStaticPopover, "popoverpaneHasStatic");

/* popoverPane Ends */



/* dynUpdate Starts */

//! ################################################################
//! Copyright (c) 2004-2007 Amazon.com, Inc., and its Affiliates.
//! All rights reserved.
//! Not to be reused without permission
//! $DateTime: 2008/01/21 02:16:50 $
//! ################################################################
function n2DynUpdateInitLibrary() { // Begin library code wrapper. Goes all the way to the bottom of the file
if (window.goN2LibMon) { goN2LibMon.beginLoad('dynUpdate', 'n2CoreLibs'); }
var nRequestSequenceNumber = 0;
var imagePath = goN2Locale.getImageURL('JSF-loading-bar', 'nav2/images/loading-bar');
window.gsN2LoadingMessage = '<div>' + goN2Locale.getString('loading_13548', 'Loading...') + '<im'+'g s'+'rc="' + imagePath + '" height="9" align="absmiddle"></div>';
window.gsN2TimeoutMessage = goN2Locale.getString('no_addl_info_36017', 'No additional information is available at this time');
window.n2DUExpandParameter=function(p, bEscape) {
var sT='';
if (goN2U.isString(p)) {
sT = p;
} else if (goN2U.isNumber(p)) {
sT = p.toString();
} else if (goN2U.isArray(p)) {
for (var i=0; i<p.length;i++) {
if (sT.length >0) sT +=';';
sT += p[i];
}
} else if (goN2U.isObject(p) ) {
for (var k in p) {
if (sT.length >0) sT +=';';
sT += k+':'+p[k];
}
} else if (!goN2U.isUndefOrNull(p)) {
;
}
if (bEscape) {
var sE = sT.replace(/\</g, '&#60;');
sE = sE.replace(/\>/g, '&#62;');
sE = encodeURIComponent(sE);
sE = sE.replace(/\|/g, '%7C');
sE = sE.replace(/\~/g, '%7E');
sE = sE.replace(/\*/g, '%2A');
sE = sE.replace(/\'/g, '%27');
sE = sE.replace(/\(/g, '%28');
sE = sE.replace(/\)/g, '%29');
sE = sE.replace(/\!/g, '%21');
sE = sE.replace(/\_/g, '%5F');
return sE;
}
return sT;
}
window.n2HookForm=function(sFormName, oObj, sExecObjectName, sAction, sID, sType, params, sPaneID, sReftag) {
sExecObjectName = sExecObjectName ? sExecObjectName : oObj.objectName;
if (goN2U.isUndefOrNull(sExecObjectName)) {
;
return;
}
;
oObj.sFormName = sFormName;
var eF = document.forms[sFormName];
if (eF) {
oObj.oForm = eF;
;
var sParams = n2DUExpandParameter(params, false);
if (goN2U.bIsSafari) {
eF._sDUObjectName = sExecObjectName;
eF['onsubmit'] = _n2SafariGenerateSubmit(sAction, sID, sType, sParams, sPaneID);
} else {
eF['onsubmit'] = new Function (sExecObjectName
+ "._submitFormUpdate("
+ (sAction ? "'"+ sAction+"'," : "null,")
+ (sID ? "'"+ sID+"'," : "null,")
+ (sType ? "'"+ sType+"'," : "null,")
+ (sParams ? "'"+ sParams+"'," : "null,")
+ (sPaneID ? "'"+ sPaneID+"'," : "null,")
+ (sReftag ? "'"+ sReftag+"'" : "null")
+ "); return false;" );
}
var method = eF.method;
if (method && (method.toLowerCase() == 'post')) {
oObj.sRequestMode = 'sdfs';
} else {
oObj.sRequestMode = 'xdfs';
}
;
} else {
;
}
}
function _n2SafariGenerateSubmit(sAction, sID, sType, sParams, sPaneID, sRefTag) {
var fnF =  function () {
var oDU = eval(this._sDUObjectName);
if (oDU) {
oDU._submitFormUpdate(sAction, sID, sType, sParams, sPaneID, sRefTag);
}
return false;
}
return fnF;
}
window.n2GetFieldValue=function(eForm, sValue, sComment) {
var sVal;
if (goN2U.isUndefOrNull(sValue)) return null;
if (sValue.indexOf('MAP:')==0) {
var sF = sValue.substring(4);
var aF = sF.split(',');
sVal = '';
for (var i=0; i<aF.length; i++){
if (i>0) sVal += ';';
var aMap = aF[i].split('=');
var re = / /g;
aMap[0] = aMap[0].replace(re,'');
var eF = eForm[aMap[0]];
if (eF) {
if (aMap.length >1) {
eF.value = aMap[1];
;
}
if (eF.type == "checkbox") {
if (eF.checked) {
sVal += eF.value;
;
} else {
;
}
} else if (eF.type == "radio") {
if (eF.checked) {
sVal += eF.value;
;
} else {
;
}
} else if (goN2U.isArray(eF) && goN2U.isDefined(eF.length)) {
;
} else if (goN2U.isList(eF)) {					
if (eF.length > 0 && goN2U.isDefined(eF.item(0).checked)) {
var foundVal = false;
for (var j=0; j<eF.length; ++j) {
var eFI = eF.item(j);
if (goN2U.isDefined(eFI.checked) && eFI.checked) {
sVal += eFI.value;
foundVal = true;
;
}
}
if (!foundVal) {
;
}
} else if (eF.length > 0 && goN2U.isDefined(eF.item(0).selected)) {
var foundVal = false;
for (var j=0; j<eF.length; ++j) {
var eFI = eF.item(j);
if (goN2U.isDefined(eFI.selected) && eFI.selected) {
sVal += eFI.value;
foundVal = true;
;
}
}
if (!foundVal) {
;
}
} else {
;
}
} else {
if (goN2U.isSafari()) {
if (goN2U.isDefined(eF.length) && goN2U.isDefined(eF[0]) && goN2U.isDefined(eF[0].type) 
&& (eF[0].type == "radio" || eF[0].type == "checkbox")) {
var foundVal = false;
for (var j=0; j<eF.length; ++j) {
var eFI = eF[j];
if (goN2U.isDefined(eFI.checked) && eFI.checked) {
sVal += eFI.value;
foundVal = true;
;
}
}
if (!foundVal) {
;
}
} else {					
sVal += eF.value;
;
}
} else {
sVal += eF.value;
;
}
}
} else {
;
}
}
} else if (sValue.indexOf('SEQ:')==0) {
nRequestSequenceNumber++;
return 'SEQ'+nRequestSequenceNumber.toString();
} else {
sVal = sValue;
}
return sVal;
}
window.n2XHRFactory = function() {
var oXHR=false;
if (!oXHR && typeof XMLHttpRequest!='undefined') {
try {
oXHR = new XMLHttpRequest();
} catch (e) {
;
}
} else if(window.ActiveXObject) {
try {
oXHR = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
oXHR = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
;
oXHR = false;
}
}
}
if(oXHR) {
;
} else {
;
}
return oXHR
}
window.N2DynUpObject=function(sObjName) {
this.sObjectName = sObjName;
}
new N2DynUpObject();
N2DynUpObject.prototype.sRequestMode = 'xd';        // xdomain
N2DynUpObject.prototype.sHandler = 'test/testx';    // test xdomain handler
N2DynUpObject.prototype.className = 'N2DynUpObject';
N2DynUpObject.prototype.version = '1.1.0';
N2DynUpObject.prototype.nTimeoutMS = 10000;
N2DynUpObject.prototype.bImmediate = false;
N2DynUpObject.prototype.bCachable = true;
N2DynUpObject.prototype.bUseNamespacedCache = false;
N2DynUpObject.prototype.sPersistContentForm = null;
N2DynUpObject.prototype.sPersistFunctionsForm = null;
N2DynUpObject.prototype.sPersistValuesForm = null;
N2DynUpObject.prototype.sLoadingMessage = gsN2LoadingMessage;
N2DynUpObject.prototype.sTimeoutMessage = gsN2TimeoutMessage;
N2DynUpObject.prototype.currentRequest = null;
N2DynUpObject.prototype.sTargetID = null;
N2DynUpObject.prototype.sURLExtension = '.html';
N2DynUpObject.prototype.setDefaultTimeout = function (nMS) { this.nTimeoutMS = nMS; }
N2DynUpObject.prototype.setReftag = function (sReftag) { this.sReftag = sReftag; };
N2DynUpObject.prototype.setHandler = function(s, m) {
;
this.sHandler = s;
this.sRequestMode = m;
}
N2DynUpObject.prototype.setTargetElementID = function (sID) { this.sTargetID = sID; }
N2DynUpObject.prototype.setLoadingMessage = function (sHtmlFragment) { this.sLoadingMessage = sHtmlFragment; }
N2DynUpObject.prototype.setTimeoutMessage = function (sHtmlFragment) { this.sTimeoutMessage = sHtmlFragment; }
N2DynUpObject.prototype.setURLExtension = function (sExt) { this.sURLExtension = sExt; }
N2DynUpObject.prototype.cacheResponses = function (b) { this.bCachable = b; };
N2DynUpObject.prototype.useNamespacedCache = function(b) { this.bUseNamespacedCache = b; };
N2DynUpObject.prototype.getCacheNamespace = function() { return this.sObjectName; };
N2DynUpObject.prototype.newRequestsCancelExisting = function (b) { this.bImmediate = b; };
N2DynUpObject.prototype.setPersistForms = function (sContentForm, sFunctionsForm, sValuesForm) {
this.sPersistContentForm = sContentForm;
this.sPersistFunctionsForm = sFunctionsForm;
this.sPersistValuesForm = sValuesForm;
};
N2DynUpObject.prototype.requestUpdate = function (sAction, sID, sType, sParams, nTimeoutMS, bImmediate, bCachable, sReftag) {
;
nTimeoutMS = nTimeoutMS ? nTimeoutMS : this.nTimeoutMS;
bImmediate = (bImmediate ? bImmediate : this.bImmediate);
bCachable = (bCachable ? bCachable : this.bCachable);
sReftag = (sReftag ? sReftag : this.sReftag);
sNamespace = this.bUseNamespacedCache ? this.getCacheNamespace() : null;
if (this.oUpdateManager) {
this.setLoading();
this.currentRequest = this.oUpdateManager.requestUpdate(this,
this.sRequestMode, this.sHandler,
sAction, sID, sType, sParams,
nTimeoutMS, bImmediate, bCachable,
null, null, null, this.sURLExtension,
sReftag, sNamespace);
} else {
;
}
}
N2DynUpObject.prototype.resubmitFormUpdate = function (sAction, sID, sType, params, sReftag) {
sAction = sAction ? sAction  : this.sAction;
sID = sID ? sID : this.sID;
sType = sType ? sType : this.sType;
var sParams = n2DUExpandParameter((params ? params : this.params), false);
sReftag = sReftag ? sReftag : this.sReftag;
this._submitFormUpdate(sAction, sID, sType, sParams, sReftag);
}
N2DynUpObject.prototype.submitForm = N2DynUpObject.prototype.resubmitFormUpdate;
N2DynUpObject.prototype.cancelRequest = function (bAbortRequestInProcess) {
if (this.oUpdateManager) {
if (this.currentRequest) {
var namespace = this.bUseNamespacedCache ? this.getCacheNamespace() : null;
this.oUpdateManager.cancelRequest(this.currentRequest, bAbortRequestInProcess, namespace);
} else {
;
}
} else {
;
}
}
N2DynUpObject.prototype._submitFormUpdate = function (sAction, sID, sType, sParams, sReftag) {
;
if (this.oUpdateManager) {
sAction = n2GetFieldValue(this.oForm, sAction, 'action');
sID = n2GetFieldValue(this.oForm, sID, 'id');
sType = n2GetFieldValue(this.oForm, sType, 'type');
sParams = n2GetFieldValue(this.oForm, sParams, 'params');
sReftag = sReftag ? sReftag : this.sReftag;
sNamespace = this.bUseNamespacedCache ? this.getCacheNamespace() : null;
this.currentRequest = this.oUpdateManager.requestUpdate(this,
this.sRequestMode, this.sHandler,
sAction, sID, sType, sParams,
this.nTimeoutMS, this.bImmediate, this.bCachable,
null, null, null, this.sURLExtension, sReftag, sNamespace);
this.setLoading();
}
return false;
}
N2DynUpObject.prototype.toString = function () {
var txt = "RemoteHandler Name: " + this.sHandler + "\n";
txt+= "DefaultTimeout: " + this.nTimeoutMS + " ms\n";
txt+= "Immediate?: " + this.bImmediate + "\n";
txt+= "Cachable?: " + this.bCachable;
return txt;
}
N2DynUpObject.prototype.debug = function () {
;
}
N2DynUpObject.prototype.setLoading = function () {
if (this.sTargetID && this.sLoadingMessage) {
var oE = goN2U.getRawObject(this.sTargetID);
if (oE != null) {
oE.innerHTML = this.sLoadingMessage;
} else {
;
}
}
}
N2DynUpObject.prototype.setUpdateManager = function (obj) { this.oUpdateManager = obj; }
N2DynUpObject.prototype.requestComplete = function () {
this.currentRequest = null;
}
N2DynUpObject.prototype._onRequestSuccess = function (aHTML, aJSFunctions, nStatus, sRequestID) {
if (aHTML) {
if (this.sTargetID && aHTML[0]) {
this._updateContent(this.sTargetID, aHTML[0]);
}
for (var id in aHTML) {
if (id != 0 && id != '0') {
this._updateContent(id, aHTML[id]);
}
}
}
if (aJSFunctions) {
for (var id in aJSFunctions) {
try {
var fFn = eval (aJSFunctions[id]);
} catch(e) {
;
}
}
}
if (this.sPersistContentForm && aHTML) {
goN2Persist.saveContent(this.sPersistContentForm, aHTML);
}
if (this.sPersistFunctionsForm && aJSFunctions) {
goN2Persist.saveFunctions(this.sPersistFunctionsForm, aJSFunctions);
}
}
N2DynUpObject.prototype.onRequestSuccess = N2DynUpObject.prototype._onRequestSuccess;
N2DynUpObject.prototype._updateContent = function (sID, sContent) {
var oE = goN2U.getRawObject(sID);
if (oE != null) {
;
oE.innerHTML = sContent;
} else {
;
}
}
N2DynUpObject.prototype.onRequestFailure = function (sMessage, nStatus, sRequestID) {
if (this.sTargetID && this.sTimeoutMessage) {
this._updateContent(this.sTargetID, this.sTimeoutMessage);
}
}
N2DynUpObject.prototype.hookForm = function (sFormName, sAction, sID, sType, params) {
this.sAction = sAction;
this.sID = sID;
this.sType = sType;
this.params = params;
n2HookForm (sFormName, this, this.sObjectName, sAction, sID, sType, params);
}
N2DynUpObject.prototype.getFormName = function () {
return this.sFormName;
}
N2DynUpObject.prototype.suspendFormHook = function (b) {
var eF = this.oForm;
if (!eF) return;
if (b) {
this._fOnsubmit = eF['onsubmit'];
eF['onsubmit'] = null;
} else {
eF['onsubmit'] = this._fOnsubmit;
}
}
window.N2DynUpRequest=function(oRequester, sRequestMode, sURL, nTimeoutMS, bCachable, fOverrideSuccess, fOverrideFailure, oOverride) {
this.oRequester=oRequester;
;
this.sRequestMode = sRequestMode.toLowerCase();
this.methodSuccess = fOverrideSuccess;
this.methodFailure = fOverrideFailure;
this.oOverride = oOverride;
this.sURL= sURL ? sURL : 'CACHE-ONLY';
this.nTimeoutMS= nTimeoutMS ? nTimeoutMS : '0';
this.bCachable = !goN2U.isUndefOrNull(bCachable) ? bCachable : true;
this.tripTime=0;
this.dataType='0';
this.arJS=null;
this.arHTML=null;
this.cancelled=false;
this.timedOut=false
this.success=false;
}
function N2DynUpRequestInfo(oRequester, sRequestID, fOverrideSuccess, fOverrideFailure, oOverride, sNamespace) {
this.oRequester=oRequester;
this.sRequestID=sRequestID;
this.oOverride = oOverride;
this.oRequest=null;     // only set once repsone is received
this.methodSuccess = fOverrideSuccess;  // optional
this.methodFailure = fOverrideFailure;  // optional
this.sNamespace = sNamespace;
}
function N2DynUpStats() {
this.className = 'N2DynUpStats';
this.version = '1.0.0';
this.totalRequestsCount=0; // includes fulfilled from cache
this.cachedHitsCount=0;
this.remoteRequestsCount=0;// remote only
this.successCount=0;    // remote only
this.nTimeoutCount=0;   // remote only
this.successAfterTimeoutCount=0;
this.minTripTime=0;     // remote only
this.maxTripTime=0;     // remote only
this.lastTripTime=0;
this.totalTripTime=0;
this.averageTripTime=0;
this.recordRemoteRequest = function () {
this.remoteRequestsCount++;
this.totalRequestsCount++;
}
this.recordCacheHit = function () {
this.cachedHitsCount++;
this.totalRequestsCount++;
this.lastTripTime = 'ch';
}
this.recordSuccess = function (tripTime, bPastTimeout) {
this.successCount++;
this.lastTripTime=tripTime;
this.totalTripTime+=tripTime;
this.averageTripTime = this.totalTripTime/this.successCount;
this.minTripTime= Math.min(this.minTripTime, tripTime);
this.maxTripTime= Math.max(this.maxTripTime, tripTime);
if (bPastTimeout)
this.successAfterTimeoutCount++;
}
this.recordTimeout = function () {
this.nTimeoutCount++;
}
this.toString = function () {
var txt= "Total Requests: " + this.totalRequestsCount + "\n";
txt+= "Remote Requests: " + this.remoteRequestsCount + "\nCache Hits: " + this.cachedHitsCount + "\n";
txt+= "Successful Requests: " + this.successCount + "\nTimed Out Requests: " + this.nTimeoutCount + "\n";
txt+= "Success After Timeout: " + this.successAfterTimeoutCount + "\n";
txt+= "Last Trip Time: " + this.lastTripTime + " ms\n";
txt+= "Min Trip Time: " + this.minTripTime + " ms\nMax Trip Time: " + this.maxTripTime + " ms\n";
txt+= "Average Trip Time: " + Math.round(this.averageTripTime) +" ms";
return txt;
}
this.toHTML = function () {
var txt=this.toString();
var re = /\n/gi;
txt = txt.replace(re, "<br />");
return txt;
}
this.summary = function () {
var txt= this.totalRequestsCount + ":";
txt+= this.remoteRequestsCount + ":" + this.cachedHitsCount + ":";
txt+= this.successCount + ":" + this.nTimeoutCount + ":";
txt+= this.successAfterTimeoutCount + ":";
txt+=this.lastTripTime + ":";
txt+= this.minTripTime + ":" + this.maxTripTime + ":";
txt+= this.averageTripTime;
return txt;
}
}
window.N2DynamicUpdateCacheManager=function() {
var sGlobalNamespace = '_global';
var cache = new Object();
cache[sGlobalNamespace] = new Array(); // global cache if no namespace used
this.resetCache = function() {
;
cache = new Object();
cache[sGlobalNamespace] = new Array();
};
this.clearCache = function(sNamespace) {
;
if (!goN2U.isUndefOrNull(sNamespace)) {
if (cache[sNamespace])
cache[sNamespace] = new Array();
} else {
cache[sGlobalNamespace] = new Array();
}
};
this.put = function(sKey, oValue, sNamespace) {
;
var tmpCache;
if (!goN2U.isUndefOrNull(sNamespace)) {
if (!cache[sNamespace])
cache[sNamespace] = new Array();
tmpCache = cache[sNamespace];
} else {
tmpCache = cache[sGlobalNamespace];
}
tmpCache[sKey] = oValue;
};
this.get = function(sKey, sNamespace) {
;
var result = null;
if (!goN2U.isUndefOrNull(sNamespace)) {
if (cache[sNamespace]) {
var tmpCache = cache[sNamespace];
if (tmpCache[sKey]) {
result = tmpCache[sKey];
}
}
} else {
var tmpCache = cache[sGlobalNamespace];
if (tmpCache[sKey]) {
result = tmpCache[sKey];
}
}
return result;
};
this.remove = function(sKey, sNamespace) {
;
var tmpCache;
if (!goN2U.isUndefOrNull(sNamespace)) {
if (cache[sNamespace]) {
tmpCache = cache[sNamespace];
tmpCache[sKey] = null;
}
} else {
tmpCache = cache[sGlobalNamespace];
tmpCache[sKey] = null;
}
};
this.cacheSize = function(sNamespace) {
var size = 0;
if (!goN2U.isUndefOrNull(sNamespace)) {
if (cache[sNamespace]) {
var ct = 0;
var c = cache[sNamespace];
for (var i in c)
ct++
size = ct;
}
} else {
var c = cache[sGlobalNamespace];
var ct = 0;
for (var i in c)
ct++;
size = ct;
}
;
return size;
};
this.dumpCache = function() {
;
for (var i in cache) {
;
var j = cache[i];
for (var k in j) {
;
}	
}
;
}
};
window.N2DynamicUpdateManager=function() {
this.className = 'N2DynamicUpdateManager';
this.version = '190';
this.SCRIPTIDPREFIX = "goN2SO_";
this.nScriptID=0;
this.nSdfsID=0;
this.oXHR = n2XHRFactory();
this.bXHRPRocessing=false;
var queue = new N2FifoQueue(20);  // circular queue, max 20 requests
var requests = new N2DynamicUpdateCacheManager();
var nTimeoutStatus='255';
var nScriptErrStatus = '254';
var nNoInfoStatus = '253';
var oCfg = goN2U.getConfigurationObject('N2DynamicUpdateManager');
this.nTimeoutMS = oCfg.getValue('defaultTimeoutMS', 10000);
this.baseURL = null;
this.proxyURL = null;
this.marketplace = null;
this.sRID='NA';
var nSTATE_NOT_PROCESSING = 0;
var nSTATE_WAITING = 1;
var nSTATE_RESPONSE_RECEIVED = 2;
var nSTATE_DATA_AVAILABLE = 3;
var nSTATE_ABORTING_REQUEST = 4;
this.nProcessState=nSTATE_NOT_PROCESSING;
this.bExpectingResponseComplete = false;
this.bXHREvalProcessing=false;
this.stats = new N2DynUpStats();
this.optimize = true;
this.bFirstSDFS = true;
this.clearBuffer = true;
this.sessionID = '';
this.bDisablePP = false;
this.setBaseURL = function (sURL) {
;
this.baseURL = sURL;
this.baseDomain = null;
var re = new RegExp('https?:\/\/[^/]+');
var m = re.exec(sURL);
if (m != null) this.baseDomain = m[0];
}
this.setMarketplace = function (mp) { this.marketplace = mp; }
this.setSessionID = function (sID) {
this.sessionID = sID;
;
}
this.setHTTPRID = function (sRID) { this.sRID = sRID; }
this.disablePP = function (b) { this.bDisablePP = b; }
this.setProxyURL = function (sURL) {
this.proxyURL = sURL;
;
}
this.setDefaultTimeout = function (nMS) { this.nTimeoutMS = nMS; }
this.clearCache = function () { requests.resetCache(); }
this.clearSpecificCache = function(sNamespace) { requests.clearCache(sNamespace); }
this.getCacheManager = function() { return requests; }
this.getStats = function () { return this.stats; }
this.requestTargetUpdate = function (oRequester, oTarget,
sRequestMode, sHandler, sAction, sID, sType, params,
nTimeoutMS, bImmediate, bCachable) {
return this.requestUpdate (oRequester, sRequestMode, sHandler, sAction, sID, sType, params,
nTimeoutMS, bImmediate, bCachable,
null, null, oTarget);
}
this.requestUpdate = function (oRequester, sRequestMode, sHandler, sAction, sID, sType, params,
nTimeoutMS, bImmediate, bCachable,
fOverrideSuccess, fOverrideFailure, oOverride, sURLExtension,
sReftag, sNamespace) {
var oRequestInfo = this.getCurrentRequestInfo();
;
sNamespace = (typeof (sNamespace)!='undefined') ? sNamespace : null;
if ((this.nProcessState == nSTATE_WAITING) && bImmediate) {
this.cancelRequest(oRequestInfo.sRequestID, false, sNamespace);
}
bCachable = (typeof (bCachable)!='undefined') ? bCachable : true;
sAction = n2DUExpandParameter(sAction, true);
sID = n2DUExpandParameter(sID, true);
sType = n2DUExpandParameter(sType, true);
var sParams = n2DUExpandParameter(params, true);
switch(sRequestMode) {
case 'sd': sRequestMode = 'xhr';
;
break;
case 'sdfs': sRequestMode = 'xhrfs';
;
break;
}
;
if (oRequester) {
if (oRequester.sID) {
;
} else {
;
}
}
var sRequestID = this.genRequestID(sHandler,sAction,sID,sType,sParams);
var oRequestInfo = new N2DynUpRequestInfo(oRequester, sRequestID,
fOverrideSuccess, fOverrideFailure, oOverride, sNamespace);
var oRequest = this.getRequest(sRequestID, sNamespace);
if (oRequest) {
oRequestInfo.oRequest = oRequest;
if (oRequest.success) {
;
this.stats.recordCacheHit();
this.processSuccess(oRequestInfo, oRequest.arHTML, oRequest.arJS, oRequest.nStatus, sRequestID);
sRequestID = null;  // there is no active request in this case.
} else {
;
this.addRequest(oRequestInfo);
}
} else {
;
var sFullURL = this.genURL (sRequestMode, sHandler, sAction, sID, sType, sParams, sURLExtension, sReftag);
nTimeoutMS = nTimeoutMS ? nTimeoutMS : this.nTimeoutMS;
oRequestInfo.oRequest = new N2DynUpRequest(oRequester, sRequestMode, sFullURL, nTimeoutMS, bCachable,
fOverrideSuccess, fOverrideFailure, oOverride);
this.addRequest(oRequestInfo);
}
return sRequestID;
}
this.cancelRequest = function (sRequestID, bAbortRequestInProcess, sNamespace) {
var bCancelled = false;
if (bAbortRequestInProcess) {
if (this.nProcessState == nSTATE_WAITING) {
var oRequestInfo = this.getCurrentRequestInfo();
if (!oRequestInfo) {
;
} else if (sRequestID == oRequestInfo.sRequestID) {
;
this.stopWatchdog();
this.killCurrentRequest(oRequestInfo, false);
bCancelled = true;
}
} else if (this.nProcessState > nSTATE_WAITING) {
;
}
}
if (!bCancelled) {
var oRequest = this.getRequest(sRequestID, sNamespace);
if (oRequest) {
;
oRequest.cancelled = true;
}
}
}
this.addRequest = function (oRequestInfo) {
var sRequestID = oRequestInfo.sRequestID;
;
requests.put(sRequestID, oRequestInfo.oRequest, oRequestInfo.sNamespace);
queue.add(oRequestInfo);
if (this.nProcessState) {
;
} else  {
if (this.bExpectingResponseComplete) {
;
this.responseComplete();
} else {
this.remoteRequest(oRequestInfo.oRequest);
}
}
return sRequestID;
}
this.cacheResponse = function (sRequestID, oRequest, sNamespace) {
;
requests.put(sRequestID, oRequest, sNamespace);
return sRequestID;
}
this.genRequestID = function (sHandler, sAction, sID, sType, sParams) {
var reqID = sHandler;
reqID += '^' + (sAction ? sAction : '');
reqID += '^' + (sType ? sType : '');
reqID += '^' + (sID ? sID : '');
reqID += '^' + (sParams ? sParams : '');
;
return reqID;
}
this.genURL = function (sMode, sHandler, sAction, sID, sType, sParams, sURLExtension, sReftag) {
if (this.baseURL == null) {
;
}
if (this.sessionID == null || this.sessionID == '') {
;
}
if (this.marketplace == null) {
;
}
if (goN2U.isUndefOrNull(sURLExtension) ) {
sURLExtension = '.html';
}
if (goN2U.isUndefOrNull(sReftag) ) {
sReftag = '';
} else {
sReftag = '/ref=' + sReftag;
}
var sURL;
if (sHandler.indexOf('\/') == 0 ) {
sURL = this.baseDomain + sHandler + sURLExtension + sReftag + "/" + this.sessionID;
} else {
sURL = this.baseURL + sHandler + sURLExtension + sReftag + "/" + this.sessionID;
}
sURL += "?ie=UTF8";
sURL += "&rm="+sMode;
if (this.proxyURL) {
if(this.proxyURL.substr(1,2) == ':\\') {
return 'file:///' +this.proxyURL + sHandler + '-' + sAction + '.html';
} else {
sURL = this.proxyURL + "&url=" + sURL + "&ra="+sAction;
}
} else {
if (typeof(sAction) != 'undefined' && sAction != null)
sURL += "&ra="+sAction;
}
if (typeof(sID) != 'undefined' && sID != null)
sURL += "&id="+sID;
if (typeof(sType) != 'undefined'  && sType != null)
sURL += "&tt="+sType;
if (this.marketplace != null)
sURL += "&mp="+this.marketplace;
sURL += "&vn="+this.version;
if (!goN2U.isUndefOrNull(sParams))
sURL += "&ps="+sParams;
if (this.optimize) {
sURL += "&opt="+this.stats.summary();
}
sURL += "&orid="+this.sRID;
if (this.bDisablePP) sURL += '&PageProfiler=false&PowerBar=false';
;
return sURL;
}
this.getRequest = function (reqID, sNamespace) {
var oRequest = requests.get(reqID, sNamespace);
return oRequest;
}
this.removeRequest = function (reqID, sNamespace) {
;
requests.remove(reqID, sNamespace);
}
this.getCurrentRequest = function () {
var reqInfo = queue.current();
var reqID = reqInfo.sRequestID;
var reqNamespace = reqInfo.sNamespace;
if (reqID)
return requests.get(reqID, reqNamespace);
else
return null;
}
this.getCurrentRequestInfo = function () {
return queue.current();
}
this._issueNextRequest = function () {
;
var oRequestInfo = queue.next();
var oRequest, sRequestID;
if (oRequestInfo) {
sRequestID = oRequestInfo.sRequestID;
oRequest = this.getRequest(sRequestID, oRequestInfo.sNamespace);
;
;
;
}
if (oRequest) {
if (oRequest.success) {
oRequestInfo.oRequest = oRequest;
;
this.stats.recordCacheHit();
this.processSuccess(oRequestInfo, oRequest.arHTML, oRequest.arJS, oRequest.nStatus, sRequestID);
this.issueNextRequest();
} else {
;
this.remoteRequest(oRequest);
}
} else {
;
}
}
this.issueNextRequest = this._issueNextRequest;
this.remoteRequest = function (oRequest) {
this.stats.recordRemoteRequest();
this.nProcessState = nSTATE_WAITING;
this.bExpectingResponseComplete = true;
this.startWatchdog(oRequest.nTimeoutMS);
var now = new Date();
oRequest.reqStart = now.getTime();
switch ( oRequest.sRequestMode ) {
case 'xd':
;
oRequest.sScriptID = this.SCRIPTIDPREFIX+this.nScriptID.toString();
this.loadScript(oRequest.sURL, false, oRequest.sScriptID);
this.nScriptID++;
break;
case 'sd':
;
break;
case 'xhr':
;
this.XHRSend(oRequest.sURL, null);
break;
case 'xdfs':
;
;
if (oRequest.oRequester && oRequest.oRequester.oForm) {
var eF=oRequest.oRequester.oForm, sFields='', i=0, el;
el=eF.elements[i];
while (!goN2U.isUndefOrNull(el)) {
if (!eF.disabled) {
if (el.type == "checkbox" || el.type == "radio") {
if (el.checked) {
sFields += '&'+el.name+"="+encodeURIComponent(el.value);
}
} else if (el.type == "select-multiple"){
for (var i=0; i < el.options.length; i++)
if (el.options[i].selected)
sFields += '&'+el.name+"="+encodeURIComponent(el.options[i].value);
} else {
sFields += '&'+el.name+"="+encodeURIComponent(el.value);
}
}
el=eF.elements[++i]
}
var sURL= oRequest.sURL+sFields;
;
oRequest.sScriptID = this.SCRIPTIDPREFIX+this.nScriptID.toString();
this.loadScript(sURL, false, oRequest.sScriptID);
this.nScriptID++;
}
break;
case 'sdfs': // MODIFIED for XHR
case 'xhrfs':
;
;
if (oRequest.oRequester && oRequest.oRequester.oForm) {
var eF=oRequest.oRequester.oForm
var sFields='', i=0, el;
el=eF.elements[i];
while (!goN2U.isUndefOrNull(el)) {
if (!eF.disabled) {
if (el.type == "checkbox" || el.type == "radio") {
if (el.checked) {
sFields += '&'+el.name+"="+encodeURIComponent(el.value);
}
} else if (el.type == "select-multiple"){
for (var i=0; i < el.options.length; i++)
if (el.options[i].selected)
sFields += '&'+el.name+"="+encodeURIComponent(el.options[i].value);
} else {
sFields += '&'+el.name+"="+encodeURIComponent(el.value);
}
}
el=eF.elements[++i];
}
sFields = sFields.substring(1);
var sURL= oRequest.sURL;
if (window.goN2Debug) {
;
this.nSdfsID++;
}
this.XHRSend(oRequest.sURL, sFields);
}
break;
default:
;
}
}
this.startWatchdog = function (nTimeoutMS){
nTimeoutMS = nTimeoutMS ? nTimeoutMS : this.nTimeoutMS;
if (nTimeoutMS){
;
var tmpFn = function () { goN2DUManager.onTimeout(); };
this.watchdogTimer=setTimeout(tmpFn, nTimeoutMS);
}
}
this.stopWatchdog = function (){
if (this.watchdogTimer){
clearTimeout(this.watchdogTimer);
this.watchdogTimer = null;
}
}
this.setWatchdog = function (delay, fn){
this.nTimeoutMS=delay;
if (fn)
this.on_timeout=fn;
}
this.onScriptError = function (sMsg, sFile, nLine) {
sMsg = sMsg ? sMsg : "script error";
if (this.nProcessState) {  // any processing state except nSTATE_NOT_PROCESSING
var oRequestInfo = this.getCurrentRequestInfo();
if (!oRequestInfo) {
return;
} else {
var oReq = oRequestInfo.oRequest;
if ( oReq && (oReq.sRequestMode == 'xd' || oReq.sRequestMode == 'xdfs')){
this.killCurrentRequest(oRequestInfo, true, sMsg);
}
}
}
}
this.onTimeout = function () {
if (!this.watchdogTimer) {
return;
}
this.watchdogTimer = null;
var oRequestInfo = this.getCurrentRequestInfo();
if (!oRequestInfo) {
;
return;
}
if (this.nProcessState == nSTATE_DATA_AVAILABLE)
;
else
;
var oRequest = oRequestInfo.oRequest;
if (oRequest) {
this.stats.recordTimeout();
oRequest.timedOut = true;
}
this.killCurrentRequest(oRequestInfo, true, 'timeout', nTimeoutStatus);
}
this.killCurrentRequest = function (oRequestInfo, bCallErrorCallback, sReason, nStatus) {
var oRequest = oRequestInfo.oRequest;
; // supposed to be set if it's processing
this.nProcessState=nSTATE_ABORTING_REQUEST;
if (oRequest) {
if (!oRequest.cancelled) {
this.processFailure(oRequestInfo, sReason, nStatus, bCallErrorCallback);
}
this.removeRequest(oRequestInfo.sRequestID, oRequestInfo.sNamespace);
}
this.stopWatchdog();
if (this.bXHRPRocessing) {
this.oXHR.abort();
this.bXHRPRocessing = false;
if (goN2U.isMozilla5()) {
goN2DUManager.oXHR = n2XHRFactory();
}
}
this.nProcessState = nSTATE_NOT_PROCESSING; // VITAL or next request will never be issued
this.bExpectingResponseComplete = false;
this.issueNextRequest();
}
this.onDataAvailable = function (sRequestID, aHTML, aJSFunctions, nStatus, bJSData) {
;
this.nProcessState = nSTATE_DATA_AVAILABLE;
var bValidData=true;
var msg = "Response contained no valid data. (0 HTML, 0 JS, no JSData). Status was "+ nStatus;
if (!aHTML && !aJSFunctions && !bJSData) {
;
bValidData=false;
}
var bCallProcessSuccess = false;
var oRequestInfo = this.getCurrentRequestInfo();
var sNmSpace = (!oRequestInfo) ? null : oRequestInfo.sNamespace;
var oRequest = this.getRequest(sRequestID, sNmSpace);
if (!oRequestInfo && !oRequest) {
;
return;
}
var sCurrentRequestID = '';
if (!oRequestInfo && oRequest) {
oRequestInfo = oRequest;
sNmSpace = (!oRequestInfo) ? null : oRequestInfo.sNamespace;
} else {
sCurrentRequestID = oRequestInfo.sRequestID;
}
var latency = "(cached)";
if (oRequest) {
var now = new Date();
latency = now.getTime() - oRequest.reqStart;
this.stats.recordSuccess(latency, oRequest.timedOut);
;
if (!aHTML && !aJSFunctions && !bJSData) {
this.processFailure(oRequestInfo, msg, nStatus, true);
return;
}
oRequest.tripTime = latency;
if (!oRequest.cancelled) {
if (sCurrentRequestID == sRequestID) {
bCallProcessSuccess = true;
} else {
;
}
}
} else if (bValidData) {
;
oRequest = new N2DynUpRequest(null, '', '');
this.cacheResponse(sRequestID, oRequest, sNmSpace);
}
if (window.goN2Debug) {
;
}
if (oRequest && oRequest.bCachable) {
;
oRequest.arJS = aJSFunctions;
oRequest.arHTML = aHTML;
oRequest.nStatus = nStatus;
oRequest.success = true;  // FIXME: Should this be the status code >=0 ?
}
if (bCallProcessSuccess )
this.processSuccess(oRequestInfo, aHTML, aJSFunctions, nStatus, sRequestID);
if (oRequest && !oRequest.bCachable) {
;//goN2Debug.info("Removing request as it is not marked cachable...")
this.removeRequest(sRequestID, sNmSpace);
}
}
this.processSuccess = function (oRequestInfo, aHTML, aJSFunctions, nStatus, sRequestID) {
var oRequester = oRequestInfo.oRequester;
var oOverride = !goN2U.isUndefined(oRequestInfo.oOverride) && oRequestInfo.oOverride != null
? oRequestInfo.oOverride : oRequester;
if (oRequester) {
;
if (oRequester.sID) ;
if (oRequestInfo.methodSuccess) {
;
oRequestInfo.methodSuccess.call(oOverride, aHTML, aJSFunctions, nStatus, sRequestID);
} else {
;
oRequester.onRequestSuccess(aHTML, aJSFunctions, nStatus, sRequestID);
}
oRequester.requestComplete();
}
}
this.processFailure = function (oRequestInfo, sMessage, nStatus, bNotifyRequestor) {
var oRequester = oRequestInfo.oRequester;
var oOverride = oRequestInfo.oOverride ? oRequestInfo.oOverride : oRequester;
if (oRequester) {
if (bNotifyRequestor) {
;
if (oRequestInfo.methodFailure)
oRequestInfo.methodFailure.call(oOverride, sMessage, nStatus, oRequestInfo.sRequestID);
else
oRequester.onRequestFailure(sMessage, nStatus, oRequestInfo.sRequestID);
}
oRequester.requestComplete();
}
}
this.responseHead = function (sID) {
this.nProcessState = nSTATE_RESPONSE_RECEIVED;
;
;
}
this.responseComplete = function () {
this.bExpectingResponseComplete = false;
var oRequestInfo = this.getCurrentRequestInfo();
this.stopWatchdog();
if (oRequestInfo) {
var sRequestID = oRequestInfo.sRequestID;
;
var oRequest = oRequestInfo.oRequest;
if (nSTATE_NOT_PROCESSING < this.nProcessState &&
this.nProcessState < nSTATE_DATA_AVAILABLE ) {
if (nSTATE_DATA_AVAILABLE <= this.nProcessState) {
;
} else {
;
}
if (!oRequest.cancelled) {
this.processFailure(oRequestInfo, 'Error: No information matching your request returned', nNoInfoStatus, true);
}
}
if (oRequest) {
if (oRequest.sScriptID) {
goN2U.removeElementById(oRequest.sScriptID);
oRequest.sScriptID = null;
}
}
} else {
;
;
}
this.nProcessState=nSTATE_NOT_PROCESSING;  // VITAL or next request will never be issued
if (!this.bXHREvalProcessing) {
this.issueNextRequest();
}
}
this.loadScript = function (sURL, bLocalCacheOK, sID) {
;
var e = document.createElement("script");
e.type="text/javascript";
e.id=sID;
e.charset = "utf-8";
if (bLocalCacheOK) {
e.src = sURL;
} else {
e.src = sURL + (sURL.indexOf('?') == -1 ? '?' : '&') + 'n2t='+ new Date().getTime();
}
oTheHead.appendChild(e); // test change 2005-04-06
}
this.XHRSend = function(sURL, sData) {
var sMode = "GET";
var bSuccess = true;
var sDataLength = 'N/A';
if (sData) {
sMode = "POST";
sDataLength = sData.length;
}
try {
;
this.oXHR.open(sMode, sURL, true);
this.oXHR.onreadystatechange= function() { goN2DUManager.onXHRReadyStateChange() };
if (sMode == "POST") {
this.oXHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
this.oXHR.send(sData);
} else {
this.oXHR.send(null);
}
this.bXHRPRocessing = true;
} catch(e) {
;
this.bXHRPRocessing = false;
this.killCurrentRequest(this.getCurrentRequestInfo(), true, 'Bad XHRResponse',
goN2U.isDefined(this.oXHR) ? this.oXHR.status: '???');
bSuccess = false;
}
return bSuccess;
}
this.onXHRReadyStateChange = function() {
var oXHR = this.oXHR;
if (oXHR.readyState==4) {
var oRequestInfo = this.getCurrentRequestInfo();
this.bXHRPRocessing = false;
if (this.nProcessState!=nSTATE_ABORTING_REQUEST) {
try {
if (oXHR.status == 200) {
var len = oXHR.responseText.length;
;
try {
this.bXHREvalProcessing=true;
eval(oXHR.responseText);
this.bXHREvalProcessing=false;
if (this.nProcessState!=nSTATE_NOT_PROCESSING) {
;
this.killCurrentRequest(oRequestInfo, true, 'Bad XHRResponse (incomplete?)', oXHR.status);
} else {
this.issueNextRequest();
}
} catch (e) {
this.bXHREvalProcessing=false;
;//goN2Debug.scriptError("Error eval-ing XHR response. (" + e.toString() + ").");
;
this.killCurrentRequest(oRequestInfo, true, 'Error eval-ing XHR response', oXHR.status);
}
} else {
;
this.killCurrentRequest(oRequestInfo, true, 'Bad XHRResponse', oXHR.status);
}
} catch (e) {
;
this.killCurrentRequest(oRequestInfo, true, 'XHR Exception', oXHR.status);
}
}
} else {
;
}
}
}
window.goN2DUManager = new N2DynamicUpdateManager;
N2DynUpObject.prototype.oUpdateManager = goN2DUManager;
N2ChainEventHandler ('onerror', function(){ goN2DUManager.onScriptError(); }, 'goN2DUManager chain onError event' );
goN2Persist = {
sPersistFormName: 'goN2PersistForm',
aRenderContentCalled: {},
aEvalFunctionsCalled: {},
aSkipProcessing: {},
saveContent: function(sFormName, aHTML) {
var oForm = document.forms[sFormName];
if (!oForm) {
;
return;
}
;
var nFields = oForm.elements.length/2;
if (!aHTML) {
return;
}
var iNext;
var aLookup = {};
for (iNext=0; iNext < nFields; ++iNext) {
var sId = oForm['k_'+iNext].value;
if (goN2U.isUndefOrNull(sId) || sId.length==0) {
break;
}
aLookup[sId] = iNext;
}
;
for (var sId in aHTML) {
if (goN2U.isDefined(aLookup[sId])) {
;
oForm['v_'+aLookup[sId]].value = aHTML[sId];
;
} else {
if (iNext >= nFields) {
;
return false;
}
;
oForm['k_'+iNext].value = sId;
oForm['v_'+iNext].value = aHTML[sId];
aLookup[sId] = iNext; // add to the lookup array for check below
iNext++;
}
}
return true;
},
saveFunctions: function(sFormName, aFns) {
var oForm = document.forms[sFormName];
if (oForm && aFns) {
;
var nFields = oForm.elements.length/2;
var nFns = aFns.length;
var nCount = 0;
if (nFns <= nFields) {
var i;
for (i=0;i<nFns;i++) {
oForm['v_'+i].value = aFns[i];
}
for (;i<nFields;i++) {
oForm['v_'+i].value = null;
}
} else {
;//goN2Debug.error("goN2Persist.saveFunctions: Array length ("+nCount+") exceeds form length ("+ nFields +")");
return false;
}
} else {
;
}
return true;
},
saveValue: function(sFormName, sKey, sValue) {
var oForm = document.forms[sFormName];
var bOK = false;
if (oForm) {
var nIndex = goN2Persist.getValueIndex(sFormName, sKey);
if (nIndex >=0) {
oForm.elements['v_'+nIndex].value = sValue;
bOK = true;
} else {
var nFields = oForm.elements.length/2;
var i;
for (i=0;i<nFields;i++) {
if (!oForm.elements['k_'+i].value) {
oForm.elements['k_'+i].value = sKey;
oForm.elements['v_'+i].value = sValue;
bOK = true;
break;
}
}
}
} else {
;
}
if (!bOK) {
;
}
return bOK;
},
getValue: function (sFormName, sKey) {
var oForm = document.forms[sFormName];
var sData = null;
if (oForm) {
var nIndex = goN2Persist.getValueIndex(sFormName, sKey);
if (nIndex >=0 && oForm) {
sData = oForm.elements['v_'+nIndex].value;
}
} else {
;
}
return sData;
},
getValueIndex: function (sFormName, sKey) {
var oForm = document.forms[sFormName];
if (oForm) {
var nFields = oForm.elements.length/2;
var i;
for (i=0;i<nFields;i++) {
if (oForm.elements['k_'+i].value == sKey) {
return i;
}
}
} else {
;
}
return -1;
},
resetForm: function (sFormName) {
var oForm = document.forms[sFormName];
if (oForm) {
if (typeof oForm['k_0'] == 'undefined') {
goN2Persist._resetVForm(oForm);
} else {
goN2Persist._resetKVForm(oForm);
}
} else {
;
}
},
_resetKVForm: function (oForm) {
var i=0;
var oIDField=oForm['k_'+i];
while (typeof oIDField != 'undefined') {
oForm['v_'+i].value = '';
oIDField.value = '';
i++;
oIDField=oForm['k_'+i];
}
},
_resetVForm: function (oForm) {
var i=0;
var oIDField=oForm['v_'+i];
while (typeof oIDField != 'undefined') {
oIDField.value = '';
i++;
oIDField=oForm['v_'+i];
}
},
renderContent: function (sFormName) {
if (goN2U.isDefined(goN2Persist.aRenderContentCalled[sFormName])) {
return;
}
goN2Persist.aRenderContentCalled[sFormName] = true;
var oForm = document.forms[sFormName];
if (oForm) {
;
var i=0;
var oIDField=oForm.elements['k_'+i];
while (typeof oIDField != 'undefined') {
var oValueField=oForm.elements['v_'+i];
var sID = oIDField.value;
if (sID) {
goN2Persist.insertContent(sID, oValueField.value);
}
i++;
oIDField=oForm.elements['k_'+i];
}
} else {
;
}
},
insertContent: function(sID, sValue) {
var oE = goN2U.getElement(sID);
if (oE) {
;
oE.innerHTML = sValue;
} else {
;
}
},
evalFunctions: function (sFormName) {
if (goN2U.isDefined(goN2Persist.aEvalFunctionsCalled[sFormName])) {
return;
}
goN2Persist.aEvalFunctionsCalled[sFormName] = true;
var oForm = document.forms[sFormName];
if (oForm) {
var i=0;
var oValueField=oForm['v_'+i];
while (typeof oValueField != 'undefined' && oValueField.value.length) {
try {
eval (oValueField.value);
} catch (e) {
;
}
i++;
oValueField=oForm['v_'+i];
}
} else {
;
}
},
skipAutoProcessingFor: function(sFormName) {
goN2Persist.aSkipProcessing[sFormName] = 1;
},
processAll: function () {
var oForm = document.forms[goN2Persist.sPersistFormName];
if (oForm) {
;
var oField=oForm['c'];
var aForms = oField.value.split('|');
var sForm;
for (i=0;i<aForms.length;i++){
sForm = aForms[i];
if (goN2Persist.aSkipProcessing[sForm] || !sForm.length)
continue;
goN2Persist.renderContent(sForm);
}
oField=oForm['f'];
aForms = oField.value.split('|');
for (i=0;i<aForms.length;i++){
sForm = aForms[i];
if (goN2Persist.aSkipProcessing[sForm] || !sForm.length)
continue;
goN2Persist.evalFunctions(sForm);
}
;
} else {
;
}
}
}
if (typeof window.goN2Debug == "object") {
goJSFToolbar.addHTML('&nbsp;<span>PersistForms:[<a href="javascript:goJSFToolbar.showPersistForms(true)">I</a>|<a href="javascript:goJSFToolbar.showPersistForms(false)">O</a>]</span>','beforeBegin');
}
if (window.goN2LibMon) goN2LibMon.endLoad('dynUpdate');
} // END library code wrapper
n2RunIfLoaded("utilities", n2DynUpdateInitLibrary, "dynupdate");

/* dynUpdate Ends */



/* multiPanePopover Starts */

//! ################################################################
//! Copyright (c) 2004 Amazon.com, Inc., and its Affiliates.
//! All rights reserved.
//! Not to be reused without permission
//! $Change: 1486694 $
//! $Revision: #2 $
//! $DateTime: 2007/08/07 01:07:57 $
//! ################################################################
function n2MultiPanePopoverInitLibrary() {	// Begin library code wrapper. Goes all the way to the bottom of the file
if (window.goN2LibMon) goN2LibMon.beginLoad('multiPanePopover', 'n2CoreLibs');
window.N2MultiPanePopover=function() {
N2StaticPopover.call ( this );
this.oCfg = goN2U.getConfigurationObject('N2MultiPanePopover');
this.className = 'N2MultiPanePopover';
this.version = '1.1.0';
this.sDUHandlerName = 'test/testx';			// Default Mason Template for dynamic update
this.sDURequestMode = 'xd';
this.aPanes = new Array();
this.currentPaneIndex=0;
this.stack = new N2BrowseStack(20); 	// set up the history queue
this.bCacheResponses = true;
this.defaultTimeoutMs = this.oCfg.getValue('defaultTimeoutMs', 8000);
this.kludgeTimer=null;
this.sReftag = null;
}
N2MultiPanePopover.prototype = new N2StaticPopover();
N2MultiPanePopover.prototype.setDefaultTimeout = function(nMS) {  this.defaultTimeoutMs = nMS;  }
N2MultiPanePopover.prototype.cacheResponses = function (b) { this.bCacheResponses = b; };
N2MultiPanePopover.prototype.setReftag = function (s) { this.sReftag = s; };
N2MultiPanePopover.prototype.populate = function(action, id, type, params, linkID, href, linkText) {
var nPreChangePopoverWidth = this.width
var nPreChangePopoverHeight = this.height;
this.currentPane.populate(action, id, type, params, linkID, href, linkText);
this.relocate(this.currentPane, nPreChangePopoverWidth, nPreChangePopoverHeight)
}
N2MultiPanePopover.prototype.repopulate = function() {
var tmp = this.stack.current();
if (tmp) {
this.currentPane.initialize();
this.populate(tmp.action, tmp.id, tmp.type, tmp.params, null, tmp.href, tmp.text);
}
}
N2MultiPanePopover.prototype.newPane = function(n) {
;
var pane;
if (this.aPanes.length && 
!goN2U.isUndefined(this.aPanes[n-1]) &&
goN2U.isNumber(n)) 
pane = this.aPanes[n-1].clone();
else 
pane = new N2PopoverPane(this, n);
pane.index=n;
this.aPanes[n] = pane;
return pane;
}
N2MultiPanePopover.prototype.addPane = function (oPane, n) {
;
; 
; 
oPane.sID = n.toString();
oPane.oPopover = this;
return this.aPanes[n] = oPane;
}
N2MultiPanePopover.prototype.getPane = function (n) {
;
if ( goN2U.isUndefined(this.aPanes[n]) ) {
this.aPanes[n] = this.newPane(n);
} 
return this.aPanes[n];		
}
N2MultiPanePopover.prototype.findPane = function (sPaneID) {
return this.currentPane.findPane(sPaneID);
}
N2MultiPanePopover.prototype.setCurrentPane = function (n) {
; 	
this.currentPaneIndex = n;
this.currentPane = this.getPane(n);
return this.currentPane;
}
N2MultiPanePopover.prototype.usePane = function(nPane, sAction, sID, sType, params, linkID, href, linkText, bFirstPopulate) {
;
if (this.kludgeTimer) {
;
clearTimeout(this.kludgeTimer);
this.kludgeTimer = null;
}
if (!bFirstPopulate) 
this.prepareClose();
var pane = this.setCurrentPane(nPane);
if (pane.locate) this.locate = pane.locate;
if (this.myFeatureChangedCallback) this.myFeatureChangedCallback(this);
pane.initialize(bFirstPopulate);
sAction = sAction ? sAction : this.action;
sID = sID ? sID : this.thingID;
sType = sType ? sType : this.thingType;
params = params ? params : this.thingParams;
linkID = linkID ? linkID : this.linkID
href = href ? href : this.linkHref;
linkText = linkText ? linkText : this.linkText; 
;
this.populate(sAction, sID, sType, params, linkID, href, linkText);
if (pane.myStyle) {
;
goN2U.setClass(this.popObj, pane.myStyle);
}
if (this.myFeatureChangedCallback) this.myFeatureChangedCallback(this);
}
N2MultiPanePopover.prototype.initializeCurrentPane = function() {
this.currentPane.initialize();
}
N2MultiPanePopover.prototype.prepareClose = function() {
this.currentPane.prepareClose();
}
N2MultiPanePopover.prototype.nextPane = function(sAction, sID, sType, sParams, linkID, href, text) {
sAction = sAction ? sAction : this.action;
sID = sID ? sID : this.thingID;
sType = sType ? sType : this.thingType;
sParams = sParams ? sParams : this.thingParams;
linkID = linkID ? linkID : this.linkID
href = href ? href : this.linkHref;
text = text ? text : this.linkText; 
this.usePane(this.currentPaneIndex+1, sAction, sID, sType, sParams, linkID, href, text);
if (this.staticState != 3) this.makeStatic(3);
this.addThingDataToStack(sAction, sID, sType, sParams, linkID, href, text);
}
N2MultiPanePopover.prototype.getSubPane = function(id) {
return this.currentPane.getSubPane(id);		
}	
N2MultiPanePopover.prototype._showPopulate = function (sAction, sID, sType, sParams, sLinkID, sHref, sLinkText) {
this.hideBackForwardButtons();
this.stack.reset();	
;
; 
this.usePane(0, sAction, sID, sType, sParams, sLinkID, sHref, sLinkText, true);
this.addThingDataToStack(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText);
}
N2MultiPanePopover.prototype.initialize = function (id, objectName, dataArrayName, dispMinMethod, 
locateMethod, nHAdjust, nVAdjust) {
this.staticPopoverInitialize(id, objectName, dataArrayName, dispMinMethod, 
locateMethod, nHAdjust, nVAdjust);
;
var pane = this.getPane(0);
this.currentPane = pane;
if (goN2U.isDefined(window.goN2DUManager)) this.setUpdateManager(goN2DUManager);
}
N2MultiPanePopover.prototype.multiPanePopoverInitialize = N2MultiPanePopover.prototype.initialize;
N2MultiPanePopover.prototype.setUpdateManager = function (obj) { this.oUpdateManager = obj; }
N2MultiPanePopover.prototype.setDUHandler = function(sH, sM) { 
this.sDUHandlerName = sH; 
;
;
this.sDURequestMode = sM; 
}
N2MultiPanePopover.prototype.getDUHandlerName = function() { return this.sDUHandlerName; }
N2MultiPanePopover.prototype.getDURequestMode = function() { return this.sDURequestMode; }
N2MultiPanePopover.prototype.requestUpdate = function (oPane, 
action, id, type, params,
bImmediate, bCacheResult, 
overrideSuccess, overrideFailure, oOverride) {		// these three are optional
if (this.oUpdateManager) {
this.showLoading(oPane);
if (this.bCacheResponses) {
bCacheResult = (typeof (bCacheResult)!='undefined') ? bCacheResult : true;
} else {
bCacheResult = false;
}
oPane.currentRequest = this._requestUpdate(oPane, 
action, id, type, params,
bImmediate, bCacheResult, 
overrideSuccess, overrideFailure, oOverride);
} else {
;
}
}
N2MultiPanePopover.prototype._requestUpdate = function (oPane, action, id, type, params,
bImmediate, bCacheResult, 
overrideSuccess, overrideFailure, oOverride) {		// these three are optional
var sDUHandlerName = oPane.getDUHandlerName() ? oPane.getDUHandlerName() : this.sDUHandlerName;
var sDURequestMode = oPane.getDURequestMode() ? oPane.getDURequestMode() : this.sDURequestMode;
;
;
;
return this.oUpdateManager.requestUpdate(oPane, sDURequestMode, sDUHandlerName, action,  id, type, params, 
this.defaultTimeoutMs, bImmediate, bCacheResult,
overrideSuccess, overrideFailure, oOverride, null, this.sReftag );
}
N2MultiPanePopover.prototype.resubmitFormUpdate = function (sAction, sID, sType, sParams, sPaneID) {
this._submitFormUpdate(sAction, sID, sType, sParams, sPaneID, true);
}
N2MultiPanePopover.prototype._submitFormUpdate = function (sAction, sID, sType, sParams, sPaneID, bUseCachedArgs) {
; // ( "+sAction+","+ sID+","+ sType+","+ sParams+")"); 
var oPane = this.findPane(sPaneID);
if (oPane) 	{
return oPane._submitFormUpdate (sAction, sID, sType, sParams, bUseCachedArgs);
} else {
;
return false;	
}
}
N2MultiPanePopover.prototype.requestAnonomousUpdate = function (sDURequestMode, sHandler, action, id, type, params,
bImmediate, bCacheResult, 
overrideSuccess, overrideFailure, oOverride) {		// these three are optional
var sDURequestMode = sDURequestMode ? DURequestMode : this.sDURequestMode;
var sDUHandlerName = sHandler ? sHandler : this.sDUHandlerName;
if (this.oUpdateManager) {
return this.oUpdateManager.requestUpdate(null, sDURequestMode, sDUHandlerName, action,  id, type, params, 
this.defaultTimeoutMs, bImmediate, bCacheResult,
overrideSuccess, overrideFailure, oOverride, null, this.sReftag );
} else {
;
}
return null;
}
N2MultiPanePopover.prototype.showLoading = function (oPane) {
;
var sLoadingHTMLDefault = gsN2LoadingMessage;
var sLoadingHTML = (oPane.sLoadingMessage) ? oPane.sLoadingMessage :
this.oCfg.getValue('loadingHTML', sLoadingHTMLDefault);
if (sLoadingHTML.length)
this.setContent(sLoadingHTML, oPane, true);
}
N2MultiPanePopover.prototype.addThingDataToStack = function (sAction, sID, sType, sParams, linkID, linkHref, linkText) {
if (this.currentPane.useHistory()) {
;
var tmp = new Object();
tmp.action = sAction;
tmp.id   = sID;
tmp.type = sType;
tmp.params = sParams;
tmp.linkID = linkID;
tmp.href = linkHref 
tmp.text = linkText; 
this.stack.add(tmp);
}
}
N2MultiPanePopover.prototype.getCurrentThingData = function () { return this.stack.current(); }
N2MultiPanePopover.prototype.setLatestAction = function (sAction, p1, p2) {	
;
var aData = this.getCurrentThingData();
if (aData) {
aData.action = sAction;
aData.p1 = p1;
aData.p2 = p2;
}
}
N2MultiPanePopover.prototype.update = function (sAction, sID, sType, sParams, eElem) {
;
if (this.oUpdateManager) 
this.currentPane.cancelAllRequests(true);
this._update(this.currentPane, sAction, sID, sType, sParams, eElem);
}
N2MultiPanePopover.prototype.updatePane = function (sPaneID, sAction, sID, sType, sParams, eElem) {
;
var oPane = this.findPane(sPaneID);
;
this._update(oPane, sAction, sID, sType, sParams, eElem);
}
N2MultiPanePopover.prototype._update = function (oPane, sAction, sID, sType, sParams, eElem) {
;
if (!oPane) return;
var oPopover = oPane.oPopover;
var lid, href, text;
if (eElem) {
lid = eElem.id;
href = eElem.href;
text = eElem.innerHTML;
}
sID = sID ? sID : this.thingID
sType = sType ? sType : this.thingType;
sParams = sParams ? sParams : this.thingParams;
this.bEnableStaticState=true;
this.makeStatic(3);
oPopover.setCurrentThingData(sAction, sID, sType, sParams, lid, href, text);	
if ( oPane.useHistory() ) {	
oPopover.addThingDataToStack(sAction, sID, sType, sParams, lid, href, text);
oPopover.updateBackNext();
}
oPane.initialize();
oPane.populate(sAction, sID, sType, sParams, lid, href, text);
}
N2MultiPanePopover.prototype.goBack = function () {
;
this.stack.goBack();
var tmp = this.stack.current();
if (tmp) {
if ((tmp.nPaneIndex != null) && (tmp.nPaneIndex != this.currentPaneIndex)) 
this.usePane(tmp.nPaneIndex); // FIXME: this causes a populate! use alternate mtehod?
;
this.initializeCurrentPane();
this.setCurrentThingData(tmp.action, tmp.id, tmp.type, tmp.params, null, tmp.href, tmp.text);
this.populate(tmp.action, tmp.id, tmp.type, tmp.params, null, tmp.href, tmp.text);
this.updateBackNext();
}
;
}
N2MultiPanePopover.prototype.goForward = function () {
;
this.stack.goForward();
var tmp = this.stack.current();
if (tmp) {
this.initializeCurrentPane();
this.setCurrentThingData(tmp.action, tmp.id, tmp.type, tmp.params, null, tmp.href, tmp.text);
this.populate(tmp.action, tmp.id, tmp.type, tmp.params, null, tmp.href, tmp.text);			
this.updateBackNext();
}
;
}
N2MultiPanePopover.prototype.updateBackNext = function () {
var currentReferenceTop = this.getReferenceTop();
var eB, eN;
if (this.stack.previous() || this.stack.next()) { 
if (this.stack.previous()) {
eB = goN2U.getRawObject(this.myID+'_backBtn');
goN2U.display(this.myID+'_backBtn', 'inline'); 
goN2U.undisplay(this.myID+'_backBtnDis'); 
} else {
eB = goN2U.getRawObject(this.myID+'_backBtnDis');
goN2U.display(this.myID+'_backBtnDis', 'inline'); 
goN2U.undisplay(this.myID+'_backBtn'); 
}
if (this.stack.next()) {
eN = goN2U.getRawObject(this.myID+'_nextBtn');
goN2U.display(this.myID+'_nextBtn', 'inline'); 
goN2U.undisplay(this.myID+'_nextBtnDis'); 
} else {
eN = goN2U.getRawObject(this.myID+'_nextBtnDis');
goN2U.display(this.myID+'_nextBtnDis', 'inline'); 
goN2U.undisplay(this.myID+'_nextBtn'); 
}
eB.src = eB.src;
eN.src = eN.src;
} else {
goN2U.undisplay(this.myID+'_backBtn'); 
goN2U.undisplay(this.myID+'_nextBtn'); 
goN2U.undisplay(this.myID+'_BtnSpace');
goN2U.undisplay(this.myID+'_backBtnDis'); 
goN2U.undisplay(this.myID+'_nextBtnDis'); 
}
var referenceAdj = this.getReferenceTop() - currentReferenceTop;
if (referenceAdj) {
this.top -= referenceAdj;
this.top = Math.max(this.top, goN2U.getScrollTop()+screenPad);
goN2U.shiftTo(this.myID, this.left, this.top);
this.updateLocation();
if (this.myFeatureChangedCallback) {
this.myFeatureChangedCallback(this);
}
}
}
N2MultiPanePopover.prototype.getReferenceTop = function() { return this.top; }
N2MultiPanePopover.prototype.expand = function (sID) { 
var oP;
if (oP=this.findPane(sID) && oP.expand) {
oP.expand();
} else {
;
}
} 
N2MultiPanePopover.prototype.contract = function (sID) { 
var oP;
if (oP=this.findPane(sID) && oP.contract) {
oP.contract();
} else {
;
}
} 
N2MultiPanePopover.prototype.toggle = function (sID) { 
var oP;
if ((oP=this.findPane(sID)) && oP.toggle) {
oP.toggle();
} else {
;
}
} 
if (window.goN2LibMon) goN2LibMon.endLoad('multiPanePopover');
} // END library code wrapper
n2RunIfLoaded("popoverPane", n2MultiPanePopoverInitLibrary, "multipanepopover");

/* multiPanePopover Ends */



/* panes Starts */

//! ################################################################
//! Copyright (c) 2004 Amazon.com, Inc., and its Affiliates.
//! All rights reserved.
//! Not to be reused without permission
//! $Change: 1675744 $
//! $Revision: #3 $
//! $DateTime: 2008/01/21 02:16:50 $
//! ################################################################
function n2PanesInitLibrary() { // Begin library code wrapper. Goes all the way to the bottom of the file
if (window.goN2LibMon) goN2LibMon.beginLoad('panes', 'n2CoreLibs');
window.N2MenuPane=function() {
N2PopoverPane.call ( this );
this.sCurrentHighlight=null;
this.sCurrentHighlightAction=null;
this.sSelectedClass = "expMenuSelected";
this.sUnselectedClass = null;
this.highlight = function (sDivID) {
if (this.sCurrentHighlight)
goN2U.setClass(this.sCurrentHighlight, this.sUnselectedClass);
this.sCurrentHighlight = this.oPopover.getID()+ this.sID + sDivID;
;
var oDiv;
if (oDiv = goN2U.getRawObject(this.sCurrentHighlight))
goN2U.setClass(oDiv, this.sSelectedClass);
else
;
}
}
N2MenuPane.prototype = new N2PopoverPane();
window.N2DynamicMenuPane=function() {
N2MenuPane.call ( this );
this.aEntries = new Array();
this.aActionIndex = new Array();
this.sSelectedClass = "microSelected";
this.sUnselectedClass = "micro";
this.sDisabledClass = "microDisabled";
this.addEntry = function (sAction, sHref, sText, bDisable) {
this.aActionIndex[sAction] = this.aEntries.length;
var aTmp = this.aEntries[this.aEntries.length] = {};
aTmp.sText = sText;
aTmp.sAction = sAction;
aTmp.sHref = sHref;
aTmp.bDisable = bDisable;
}
this.highlight = function (sAction) {
if (this.sCurrentHighlightAction) {
this.enableEntry(this.sCurrentHighlightAction);
}
var sDivID = this.sCurrentHighlight = this.oPopover.getID()+ this.sID + sAction;
;
var nIndex = this.aActionIndex[sAction];
var oDiv;
if (oDiv = goN2U.getRawObject(sDivID)) {
goN2U.setClass(oDiv, this.sSelectedClass);
this.aEntries[nIndex].sSaved = oDiv.innerHTML;
oDiv.innerHTML = this.aEntries[nIndex].sText;
this.sCurrentHighlightAction = sAction;
} else
;
}
this.enableEntry = function (sAction) {
var nIndex = this.aActionIndex[sAction];
var sDivID = this.oPopover.getID()+ this.sID + sAction;
var oDiv;
if (oDiv = goN2U.getRawObject(sDivID)) {
goN2U.setClass(oDiv, this.sUnselectedClass);
oDiv.innerHTML = this.aEntries[nIndex].sSaved;
} else {
;
}
}
this.disableEntry = function (sAction) {
var nIndex = this.aActionIndex[sAction];
var sDivID = this.oPopover.getID()+ this.sID + sAction;
var oDiv;
if (oDiv = goN2U.getRawObject(sDivID)) {
goN2U.setClass(oDiv, this.sDisabledClass);
oDiv.innerHTML = this.aEntries[nIndex].sText;
} else {
;
}
}
}
N2DynamicMenuPane.prototype = new N2MenuPane();
window.N2UpdatePane=function() {
N2PopoverPane.call ( this );
var oCfg = goN2U.getConfigurationObject('N2UpdatePane');
var nNoImageAvailabeCheckTimerMs = oCfg.getValue('noImageAvailableCheckDelay', '2000');
this.setDUAction('summary');     // set an action;
this.chainOnSuccess = this.onRequestSuccess; // save current to chain
this.onRequestSuccess = function (dataArray, fnArray, nStatus, sRequestID) {
;
var aParts = sRequestID.split('^');
this.oPopover.setLatestAction(aParts[1]);
if ((dataArray == null) && nStatus) {
dataArray= new Array();
dataArray[0] = this.defaultContent;
}
this.chainOnSuccess(dataArray, fnArray, nStatus, sRequestID);
var tmpFn = function () {
var i=1;
var oActive = goN2Events.getActivePopover();
var popID = oActive ? oActive.getID() : '';
var img = popID + '_PLI_' + i;
var elem, w;
while (elem = goN2U.getRawObject(img)) {
w = goN2U.getObjectWidth(elem);
if (w <2) {
elem.src = goN2Locale.getImageURL('JSF-thumb-no-image', 'x-locale/detail/thumb-no-image');
}
i++;
img = popID + '_PLI_' + i;
}
}
try {
setTimeout(tmpFn, nNoImageAvailabeCheckTimerMs);
} catch  (e) { }
}
}
N2UpdatePane.prototype = new N2PopoverPane()
window.N2ExpandoPane=function() {
N2PopoverPane.call ( this );
this.bDisableResizing = true;
this.deferredPopulate = this.populate;
this.initialize = function() {
;
this.bPopulated = false;
this.bExpanded = false;
this.aSP=null;
}
this.initialize();
this.populate = function (id, objectName, dataArrayName, populateMethod, locateMethod) {
this.aSP = [id, objectName, dataArrayName, populateMethod, locateMethod];
if (!this.bExpanded) {
this.setContent('');
this.bPopulated = false;
return;
} else {
var a = this.aSP;
this._defaultPopulate (a[0], a[1], a[2], a[3], a[4]);
this.bPopulated = true;
}
}
}
N2ExpandoPane.prototype = new N2PopoverPane();
N2ExpandoPane.prototype.oCfg = goN2U.getConfigurationObject('N2ExpandoPane');
N2ExpandoPane.prototype.deferredRePopulate = function (delay) {
var sElemID = this.oPopover.getID() + this.sID;
setTimeout("var e; if ( e = goN2U.getRawObject('" + sElemID +"') ) e.innerHTML=e.innerHTML;", delay);
}
N2ExpandoPane.prototype.oCfg = goN2U.getConfigurationObject('N2ExpandoPane');
N2ExpandoPane.prototype.toggle = function (id) {
if (this.bExpanded) this.contract(id)
else this.expand(id);
}
N2ExpandoPane.prototype.expand = function (id) {
var sIDM = this.oPopover.getID() + this.sID;
var contentDivID = sIDM + '_XI';
var contractorDivID = sIDM + '_C';
var expanderDivID = sIDM + '_X';
var delayMS = this.oCfg.getValue('expandContractDelay', '20');
;
var a = this.aSP;
if (!this.bPopulated) {
this.deferredPopulate (a[0], a[1], a[2], a[3], a[4]);
}
goN2U.expandDivHeight(contentDivID, expanderDivID, delayMS, null, contractorDivID);
if (!this.bPopulated)  {
this.deferredRePopulate(2000);
} else {
this.deferredRePopulate(500);
}
this.oPopover.setLatestAction(this.sID);
this.bPopulated = true;
this.bExpanded = true;
}
N2ExpandoPane.prototype.contract = function (id) {
var sIDM = this.oPopover.getID() + this.sID;
var contentDivID = sIDM + '_XI';
var contractorDivID = sIDM + '_C';
var expanderDivID = sIDM + '_X';
var delayMS = this.oCfg.getValue('expandContractDelay', '20');
goN2U.collapseDivHeight(contentDivID, contractorDivID, delayMS, null, expanderDivID);
this.oPopover.setLatestAction('');
this.bExpanded = false;
}
window.N2SectionPane=function() {
N2PopoverPane.call ( this );
var aSections = new Array();
var aDefaultOrder = new Array();
var aCurrentOrder = new Array();
this.addSection = function (sID, sTitle, sContent, bExpanded) {
;
var tmp = new Object();
tmp.sID = sID;
tmp.sTitle = sTitle;
tmp.sContent = sContent;
tmp.bExpanded = bExpanded;
aSections[sID] = tmp;
var i = aDefaultOrder.length;
aCurrentOrder[i] = aDefaultOrder[i] = sID;
}
this.genSectionHTML = function (id) {
var sPID = this.oPopover.getID();
var tmp = aSections[id];
var sID = tmp.sID;
var sTitle = tmp.sTitle;
var sContent = tmp.sContent;
var bExpanded = tmp.bExpanded;
var sPopoverName = this.oPopover.getObjectName()
var sh="";
var rOrangeArrowImagePath = goN2Locale.getImageURL('JSF-r-orange-arrow', 'nav2/images/arrow-r-orange-11x10');
var dOrangeArrowImagePath = goN2Locale.getImageURL('JSF-d-orange-arrow', 'nav2/images/arrow-d-orange-11x10');
sh += '<table border="0"><tr><td width="12" valign="top">\n' +
'<span id="'+sPID+sID+'_X" ' +
(bExpanded ? 'style="display:none"' : '') +
'>\n' +
'<a href="javascript:' + sPopoverName + '.findPane(\''+sID+'\').expand(\''+sID+'\')">\n' +
'<img src="' + rOrangeArrowImagePath + '" width="11" height="10"  border="0" alt="' +
goN2Locale.getString('alt_text_click_to_expand_36018', 'click to expand this section and see more') + '"></a>\n' +
'</span>\n' +
'<span id="'+sPID+sID+'_C" ' +
(!bExpanded ? 'style="display:none"' : '') +
'>\n' +
'<a href="javascript:' + sPopoverName + '.findPane(\''+sID+'\').contract(\''+sID+'\')">\n' +
'<img src="' + dOrangeArrowImagePath + '" width="11" height="10" border="0" alt="' +
goN2Locale.getString('alt_text_click_to_collapse_36019', 'click to collapse this section and see less') + '"></a>\n' +
'</span>\n' +
'</td><td class="internalLink"><a href="javascript:' + sPopoverName + '.findPane(\''+sID+'\').toggle(\''+sID+'\')">' + sTitle + '</a></td></tr></table>\n';
sh += '<div class="expandableVOuterVisible" ' +
(bExpanded ? '' : 'style="height:1"' )+
'>\n' +
'<div id="'+sPID+sID+'_XI" class="expandableInner" >\n' +
'<div id="'+sPID+sID+'" style="padding: 0 0 0 20px">'+sContent+'</div>' +
'\n</div></div>\n';
return sh;
}
this._determineOrder = function (sID, sType) {
var sExPaneID;
var sKey = sType+sID;
var aData = this.oPopover.getDataArray();
;
;
var tmp = this.oPopover.stack.current();
if (tmp && tmp.action && tmp.action != 'summary') {
sExPaneID = tmp.action;
} else if (aData[sKey].wl || aData[sKey].crt) {
sExPaneID = 'tiay';
} else if ( aData[sKey].nsims ) {
sExPaneID = 'sims';
} else {
sExPaneID = 'summary';
}
aCurrentOrder[1] = sExPaneID;
var len = aCurrentOrder.length;
for (var c=0, d=0;c<len;c++) {
if (c==1) c++;
if (aDefaultOrder[d] == sExPaneID) d++;
aCurrentOrder[c] = aDefaultOrder[d++];
}
return sExPaneID;
}
this.determineOrder = this._determineOrder;
this.populate = function(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText){
;
var sExPaneID = this.determineOrder(sID, sType);
var sHtml = "";
var len = aCurrentOrder.length;
for (var i=0;i<len;i++) {
sHtml += this.genSectionHTML(aCurrentOrder[i]);
}
this.setContent(sHtml, false, true);
this.populateSubPanes(sAction, sID, sType, sParams, sLinkID, sHref, sLinkText);
this.oPopover.expandPane(sExPaneID);
;
};
}
N2SectionPane.prototype = new N2PopoverPane();
window.N2ExternalLink=function(sID, sHref, sText, sTip,
sDisField, sDisText,
nDisplayFlags) {
this.sID = sID;
this.sHref = sHref;
this.sText = sText;
this.sTip = sTip;
this.sDisField = sDisField;
this.sDisText = sDisText;
this.nFlags = nDisplayFlags;
this.getDisplayFlags = function() { return this.nFlags; }
this.getID = function() { return this.sID; }
this.setParent = function(oP) { this.oParent = oP; }
this.setPopover = function(oPop) { this.oPopover = oPop; }
this.genHTML = function (sTID, sTType) {
var sTxt;
var showDis = false;
if (this.oPopover && this.sDisField) {
var aTD = this.oPopover.getDataArray();
showDis =  (sTType && sTID && (aTD[sTType + sTID][this.sDisField] >0)) ? true : false;
}
if (showDis) {
sTxt = '<div class="disabled">' + this.sDisText + '</div>';
} else {
sTxt = '<a href="' + this.sHref + '" onClick="n2HotspotDisableFeature()" '
+ 'name="disald" '
+ 'title="'+ this.sTip + '\n' +
goN2Locale.getString('you_will_go_to_new_page_36022', '(You will go to a new page)') + '">' +
this.sText + '</a>';
}
return sTxt;
}
}
window.N2InternalLink=function(sID, sField,
sTText, sTFunction, sTTip,
sFText, sFFunction, sFTip,
sDisField, sDisText,
nDisplayFlags) {
this.sID = sID;
this.sField = sField;
this.sTText = sTText;
this.sTFunction = sTFunction;
this.sFText = sFText;
this.sFTip = sFTip;
this.sTTip = sTTip;
this.sFFunction = sFFunction;
this.sDisField = sDisField;
this.sDisText = sDisText;
this.nFlags = nDisplayFlags;
this.getDisplayFlags = function() { return this.nFlags; }
this.getID = function() { return this.sID; }
this.setParent = function(oP) { this.oParent = oP; }
this.setPopover = function(oPop) { this.oPopover = oPop; }
this.genHTML = function (sTID, sTType) {
var sTxt;
var aTD = this.oPopover.getDataArray();
var valid = sTType && sTID;
if (valid && (aTD[sTType + sTID][this.sDisField] >0)) {
sTxt = '<div class="disabled">' + this.sDisText + '</div>';
} else if (valid && (aTD[sTType + sTID][this.sField] >0)) {
if (this.sTFunction != null) {
sTxt = '<div class="internalLink"><a href="javascript:' + this.sTFunction + '(\'' + sTID + '\',\'' + this.sID + '\')" ' +
'title="' + this.sTTip + '\n' +
goN2Locale.getString('you_will_stay_here_36023', '(You will stay right here)') + '">' +
this.sTText + '</a></div>';
} else {
sTxt = '<div class="disabled">' + this.sTText + '</div>';
}
} else {
if (this.sFFunction != null) {
sTxt = '<div class="internalLink"><a href="javascript:' + this.sFFunction + '(\'' + sTID +  '\',\'' + this.sID + '\')" ' +
'title="' + this.sFTip + '\n' +
goN2Locale.getString('you_will_stay_here_36023', '(You will stay right here)') + '">' +
this.sFText + '</a></div>';
} else {
sTxt = '<div class="disabled">' + this.sFText + '</div>';
}
}
return sTxt;
}
}
window.N2LinksPane=function(oPopover, sID) {
N2PopoverPane.call ( this, oPopover, sID );
this.oPopover = oPopover;
this.sID = sID;
this.aEntries = new Array();
this.addEntry = function (oLink) {
this.aEntries[this.aEntries.length] = oLink;
oLink.setParent(this);
oLink.setPopover(this.oPopover);
}
this.setEntryStyle = function(s) { this.sEntryStyle = s; }
this.display = function (sEntryID) {
var sID = this.oPopover.getID() + this.getID() + sEntryID;
goN2U.display(sID);
}
this.undisplay = function (sEntryID) {
var sID = this.oPopover.getID() + this.getID() + sEntryID;
goN2U.undisplay(sID);
}
this.populate = function (action, id, type, sParams, sLinkID, sHref, sLinkText) {
var nLinks = this.aEntries.length;
var nDispFlag = goCust.isLoggedIn() ? 1 : 2; // yes: no
;
var sHtml = "";
for (var i=0; i<nLinks; i++) {
var oLink = this.aEntries[i];
if (oLink.getDisplayFlags() & nDispFlag) {
var sH = oLink.genHTML(id,type);
var sS = this.sEntryStyle ?  'style="' + this.sEntryStyle + '" ' : '';
if (sH && sH.length) {
sHtml += '<div id="' + this.oPopover.getID() + this.getID() + oLink.getID() + '" ' + sS + '>' + sH + '</div>\n';
}
}
}
this.setContent(sHtml);
}
this.overrideLink = function (n, s) {
var oLink = this.aEntries[n];
if (oLink) {
var eElem = goN2U.getRawObject(this.oPopover.getID() + this.getID() + oLink.getID());
if (eElem) eElem.innerHTML = s;
}
}
}
N2LinksPane.prototype = new N2PopoverPane();
if (window.goN2LibMon) goN2LibMon.endLoad('panes');
} // END library code wrapper
n2RunIfLoaded("popoverpane", n2PanesInitLibrary, "panes");

/* panes Ends */

