




var mboxCopyright = "&copy; 1996-2008. Omniture, Inc. All rights reserved.";




mboxUrlBuilder = function(a, b) {
 this.a = a;
 this.b = b;
 this.c = new Array();
 this.d = function(e) { return e; };
 this.f = null;
};


mboxUrlBuilder.prototype.addParameter = function(g, h) {
 var i = new RegExp('(\'|")');
 if (i.exec(g)) {
 throw "Parameter '" + g + "' contains invalid characters";
 }

 for (var j = 0; j < this.c.length; j++) {
 var k = this.c[j];
 if (k.name == g) {
 k.value = h;
 return this;
 }
 }
 var l = new Object();
 l.name = g;
 l.value = h;
 this.c[this.c.length] = l;
 return this;
};


mboxUrlBuilder.prototype.addParameters = function(c) {
 if (!c) {
 return this;
 }
 for (var j = 0; j < c.length; j++) {
 var m = c[j].indexOf('=');
 if (m == -1 || m == 0) {
 continue;
 }
 this.addParameter(c[j].substring(0, m),
 c[j].substring(m + 1, c[j].length));
 }
 return this;
};

mboxUrlBuilder.prototype.setServerType = function(n) {
 this.o = n;
};

mboxUrlBuilder.prototype.setBasePath = function(f) {
 this.f = f;
};


mboxUrlBuilder.prototype.setUrlProcessAction = function(p) {
 this.d = p;
};

mboxUrlBuilder.prototype.buildUrl = function() {
 var q = this.f ? this.f :
 '/m2/' + this.b + '/mbox/' + this.o;
 var r = document.location.protocol == 'file:' ? 'http:' :
 document.location.protocol;
 var e = r + "//" + this.a + q;
 var s = e.indexOf('?') != -1 ? '&' : '?';

 for (var j = 0; j < this.c.length; j++) {
 var k = this.c[j];
 e += s + k.name + '=' +
 encodeURIComponent(k.value);
 s = '&';
 }
 return this.t(this.d(e));
};


mboxUrlBuilder.prototype.getParameters = function() {
 return this.c;
};

mboxUrlBuilder.prototype.setParameters = function(c) {
 this.c = c;
};

mboxUrlBuilder.prototype.clone = function() {
 var u = new mboxUrlBuilder(this.a, this.b);
 u.setServerType(this.o);
 u.setBasePath(this.f);
 u.setUrlProcessAction(this.d);
 for (var j = 0; j < this.c.length; j++) {
 u.addParameter(this.c[j].name,
 this.c[j].value);
 }
 return u;
};

