		
 function shovelerShowProductPopover() {
        try {
            if (shvl.asins && shvl.asins[shvl.curLevel]) {
                for (var i=0;i < shvl.maxCell ;i++) {
                    var asin = shvl.asins[shvl.curLevel][i];
                    if (shvl.rating[asin] != undefined) {
                        savedRatings[asin] = shvl.rating[asin];
                        savedNotInterested[asin] = shvl.notInterested[asin];
                        savedIsOwned[asin] = shvl.isOwned[asin];
                    }
                    else {
                        shvl.rating[asin] = savedRatings[asin];
                        shvl.notInterested[asin] = savedNotInterested[asin];
                        shvl.isOwned[asin] = savedIsOwned[asin];
                    }
        
                    if (shvl.rating[asin] != undefined) amz_js_swapStars(asin,shvl.rating[asin]);
                    if (shvl.notInterested[asin] != undefined) amz_js_swapNotInterested(asin,shvl.notInterested[asin]);
                    if (shvl.isOwned[asin] != undefined) amz_js_swapIsOwned(asin,shvl.isOwned[asin]);

                }
            }
        } catch (e) {}
    }
    


  goN2Consts =
  {
    chEOL: String.fromCharCode(0x0A),
    chSQUOTE: String.fromCharCode(0x27),
    chDQUOTE: String.fromCharCode(0x22),
    chBACKSLASH: String.fromCharCode(0x5C),
    chYEN: String.fromCharCode(0xA5)
  };


var gbN2Loaded = N2Loaded = false;
var n2LMStart = new Date();

var gaN2JSLibs = [];
var gaN2JSLibPaths = [];
var gaN2JSLibIds = [];
var gaN2CSSLibs = [];
var gaN2CSSLibPaths = [];
var n2sRTW1='onload';
var n2sRTWTBS='simplepopoverloaded';


var goN2Initializer = {
      aHandlers: [],
      aEventsRun: [],
      bCoreLoaded: false,

	runThisWhen: function (sWhen, fFn, sComment) {
	  if ( (typeof fFn != 'function') || fFn == null) return false;
	  sWhen = sWhen.toLowerCase();
	
	  this.aHandlers[this.aHandlers.length] = { sWhen: sWhen, fFn: fFn, sComment: sComment };
	  return true
	},
	run: function() {},
	isReady: function() {return false;}

};
goN2Initializer.initializeThis = goN2Initializer.runThisWhen;
    
    
function n2RunThisWhen(sWhen, fFn, sComment) {
  goN2Initializer.runThisWhen(sWhen, fFn, sComment);
}
function n2RunIfLoaded(sLibID, fFn, sComment) {
	goN2Initializer.runThisWhen(sLibID+'loaded', fFn, 'sequenced init of '+ sComment);
}

var goN2LibMon = {
	aLibs: {},
	nMONITORLOAD: -1,

	monitorLoad: function (sLibID) {
		this.aLibs[sLibID] = { sID: sLibID, nDuration: this.nMONITORLOAD };
	},

	stats: function() {}
};


gaN2JSLibPaths.push(
    'http://www.ozelders.com/n2CoreLibs-utilities-58503.js',
    'http://www.ozelders.com/n2CoreLibs-events-18500.js',
    'http://www.ozelders.com/n2CoreLibs-simplePopover-50175.js');
gaN2JSLibIds.push(
    'utilities',
    'events',
    'simplePopover');



(function()
{
  var i;
  var sTags = "";
  var bIsSafari = navigator.userAgent.match(/Safari/);
  for (i in gaN2CSSLibPaths)
  {
    sTags += '<lin'+'k hr'+'ef="'+gaN2CSSLibPaths[i]+'" type="text/css" rel="stylesheet">' + goN2Consts.chEOL;
  }
  for (i in gaN2JSLibPaths)
  {
    goN2LibMon.monitorLoad(gaN2JSLibIds[i]);
    var sScript = '<sc'+'ript s'+'rc="'+gaN2JSLibPaths[i]+'" type="text/javascript"></sc'+'ript>' + goN2Consts.chEOL;
    if (bIsSafari) document.write(sScript);
    else sTags += sScript;
  }
  document.write(sTags);
}());

n2RunThisWhen(n2sRTWTBS,
              function() {
                  oYSItemPopover = new N2SimplePopover();
                  goN2Events.registerFeature('ys-popover', 'oYSItemPopover', 'n2MouseOverHotspot', 'n2MouseOutHotspot');
                  goN2Events.setFeatureDelays('ys-popover',200, 400, 200);
                  oYSItemPopover.initialize('YSItemPopoverDiv', 'oYSItemPopover','aShvlContent',null,'below','c');
              },
              '');
n2RunThisWhen ('lastlibraryloaded',
   function() {
        oYSItemPopover.locate = function (oHotspot) {
            var popX = oHotspot.absleft;
            var popY = oHotspot.abstop + oHotspot.height;
            
            var xMin = oHotspot.scrollLeft + 4;
            var xMax = oHotspot.scrollLeft + oHotspot.clientWidth - 4;
            var yMin = oHotspot.scrollTop + 4;
            var yMax = oHotspot.scrollTop + oHotspot.clientHeight - 19;

            X = popX + parseInt(oHotspot.width/2 - this.width/2)+ 200;
            Y = popY;
            X = Math.min(X,xMax - this.width);
            Y = Math.min(Y,yMax - this.height);
            X = Math.max(X,xMin);
            Y = Math.max(Y,yMin);
            this._doLocate (X, Y);
        };
        oYSItemPopover.setCallback('afterShow', shovelerShowProductPopover);
    });