mboxUrlBuilder.prototype.t = function(v) {
 return v.replace(/\"/g, '&quot;').replace(/>/g, '&gt;');
};


mboxStandardFetcher = function() { };

mboxStandardFetcher.prototype.getType = function() {
 return 'standard';
};

mboxStandardFetcher.prototype.fetch = function(w) {
 w.setServerType(this.getType());

 document.write('<' + 'scr' + 'ipt src="' + w.buildUrl() +
 '" language="JavaScript"><' + '\/scr' + 'ipt>');
};

mboxStandardFetcher.prototype.cancel = function() {
};


mboxAjaxFetcher = function() { };

mboxAjaxFetcher.prototype.getType = function() {
 return 'ajax';
};

mboxAjaxFetcher.prototype.fetch = function(w) {
 w.setServerType(this.getType());
 var e = w.buildUrl();

 this.x = document.createElement('script');
 this.x.src = e;

 document.body.appendChild(this.x);
};

mboxAjaxFetcher.prototype.cancel = function() { };


mboxMap = function() {
 this.y = new Object();
 this.z = new Array();
};

mboxMap.prototype.put = function(A, h) {
 if (!this.y[A]) {
 this.z[this.z.length] = A;
 }
 this.y[A] = h;
};

mboxMap.prototype.get = function(A) {
 return this.y[A];
};

mboxMap.prototype.remove = function(A) {
 this.y[A] = undefined;
};

mboxMap.prototype.each = function(p) {
 for (var j = 0; j < this.z.length; j++ ) {
 var A = this.z[j];
 var h = this.y[A];
 if (h) {
 p(A, h);
 }
 }
};


mboxFactory = function(B, b, C) {
 this.D = false;
 this.B = B;
 this.C = C;
 this.E = new mboxList();

 mboxFactories.put(C, this);

 
 
 this.F =
 typeof document.createElement('div').replaceChild != 'undefined' &&
 (function() { return true; })() &&
 typeof document.getElementById != 'undefined' &&
 typeof (window.attachEvent || document.addEventListener
 || window.addEventListener) != 'undefined' &&
 typeof encodeURIComponent != 'undefined';
 this.G = this.F &&
 mboxGetPageParameter('mboxDisable') == null;

 var H = C == 'default';
 
 
 
 this.I = new mboxCookieManager(
 'mbox' +
 (H ? '' : ('-' + C)),
 (function() { return mboxCookiePageDomain(); })());
 
 
 
 this.G = this.G && this.I.isEnabled() &&
 this.I.getCookie('disable') != 'true';
 

 if (this.isAdmin()) {
 this.enable();
 }

 this.J = mboxGenerateId();
 this.K = new mboxSession(this.J,
 'mboxSession',
 'session', 31 * 60, this.I);
 this.L = new mboxPC('PC',
 63072000, this.I);

 this.w = new mboxUrlBuilder(B, b);
 this.M(this.w, H);

 this.N = new Date().getTime();
 this.O = this.N;

 var P = this;
 this.addOnLoad(function() { P.O = new Date().getTime(); });
 if (this.F) {
 
 
 this.addOnLoad(function() {
 P.D = true;
 P.getMboxes().each(function(Q) {
 Q.setFetcher(new mboxAjaxFetcher()),
 Q.finalize(); });
 });

 this.limitTraffic(100, 10368000);

 if (this.G) {
 this.R();

 this.S = new mboxSignaler(function(T, c) {
 return P.create(T, c); }, this.I);

 }

 }
};




mboxFactory.prototype.isEnabled = function() {
 return this.G;
};


mboxFactory.prototype.isSupported = function() {
 return this.F;
};


mboxFactory.prototype.disable = function(U) {
 if (typeof U == 'undefined') {
 U = 60 * 60;
 }
 if (!this.isAdmin()) {
 this.G = false;
 this.I.setCookie('disable', 'true', U);
 }
};

mboxFactory.prototype.enable = function() {
 this.G = true;
 this.I.deleteCookie('disable');
};

mboxFactory.prototype.isAdmin = function() {
 return document.location.href.indexOf('mboxEnv') != -1;
};


mboxFactory.prototype.limitTraffic = function(V, U) {

};


mboxFactory.prototype.addOnLoad = function(p) {
 if (window.addEventListener) {
 window.addEventListener('load', p, false);
 } else if (document.addEventListener) {
 document.addEventListener('load', p, false);
 } else if (document.attachEvent) {
 window.attachEvent('onload', p);
 }
};

mboxFactory.prototype.getEllapsedTime = function() {
 return this.O - this.N;
};

mboxFactory.prototype.getEllapsedTimeUntil = function(W) {
 return W - this.N;
};


mboxFactory.prototype.getMboxes = function() {
 return this.E;
};


mboxFactory.prototype.get = function(T, X) {
 return this.E.get(T).getById(X || 0);
};


mboxFactory.prototype.update = function(T, c) {
 if (!this.isEnabled()) {
 return;
 }
 if (this.E.get(T).length() == 0) {
 throw "Mbox " + T + " is not defined";
 }
 this.E.get(T).each(function(Q) {
 Q.getUrlBuilder()
 .addParameter('mboxPage', mboxGenerateId());
 Q.load(c);
 });
};


mboxFactory.prototype.create = function(T, c, Y) {
 if (!this.isSupported()) {
 return null;
 }
 var e = this.w.clone();
 e.addParameter('mboxCount', this.E.length() + 1);
 e.addParameters(c);

 var X = this.E.get(T).length();
 var Z = this.C + '-' + T + '-' + X;
 var _;

 if (Y) {
 _ = new mboxLocatorNode(Y);
 } else {
 if (this.D) {
 throw 'The page has already been loaded, can\'t write marker';
 }
 _ = new mboxLocatorDefault(Z);
 }

 try {
 var P = this;
 var ab = 'mboxImported-' + Z;
 var Q = new mbox(T, X, e, _, ab);
 if (this.G) {
 Q.setFetcher(this.D ? new mboxAjaxFetcher() :
 new mboxStandardFetcher());
 }

 Q.setOnError(function(bb, n) {
 Q.setMessage(bb);
 if (n == 'standard') {
 Q.activate();
 if (!Q.isActivated()) {
 P.disable();
 window.location.reload(false);
 }
 } else {
 throw bb;
 }

 });
 this.E.add(Q);
 } catch (cb) {
 this.disable();
 throw 'Failed creating mbox "' + T + '", the error was: ' + cb;
 }

 return Q;
};

mboxFactory.prototype.getCookieManager = function() {
 return this.I;
};

mboxFactory.prototype.getPageId = function() {
 return this.J;
};

mboxFactory.prototype.getPCId = function() {
 return this.L;
};

mboxFactory.prototype.getSessionId = function() {
 return this.K;
};


mboxFactory.prototype.getSignaler = function() {
 return this.S;
};


mboxFactory.prototype.getUrlBuilder = function() {
 return this.w;
};

mboxFactory.prototype.M = function(e, H) {
 e.addParameter('mboxHost', document.location.hostname)
 .addParameter('mboxSession', this.K.getId());
 if (!H) {
 e.addParameter('mboxFactoryId', this.C);
 }
 if (this.L.getId() != null) {
 e.addParameter('mboxPC', this.L.getId());
 }
 e.addParameter('mboxPage', this.J);
 var db = this.I.getCookie('edge');
 if (db != null) {
 e.addParameter('edge', db);
 }



 e.setUrlProcessAction(function(e) {

 e += '&mboxURL=' + escape(document.location);
 var eb = escape(document.referrer);
 if (e.length + eb.length < 2000) {
 e += '&mboxReferrer=' + eb;
 }

 e += '&mboxVersion=' + mboxVersion;
 return e;
 });
};

mboxFactory.prototype.fb = function() {
 return "";
};


mboxFactory.prototype.R = function() {
 document.write('<style>.' + 'mboxDefault'
 + ' { visibility:hidden; }</style>');
};



mboxSignaler = function(gb, I) {
 this.I = I;
 var hb =
 I.getCookieNames('signal-');
 for (var j = 0; j < hb.length; j++) {
 var ib = hb[j];
 var jb = I.getCookie(ib).split('&');
 var Q = gb(jb[0], jb);
 Q.load();
 I.deleteCookie(ib);
 }
};


mboxSignaler.prototype.signal = function(kb, T ) {
 this.I.setCookie('signal-' +
 kb, mboxShiftArray(arguments).join('&'), 45 * 60);
};



mboxList = function() {
 this.E = new Array();
};

mboxList.prototype.add = function(Q) {
 if (Q != null) {
 this.E[this.E.length] = Q;
 }
};


mboxList.prototype.get = function(T) {
 var lb = new mboxList();
 for (var j = 0; j < this.E.length; j++) {
 var Q = this.E[j];
 if (Q.getName() == T) {
 lb.add(Q);
 }
 }
 return lb;
};

mboxList.prototype.getById = function(mb) {
 return this.E[mb];
};

mboxList.prototype.length = function() {
 return this.E.length;
};


mboxList.prototype.each = function(p) {
 if (typeof p != 'function') {
 throw 'Action must be a function, was: ' + typeof(p);
 }
 for (var j = 0; j < this.E.length; j++) {
 p(this.E[j]);
 }
};





mboxLocatorDefault = function(g) {
 this.g = 'mboxMarker-' + g;

 document.write('<div id="' + this.g +
 '" style="visibility:hidden;display:none"></div>');
};

mboxLocatorDefault.prototype.locate = function() {
 var nb = document.getElementById(this.g);
 while (nb != null) {
 
 if (nb.nodeType == 1) {
 if (nb.className == 'mboxDefault') {
 return nb;
 }
 }
 nb = nb.previousSibling;
 }

 return null;
};

mboxLocatorDefault.prototype.force = function() {
 
 var ob = document.createElement('div');
 ob.className = 'mboxDefault';

 var pb = document.getElementById(this.g);
 pb.parentNode.insertBefore(ob, pb);

 return ob;
};

mboxLocatorNode = function(qb) {
 this.nb = qb;
};

mboxLocatorNode.prototype.locate = function() {
 return typeof this.nb == 'string' ?
 document.getElementById(this.nb) : this.nb;
};

mboxLocatorNode.prototype.force = function() {
 return null;
};


mboxCreate = function(T ) {
 var Q = mboxFactoryDefault.create(T, mboxShiftArray(arguments));
 if (Q) {
 Q.load();
 }
 return Q;
};


mboxDefine = function(Y, T ) {
 var Q = mboxFactoryDefault.create(T,
 mboxShiftArray(mboxShiftArray(arguments)), Y);

 return Q;
};

mboxUpdate = function(T ) {
 mboxFactoryDefault.update(T, mboxShiftArray(arguments));
};


mbox = function(g, rb, w, sb, ab) {
 this.tb = null;
 this.ub = 0;
 this.vb = null;
 this._ = sb;
 this.ab = ab;
 this.wb = null;

 this.xb = new mboxOfferContent();
 this.ob = this.getDefaultDiv();

 this.w = w;

 
 this.message = '';
 this.yb = new Object();
 this.zb = 0;

 this.rb = rb;
 this.g = g;

 this.Ab();

 w.addParameter('mbox', g)
 .addParameter('mboxId', rb);

 this.Bb = function() {};
 this.Cb = function() {};
};

mbox.prototype.getId = function() {
 return this.rb;
};

mbox.prototype.Ab = function() {
 if (this.g.length > 250) {
 throw "Mbox Name " + this.g + " exceeds max length of "
 + "250 characters.";
 } else if (this.g.match(/^\s+|\s+$/g)) {
 throw "Mbox Name " + this.g + " has leading/trailing whitespace(s).";
 }
};

mbox.prototype.getName = function() {
 return this.g;
};


mbox.prototype.getParameters = function() {
 var c = this.w.getParameters();
 var lb = new Array();
 for (var j = 0; j < c.length; j++) {
 
 if (c[j].name.indexOf('mbox') != 0) {
 lb[lb.length] = c[j].name + '=' + c[j].value;
 }
 }
 return lb;
};


mbox.prototype.setOnLoad = function(p) {
 this.Cb = p;
 return this;
};

mbox.prototype.setMessage = function(bb) {
 this.message = bb;
 return this;
};


mbox.prototype.setOnError = function(Bb) {
 this.Bb = Bb;
 return this;
};

mbox.prototype.setFetcher = function(Db) {
 if (this.wb) {
 this.wb.cancel();
 }
 this.wb = Db;
 return this;
};

mbox.prototype.getFetcher = function() {
 return this.wb;
};


mbox.prototype.load = function(c) {
 if (this.wb == null) {
 return this;
 }


 this.setEventTime("load.start");

 this.cancelTimeout();

 var w = (c && c.length > 0) ?
 this.w.clone().addParameters(c) : this.w;
 this.wb.fetch(w);

 var P = this;
 this.Eb = setTimeout(function() {
 P.Bb('Fetch of mbox timed out', P.wb.getType());
 }, 15000);


 this.setEventTime("load.end");


 return this;
};


mbox.prototype.loaded = function(c) {
 this.cancelTimeout();
 if (!this.activate()) {
 var P = this;
 setTimeout(function() {
 P.loaded();
 }, 100);
 }
};


mbox.prototype.activate = function() {
 if (this.ub) {
 return this.ub;
 }

 this.setEventTime('activate' + ++this.zb + '.start');


 if (this.show()) {
 this.cancelTimeout();
 this.ub = 1;
 }


 this.setEventTime('activate' + this.zb + '.end');

 return this.ub;
};


mbox.prototype.isActivated = function() {
 return this.ub;
};


mbox.prototype.setOffer = function(xb) {
 if (xb && xb.show && xb.setOnLoad) {
 this.xb = xb;
 } else {
 throw 'Invalid offer';
 }
 return this;
};

mbox.prototype.getOffer = function() {
 return this.xb;
};


mbox.prototype.show = function() {

 this.setEventTime('show.start');


 var lb = this.xb.show(this);


 this.setEventTime(lb == 1 ? "show.end.ok" : "show.end");


 return lb;
};


mbox.prototype.showContent = function(Fb) {
 if (Fb == null) {
 
 return 0;
 }
 if (this.ob == null) {
 this.ob = this.getDefaultDiv();
 if (this.ob == null) {
 
 return 0;
 }
 }

 if (this.ob != Fb) {
 this.Gb(this.ob);
 this.ob.parentNode.replaceChild(Fb, this.ob);
 this.ob = Fb;
 }

 this.Hb(Fb);

 this.Cb();

 
 return 1;
};


mbox.prototype.hide = function() {

 this.setEventTime('hide.start');


 var lb = this.showContent(this.getDefaultDiv());


 this.setEventTime(lb == 1 ? 'hide.end.ok' : 'hide.end.fail');


 return lb;
};


mbox.prototype.finalize = function() {

 this.setEventTime('finalize.start');


 this.cancelTimeout();

 if (this.getDefaultDiv() == null) {
 if (this._ == null) {
 this.setMessage('No locator specified');
 } else {
 if (this._.force() != null) {
 this.setMessage('No default content, an empty one has been added');
 } else {
 this.setMessage('Unable to locate mbox');
 }
 }
 }

 if (!this.activate()) {
 this.hide();


 this.setEventTime('finalize.end.hide');

 }


 this.setEventTime('finalize.end.ok');

};

mbox.prototype.cancelTimeout = function() {
 if (this.Eb) {
 clearTimeout(this.Eb);
 }
 if (this.wb != null) {
 this.wb.cancel();
 }
};

mbox.prototype.getDiv = function() {
 return this.ob;
};

mbox.prototype.getDefaultDiv = function() {
 if (this.vb != null) {
 return this.vb;
 }

 if (this._ == null) {
 return null;
 }

 this.vb = this._.locate();
 return this.vb;
};

mbox.prototype.setEventTime = function(Ib) {
 this.yb[Ib] = (new Date()).getTime();
};

mbox.prototype.getEventTimes = function() {
 return this.yb;
};

mbox.prototype.getImportName = function() {
 return this.ab;
};

mbox.prototype.getURL = function() {
 return this.w.buildUrl();
};

mbox.prototype.getUrlBuilder = function() {
 return this.w;
};

mbox.prototype.Jb = function(ob) {
 return ob.style.display != 'none';
};

mbox.prototype.Hb = function(ob) {
 this.Kb(ob, true);
};

mbox.prototype.Gb = function(ob) {
 this.Kb(ob, false);
};

mbox.prototype.Kb = function(ob, Lb) {
 ob.style.visibility = Lb ? "visible" : "hidden";
 ob.style.display = Lb ? "block" : "none";
};

mboxOfferContent = function() {
 this.Cb = function() {};
};

mboxOfferContent.prototype.show = function(Q) {
 var lb = Q.showContent(document.getElementById(Q.getImportName()));
 if (lb == 1) {
 this.Cb();
 }
 return lb;
};

mboxOfferContent.prototype.setOnLoad = function(Cb) {
 this.Cb = Cb;
};


mboxOfferAjax = function(Fb) {
 this.Fb = Fb;
 this.Cb = function() {};
};

mboxOfferAjax.prototype.setOnLoad = function(Cb) {
 this.Cb = Cb;
};

mboxOfferAjax.prototype.show = function(Q) {
 var Mb = document.createElement('div');

 Mb.id = Q.getImportName();
 Mb.innerHTML = this.Fb;

 var lb = Q.showContent(Mb);
 if (lb == 1) {
 this.Cb();
 }
 return lb;
};


mboxOfferDefault = function() {
 this.Cb = function() {};
};

mboxOfferDefault.prototype.setOnLoad = function(Cb) {
 this.Cb = Cb;
};

mboxOfferDefault.prototype.show = function(Q) {
 var lb = Q.hide();
 if (lb == 1) {
 this.Cb();
 }
 return lb;
};

mboxCookieManager = function mboxCookieManager(g, Nb) {
 this.g = g;
 
 this.Nb = Nb == '' || Nb.indexOf('.') == -1 ? '' :
 '; domain=' + Nb;
 this.Ob = new mboxMap();
 this.loadCookies();
};

mboxCookieManager.prototype.isEnabled = function() {
 this.setCookie('check', 'true', 60);
 this.loadCookies();
 return this.getCookie('check') == 'true';
};


mboxCookieManager.prototype.setCookie = function(g, h, U) {
 if (typeof g != 'undefined' && typeof h != 'undefined' &&
 typeof U != 'undefined') {
 var Pb = new Object();
 Pb.name = g;
 Pb.value = escape(h);
 
 Pb.expireOn = Math.ceil(U + new Date().getTime() / 1000);
 this.Ob.put(g, Pb);
 this.saveCookies();
 }
};

mboxCookieManager.prototype.getCookie = function(g) {
 var Pb = this.Ob.get(g);
 return Pb ? unescape(Pb.value) : null;
};

mboxCookieManager.prototype.deleteCookie = function(g) {
 this.Ob.remove(g);
 this.saveCookies();
};

mboxCookieManager.prototype.getCookieNames = function(Qb) {
 var Rb = new Array();
 this.Ob.each(function(g, Pb) {
 if (g.indexOf(Qb) == 0) {
 Rb[Rb.length] = g;
 }
 });
 return Rb;
};

mboxCookieManager.prototype.saveCookies = function() {

 var Sb = new Array();
 var Tb = 0;
 this.Ob.each(function(g, Pb) {
 Sb[Sb.length] = g + '#' + Pb.value + '#' +
 Pb.expireOn;
 if (Tb < Pb.expireOn) {
 Tb = Pb.expireOn;
 }
 });

 var Ub = new Date(Tb * 1000);
 document.cookie = this.g + '=' + Sb.join('|') +
 
 '; expires=' + Ub.toGMTString() +
 '; path=/' + this.Nb;

};

mboxCookieManager.prototype.loadCookies = function() {
 this.Ob = new mboxMap();
 var Vb = document.cookie.indexOf(this.g + '=');
 if (Vb != -1) {
 var Wb = document.cookie.indexOf(';', Vb);
 if (Wb == -1) {
 Wb = document.cookie.indexOf(',', Vb);
 if (Wb == -1) {
 Wb = document.cookie.length;
 }
 }
 var Xb = document.cookie.substring(
 Vb + this.g.length + 1, Wb).split('|');

 var Yb = Math.ceil(new Date().getTime() / 1000);
 for (var j = 0; j < Xb.length; j++) {
 var Pb = Xb[j].split('#');
 if (Yb <= Pb[2]) {
 var Zb = new Object();
 Zb.name = Pb[0];
 Zb.value = Pb[1];
 Zb.expireOn = Pb[2];
 this.Ob.put(Zb.name, Zb);
 }
 }
 }
};


mboxSession = function(_b, ac, ib, bc,
 I) {
 this.ac = ac;
 this.ib = ib;
 this.bc = bc;
 this.I = I;

 this.cc = false;

 this.rb = typeof mboxForceSessionId != 'undefined' ?
 mboxForceSessionId : mboxGetPageParameter(this.ac);

 if (this.rb == null || this.rb.length == 0) {
 this.rb = I.getCookie(ib);
 if (this.rb == null || this.rb.length == 0) {
 this.rb = _b;
 this.cc = true;
 }
 }

 I.setCookie(ib, this.rb, bc);
};


mboxSession.prototype.getId = function() {
 return this.rb;
};

mboxSession.prototype.forceId = function(dc) {
 this.rb = dc;

 this.I.setCookie(this.ib, this.rb, this.bc);
};


mboxPC = function(ib, bc, I) {
 this.ib = ib;
 this.bc = bc;
 this.I = I;

 this.rb = typeof mboxForcePCId != 'undefined' ?
 mboxForcePCId : I.getCookie(ib);
 if (this.rb != null) {
 I.setCookie(ib, this.rb, bc);
 }

};


mboxPC.prototype.getId = function() {
 return this.rb;
};


mboxPC.prototype.forceId = function(dc) {
 if (this.rb != dc) {
 this.rb = dc;
 this.I.setCookie(this.ib, this.rb, this.bc);
 return true;
 }
 return false;
};

mboxGetPageParameter = function(g) {
 var lb = null;
 var ec = new RegExp(g + "=([^\&]*)");
 var fc = ec.exec(document.location);

 if (fc != null && fc.length >= 2) {
 lb = fc[1];
 }
 return lb;
};

mboxSetCookie = function(g, h, U) {
 return mboxFactoryDefault.getCookieManager().setCookie(g, h, U);
};

mboxGetCookie = function(g) {
 return mboxFactoryDefault.getCookieManager().getCookie(g);
};

mboxCookiePageDomain = function() {
 var Nb = (/([^:]*)(:[0-9]{0,5})?/).exec(document.location.host)[1];
 var gc = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/;

 if (!gc.exec(Nb)) {
 var hc =
 (/([^\.]+\.[^\.]{3}|[^\.]+\.[^\.]+\.[^\.]{2})$/).exec(Nb);
 if (hc) {
 Nb = hc[0];
 }
 }

 return Nb ? Nb: "";
};

mboxShiftArray = function(ic) {
 var lb = new Array();
 for (var j = 1; j < ic.length; j++) {
 lb[lb.length] = ic[j];
 }
 return lb;
};

mboxGenerateId = function() {
 return (new Date()).getTime() + "-" + Math.floor(Math.random() * 999999);
};

if (typeof mboxVersion == 'undefined') {
 var mboxVersion = 33;
 var mboxFactories = new mboxMap();
 var mboxFactoryDefault = new mboxFactory('mbox3.offermatica.com', 'nutrisystem',
 'default'); 
};






mboxDebugActionsProto = function() {
 this.jc = new Object();
 this.kc = new function() { this.show = function() {} };
};

mboxDebugActionsProto.prototype.register = function(g, p) {
 this.jc[g] = p;
};

mboxDebugActionsProto.prototype.registerDefault = function(p) {
 this.kc = p;
};

mboxDebugActionsProto.prototype.show = function(g) {
 var p = this.jc[g] ? this.jc[g] : this.kc;
 (new p()).show();
};

if (typeof mboxDebugActions == 'undefined') {
 mboxDebugActions = new mboxDebugActionsProto();
};



mboxDebugActionDefault = function() { };

mboxDebugActionDefault.prototype.show = function() {
 var window = new mboxDebugWindow("Debug");

 window.putPageStart();
 window.put("  <b>Mbox Debug Window (version: " + mboxVersion + ")</b><br/>");

 window.put("<p/>");
 window.put("<b>Page</b>: " + document.location);
 window.put("<br/><b>Referrer</b>: " + document.referrer);

 window.put(" <ul>");

 var G = mboxFactoryDefault.isEnabled();
 window.put('  <li>Enabled: <span style="color:' +
 (G ? 'green' : 'red') + '"><b>' + G + '</b></span></li>');
 window.put("  <li>Cookies: '" + document.cookie + "'</li></ul>");

 mboxFactories.each(function(g, lc) {
 var mc = 1;
 window.put("<hr/><ul><li><b>Factory</b>: <i>'" + g + "'</i></li><ul>");
 window.put("<li><i>pageId</i>: " + lc.getPageId() + "</li>");
 window.put("<li><i>mboxPC</i>: " + lc.getPCId().getId() + "</li>");
 window.put("<li><i>sessionId</i>: " + lc.getSessionId().getId() + "</li>");
 window.put("<hr/>");
 lc.getMboxes().each(function(Q) {
 window.put("  <li>" + mc++ + ". '<a href=\"" + Q.getURL() + "\">" +
 Q.getName() + "</a>'");
 window.put("   <ul>");
 if (Q.getId() != 0) {
 window.put("<li> <b>id</b>: " + Q.getId() + "</li>");
 }
 if (Q.getParameters().length > 0) {
 window.put(" <li><b>parameters</b>: '" + Q.getParameters().join(", ") + "'</li>");
 }
 window.put("<li><i>" + Q.getURL() + "</i></li>");
 if (Q.message != '') {
 window.put('   <li><span style="color: red"><b>Error: ' +
 Q.message + '</b></span></li>');
 }

 if (Q.getDefaultDiv() == null) {
 window.put('    <li><span style="color: red">' +
 '<b>Error: cannot find mbox in dom</b></span></li>');
 }

 window.put("   </ul>");
 window.put("  </li>");
 });
 window.put(" </ul>");
 window.put(" </ul>");
 });

 window.put(" <hr/>");
 window.putCloseButton();
 window.putPageEnd();
};

mboxDebugActions.registerDefault(mboxDebugActionDefault);



mboxDebug = function(nc, oc, lc) {
 this.pc = nc;
 this.p = null;
 this.I = lc.getCookieManager();

 var qc = mboxGetPageParameter(oc);
 if (qc == null) {
 qc = this.I.getCookie(this.pc);
 }

 if (qc != null) {

 if (qc.indexOf("x") == 0) {
 document.write('<' + 'scr' + 'ipt language="Javascript1.2" src="' +
 'http://admin3.offermatica.com/admin/mbox/mbox_debug_' + qc + '.jsp?clientCode=nutrisystem' +
 '&mboxServerHost=mbox3.offermatica.com"><' + '\/scr' + 'ipt>');
 }

 if (!lc.isSupported()) {
 alert("mbox functionality is not supported on this browser");
 this.disable();
 }
 lc.addOnLoad(function() { mboxDebugActions.show(qc); });
 this.I.setCookie(this.pc, qc, 45 * 60);
 } else {
 this.disable();
 }
};

mboxDebug.prototype.disable = function() {
 this.I.deleteCookie(this.pc);
};

mboxDebugWindow = function(g) {
 this.g = g + " " + document.location.hostname;

 var rc = /\W/g;
 var sc = this.g.replace(rc, '_');

 this.uc = window.open("", "mboxDebugWindow" + sc,
 "width=600,height=300,resizable,scrollbars=yes,toolbar=yes");

 if (this.uc == null) {
 alert("Unable to open debug window.\nAre you blocking popups?\n");
 }
};

mboxDebugWindow.prototype.put = function(vc) {
 if (this.uc == null) {
 return;
 }
 try {
 this.uc.document.writeln(vc);
 this.uc.scrollBy(0, 1000);
 } catch (e) {
 alert("Unable to write to the current mboxDebug window.\n"
 + "Please close any open debug window");
 this.uc = null;
 }
};

mboxDebugWindow.prototype.putCloseButton = function() {
 this.put("<a href=\"javascript:mboxDebugWindowClose()\">"
 + "click here to close debug window</a>");
};

mboxDebugWindow.prototype.putPageStart = function() {
 this.put("<html><head>"
 + " <title>" + this.g + "</title>"
 + "  <" + "scr" + "ipt>"
 + "   function mboxDebugWindowClose() {"
 + "     try {"
 + "       window.opener.mboxDebugger.disable();"
 + "     } catch(e) {"
 + "       alert('Could not disable debug mode.\\n'"
 + "         + 'Browse to a page containing an mbox and\\n'"
 + "         + 'click on close link.');"
 + "     }"
 + "     window.close();"
 + "   }"
 + "  <" + "\/scr" + "ipt>"
 + " </head>"
 + " <body>");
};

mboxDebugWindow.prototype.putPageEnd = function() {
 this.put("</body></html>");
 if (this.uc != null) {
 this.uc.document.close();
 }
};

if (typeof mboxDebugger == 'undefined') {
 mboxDebugger = new mboxDebug("debug",
 "mboxDebug", mboxFactoryDefault);
}
