/**
 * @module util
 */

/**
 * The Google Analytics utility.
 * @namespace Moen.util
 * @class GoogleAnalytics
 */
Moen.util.GoogleAnalytics = {
	/**
	 * A cache of the options configuration object.
	 * @property options
	 * @type Object
	 */
	options: {},
	/**
	 * An array of GA tracker objects.
	 * @property trackers
	 * @type Array
	 */
	trackers: [],
	/**
	 * Initializes a Google Analytics tracker by configuring settings,
	 * downloading the analytics JavaScript, and tracking a page view unless
	 * configured differently.
	 * @method initialize
	 * @param {Object} options A configuration object.
	 */
	initialize: function (options) {
		// Set options
		if (options.account === undefined) {
			throw new Error('Account number must be defined for Analytics helper.');
		} else {
			this.options.account = options.account;
		}
		if (options.autoTrackPageView === false && options.autoTrackPageView !== undefined) {
			this.options.autoTrackPageView = options.autoTrackPageView;
		} else {
			this.options.autoTrackPageView = true;
		}
		if (options.propSalt === undefined) {
			this.options.propSalt = 'moen';
		} else {
			this.options.propSalt = options.propSalt;
		}
		if (options.props !== undefined) {
			this.props = options.props;
		}

		// Download analytics JavaScript core
		this.downloadScript();

		// Execute routines when analytics JavaScript has been downloaded
		$(this).bind('scriptReady', Moen.util.Event.createDelegate(this, function (e) {
			this.buildTracker();
			if (this.options.autoTrackPageView) this.trackPageView();
		}));
	},
	/**
	 * Downloads the analytics JavaScript file (ga.js) from Google.
	 * @method downloadScript
	 */
	downloadScript: function () {
		var that = this;
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		$.getScript(gaJsHost + 'google-analytics.com/ga.js', function () {
			$(that).trigger('scriptReady');
		});
	},
	/**
	 * Builds the GA tracker object and appends it to the <code>trackers</code>
	 * array (in case we want to initialize multiple trackers).
	 * @method buildTracker
	 */
	buildTracker: function () {
		// Try to create tracker
		try {
			if (typeof this.options.account === 'string') {
				this.trackers.push(_gat._getTracker(this.options.account));
			} else {
				for (var i=0; i < this.options.account.length; i++) {
					this.trackers.push(_gat._getTracker(this.options.account[i]));
				}
			}
		} catch(err) {}

		// AddThis Integration
		addthis_config = (typeof addthis_config !== 'undefined') ? addthis_config : {};
		addthis_config.data_ga_tracker = this.trackers[0];
	},
	/**
	 * Builds the URL to be used in tracking a page view by combining the path
	 * and any required props.
	 * @method buildURL
	 * @param {String} href (optional, defaults to current URL) Used to provide a custom URL to track.
	 */
	buildURL: function (href) {
		// Define placeholder variables
		var path, tags = '';
		if (href) {
			path = href;
		} else {
			path = window.location.pathname + window.location.search;
		}

		// Add page properties to path
		if (this.props) {
			// Build prop query string
			for (prop in this.props) {
				tags += '&' + this.options.propSalt + '_' + prop + '=' + this.props[prop];
			}
			// Determine if a query string already exists in the path
			var regexp = new RegExp(/^.*?\?/);
			if (!path.match(regexp)) {
				tags = '?' + tags.substr(1, tags.length);
			}
		}

		return String(path + tags);
	},
	/**
	 * TODO: Add description
	 * @method trackEvent
	 * @param {String} category Used as a key for event tracking.
	 * @param {String} action  Used as a value for event tracking.
	 * @param {String} label (optional) Provides extra meta data for event tracking.
	 * @param {String} value (optional) A numeric value to show relative differences in event value (dollars, time).
	 */
	trackEvent: function (category, action, label, value) {
		// Check for arguments
		if (category === undefined || action === undefined) {
			throw new Error('A category and action must be provided in order to track an event with the Analytics helper.');
		} else {
			for (var i=0; i < this.trackers.length; i++) {
				this.trackers[i]._trackEvent(category, action, label, value);
			}
		}
	},
	/**
	 * Wraps the pageTracker._trackPageView() function to utilize added
	 * functionality in this utility.
	 * @method trackPageView
	 * @param {String} href Used to override the default path sent to Google.
	 */
	trackPageView: function (href) {
		var i;
		if (href) {
			for (i = 0; i < this.trackers.length; i++) {
				this.trackers[i]._trackPageview(this.buildURL(href));
			}
		} else {
			for (i = 0; i < this.trackers.length; i++) {
				this.trackers[i]._trackPageview(this.buildURL());
			}
		}
	}
};

/**
 * <p>
 * 	The Omniture utility wraps the code provided by Omniture and creates a more
 * 	developer-friendly interface to the Omniture internals.
 * </p>
 * <p>
 * 	Tracking is done in two places:
 * </p>
 * <p>
 * 	<b>Meta tags</b> with an "omniture" are placed in the
 * 	<code>&lt;head&gt;</code>, parsed by Sitemesh, and the JSP writes
 * 	out the appropriate JavaScript Omniture variables. Here is a sample working
 * 	example of how to implement the three types of Omniture meta tags
 * 	(event, eVar, and prop):
 * 	<pre name="code" class="xml">
 * 		&lt;meta name="omniture.events.event3" content="true" /&gt;
 * 		&lt;meta name="omniture.eVar6" content="Registered Users" /&gt;
 * 		&lt;meta name="omniture.prop22" content="HOME DEPOT" /&gt;
 * 	</pre>
 * </p>
 * <p>
 * 	<b>Link trackers</b> are activated by event handlers. They are a way to
 * 	dynamically track a user's activity on the site. See
 * 	<a href="#method_trackData">trackData</a> for more
 * 	details.
 * </p>
 * @namespace Moen.util
 * @class Omniture
 */
Moen.util.Omniture = (function () {
	var Omniture = {
		/**
		 * The account ID provided by Omniture. This is set by the
		 * <a href="#method_initialize"><code>initialize</code></a> method.
		 * @property account
		 * @type String
		 */
		account: null,
		/**
		 * A hierarchy cache set by
		 * <a href="#method_generateHierarchy"><code>generateHierarchy</code></a>.
		 * @property hierarchy
		 * @type Array
		 */
		hierarchy: null,
		/**
		 * Initializes the Omniture environment by creating the global
		 * <code>s</code> variable and attaching plugins.
		 * @method initialize
		 * @param {String} account the account ID provided by Omniture
		 */
		initialize: function (account) {

			this.account = account;

			// Initialize Omniture variable
			s = s_gi(this.account);

			/* You may add or alter any code config here. */
			s.charSet = "ISO-8859-1";

			/* Conversion Config */
			s.currencyCode = "USD";

			/* Link Tracking Config */
			s.trackDownloadLinks = true;
			s.trackExternalLinks = true;
			s.trackInlineStats = true;
			s.linkDownloadFileTypes = "exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls";
			s.linkInternalFilters = "javascript:,wmcdev.moen.com,www1.moen.com,moen.com,wmcqa.moen.com,pure-touch.com,www2.moen.com,www3.moen.com,wwwtest1.moen.com,wwwtest2.moen.com,wwwtest3.moen.com,super.moen.com,moen-dev.criticalmass.com,moen-qa.criticalmass.com,localhost";
			s.linkLeaveQueryString = false;
			s.linkTrackVars = "None";
			s.linkTrackEvents = "None";
			s.trackingServer = "metrics.moen.com";
			s.trackingServerSecure = "smetrics.moen.com";

			/* SiteCatalyst code version: H.23.3.
			Copyright 1996-2011 Adobe, Inc. All Rights Reserved
			More info available at http://www.omniture.com */

			/* WARNING: Changing any of the below variables will cause drastic
			changes to how your visitor data is collected.  Changes should only be
			made when instructed to do so by your account manager.*/
			s.visitorNamespace="moen";
			s.dc="122";

			/* Plugin Config */
			s.usePlugins=true;
			s.variableProvider='DFA#1516843:v34=[["DFA-"+lis+"-"+lip+"-"+lastimp+"-"+lastimptime+"-"+lcs+"-"+lcp+"-"+lastclk+"-"+lastclktime]]';

			function s_doPlugins(s) {
				/* Add calls to plugins here */

				/* Plugin Example: getQueryParam 2.3 */
				// any of the indicated parameters
				s.campaign=s.getQueryParam('source,pdsocial,distvid');
				/* Plugin Example: getValOnce v0.2 */
				s.campaign=s.getValOnce(s.campaign,"s_campaign",0);

				/*Time Parting Setting for EST (GMT - 5)*/
				var newDate = new Date(),
					theYear = newDate.getFullYear();

				s.prop25=s.eVar26=s.getTimeParting('h','-5',theYear); // Set hour
				s.prop26=s.eVar27=s.getTimeParting('d','-5',theYear); // Set day
				s.prop27=s.eVar28=s.getTimeParting('w','-5',theYear); // Set Weekend / Weekday

				/*New vs. Repeat User*/
				s.prop28=s.eVar30=s.getNewRepeat();

				/*Days Since Last Visit*/
				s.eVar29=s.getDaysSinceLastVisit('s_lv');

				/* Plugin Config: partnerDFACheck 0.8 */
				s.partnerDFACheck("s_dfa","dfaid");

				/* Survey Variables */
				if(s.pageName){
				s.eVar37=s.pageName;
				}

				if(s.channel){
				s.eVar38=s.channel;
				}

				/* Channel Manager Plugin: channelManager v2.4*/
				s.channelManager('s_kwcid,DFAID,RRID,source,distvid,pdsocial','','0','','s_cm','1');

				var internalPage="";
				//Checking to see if referring page is an internal page to later NOT set Direct Load as a channel on subsequent page views
				var intArray = s.linkInternalFilters.split(',');
				for(var ss = 0; ss < intArray.length; ss++ ){
					if (document.referrer.indexOf(intArray[ss]) != -1 ){
					internalPage='internal';
					break;
					}
				}
				//Campaign Channels for Linear Allocation Order of Execution Taken from Marketing Channels Report
				var searchCenterEntry=s.getQueryParam('s_kwcid');
				var channelDisplay=s.getQueryParam('DFAID');
				var channelEmail = s.getQueryParam('RRID');
				var channelSource = s.getQueryParam('source');
				var channelDistVideo = s.getQueryParam('distvid');
				var channelPaidSocial = s.getQueryParam('pdsocial');
				var marketingChannel ="";


				if (searchCenterEntry){
					marketingChannel="Paid Search";
					if(s._keywords == "n/a" || s._partner ==""){
						var chanDetails="Paid Other"+"|"+s._referringDomain;
						}
					else {
						var chanDetails=marketingChannel+"|"+s._partner+"|"+s._keywords;
						}
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel
				}
				else if (s._channel=="Paid Search"){
					marketingChannel="Paid Search";
					if(s._keywords == "n/a" || s._partner ==""){
						var chanDetails="Paid Other"+"|"+s._referringDomain;
						}
					else {
						var chanDetails=marketingChannel+"|"+s._partner+"|"+s._keywords;
						}
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}
				else if (s._channel=="Natural Search"){
					marketingChannel="Natural Search";
					if(s._campaign && s._keywords != ""){
						var chanDetails=marketingChannel+"|"+s._partner+"|"+s._keywords;
						// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
					}
				}
				else if(channelEmail!=""){
					marketingChannel="Email";
					var chanDetails=marketingChannel;
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}
				else if(channelDisplay==1){
					marketingChannel="Display";
					var chanDetails=marketingChannel+"|"+s._referringDomain;
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}
				else if(channelDistVideo!=""){
					marketingChannel="Distributed Video";
					var chanDetails=marketingChannel;
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}
				else if(channelPaidSocial!=""){
					marketingChannel="Paid Social";
					var chanDetails=marketingChannel;
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}

				else if (channelSource !=""){

					if(channelSource.indexOf("distvid_")!= -1){
					marketingChannel="Distributed Video";
					var chanDetails=marketingChannel;
					}
					else if(channelSource.indexOf("pdsocial_")!= -1){
					marketingChannel="Paid Social";
					var chanDetails=marketingChannel;
					}
					else {
						if(s._referringDomain){
							var chanDetails="Source Other"+"|"+s._referringDomain;
						}
						else {
							var chanDetails="Source Other"+"|No Referrer";
						}
					}
					// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}
				else if(document.referrer.indexOf("facebook\.com") != -1||document.referrer.indexOf("linkedin\.com") != -1||document.referrer.indexOf("twitter\.com") != -1||document.referrer.indexOf("orkut\.com") != -1||document.referrer.indexOf("friendster\.com") != -1||document.referrer.indexOf("livejournal\.com") != -1||document.referrer.indexOf("blogspot\.com") != -1||document.referrer.indexOf("wordpress\.com") != -1||document.referrer.indexOf("friendfeed\.com") != -1||document.referrer.indexOf("myspace\.com") != -1||document.referrer.indexOf("digg\.com") != -1||document.referrer.indexOf("reddit\.com") != -1||document.referrer.indexOf("stumbleupon\.com") != -1||document.referrer.indexOf("twine\.com") != -1||document.referrer.indexOf("yelp\.com") != -1||document.referrer.indexOf("mixx\.com") != -1||document.referrer.indexOf("delicious\.com") != -1||document.referrer.indexOf("tumblr\.com") != -1||document.referrer.indexOf("disqus\.com") != -1||document.referrer.indexOf("intensedebate\.com") != -1||document.referrer.indexOf("plurk\.com") != -1||document.referrer.indexOf("slideshare\.net") != -1||document.referrer.indexOf("backtype\.com") != -1||document.referrer.indexOf("netvibes\.com") != -1||document.referrer.indexOf("mister-wong\.com") != -1||document.referrer.indexOf("diigo\.com") != -1||document.referrer.indexOf("flixster\.com") != -1||document.referrer.indexOf("youtube\.com") != -1||document.referrer.indexOf("vimeo\.com") != -1||document.referrer.indexOf("12seconds\.tv") != -1||document.referrer.indexOf("zoomr\.com") != -1||document.referrer.indexOf("identi\.ca") != -1||document.referrer.indexOf("jaiku\.com") != -1||document.referrer.indexOf("flickr\.com") != -1||document.referrer.indexOf("imeem\.com") != -1||document.referrer.indexOf("dailymotion\.com") != -1||document.referrer.indexOf("photobucket\.com") != -1||document.referrer.indexOf("fotolog\.com") != -1||document.referrer.indexOf("smugmug\.com") != -1||document.referrer.indexOf("classmates\.com") != -1||document.referrer.indexOf("mylife\.com") != -1||document.referrer.indexOf("tagged\.com") != -1||document.referrer.indexOf("brightkite\.com") != -1||document.referrer.indexOf("ning\.com") != -1||document.referrer.indexOf("bebo\.com") != -1||document.referrer.indexOf("hi5\.com") != -1||document.referrer.indexOf("yuku\.com") != -1||document.referrer.indexOf("cafemom\.com") != -1||document.referrer.indexOf("xanga\.com") != -1){
					marketingChannel="Social Media";
					if(document.referrer.indexOf("facebook\.com") != -1 && s.getQueryParam('ad') != -1){
						var chanDetails=marketingChannel+"|"+s._referringDomain+"|ad";
						// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
					}
					else{
						var chanDetails=marketingChannel+"|"+s._referringDomain+"|no ad";
						// Previously used to populate eVar43 - var chanNoDetails=marketingChannel
						}

				}
				else if(document.referrer && internalPage!="" && s.getValOnce('true', 's_fpIn', 0)){
				marketingChannel="Internal";
				var chanDetails="";
				// Previously used to populate eVar43 - var chanNoDetails="";
				}
				else if(document.referrer && internalPage==""){
				marketingChannel="Other";
				var chanDetails=marketingChannel;
				// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}
				else if(marketingChannel =="" && internalPage=="" && s.getValOnce('true', 's_fpDl', 0)){
				marketingChannel="Direct";
				var chanDetails=marketingChannel;
				// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}

				else if(chanDetails=="" && marketingChannel !="internal"){
				marketingChannel="Other";
				var chanDetails=marketingChannel;
				// Previously used to populate eVar43 - var chanNoDetails=marketingChannel;
				}


				s.eVar51=s.crossVisitParticipation(chanDetails,'s_evar51','30','5',' > ','',0);

				var channelSplit= new Array();
				var marketingChannel= new Array();
				var v52;
				channelSplit=s.eVar51.split(" > ");
				for(var yy = 0; yy < channelSplit.length; yy++ ){
					marketingChannel[yy]=channelSplit[yy].replace(/\|.*/,"");
					}
					var v52 = marketingChannel.join(" > ");
					s.eVar52=v52;

				s.tnt=s.trackTNT();

			}
			s.doPlugins=s_doPlugins;

			s.loadModule("Survey");
			var s_sv_dynamic_root = "survey.122.2o7.net/survey/dynamic";
			var s_sv_gather_root = "survey.122.2o7.net/survey/gather";

			/****************************** MODULES *****************************/
			/* Module: Survey */
			s.m_Survey_c="var m=s.m_i(\"Survey\");m.launch=function(i,e,c,o,f){this._boot();var m=this,g=window.s_sv_globals||{},l,j;if(g.unloaded||m._blocked())return 0;i=i&&i.constructor&&i.constructor==Array?"
			+"i:[i];l=g.manualTriggers;for(j=0;j<i.length;++j)l[l.length]={l:m._suites,i:i[j],e:e||0,c:c||0,o:o||0,f:f||0};m._execute();return 1;};m.version = 10001;m._t=function(){this._boot();var m=this,s=m.s,"
			+"g=window.s_sv_globals||{},l,impr,i,k,impr={};if(m._blocked())return;for(i=0;i<s.va_t.length;i++){k=s.va_t[i];if(s[k]) impr[k]=s[k];}impr[\"l\"]=m._suites;impr[\"n\"]=impr[\"pageName\"]||\"\";impr["
			+"\"u\"]=impr[\"pageURL\"]||\"\";impr[\"c\"]=impr[\"campaign\"]||\"\";impr[\"r\"]=impr[\"referrer\"]||\"\";l=g.pageImpressions;if(l.length > 4) l[l.length - 4]=null;l[l.length]=impr;m._execute();};m."
			+"_rr=function(){var g=window.s_sv_globals||{},f=g.onScQueueEmpty||0;if(f)f();};m._blocked=function(){var m=this,g=window.s_sv_globals||{};return !m._booted||g.stop||!g.pending&&!g.triggerRequested;}"
			+";m._execute=function(){if(s_sv_globals.execute)setTimeout(\"s_sv_globals.execute();\",0);};m._boot=function(){var m=this,s=m.s,w=window,g,c,d=s.dc,e=s.visitorNamespace,n=navigator.appName.toLowerCa"
			+"se(),a=navigator.userAgent,v=navigator.appVersion,h,i,j,k,l,b;if(w.s_sv_globals)return;if(!((b=v.match(/AppleWebKit\\/([0-9]+)/))?521<b[1]:n==\"netscape\"?a.match(/gecko\\//i):(b=a.match(/opera[ \\"
			+"/]?([0-9]+).[0-9]+/i))?7<b[1]:n==\"microsoft internet explorer\"&&!v.match(/macintosh/i)&&(b=v.match(/msie ([0-9]+).([0-9]+)/i))&&(5<b[1]||b[1]==5&&4<b[2])))return;g=w.s_sv_globals={};g.module=m;g."
			+"pending=0;g.incomingLists=[];g.pageImpressions=[];g.manualTriggers=[];e=\"survey\";c=g.config={};m._param(c,\"dynamic_root\",(e?e+\".\":\"\")+d+\".2o7.net/survey/dynamic\");m._param(c,\"gather_root"
			+"\",(e?e+\".\":\"\")+d+\".2o7.net/survey/gather\");g.url=location.protocol+\"//\"+c.dynamic_root;g.gatherUrl=location.protocol+\"//\"+c.gather_root;g.dataCenter=d;g.onListLoaded=new Function(\"r\","
			+"\"b\",\"d\",\"i\",\"l\",\"s_sv_globals.module._loaded(r,b,d,i,l);\");m._suites=(m.suites||s.un).toLowerCase().split(\",\");l=m._suites;b={};for(j=0;j<l.length;++j){i=l[j];if(i&&!b[i]){h=i.length;fo"
			+"r(k=0;k<i.length;++k)h=(h&0x03ffffff)<<5^h>>26^i.charCodeAt(k);b[i]={url:g.url+\"/suites/\"+(h%251+100)+\"/\"+encodeURIComponent(i.replace(/\\|/,\"||\").replace(/\\//,\"|-\"))};++g.pending;}}g.suit"
			+"es=b;setTimeout(\"s_sv_globals.module._load();\",0);m._booted=1;};m._param=function(c,n,v){var p=\"s_sv_\",w=window,u=\"undefined\";if(typeof c[n]==u)c[n]=typeof w[p+n]==u?v:w[p+n];};m._load=functi"
			+"on(){var m=this,g=s_sv_globals,q=g.suites,r,i,n=\"s_sv_sid\",b=m.s.c_r(n);if(!b){b=parseInt((new Date()).getTime()*Math.random());m.s.c_w(n,b);}for(i in q){r=q[i];if(!r.requested){r.requested=1;m._"
			+"script(r.url+\"/list.js?\"+b);}}};m._loaded=function(r,b,d,i,l){var m=this,g=s_sv_globals,n=g.incomingLists;--g.pending;if(!g.commonRevision){g.bulkRevision=b;g.commonRevision=r;g.commonUrl=g.url+"
			+"\"/common/\"+b;}else if(g.commonRevision!=r)return;if(!l.length)return;n[n.length]={r:i,l:l};if(g.execute)g.execute();else if(!g.triggerRequested){g.triggerRequested=1;m._script(g.commonUrl+\"/trig"
			+"ger.js\");}};m._script=function(u){var d=document,e=d.createElement(\"script\");e.type=\"text/javascript\";e.src=u;d.getElementsByTagName(\"head\")[0].appendChild(e);};if(m.onLoad)m.onLoad(s,m)";
			s.m_i("Survey");

			/* ************************* PLUGINS SECTION ************************ */

			/*
			 * Plugin: Days since last Visit 1.1.H - capture time from last visit
			 */
			s.getDaysSinceLastVisit=new Function("c",""
			+"var s=this,e=new Date(),es=new Date(),cval,cval_s,cval_ss,ct=e.getT"
			+"ime(),day=24*60*60*1000,f1,f2,f3,f4,f5;e.setTime(ct+3*365*day);es.s"
			+"etTime(ct+30*60*1000);f0='Cookies Not Supported';f1='First Visit';f"
			+"2='More than 30 days';f3='More than 7 days';f4='Less than 7 days';f"
			+"5='Less than 1 day';cval=s.c_r(c);if(cval.length==0){s.c_w(c,ct,e);"
			+"s.c_w(c+'_s',f1,es);}else{var d=ct-cval;if(d>30*60*1000){if(d>30*da"
			+"y){s.c_w(c,ct,e);s.c_w(c+'_s',f2,es);}else if(d<30*day+1 && d>7*day"
			+"){s.c_w(c,ct,e);s.c_w(c+'_s',f3,es);}else if(d<7*day+1 && d>day){s."
			+"c_w(c,ct,e);s.c_w(c+'_s',f4,es);}else if(d<day+1){s.c_w(c,ct,e);s.c"
			+"_w(c+'_s',f5,es);}}else{s.c_w(c,ct,e);cval_ss=s.c_r(c+'_s');s.c_w(c"
			+"+'_s',cval_ss,es);}}cval_s=s.c_r(c+'_s');if(cval_s.length==0) retur"
			+"n f0;else if(cval_s!=f1&&cval_s!=f2&&cval_s!=f3&&cval_s!=f4&&cval_s"
			+"!=f5) return '';else return cval_s;");

			/*
			 * s.join: 1.0 - Joins an array into a string
			 */

			s.join = new Function("v","p",""
			+"var s = this;var f,b,d,w;if(p){f=p.front?p.front:'';b=p.back?p.back"
			+":'';d=p.delim?p.delim:'';w=p.wrap?p.wrap:'';}var str='';for(var x=0"
			+";x<v.length;x++){if(typeof(v[x])=='object' )str+=s.join( v[x],p);el"
			+"se str+=w+v[x]+w;if(x<v.length-1)str+=d;}return f+str+b;");

			/*
			 * Partner Plugin: DFA Check 0.8 - Restrict DFA calls to once a visit,
			 * per report suite, per click through. Used in conjunction with VISTA
			 */
			s.partnerDFACheck=new Function("c","src","p",""
			+"var s=this,dl=',',cr,nc,q,g,i,j,k,fnd,v=1,t=new Date,cn=0,ca=new Ar"
			+"ray,aa=new Array,cs=new Array;t.setTime(t.getTime()+1800000);cr=s.c"
			+"_r(c);if(cr){v=0;}ca=s.split(cr,dl);aa=s.split(s.un,dl);for(i=0;i<a"
			+"a.length;i++){fnd=0;for(j=0;j<ca.length;j++){if(aa[i]==ca[j]){fnd=1"
			+";}}if(!fnd){cs[cn]=aa[i];cn++;}}if(cs.length){for(k=0;k<cs.length;k"
			+"++){nc=(nc?nc+dl:'')+cs[k];}cr=(cr?cr+dl:'')+nc;s.vpr(p,nc);v=1;}q="
			+"s.wd.location.search.toLowerCase();q=s.repl(q,'?','&');g=q.indexOf("
			+"'&'+src.toLowerCase()+'=');if(g>-1){s.vpr(p,cr);v=1;}if(!s.c_w(c,cr"
			+",t)){s.c_w(c,cr,0);}if(!s.c_r(c)){v=0;}if(v<1){s.vpr('variableProvi"
			+"der','');}");

			/*
			 * Utility Function: vpr - set the variable vs with value v
			 */
			s.vpr=new Function("vs","v",
			"if(typeof(v)!='undefined'){var s=this; eval('s.'+vs+'=\"'+v+'\"')}");

			/*
			 * Utility Function: split v1.5 - split a string (JS 1.0 compatible)
			 */
			s.split=new Function("l","d",""
			+"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x"
			+"++]=l.substring(0,i);l=l.substring(i+d.length);}return a");

			/*
			 * Plugin Utility: Replace v1.0
			 */
			s.repl=new Function("x","o","n",""
			+"var i=x.indexOf(o),l=n.length;while(x&&i>=0){x=x.substring(0,i)+n+x."
			+"substring(i+o.length);i=x.indexOf(o,i+l)}return x");

			/*
			 * Plugin: getTimeParting 1.3 - Set timeparting values based on time zone
			 */

			s.getTimeParting=new Function("t","z","y",""
			+"dc=new Date('1/1/2000');f=15;ne=8;if(dc.getDay()!=6||"
			+"dc.getMonth()!=0){return'Data Not Available'}else{;z=parseInt(z);"
			+"if(y=='2009'){f=8;ne=1};gmar=new Date('3/1/'+y);dsts=f-gmar.getDay("
			+");gnov=new Date('11/1/'+y);dste=ne-gnov.getDay();spr=new Date('3/'"
			+"+dsts+'/'+y);fl=new Date('11/'+dste+'/'+y);cd=new Date();"
			+"if(cd>spr&&cd<fl){z=z+1}else{z=z};utc=cd.getTime()+(cd.getTimezoneO"
			+"ffset()*60000);tz=new Date(utc + (3600000*z));thisy=tz.getFullYear("
			+");var days=['Sunday','Monday','Tuesday','Wednesday','Thursday','Fr"
			+"iday','Saturday'];if(thisy!=y){return'Data Not Available'}else{;thi"
			+"sh=tz.getHours();thismin=tz.getMinutes();thisd=tz.getDay();var dow="
			+"days[thisd];var ap='AM';var dt='Weekday';var mint='00';if(thismin>3"
			+"0){mint='30'}if(thish>=12){ap='PM';thish=thish-12};if (thish==0){th"
			+"ish=12};if(thisd==6||thisd==0){dt='Weekend'};var timestring=thish+'"
			+":'+mint+ap;var daystring=dow;var endstring=dt;if(t=='h'){return tim"
			+"estring}if(t=='d'){return daystring};if(t=='w'){return en"
			+"dstring}}};"
			);

			/*
			 * Plugin: getNewRepeat 1.0 - Return whether user is new or repeat
			 */
			s.getNewRepeat=new Function(""
			+"var s=this,e=new Date(),cval,ct=e.getTime(),y=e.getYear();e.setTime"
			+"(ct+30*24*60*60*1000);cval=s.c_r('s_nr');if(cval.length==0){s.c_w("
			+"'s_nr',ct,e);return 'New';}if(cval.length!=0&&ct-cval<30*60*1000){s"
			+".c_w('s_nr',ct,e);return 'New';}if(cval<1123916400001){e.setTime(cv"
			+"al+30*24*60*60*1000);s.c_w('s_nr',ct,e);return 'Repeat';}else retur"
			+"n 'Repeat';");

			/************************ Test&Target Plugin Start *************************/
			/*
			* TNT Integration Plugin v1.0
			* v - Name of the javascript variable that is used. Defaults to s_tnt
			(optional)
			* p - Name of the url parameter. Defaults to s_tnt (optional)
			* b - Blank Global variable after plugin runs. Defaults to true (Optional)
			*/
			s.trackTNT = function(v, p, b)
			{
				var s=this, n="s_tnt", p=(p)?p:n, v=(v)?v:n, r="",pm=false, b=(b)?b:true;
				if(s.getQueryParam)
					pm = s.getQueryParam(p); //grab the parameter
				if(pm)
					r += (pm + ","); // append the parameter
				if(s.wd[v] != undefined)
					r += s.wd[v]; // get the global variable
				if(b)
					s.wd[v] = ""; // Blank out the global variable for ajax requests
				return r;
			}
			/*********************** Test&Target Plugin End *************************/
			/************************ getQueryParam 2.4 Start *************************/
			/*
			* Plugin: getQueryParam 2.4
			*/
			s.getQueryParam=new Function("p","d","u","h",""
			+"var s=this,v='',i,j,t;d=d?d:'';u=u?u:(s.pageURL?s.pageURL:s.wd.loca"
			+"tion);if(u=='f')u=s.gtfs().location;while(p){i=p.indexOf(',');i=i<0"
			+"?p.length:i;t=s.p_gpv(p.substring(0,i),u+'',h);if(t){t=t.indexOf('#"
			+"')>-1?t.substring(0,t.indexOf('#')):t;}if(t)v+=v?d+t:t;p=p.substrin"
			+"g(i==p.length?i:i+1)}return v");
			s.p_gpv=new Function("k","u","h",""
			+"var s=this,v='',q;j=h==1?'#':'?';i=u.indexOf(j);if(k&&i>-1){q=u.sub"
			+"string(i+1);v=s.pt(q,'&','p_gvf',k)}return v");
			s.p_gvf=new Function("t","k",""
			+"if(t){var s=this,i=t.indexOf('='),p=i<0?t:t.substring(0,i),v=i<0?'T"
			+"rue':t.substring(i+1);if(p.toLowerCase()==k.toLowerCase())return s."
			+"epa(v)}return''");
			/************************ getQueryParam 2.4 End *************************/

			/********************************************************************
			 *
			 * channelManager v2.4
			 *
			 *******************************************************************/
			/*
			 * channelManager v2.4 - Tracking External Traffic
			 */
			s.channelManager=new Function("a","b","c","d","e","f",""
			+"var s=this,A,B,g,l,m,M,p,q,P,h,k,u,S,i,O,T,j,r,t,D,E,F,G,H,N,U,v=0,"
			+"X,Y,W,n=new Date;n.setTime(n.getTime()+1800000);if(e){v=1;if(s.c_r("
			+"e)){v=0}if(!s.c_w(e,1,n)){s.c_w(e,1,0)}if(!s.c_r(e)){v=0}}g=s.refer"
			+"rer?s.referrer:document.referrer;g=g.toLowerCase();if(!g){h=1}i=g.i"
			+"ndexOf('?')>-1?g.indexOf('?'):g.length;j=g.substring(0,i);k=s.linkI"
			+"nternalFilters.toLowerCase();k=s.split(k,',');l=k.length;for(m=0;m<"
			+"l;m++){B=j.indexOf(k[m])==-1?'':g;if(B)O=B}if(!O&&!h){p=g;U=g.index"
			+"Of('//');q=U>-1?U+2:0;Y=g.indexOf('/',q);r=Y>-1?Y:i;t=g.substring(q"
			+",r);t=t.toLowerCase();u=t;P='Referrers';S=s.seList+'>'+s._extraSear"
			+"chEngines;if(d==1){j=s.repl(j,'oogle','%');j=s.repl(j,'ahoo','^');g"
			+"=s.repl(g,'as_q','*')}A=s.split(S,'>');T=A.length;for(i=0;i<T;i++){"
			+"D=A[i];D=s.split(D,'|');E=s.split(D[0],',');F=E.length;for(G=0;G<F;"
			+"G++){H=j.indexOf(E[G]);if(H>-1){i=s.split(D[1],',');U=i.length;for("
			+"k=0;k<U;k++){l=s.getQueryParam(i[k],'',g);if(l){l=l.toLowerCase();M"
			+"=l;if(D[2]){u=D[2];N=D[2]}else{N=t}if(d==1){N=s.repl(N,'#',' - ');g"
			+"=s.repl(g,'*','as_q');N=s.repl(N,'^','ahoo');N=s.repl(N,'%','oogle'"
			+");}}}}}}}if(!O||f!='1'){O=s.getQueryParam(a,b);if(O){u=O;if(M){P='P"
			+"aid Search'}else{P='Paid Non-Search';}}if(!O&&M){u=N;P='Natural Sea"
			+"rch'}}if(h==1&&!O&&v==1){u=P=t=p='Direct Load'}X=M+u+t;c=c?c:'c_m';"
			+"if(c!='0'){X=s.getValOnce(X,c,0);}g=s._channelDomain;if(g&&X){k=s.s"
			+"plit(g,'>');l=k.length;for(m=0;m<l;m++){q=s.split(k[m],'|');r=s.spl"
			+"it(q[1],',');S=r.length;for(T=0;T<S;T++){Y=r[T];Y=Y.toLowerCase();i"
			+"=j.indexOf(Y);if(i>-1)P=q[0]}}}g=s._channelParameter;if(g&&X){k=s.s"
			+"plit(g,'>');l=k.length;for(m=0;m<l;m++){q=s.split(k[m],'|');r=s.spl"
			+"it(q[1],',');S=r.length;for(T=0;T<S;T++){U=s.getQueryParam(r[T]);if"
			+"(U)P=q[0]}}}g=s._channelPattern;if(g&&X){k=s.split(g,'>');l=k.lengt"
			+"h;for(m=0;m<l;m++){q=s.split(k[m],'|');r=s.split(q[1],',');S=r.leng"
			+"th;for(T=0;T<S;T++){Y=r[T];Y=Y.toLowerCase();i=O.toLowerCase();H=i."
			+"indexOf(Y);if(H==0)P=q[0]}}}if(X)M=M?M:'n/a';p=X&&p?p:'';t=X&&t?t:'"
			+"';N=X&&N?N:'';O=X&&O?O:'';u=X&&u?u:'';M=X&&M?M:'';P=X&&P?P:'';s._re"
			+"ferrer=p;s._referringDomain=t;s._partner=N;s._campaignID=O;s._campa"
			+"ign=u;s._keywords=M;s._channel=P");
			/* non-custom list */
			s.seList="search.aol.com,search.aol.ca|query,q|AOL.com Search>ask.com"
			+",ask.co.uk|ask,q|Ask Jeeves>google.co,googlesyndication.com|q,as_q|"
			+"Google>google.com.ar|q,as_q|Google - Argentina>google.com.au|q,as_q"
			+"|Google - Australia>google.be|q,as_q|Google - Belgium>google.com.br"
			+"|q,as_q|Google - Brasil>google.ca|q,as_q|Google - Canada>google.cl|"
			+"q,as_q|Google - Chile>google.cn|q,as_q|Google - China>google.com.co"
			+"|q,as_q|Google - Colombia>google.dk|q,as_q|Google - Denmark>google."
			+"com.do|q,as_q|Google - Dominican Republic>google.fi|q,as_q|Google -"
			+" Finland>google.fr|q,as_q|Google - France>google.de|q,as_q|Google -"
			+" Germany>google.gr|q,as_q|Google - Greece>google.com.hk|q,as_q|Goog"
			+"le - Hong Kong>google.co.in|q,as_q|Google - India>google.co.id|q,as"
			+"_q|Google - Indonesia>google.ie|q,as_q|Google - Ireland>google.co.i"
			+"l|q,as_q|Google - Israel>google.it|q,as_q|Google - Italy>google.co."
			+"jp|q,as_q|Google - Japan>google.com.my|q,as_q|Google - Malaysia>goo"
			+"gle.com.mx|q,as_q|Google - Mexico>google.nl|q,as_q|Google - Netherl"
			+"ands>google.co.nz|q,as_q|Google - New Zealand>google.com.pk|q,as_q|"
			+"Google - Pakistan>google.com.pe|q,as_q|Google - Peru>google.com.ph|"
			+"q,as_q|Google - Philippines>google.pl|q,as_q|Google - Poland>google"
			+".pt|q,as_q|Google - Portugal>google.com.pr|q,as_q|Google - Puerto R"
			+"ico>google.ro|q,as_q|Google - Romania>google.com.sg|q,as_q|Google -"
			+" Singapore>google.co.za|q,as_q|Google - South Africa>google.es|q,as"
			+"_q|Google - Spain>google.se|q,as_q|Google - Sweden>google.ch|q,as_q"
			+"|Google - Switzerland>google.co.th|q,as_q|Google - Thailand>google."
			+"com.tr|q,as_q|Google - Turkey>google.co.uk|q,as_q|Google - United K"
			+"ingdom>google.co.ve|q,as_q|Google - Venezuela>bing.com|q|"
			+"Bing>naver.com,search.naver.com|query|Naver>yahoo.com,search.yahoo."
			+"com|p|Yahoo!>ca.yahoo.com,ca.search.yahoo.com|p|Yahoo! - Canada>yah"
			+"oo.co.jp,search.yahoo.co.jp|p,va|Yahoo! - Japan>sg.yahoo.com,sg.sea"
			+"rch.yahoo.com|p|Yahoo! - Singapore>uk.yahoo.com,uk.search.yahoo.com"
			+"|p|Yahoo! - UK and Ireland>search.cnn.com|query|CNN Web Search>sear"
			+"ch.earthlink.net|q|Earthlink Search>search.comcast.net|q|Comcast Se"
			+"arch>search.rr.com|qs|RoadRunner Search>optimum.net|q|Optimum Searc"
			+"h";

			/*
			 * Plugin: getValOnce 0.2 - get a value once per session or number of days
			 */
			s.getValOnce=new Function("v","c","e",""
			+"var s=this,k=s.c_r(c),a=new Date;e=e?e:0;if(v){a.setTime(a.getTime("
			+")+e*86400000);s.c_w(c,v,e?a:0);}return v==k?'':v");

			/*
			 *	Plug-in: crossVisitParticipation v1.7 - stacks values from
			 *	specified variable in cookie and returns value
			 */

			s.crossVisitParticipation=new Function("v","cn","ex","ct","dl","ev","dv",""
			+"var s=this,ce;if(typeof(dv)==='undefined')dv=0;if(s.events&&ev){var"
			+" ay=s.split(ev,',');var ea=s.split(s.events,',');for(var u=0;u<ay.l"
			+"ength;u++){for(var x=0;x<ea.length;x++){if(ay[u]==ea[x]){ce=1;}}}}i"
			+"f(!v||v==''){if(ce){s.c_w(cn,'');return'';}else return'';}v=escape("
			+"v);var arry=new Array(),a=new Array(),c=s.c_r(cn),g=0,h=new Array()"
			+";if(c&&c!=''){arry=s.split(c,'],[');for(q=0;q<arry.length;q++){z=ar"
			+"ry[q];z=s.repl(z,'[','');z=s.repl(z,']','');z=s.repl(z,\"'\",'');arry"
			+"[q]=s.split(z,',')}}var e=new Date();e.setFullYear(e.getFullYear()+"
			+"5);if(dv==0&&arry.length>0&&arry[arry.length-1][0]==v)arry[arry.len"
			+"gth-1]=[v,new Date().getTime()];else arry[arry.length]=[v,new Date("
			+").getTime()];var start=arry.length-ct<0?0:arry.length-ct;var td=new"
			+" Date();for(var x=start;x<arry.length;x++){var diff=Math.round((td."
			+"getTime()-arry[x][1])/86400000);if(diff<ex){h[g]=unescape(arry[x][0"
			+"]);a[g]=[arry[x][0],arry[x][1]];g++;}}var data=s.join(a,{delim:',',"
			+"front:'[',back:']',wrap:\"'\"});s.c_w(cn,data,e);var r=s.join(h,{deli"
			+"m:dl});if(ce)s.c_w(cn,'');return r;");



			/*
			 * Plugin: getPercentPageViewed v1.2
			 */
			s.getPercentPageViewed=new Function("",""
			+"var s=this;if(typeof(s.linkType)=='undefined'||s.linkType=='e'){var"
			+" v=s.c_r('s_ppv');s.c_w('s_ppv',0);return v;}");
			s.getPPVCalc=new Function("",""
			+"var s=s_c_il["+s._in+"],dh=Math.max(Math.max(s.d.body.scrollHeight,"
			+"s.d.documentElement.scrollHeight),Math.max(s.d.body.offsetHeight,s."
			+"d.documentElement.offsetHeight),Math.max(s.d.body.clientHeight,s.d."
			+"documentElement.clientHeight)),vph=s.wd.innerHeight||(s.d.documentE"
			+"lement.clientHeight||s.d.body.clientHeight),st=s.wd.pageYOffset||(s"
			+".wd.document.documentElement.scrollTop||s.wd.document.body.scrollTo"
			+"p),vh=st+vph,pv=Math.round(vh/dh*100),cp=s.c_r('s_ppv');if(pv>100){"
			+"s.c_w('s_ppv','');}else if(pv>cp){s.c_w('s_ppv',pv);}");
			s.getPPVSetup=new Function("",""
			+"var s=this;if(s.wd.addEventListener){s.wd.addEventListener('load',s"
			+".getPPVCalc,false);s.wd.addEventListener('scroll',s.getPPVCalc,fals"
			+"e);s.wd.addEventListener('resize',s.getPPVCalc,false);}else if(s.wd"
			+".attachEvent){s.wd.attachEvent('onload',s.getPPVCalc);s.wd.attachEv"
			+"ent('onscroll',s.getPPVCalc);s.wd.attachEvent('onresize',s.getPPVCa"
			+"lc);}");
			s.getPPVSetup();

			/*
			 * Plugin: getPreviousValue_v1.0 - return previous value of designated
			 *   variable (requires split utility)
			 */
			s.getPreviousValue=new Function("v","c","el",""
			+"var s=this,t=new Date,i,j,r='';t.setTime(t.getTime()+1800000);if(el"
			+"){if(s.events){i=s.split(el,',');j=s.split(s.events,',');for(x in i"
			+"){for(y in j){if(i[x]==j[y]){if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t)"
			+":s.c_w(c,'no value',t);return r}}}}}else{if(s.c_r(c)) r=s.c_r(c);v?"
			+"s.c_w(c,v,t):s.c_w(c,'no value',t);return r}");
			/*
			 * Utility Function: split v1.5 - split a string (JS 1.0 compatible)
			 */
			s.split=new Function("l","d",""
			+"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x"
			+"++]=l.substring(0,i);l=l.substring(i+d.length);}return a");
		},
		/**
		 * Generates a cached hierarchy based on the URL. For example, if the
		 * URL was <code>"/bathroom/faucets"</code> the hierarchy would be
		 * <code>['bathroom', 'faucets']</code>. The cached result is saved to
		 * <a href="#property_hierarchy">hierarchy</a>.
		 * @method generateHierarchy
		 */
		generateHierarchy: function () {
			var hier = window.location.pathname;

			// Remove jsessionid
			hier = hier.replace(/;jsessionid=[a-zA-Z0-9]+/, '');

			// Remove leading/trailing forward-slashes
			hier = hier.replace(/(^\/)|(\/$)/g, '');

			// Remove Endeca props
			hier = hier.replace(/\/_\/(.*)/, '');

			hier = hier.split('/');
			for (var i = 0, j = hier.length; i < j; i = i + 1) {
				hier[i] = Moen.util.String.beautify(hier[i]);
				hier[i] = Moen.util.String.toTitleCase(hier[i]);
			}

			this.hierarchy = hier;
		},
		/**
		 * Retrieves the channel (or section) to be tracked. The channel
		 * variable is used in Omniture as a high-level site section to track,
		 * broadly, where activity is occuring. An example channel would be
		 * Bathroom, Kitchen &amp; Bar, or Outdoor &amp; More.
		 * @method getChannel
		 * @return {String} the channel for the current page.
		 */
		getChannel: function () {
			requiresHierarchy();

			if (this.hierarchy[0] !== '') {
				return this.hierarchy[0];
			} else {
				return 'Home';
			}
		},
		/**
		 * Retrieves the hierarchy or a particular level or the hierarchy of
		 * the current page.
		 * @method getHierarchy
		 * @param {Number} level (optional) the level of the hierarchy to be returned
		 * @return {String | Array} Either the level of the hierarchy if one
		 * is specified as an argument or an array containing each level in order.
		 */
		getHierarchy: function (level) {
			requiresHierarchy();

			if (typeof level !== 'undefined') {
				return this.hierarchy[level];
			} else {
				return this.hierarchy.join('|');
			}
		},
		/**
		 * Returns the first value in the generated hierarchy. Page names are
		 * used in Omniture to provide a unique key for each page on the site.
		 * The convention we are using is colon (:) separating the hierarchy
		 * variable. For example: <code>['bathroom', 'faucets']</code> creates
		 * a page name of <code>"bathroom:faucets"</code>.
		 * @method getPageName
		 * @return {String} the name of the page.
		 */
		getPageName: function () {
			requiresHierarchy();

			if (this.hierarchy[0] !== '') {
				return this.hierarchy.join(':');
			} else {
				return 'Home';
			}
		},
		/**
		 * @method launchSurvey
		 * @param {String} the ID of the survey.
		 */
		launchSurvey: function (surveyId, containerId, closeCallback, openCallback, forcePopup) {
			for (var i = 0, j = arguments.length; i < j; i = i + 1) {
				if (typeof arguments[i] === 'undefined') {
					arguments[i] = null;
				}
			}
			return s.Survey.launch(surveyId, containerId, closeCallback, openCallback, forcePopup);
		},

		/*
		 * @method ClearOmnitureObject
		 * @param {Object} the s object that needs to be re A configuration object.
		 */
		ClearOmnitureObject: function (sObj) {
			for(var i = 0; i < 100; i++) {
				sObj['prop' + i] = '';
				sObj['eVar' + i] = '';
			}
			sObj.products = '';
			sObj.events= '';
			sObj.linkTrackVars = '';
			sObj.server = '';
			sObj.channel = '';
			sObj.pageName = '';
			sObj.pageType = '';
			sObj.campaign = '';
		},

		/**
		 * The <code>trackData</code> method is a wrapper for Omniture's
		 * <code>s.tl()</code> function. It accepts a configuration object as
		 * the only argument consisting of the following:
		 * <ul>
		 * 	<li><code>name {String}</code>: the name of the link being tracked.</li>
		 *  <li><code>type {String}</code>: (optional, defaults to "o") the link type being tracked. Can be either 'o' for general links, 'd' for a file download, and 'e' for exit links.</li>
		 *  <li><code>data {Object}</code>: the data to be tracked. See the example below for an accepted format for this object.</li>
		 * </ul>
		 * Example:
		 * <pre name="code" class="js">
		 * Moen.util.Omniture.trackData({
		 * &nbsp;&nbsp;&nbsp;&nbsp;name: 'My Link',
		 * &nbsp;&nbsp;&nbsp;&nbsp;type: 'o',
		 * &nbsp;&nbsp;&nbsp;&nbsp;data: {
		 * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prop1: 'My Prop1',
		 * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eVar1: 'My eVar1',
		 * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;events: 'event1,event2'
		 * &nbsp;&nbsp;&nbsp;&nbsp;}
		 * });
		 * </pre>
		 * @method trackData
		 * @param {Object} options A configuration object.
		 */
		trackData: function (options) {
			var type = null;

			// Re-initialize Omniture
			s = s_gi(this.account);
			Omniture.ClearOmnitureObject( s );

			// Only accept (e)xit link, (d)ownload, or (o)ther custom link (default)
			type = (options.type == 'e') ? 'e' : (options.type == 'd') ? 'd' : 'o';

			// Build Omniture variables
			s.linkTrackVars = '';
			s.linkTrackEvents = '';
			for (var datum in options.data) {
				s[datum] = options.data[datum];
				s.linkTrackVars += ',' + datum;
				if (/purchase|scOpen|scView|scCheckout|scAdd|scRemove/.test(datum)) {
					s.linkTrackEvents += ',' + datum;
				} else if (datum === 'events') {
					s.linkTrackEvents += ',' + options.data[datum];
				}
			}
			s.linkTrackVars = s.linkTrackVars.match(/\w/) ? s.linkTrackVars.substr(1, s.linkTrackVars.length) : "None";
			s.linkTrackEvents = s.linkTrackEvents.match(/\w/) ? s.linkTrackEvents.substr(1, s.linkTrackEvents.length) : "None";

			// Track the data
			if (options.name === null) {
				s.tl(false, type);
			} else {
				s.tl(false, type, options.name);
			}
			if (options.name == 'DYO Interactions') {
				console.warn('trackData: '+ options.name, options.data);
			}
			// clear so we don't duplicate event counting in exit links
			Omniture.ClearOmnitureObject( s );
		},

		/**
		 * Manually trigger a page view
		 * @method trackPageView
		 */
		trackPageView: function (options) {

			// Re-initialize Omniture
			s = s_gi(this.account);

			// Build Omniture variables
			s.linkTrackVars = '';
			s.linkTrackEvents = '';
			for (var datum in options.data) {
				s[datum] = options.data[datum];
				s.linkTrackVars += ',' + datum;
				if (/purchase|scOpen|scView|scCheckout|scAdd|scRemove/.test(datum)) {
					s.linkTrackEvents += ',' + datum;
				} else if (datum === 'events') {
					s.linkTrackEvents += ',' + options.data[datum];
				}
			}
			s.linkTrackVars = s.linkTrackVars.substr(1, s.linkTrackVars.length);
			s.linkTrackEvents = s.linkTrackEvents.substr(1, s.linkTrackEvents.length);

			if (options.name) {
				s.pageName = options.name;
			}

			s.t();
		}
	},
	/**
	 * Checks to see if a URL hierarchy has been generated and will
	 * generate it if it hasn't been.
	 * See <a href="#method_generateHierarchy"><code>generateHierarchy</code></a>.
	 * @method requiresHierarchy
	 * @private
	 */
	requiresHierarchy = function () {
		if (Omniture.hierarchy === null) {
			Omniture.generateHierarchy();
		}
	};

	return Omniture;

}());

/*	<p>
 *	The Omniture Test & Target (T&T) utility helps manage calls from Offer Boxes inside T&T Campaign Experience.
 *	It then manipulates the page DOM onload accordingly.
 * 	</p>
 * 	<p>
 * 	It accepts two arguments:
 *	1. experience (String): the id of the experience being passed from the offer boxes.
 *	2. page (String): the id of the page being passed from the offer boxes.
 * 	</p>
 * 	@namespace Moen.util
 * 	@class TnT
 */
Moen.util.TnT = function(experience, page){

	$('body').addClass("pt"+experience);
	switch (experience) {

		case '2' :

			switch (page) {

				case 'premium' :
					console.log('2 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// hide the price
					$('.prodPrice').hide();

					break;

				case 'products' :
					console.log('2 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// remove avg price content
					$('.price-avg').remove();

					// append the retailer info
					$('#extras').append($('#single_retailer'));

					// clone the W2B/Locate A Retailer button
					var $btnW2B = $('a#where_to_buy').clone();

					// if it's a premium product, append the button on the top right, otherwise append it below replacement parts copy
					if ($('body').hasClass('premium')) {
						$('#selections_extras_innerwrapper').append($btnW2B);
						$btnW2B.css({
							'position': 'absolute',
							'right': '10px',
							'top': '30px'
						})
					} else {
						$('#extras').append($btnW2B);
						$btnW2B.css('margin-bottom', '10px');
						$('#extras ul').css('margin-bottom', '20px');
					}

					// reduce bottom margin on the valves row
					$('li#valves').css('margin-bottom', '10px');

					// hide all price
					$('.price').hide();

					// hide the total price content block
					$('#product_info-total').hide();

					// for products with Get Prices and Buy button
					if($('#btn_getprices_buy').length > 0) {
						// append the Get Prices and Buy button and set some margins
						$('#extras').append($('#btn_getprices_buy a'));
						$('span#channel_intelligence').css('margin-bottom', '10px');

						// fix border
						$('#selections ol.single').css('border', 'none');
						$('#extras').css('border-left', '1px solid #C8C9CA');
					}

					break;

				case 'gallery' :
					console.log('2 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// hide the price
					$('.product-price').hide();

					// reduce height of the product card
					$('ul#products li.product').css('min-height', '434px');

					// hide the price label and price points on the refinement rail
					var priceLabel = $('#navigation_faceted-refinements').find('strong:contains("Price")');
					priceLabel.hide();
					priceLabel.next('ul').hide();

					// remove the sort by price options
					$("select.paginator-sort-by option[value='PriceD']").remove();
					$("select.paginator-sort-by option[value='PriceA']").remove();

					break;

				case 'compare' :
					console.log('2 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// hide price
					$('.product-price').hide();

					break;

				case 'search' :
					console.log('2 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// hide the price
					$('.product-price').hide();

					// reduce height of the product card
					$('ul#products li.product').css('min-height', '434px');

					// hide the price label and price points on the refinement rail
					var priceLabel = $('#navigation_faceted-refinements').find('strong:contains("Price")');
					priceLabel.hide();
					priceLabel.next('ul').hide();

					// remove the sort by price options
					$("select.paginator-sort-by option[value='PriceD']").remove();
					$("select.paginator-sort-by option[value='PriceA']").remove();

					break;

				default :
					break;
			}
			break;

		case '3' :

			switch (page) {

				case 'premium' :
					console.log('3 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					$('.prodPrice').css('font-size', '12px');
					break;

				case 'products' :
					console.log('3 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// remove avg price content
					$('.price-avg').remove();

					//move price
					movePrice();

					// For Premium product
					if($('body').hasClass('premium')) {
						// move W2B button
						$('#product_info-total').css('position', 'relative');
						$('#product_info-cta').css({
							'position' : 'absolute',
							'top' : '-7px',
							'right' : '12px'
						})

						// if there are components
						if($('li#components').length > 0) {
							$('li.componentDescription span.price').css({
								'display' : 'block',
								'margin-bottom' : '5px'
							});
						}
					}

					if($.browser.msie){
						$('p.curr-showing').css('margin', '0');
						$('#msrp').css('margin-top', '-1px');
					}

					break;

				case 'gallery' :
					console.log('3 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// remove avg price content
					$('.price-avg').remove();

					// move the price below the description and add copy
					var galleryPrice = $('.product-price');
					galleryPrice.css({
						'font-weight': 'normal',
						'font-size': '11px',
						'display' : 'block',
						'margin-top' : '4px'
					});
					var listPrice = galleryPrice.prepend('List price: ');
					$('p.modelno').each(function(index){
						$(this).append(listPrice[index]);
					})

					// reduce height of the product card
					$('ul#products li.product').css('min-height', '434px');

					break;

				case 'compare' :
					console.log('3 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// remove avg price
					$('.price-avg').remove();

					//move the price
					$('p.note').each(function(index){
						$(this).append($('.product-price')[index]);
					});

					$('.product-price').css({
						'display' : 'block',
						'font-weight' : 'normal',
						'font-size' : '11px',
						'margin-top' : '3px'
					});
					$('.product-price').prepend('List price: ');

					break;

				case 'search' :
					console.log('3 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// remove avg price content
					$('.price-avg').remove();

					// move the price below the description and add copy
					var galleryPrice = $('.product-price');
					galleryPrice.css({
						'font-weight': 'normal',
						'font-size': '11px',
						'display' : 'block',
						'margin-top' : '4px'
					});
					var listPrice = galleryPrice.prepend('List price: ');
					$('p.modelno').each(function(index){
						$(this).append(listPrice[index]);
					})

					// reduce height of the product card
					$('ul#products li.product').css('min-height', '434px');

					break;

				default :

					break;
			}

			break;

		case '4' :

			switch (page) {

				case 'premium' :
					console.log('4 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					$('.price-avg').show();
					$('.price-msrp').hide();

					break;

				case 'products' :
					console.log('4 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// Hide msrp price, show avg price - NOTE: price-msrp must be removed before setupValveInteractions
					$('.price-msrp').remove();
					$('.price-avg').show();

					// change MSRP copy
					$('span#msrp').html(function() {
						var avgPrice = 'Avg. Retail Price<span>Average Retail Price is an average only. Store pricing will vary.</span>';
						return avgPrice;
					});

					// avg retail price total is wrong when adding handle price, so add it up here in js
					var handle_price = parseFloat($('#handle_finishes .price').text().match(/[\d\.]+/) || 0);
					if (handle_price > 0) {
						var base_price = parseFloat($('#base_price').text().match(/[\d\.]+/));
						//var total_price = parseFloat($('#total_price').text().match(/[\d\.]+/) || 0);
						//console.log("base_price,handle_price total_price",base_price,handle_price,total_price,$('#total_price').text());
						$('#total_price').text('$' + Moen.lang.round(base_price + handle_price, 2));
					}

					break;

				case 'gallery' :
					console.log('4 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					// If non commercial gallery
					if ($('#brand_callout').length === 0){

						// update sort dropdown values
						$("select.paginator-sort-by option[value='PriceD']").text('Avg Price (High to Low)');
						$("select.paginator-sort-by option[value='PriceA']").text('Avg Price (Low to High)');

						$("select.paginator-sort-by option[value='PriceD']").val('AvgPriceD');
						$("select.paginator-sort-by option[value='PriceA']").val('AvgPriceA');

						// Hide msrp price, show avg price
						$('.price-msrp').hide();
						$('.price-avg').show();

						// hide the msrp price label and price points on the refinement rail
						/*var priceLabel = $('#navigation_faceted-refinements').find('strong:contains("Price")');
						priceLabel.hide();
						priceLabel.next('ul').hide();*/
					}

					break;

				case 'compare' :
					console.log('4 - ' + 'Experience ID: ' + experience + ' ' + 'Page: ' + page);

					$('.price-msrp').hide();
					$('.price-avg').show();

					break;

				case 'search' :

					// If non commercial gallery
					if ($('#brand_callout').length === 0){

						// update sort dropdown values
						$("select.paginator-sort-by option[value='PriceD']").text('Avg Price (High to Low)');
						$("select.paginator-sort-by option[value='PriceA']").text('Avg Price (Low to High)');

						$("select.paginator-sort-by option[value='PriceD']").val('AvgPriceD');
						$("select.paginator-sort-by option[value='PriceA']").val('AvgPriceA');

						// Hide msrp price, show avg price
						$('.price-msrp').hide();
						$('.price-avg').show();

					}

					break;

				default:
					break;
			}

			break;

		default:

			break;

	};

	function movePrice() {

		//move the price
		$('.price').css({
			'float' : 'none',
			'font-weight' : 'normal',
			'font-size' : '11px',
			'clear' : 'both',
			'text-align' : 'left',
			'width' : 'auto'
		});

		// adjust spacing
		$('p.curr-showing').css('margin-bottom', '0');
		$('.singlevalve-copy').css('margin-bottom', '0');

		// add Lsit Price copy
		$('.price').prepend('List price: ');

		// move total price, msrp
		$('#product_info-total-price').css({
			'float' : 'none',
			'clear' : 'both',
			'padding-top' : '5px',
			'width' : 'auto'
		});
		$('#total_price').css({
			'font-size' : '11px',
			'font-weight' : 'normal'
		});
		$('#total_price').removeClass('type-bold').prepend('List price: ');;
		$('#product_info-total-price .quarter').css('text-align', 'left');
		$('#msrp').css({
			'display' : 'inline',
			'font-size' : '11px'
		});
		$('p.note').css({
			'text-align' : 'left',
			'float' : 'none'
		});
		$('#product_info-total-price .note').css('width', 'auto');

	};
};

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code='',s_objectID;function s_gi(un,pg,ss){var c="s.version='H.23.3';s.an=s_an;s.logDebug=function(m){var s=this,tcf=new Function('var e;try{console.log(\"'+s.rep(s.rep(m,\"\\n\",\"\\\\n\"),\""
+"\\\"\",\"\\\\\\\"\")+'\");}catch(e){}');tcf()};s.cls=function(x,c){var i,y='';if(!c)c=this.an;for(i=0;i<x.length;i++){n=x.substring(i,i+1);if(c.indexOf(n)>=0)y+=n}return y};s.fl=function(x,l){retur"
+"n x?(''+x).substring(0,l):x};s.co=function(o){if(!o)return o;var n=new Object,x;for(x in o)if(x.indexOf('select')<0&&x.indexOf('filter')<0)n[x]=o[x];return n};s.num=function(x){x=''+x;for(var p=0;p"
+"<x.length;p++)if(('0123456789').indexOf(x.substring(p,p+1))<0)return 0;return 1};s.rep=s_rep;s.sp=s_sp;s.jn=s_jn;s.ape=function(x){var s=this,h='0123456789ABCDEF',i,c=s.charSet,n,l,e,y='';c=c?c.toU"
+"pperCase():'';if(x){x=''+x;if(s.em==3)x=encodeURIComponent(x);else if(c=='AUTO'&&('').charCodeAt){for(i=0;i<x.length;i++){c=x.substring(i,i+1);n=x.charCodeAt(i);if(n>127){l=0;e='';while(n||l<4){e=h"
+".substring(n%16,n%16+1)+e;n=(n-n%16)/16;l++}y+='%u'+e}else if(c=='+')y+='%2B';else y+=escape(c)}x=y}else x=escape(''+x);x=s.rep(x,'+','%2B');if(c&&c!='AUTO'&&s.em==1&&x.indexOf('%u')<0&&x.indexOf('"
+"%U')<0){i=x.indexOf('%');while(i>=0){i++;if(h.substring(8).indexOf(x.substring(i,i+1).toUpperCase())>=0)return x.substring(0,i)+'u00'+x.substring(i);i=x.indexOf('%',i)}}}return x};s.epa=function(x)"
+"{var s=this;if(x){x=s.rep(''+x,'+',' ');return s.em==3?decodeURIComponent(x):unescape(x)}return x};s.pt=function(x,d,f,a){var s=this,t=x,z=0,y,r;while(t){y=t.indexOf(d);y=y<0?t.length:y;t=t.substri"
+"ng(0,y);r=s[f](t,a);if(r)return r;z+=y+d.length;t=x.substring(z,x.length);t=z<x.length?t:''}return ''};s.isf=function(t,a){var c=a.indexOf(':');if(c>=0)a=a.substring(0,c);c=a.indexOf('=');if(c>=0)a"
+"=a.substring(0,c);if(t.substring(0,2)=='s_')t=t.substring(2);return (t!=''&&t==a)};s.fsf=function(t,a){var s=this;if(s.pt(a,',','isf',t))s.fsg+=(s.fsg!=''?',':'')+t;return 0};s.fs=function(x,f){var"
+" s=this;s.fsg='';s.pt(x,',','fsf',f);return s.fsg};s.si=function(){var s=this,i,k,v,c=s_gi+'var s=s_gi(\"'+s.oun+'\");s.sa(\"'+s.un+'\");';for(i=0;i<s.va_g.length;i++){k=s.va_g[i];v=s[k];if(v!=unde"
+"fined){if(typeof(v)!='number')c+='s.'+k+'=\"'+s_fe(v)+'\";';else c+='s.'+k+'='+v+';'}}c+=\"s.lnk=s.eo=s.linkName=s.linkType=s.wd.s_objectID=s.ppu=s.pe=s.pev1=s.pev2=s.pev3='';\";return c};s.c_d='';"
+"s.c_gdf=function(t,a){var s=this;if(!s.num(t))return 1;return 0};s.c_gd=function(){var s=this,d=s.wd.location.hostname,n=s.fpCookieDomainPeriods,p;if(!n)n=s.cookieDomainPeriods;if(d&&!s.c_d){n=n?pa"
+"rseInt(n):2;n=n>2?n:2;p=d.lastIndexOf('.');if(p>=0){while(p>=0&&n>1){p=d.lastIndexOf('.',p-1);n--}s.c_d=p>0&&s.pt(d,'.','c_gdf',0)?d.substring(p):d}}return s.c_d};s.c_r=function(k){var s=this;k=s.a"
+"pe(k);var c=' '+s.d.cookie,i=c.indexOf(' '+k+'='),e=i<0?i:c.indexOf(';',i),v=i<0?'':s.epa(c.substring(i+2+k.length,e<0?c.length:e));return v!='[[B]]'?v:''};s.c_w=function(k,v,e){var s=this,d=s.c_gd"
+"(),l=s.cookieLifetime,t;v=''+v;l=l?(''+l).toUpperCase():'';if(e&&l!='SESSION'&&l!='NONE'){t=(v!=''?parseInt(l?l:0):-60);if(t){e=new Date;e.setTime(e.getTime()+(t*1000))}}if(k&&l!='NONE'){s.d.cookie"
+"=k+'='+s.ape(v!=''?v:'[[B]]')+'; path=/;'+(e&&l!='SESSION'?' expires='+e.toGMTString()+';':'')+(d?' domain='+d+';':'');return s.c_r(k)==v}return 0};s.eh=function(o,e,r,f){var s=this,b='s_'+e+'_'+s."
+"_in,n=-1,l,i,x;if(!s.ehl)s.ehl=new Array;l=s.ehl;for(i=0;i<l.length&&n<0;i++){if(l[i].o==o&&l[i].e==e)n=i}if(n<0){n=i;l[n]=new Object}x=l[n];x.o=o;x.e=e;f=r?x.b:f;if(r||f){x.b=r?0:o[e];x.o[e]=f}if("
+"x.b){x.o[b]=x.b;return b}return 0};s.cet=function(f,a,t,o,b){var s=this,r,tcf;if(s.apv>=5&&(!s.isopera||s.apv>=7)){tcf=new Function('s','f','a','t','var e,r;try{r=s[f](a)}catch(e){r=s[t](e)}return "
+"r');r=tcf(s,f,a,t)}else{if(s.ismac&&s.u.indexOf('MSIE 4')>=0)r=s[b](a);else{s.eh(s.wd,'onerror',0,o);r=s[f](a);s.eh(s.wd,'onerror',1)}}return r};s.gtfset=function(e){var s=this;return s.tfs};s.gtfs"
+"oe=new Function('e','var s=s_c_il['+s._in+'],c;s.eh(window,\"onerror\",1);s.etfs=1;c=s.t();if(c)s.d.write(c);s.etfs=0;return true');s.gtfsfb=function(a){return window};s.gtfsf=function(w){var s=thi"
+"s,p=w.parent,l=w.location;s.tfs=w;if(p&&p.location!=l&&p.location.host==l.host){s.tfs=p;return s.gtfsf(s.tfs)}return s.tfs};s.gtfs=function(){var s=this;if(!s.tfs){s.tfs=s.wd;if(!s.etfs)s.tfs=s.cet"
+"('gtfsf',s.tfs,'gtfset',s.gtfsoe,'gtfsfb')}return s.tfs};s.mrq=function(u){var s=this,l=s.rl[u],n,r;s.rl[u]=0;if(l)for(n=0;n<l.length;n++){r=l[n];s.mr(0,0,r.r,r.t,r.u)}};s.flushBufferedRequests=fun"
+"ction(){};s.mr=function(sess,q,rs,ta,u){var s=this,dc=s.dc,t1=s.trackingServer,t2=s.trackingServerSecure,tb=s.trackingServerBase,p='.sc',ns=s.visitorNamespace,un=s.cls(u?u:(ns?ns:s.fun)),r=new Obje"
+"ct,l,imn='s_i_'+(un),im,b,e;if(!rs){if(t1){if(t2&&s.ssl)t1=t2}else{if(!tb)tb='2o7.net';if(dc)dc=(''+dc).toLowerCase();else dc='d1';if(tb=='2o7.net'){if(dc=='d1')dc='112';else if(dc=='d2')dc='122';p"
+"=''}t1=un+'.'+dc+'.'+p+tb}rs='http'+(s.ssl?'s':'')+'://'+t1+'/b/ss/'+s.un+'/'+(s.mobile?'5.1':'1')+'/'+s.version+'/'+sess+'?AQB=1&ndh=1'+(q?q:'')+'&AQE=1';if(s.isie&&!s.ismac)rs=s.fl(rs,2047)}if(s."
+"d.images&&s.apv>=3&&(!s.isopera||s.apv>=7)&&(s.ns6<0||s.apv>=6.1)){if(!s.rc)s.rc=new Object;if(!s.rc[un]){s.rc[un]=1;if(!s.rl)s.rl=new Object;s.rl[un]=new Array;setTimeout('if(window.s_c_il)window."
+"s_c_il['+s._in+'].mrq(\"'+un+'\")',750)}else{l=s.rl[un];if(l){r.t=ta;r.u=un;r.r=rs;l[l.length]=r;return ''}imn+='_'+s.rc[un];s.rc[un]++}im=s.wd[imn];if(!im)im=s.wd[imn]=new Image;im.s_l=0;im.onload"
+"=new Function('e','this.s_l=1;var wd=window,s;if(wd.s_c_il){s=wd.s_c_il['+s._in+'];s.mrq(\"'+un+'\");s.nrs--;if(!s.nrs)s.m_m(\"rr\")}');if(!s.nrs){s.nrs=1;s.m_m('rs')}else s.nrs++;if(s.debugTrackin"
+"g){var d='AppMeasurement Debug: '+rs,dl=s.sp(rs,'&'),dln;for(dln=0;dln<dl.length;dln++)d+=\"\\n\\t\"+s.epa(dl[dln]);s.logDebug(d)}im.src=rs;if((!ta||ta=='_self'||ta=='_top'||(s.wd.name&&ta==s.wd.na"
+"me))&&rs.indexOf('&pe=')>=0){b=e=new Date;while(!im.s_l&&e.getTime()-b.getTime()<500)e=new Date}return ''}return '<im'+'g sr'+'c=\"'+rs+'\" width=1 height=1 border=0 alt=\"\">'};s.gg=function(v){va"
+"r s=this;if(!s.wd['s_'+v])s.wd['s_'+v]='';return s.wd['s_'+v]};s.glf=function(t,a){if(t.substring(0,2)=='s_')t=t.substring(2);var s=this,v=s.gg(t);if(v)s[t]=v};s.gl=function(v){var s=this;if(s.pg)s"
+".pt(v,',','glf',0)};s.rf=function(x){var s=this,y,i,j,h,p,l=0,q,a,b='',c='',t;if(x&&x.length>255){y=''+x;i=y.indexOf('?');if(i>0){q=y.substring(i+1);y=y.substring(0,i);h=y.toLowerCase();j=0;if(h.su"
+"bstring(0,7)=='http://')j+=7;else if(h.substring(0,8)=='https://')j+=8;i=h.indexOf(\"/\",j);if(i>0){h=h.substring(j,i);p=y.substring(i);y=y.substring(0,i);if(h.indexOf('google')>=0)l=',q,ie,start,s"
+"earch_key,word,kw,cd,';else if(h.indexOf('yahoo.co')>=0)l=',p,ei,';if(l&&q){a=s.sp(q,'&');if(a&&a.length>1){for(j=0;j<a.length;j++){t=a[j];i=t.indexOf('=');if(i>0&&l.indexOf(','+t.substring(0,i)+',"
+"')>=0)b+=(b?'&':'')+t;else c+=(c?'&':'')+t}if(b&&c)q=b+'&'+c;else c=''}i=253-(q.length-c.length)-y.length;x=y+(i>0?p.substring(0,i):'')+'?'+q}}}}return x};s.s2q=function(k,v,vf,vfp,f){var s=this,qs"
+"='',sk,sv,sp,ss,nke,nk,nf,nfl=0,nfn,nfm;if(k==\"contextData\")k=\"c\";if(v){for(sk in v) {if((!f||sk.substring(0,f.length)==f)&&v[sk]&&(!vf||vf.indexOf(','+(vfp?vfp+'.':'')+sk+',')>=0)){nfm=0;if(nf"
+"l)for(nfn=0;nfn<nfl.length;nfn++)if(sk.substring(0,nfl[nfn].length)==nfl[nfn])nfm=1;if(!nfm){if(qs=='')qs+='&'+k+'.';sv=v[sk];if(f)sk=sk.substring(f.length);if(sk.length>0){nke=sk.indexOf('.');if(n"
+"ke>0){nk=sk.substring(0,nke);nf=(f?f:'')+nk+'.';if(!nfl)nfl=new Array;nfl[nfl.length]=nf;qs+=s.s2q(nk,v,vf,vfp,nf)}else{if(typeof(sv)=='boolean'){if(sv)sv='true';else sv='false'}if(sv){if(vfp=='ret"
+"rieveLightData'&&f.indexOf('.contextData.')<0){sp=sk.substring(0,4);ss=sk.substring(4);if(sk=='transactionID')sk='xact';else if(sk=='channel')sk='ch';else if(sk=='campaign')sk='v0';else if(s.num(ss"
+")){if(sp=='prop')sk='c'+ss;else if(sp=='eVar')sk='v'+ss;else if(sp=='list')sk='l'+ss;else if(sp=='hier'){sk='h'+ss;sv=sv.substring(0,255)}}}qs+='&'+s.ape(sk)+'='+s.ape(sv)}}}}}}if(qs!='')qs+='&.'+k"
+"}return qs};s.hav=function(){var s=this,qs='',l,fv='',fe='',mn,i,e;if(s.lightProfileID){l=s.va_m;fv=s.lightTrackVars;if(fv)fv=','+fv+','+s.vl_mr+','}else{l=s.va_t;if(s.pe||s.linkType){fv=s.linkTrac"
+"kVars;fe=s.linkTrackEvents;if(s.pe){mn=s.pe.substring(0,1).toUpperCase()+s.pe.substring(1);if(s[mn]){fv=s[mn].trackVars;fe=s[mn].trackEvents}}}if(fv)fv=','+fv+','+s.vl_l+','+s.vl_l2;if(fe){fe=','+f"
+"e+',';if(fv)fv+=',events,'}if (s.events2)e=(e?',':'')+s.events2}for(i=0;i<l.length;i++){var k=l[i],v=s[k],b=k.substring(0,4),x=k.substring(4),n=parseInt(x),q=k;if(!v)if(k=='events'&&e){v=e;e=''}if("
+"v&&(!fv||fv.indexOf(k)>=0)&&k!='linkName'&&k!='linkType'){if(k=='timestamp')q='ts';else if(k=='dynamicVariablePrefix')q='D';else if(k=='visitorID')q='vid';else if(k=='pageURL'){q='g';v=s.fl(v,255)}"
+"else if(k=='referrer'){q='r';v=s.fl(s.rf(v),255)}else if(k=='vmk'||k=='visitorMigrationKey')q='vmt';else if(k=='visitorMigrationServer'){q='vmf';if(s.ssl&&s.visitorMigrationServerSecure)v=''}else i"
+"f(k=='visitorMigrationServerSecure'){q='vmf';if(!s.ssl&&s.visitorMigrationServer)v=''}else if(k=='charSet'){q='ce';if(v.toUpperCase()=='AUTO')v='ISO8859-1';else if(s.em==2||s.em==3)v='UTF-8'}else i"
+"f(k=='visitorNamespace')q='ns';else if(k=='cookieDomainPeriods')q='cdp';else if(k=='cookieLifetime')q='cl';else if(k=='variableProvider')q='vvp';else if(k=='currencyCode')q='cc';else if(k=='channel"
+"')q='ch';else if(k=='transactionID')q='xact';else if(k=='campaign')q='v0';else if(k=='resolution')q='s';else if(k=='colorDepth')q='c';else if(k=='javascriptVersion')q='j';else if(k=='javaEnabled')q"
+"='v';else if(k=='cookiesEnabled')q='k';else if(k=='browserWidth')q='bw';else if(k=='browserHeight')q='bh';else if(k=='connectionType')q='ct';else if(k=='homepage')q='hp';else if(k=='plugins')q='p';"
+"else if(k=='events'){if(e)v+=(v?',':'')+e;if(fe)v=s.fs(v,fe)}else if(k=='events2')v='';else if(k=='contextData'){qs+=s.s2q('c',s[k],fv,k,0);v=''}else if(k=='lightProfileID')q='mtp';else if(k=='ligh"
+"tStoreForSeconds'){q='mtss';if(!s.lightProfileID)v=''}else if(k=='lightIncrementBy'){q='mti';if(!s.lightProfileID)v=''}else if(k=='retrieveLightProfiles')q='mtsr';else if(k=='deleteLightProfiles')q"
+"='mtsd';else if(k=='retrieveLightData'){if(s.retrieveLightProfiles)qs+=s.s2q('mts',s[k],fv,k,0);v=''}else if(s.num(x)){if(b=='prop')q='c'+n;else if(b=='eVar')q='v'+n;else if(b=='list')q='l'+n;else "
+"if(b=='hier'){q='h'+n;v=s.fl(v,255)}}if(v)qs+='&'+s.ape(q)+'='+(k.substring(0,3)!='pev'?s.ape(v):v)}}return qs};s.ltdf=function(t,h){t=t?t.toLowerCase():'';h=h?h.toLowerCase():'';var qi=h.indexOf('"
+"?');h=qi>=0?h.substring(0,qi):h;if(t&&h.substring(h.length-(t.length+1))=='.'+t)return 1;return 0};s.ltef=function(t,h){t=t?t.toLowerCase():'';h=h?h.toLowerCase():'';if(t&&h.indexOf(t)>=0)return 1;"
+"return 0};s.lt=function(h){var s=this,lft=s.linkDownloadFileTypes,lef=s.linkExternalFilters,lif=s.linkInternalFilters;lif=lif?lif:s.wd.location.hostname;h=h.toLowerCase();if(s.trackDownloadLinks&&l"
+"ft&&s.pt(lft,',','ltdf',h))return 'd';if(s.trackExternalLinks&&h.substring(0,1)!='#'&&(lef||lif)&&(!lef||s.pt(lef,',','ltef',h))&&(!lif||!s.pt(lif,',','ltef',h)))return 'e';return ''};s.lc=new Func"
+"tion('e','var s=s_c_il['+s._in+'],b=s.eh(this,\"onclick\");s.lnk=s.co(this);s.t();s.lnk=0;if(b)return this[b](e);return true');s.bc=new Function('e','var s=s_c_il['+s._in+'],f,tcf;if(s.d&&s.d.all&&"
+"s.d.all.cppXYctnr)return;s.eo=e.srcElement?e.srcElement:e.target;tcf=new Function(\"s\",\"var e;try{if(s.eo&&(s.eo.tagName||s.eo.parentElement||s.eo.parentNode))s.t()}catch(e){}\");tcf(s);s.eo=0');"
+"s.oh=function(o){var s=this,l=s.wd.location,h=o.href?o.href:'',i,j,k,p;i=h.indexOf(':');j=h.indexOf('?');k=h.indexOf('/');if(h&&(i<0||(j>=0&&i>j)||(k>=0&&i>k))){p=o.protocol&&o.protocol.length>1?o."
+"protocol:(l.protocol?l.protocol:'');i=l.pathname.lastIndexOf('/');h=(p?p+'//':'')+(o.host?o.host:(l.host?l.host:''))+(h.substring(0,1)!='/'?l.pathname.substring(0,i<0?0:i)+'/':'')+h}return h};s.ot="
+"function(o){var t=o.tagName;if(o.tagUrn||(o.scopeName&&o.scopeName.toUpperCase()!='HTML'))return '';t=t&&t.toUpperCase?t.toUpperCase():'';if(t=='SHAPE')t='';if(t){if((t=='INPUT'||t=='BUTTON')&&o.ty"
+"pe&&o.type.toUpperCase)t=o.type.toUpperCase();else if(!t&&o.href)t='A';}return t};s.oid=function(o){var s=this,t=s.ot(o),p,c,n='',x=0;if(t&&!o.s_oid){p=o.protocol;c=o.onclick;if(o.href&&(t=='A'||t="
+"='AREA')&&(!c||!p||p.toLowerCase().indexOf('javascript')<0))n=s.oh(o);else if(c){n=s.rep(s.rep(s.rep(s.rep(''+c,\"\\r\",''),\"\\n\",''),\"\\t\",''),' ','');x=2}else if(t=='INPUT'||t=='SUBMIT'){if(o"
+".value)n=o.value;else if(o.innerText)n=o.innerText;else if(o.textContent)n=o.textContent;x=3}else if(o.src&&t=='IMAGE')n=o.src;if(n){o.s_oid=s.fl(n,100);o.s_oidt=x}}return o.s_oid};s.rqf=function(t"
+",un){var s=this,e=t.indexOf('='),u=e>=0?t.substring(0,e):'',q=e>=0?s.epa(t.substring(e+1)):'';if(u&&q&&(','+u+',').indexOf(','+un+',')>=0){if(u!=s.un&&s.un.indexOf(',')>=0)q='&u='+u+q+'&u=0';return"
+" q}return ''};s.rq=function(un){if(!un)un=this.un;var s=this,c=un.indexOf(','),v=s.c_r('s_sq'),q='';if(c<0)return s.pt(v,'&','rqf',un);return s.pt(un,',','rq',0)};s.sqp=function(t,a){var s=this,e=t"
+".indexOf('='),q=e<0?'':s.epa(t.substring(e+1));s.sqq[q]='';if(e>=0)s.pt(t.substring(0,e),',','sqs',q);return 0};s.sqs=function(un,q){var s=this;s.squ[un]=q;return 0};s.sq=function(q){var s=this,k='"
+"s_sq',v=s.c_r(k),x,c=0;s.sqq=new Object;s.squ=new Object;s.sqq[q]='';s.pt(v,'&','sqp',0);s.pt(s.un,',','sqs',q);v='';for(x in s.squ)if(x&&(!Object||!Object.prototype||!Object.prototype[x]))s.sqq[s."
+"squ[x]]+=(s.sqq[s.squ[x]]?',':'')+x;for(x in s.sqq)if(x&&(!Object||!Object.prototype||!Object.prototype[x])&&s.sqq[x]&&(x==q||c<2)){v+=(v?'&':'')+s.sqq[x]+'='+s.ape(x);c++}return s.c_w(k,v,0)};s.wd"
+"l=new Function('e','var s=s_c_il['+s._in+'],r=true,b=s.eh(s.wd,\"onload\"),i,o,oc;if(b)r=this[b](e);for(i=0;i<s.d.links.length;i++){o=s.d.links[i];oc=o.onclick?\"\"+o.onclick:\"\";if((oc.indexOf(\""
+"s_gs(\")<0||oc.indexOf(\".s_oc(\")>=0)&&oc.indexOf(\".tl(\")<0)s.eh(o,\"onclick\",0,s.lc);}return r');s.wds=function(){var s=this;if(s.apv>3&&(!s.isie||!s.ismac||s.apv>=5)){if(s.b&&s.b.attachEvent)"
+"s.b.attachEvent('onclick',s.bc);else if(s.b&&s.b.addEventListener)s.b.addEventListener('click',s.bc,false);else s.eh(s.wd,'onload',0,s.wdl)}};s.vs=function(x){var s=this,v=s.visitorSampling,g=s.vis"
+"itorSamplingGroup,k='s_vsn_'+s.un+(g?'_'+g:''),n=s.c_r(k),e=new Date,y=e.getYear();e.setYear(y+10+(y<1900?1900:0));if(v){v*=100;if(!n){if(!s.c_w(k,x,e))return 0;n=x}if(n%10000>v)return 0}return 1};"
+"s.dyasmf=function(t,m){if(t&&m&&m.indexOf(t)>=0)return 1;return 0};s.dyasf=function(t,m){var s=this,i=t?t.indexOf('='):-1,n,x;if(i>=0&&m){var n=t.substring(0,i),x=t.substring(i+1);if(s.pt(x,',','dy"
+"asmf',m))return n}return 0};s.uns=function(){var s=this,x=s.dynamicAccountSelection,l=s.dynamicAccountList,m=s.dynamicAccountMatch,n,i;s.un=s.un.toLowerCase();if(x&&l){if(!m)m=s.wd.location.host;if"
+"(!m.toLowerCase)m=''+m;l=l.toLowerCase();m=m.toLowerCase();n=s.pt(l,';','dyasf',m);if(n)s.un=n}i=s.un.indexOf(',');s.fun=i<0?s.un:s.un.substring(0,i)};s.sa=function(un){var s=this;s.un=un;if(!s.oun"
+")s.oun=un;else if((','+s.oun+',').indexOf(','+un+',')<0)s.oun+=','+un;s.uns()};s.m_i=function(n,a){var s=this,m,f=n.substring(0,1),r,l,i;if(!s.m_l)s.m_l=new Object;if(!s.m_nl)s.m_nl=new Array;m=s.m"
+"_l[n];if(!a&&m&&m._e&&!m._i)s.m_a(n);if(!m){m=new Object,m._c='s_m';m._in=s.wd.s_c_in;m._il=s._il;m._il[m._in]=m;s.wd.s_c_in++;m.s=s;m._n=n;m._l=new Array('_c','_in','_il','_i','_e','_d','_dl','s',"
+"'n','_r','_g','_g1','_t','_t1','_x','_x1','_rs','_rr','_l');s.m_l[n]=m;s.m_nl[s.m_nl.length]=n}else if(m._r&&!m._m){r=m._r;r._m=m;l=m._l;for(i=0;i<l.length;i++)if(m[l[i]])r[l[i]]=m[l[i]];r._il[r._i"
+"n]=r;m=s.m_l[n]=r}if(f==f.toUpperCase())s[n]=m;return m};s.m_a=new Function('n','g','e','if(!g)g=\"m_\"+n;var s=s_c_il['+s._in+'],c=s[g+\"_c\"],m,x,f=0;if(!c)c=s.wd[\"s_\"+g+\"_c\"];if(c&&s_d)s[g]="
+"new Function(\"s\",s_ft(s_d(c)));x=s[g];if(!x)x=s.wd[\\'s_\\'+g];if(!x)x=s.wd[g];m=s.m_i(n,1);if(x&&(!m._i||g!=\"m_\"+n)){m._i=f=1;if((\"\"+x).indexOf(\"function\")>=0)x(s);else s.m_m(\"x\",n,x,e)}"
+"m=s.m_i(n,1);if(m._dl)m._dl=m._d=0;s.dlt();return f');s.m_m=function(t,n,d,e){t='_'+t;var s=this,i,x,m,f='_'+t,r=0,u;if(s.m_l&&s.m_nl)for(i=0;i<s.m_nl.length;i++){x=s.m_nl[i];if(!n||x==n){m=s.m_i(x"
+");u=m[t];if(u){if((''+u).indexOf('function')>=0){if(d&&e)u=m[t](d,e);else if(d)u=m[t](d);else u=m[t]()}}if(u)r=1;u=m[t+1];if(u&&!m[f]){if((''+u).indexOf('function')>=0){if(d&&e)u=m[t+1](d,e);else i"
+"f(d)u=m[t+1](d);else u=m[t+1]()}}m[f]=1;if(u)r=1}}return r};s.m_ll=function(){var s=this,g=s.m_dl,i,o;if(g)for(i=0;i<g.length;i++){o=g[i];if(o)s.loadModule(o.n,o.u,o.d,o.l,o.e,1);g[i]=0}};s.loadMod"
+"ule=function(n,u,d,l,e,ln){var s=this,m=0,i,g,o=0,f1,f2,c=s.h?s.h:s.b,b,tcf;if(n){i=n.indexOf(':');if(i>=0){g=n.substring(i+1);n=n.substring(0,i)}else g=\"m_\"+n;m=s.m_i(n)}if((l||(n&&!s.m_a(n,g)))"
+"&&u&&s.d&&c&&s.d.createElement){if(d){m._d=1;m._dl=1}if(ln){if(s.ssl)u=s.rep(u,'http:','https:');i='s_s:'+s._in+':'+n+':'+g;b='var s=s_c_il['+s._in+'],o=s.d.getElementById(\"'+i+'\");if(s&&o){if(!o"
+".l&&s.wd.'+g+'){o.l=1;if(o.i)clearTimeout(o.i);o.i=0;s.m_a(\"'+n+'\",\"'+g+'\"'+(e?',\"'+e+'\"':'')+')}';f2=b+'o.c++;if(!s.maxDelay)s.maxDelay=250;if(!o.l&&o.c<(s.maxDelay*2)/100)o.i=setTimeout(o.f"
+"2,100)}';f1=new Function('e',b+'}');tcf=new Function('s','c','i','u','f1','f2','var e,o=0;try{o=s.d.createElement(\"script\");if(o){o.type=\"text/javascript\";'+(n?'o.id=i;o.defer=true;o.onload=o.o"
+"nreadystatechange=f1;o.f2=f2;o.l=0;':'')+'o.src=u;c.appendChild(o);'+(n?'o.c=0;o.i=setTimeout(f2,100)':'')+'}}catch(e){o=0}return o');o=tcf(s,c,i,u,f1,f2)}else{o=new Object;o.n=n+':'+g;o.u=u;o.d=d;"
+"o.l=l;o.e=e;g=s.m_dl;if(!g)g=s.m_dl=new Array;i=0;while(i<g.length&&g[i])i++;g[i]=o}}else if(n){m=s.m_i(n);m._e=1}return m};s.voa=function(vo,r){var s=this,l=s.va_g,i,k,v,x;for(i=0;i<l.length;i++){"
+"k=l[i];v=vo[k];if(v||vo['!'+k]){if(!r&&(k==\"contextData\"||k==\"retrieveLightData\")&&s[k])for(x in s[k])if(!v[x])v[x]=s[k][x];s[k]=v}}};s.vob=function(vo){var s=this,l=s.va_g,i,k;for(i=0;i<l.leng"
+"th;i++){k=l[i];vo[k]=s[k];if(!vo[k])vo['!'+k]=1}};s.dlt=new Function('var s=s_c_il['+s._in+'],d=new Date,i,vo,f=0;if(s.dll)for(i=0;i<s.dll.length;i++){vo=s.dll[i];if(vo){if(!s.m_m(\"d\")||d.getTime"
+"()-vo._t>=s.maxDelay){s.dll[i]=0;s.t(vo)}else f=1}}if(s.dli)clearTimeout(s.dli);s.dli=0;if(f){if(!s.dli)s.dli=setTimeout(s.dlt,s.maxDelay)}else s.dll=0');s.dl=function(vo){var s=this,d=new Date;if("
+"!vo)vo=new Object;s.vob(vo);vo._t=d.getTime();if(!s.dll)s.dll=new Array;s.dll[s.dll.length]=vo;if(!s.maxDelay)s.maxDelay=250;s.dlt()};s.track=s.t=function(vo){var s=this,trk=1,tm=new Date,sed=Math&"
+"&Math.random?Math.floor(Math.random()*10000000000000):tm.getTime(),sess='s'+Math.floor(tm.getTime()/10800000)%10+sed,y=tm.getYear(),vt=tm.getDate()+'/'+tm.getMonth()+'/'+(y<1900?y+1900:y)+' '+tm.ge"
+"tHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' '+tm.getDay()+' '+tm.getTimezoneOffset(),tcf,tfs=s.gtfs(),ta=-1,q='',qs='',code='',vb=new Object;s.gl(s.vl_g);s.uns();s.m_ll();if(!s.td){var tl=tf"
+"s.location,a,o,i,x='',c='',v='',p='',bw='',bh='',j='1.0',k=s.c_w('s_cc','true',0)?'Y':'N',hp='',ct='',pn=0,ps;if(String&&String.prototype){j='1.1';if(j.match){j='1.2';if(tm.setUTCDate){j='1.3';if(s"
+".isie&&s.ismac&&s.apv>=5)j='1.4';if(pn.toPrecision){j='1.5';a=new Array;if(a.forEach){j='1.6';i=0;o=new Object;tcf=new Function('o','var e,i=0;try{i=new Iterator(o)}catch(e){}return i');i=tcf(o);if"
+"(i&&i.next)j='1.7'}}}}}if(s.apv>=4)x=screen.width+'x'+screen.height;if(s.isns||s.isopera){if(s.apv>=3){v=s.n.javaEnabled()?'Y':'N';if(s.apv>=4){c=screen.pixelDepth;bw=s.wd.innerWidth;bh=s.wd.innerH"
+"eight}}s.pl=s.n.plugins}else if(s.isie){if(s.apv>=4){v=s.n.javaEnabled()?'Y':'N';c=screen.colorDepth;if(s.apv>=5){bw=s.d.documentElement.offsetWidth;bh=s.d.documentElement.offsetHeight;if(!s.ismac&"
+"&s.b){tcf=new Function('s','tl','var e,hp=0;try{s.b.addBehavior(\"#default#homePage\");hp=s.b.isHomePage(tl)?\"Y\":\"N\"}catch(e){}return hp');hp=tcf(s,tl);tcf=new Function('s','var e,ct=0;try{s.b."
+"addBehavior(\"#default#clientCaps\");ct=s.b.connectionType}catch(e){}return ct');ct=tcf(s)}}}else r=''}if(s.pl)while(pn<s.pl.length&&pn<30){ps=s.fl(s.pl[pn].name,100)+';';if(p.indexOf(ps)<0)p+=ps;p"
+"n++}s.resolution=x;s.colorDepth=c;s.javascriptVersion=j;s.javaEnabled=v;s.cookiesEnabled=k;s.browserWidth=bw;s.browserHeight=bh;s.connectionType=ct;s.homepage=hp;s.plugins=p;s.td=1}if(vo){s.vob(vb)"
+";s.voa(vo)}if((vo&&vo._t)||!s.m_m('d')){if(s.usePlugins)s.doPlugins(s);var l=s.wd.location,r=tfs.document.referrer;if(!s.pageURL)s.pageURL=l.href?l.href:l;if(!s.referrer&&!s._1_referrer){s.referrer"
+"=r;s._1_referrer=1}s.m_m('g');if(s.lnk||s.eo){var o=s.eo?s.eo:s.lnk;if(!o)return '';var p=s.pageName,w=1,t=s.ot(o),n=s.oid(o),x=o.s_oidt,h,l,i,oc;if(s.eo&&o==s.eo){while(o&&!n&&t!='BODY'){o=o.paren"
+"tElement?o.parentElement:o.parentNode;if(!o)return '';t=s.ot(o);n=s.oid(o);x=o.s_oidt}oc=o.onclick?''+o.onclick:'';if((oc.indexOf(\"s_gs(\")>=0&&oc.indexOf(\".s_oc(\")<0)||oc.indexOf(\".tl(\")>=0)r"
+"eturn ''}if(n)ta=o.target;h=s.oh(o);i=h.indexOf('?');h=s.linkLeaveQueryString||i<0?h:h.substring(0,i);l=s.linkName;t=s.linkType?s.linkType.toLowerCase():s.lt(h);if(t&&(h||l))q+='&pe=lnk_'+(t=='d'||"
+"t=='e'?s.ape(t):'o')+(h?'&pev1='+s.ape(h):'')+(l?'&pev2='+s.ape(l):'');else trk=0;if(s.trackInlineStats){if(!p){p=s.pageURL;w=0}t=s.ot(o);i=o.sourceIndex;if(s.gg('objectID')){n=s.gg('objectID');x=1"
+";i=1}if(p&&n&&t)qs='&pid='+s.ape(s.fl(p,255))+(w?'&pidt='+w:'')+'&oid='+s.ape(s.fl(n,100))+(x?'&oidt='+x:'')+'&ot='+s.ape(t)+(i?'&oi='+i:'')}}if(!trk&&!qs)return '';s.sampled=s.vs(sed);if(trk){if(s"
+".sampled)code=s.mr(sess,(vt?'&t='+s.ape(vt):'')+s.hav()+q+(qs?qs:s.rq()),0,ta);qs='';s.m_m('t');if(s.p_r)s.p_r();s.referrer=s.lightProfileID=s.retrieveLightProfiles=s.deleteLightProfiles=''}s.sq(qs"
+");}else{s.dl(vo);}if(vo)s.voa(vb,1);s.lnk=s.eo=s.linkName=s.linkType=s.wd.s_objectID=s.ppu=s.pe=s.pev1=s.pev2=s.pev3='';if(s.pg)s.wd.s_lnk=s.wd.s_eo=s.wd.s_linkName=s.wd.s_linkType='';return code};"
+"s.trackLink=s.tl=function(o,t,n,vo){var s=this;s.lnk=s.co(o);s.linkType=t;s.linkName=n;s.t(vo)};s.trackLight=function(p,ss,i,vo){var s=this;s.lightProfileID=p;s.lightStoreForSeconds=ss;s.lightIncre"
+"mentBy=i;s.t(vo)};s.jsLoaded=function(){var s=this,x;if(s.lmq)for(i=0;i<s.lmq.length;i++){x=s.lmq[i];s.loadModule(x.n,x.u,x.d)}if(s.onLoad)s.onLoad(s);if(s.tq)for(i=0;i<s.tq.length;i++)s.t(s.tq[i])"
+"};s.wd=window;s.ssl=(s.wd.location.protocol.toLowerCase().indexOf('https')>=0);s.d=document;s.b=s.d.body;if(s.d.getElementsByTagName){s.h=s.d.getElementsByTagName('HEAD');if(s.h)s.h=s.h[0]}s.n=navi"
+"gator;s.u=s.n.userAgent;s.ns6=s.u.indexOf('Netscape6/');var apn=s.n.appName,v=s.n.appVersion,ie=v.indexOf('MSIE '),o=s.u.indexOf('Opera '),i;if(v.indexOf('Opera')>=0||o>0)apn='Opera';s.isie=(apn=='"
+"Microsoft Internet Explorer');s.isns=(apn=='Netscape');s.isopera=(apn=='Opera');s.ismac=(s.u.indexOf('Mac')>=0);if(o>0)s.apv=parseFloat(s.u.substring(o+6));else if(ie>0){s.apv=parseInt(i=v.substrin"
+"g(ie+5));if(s.apv>3)s.apv=parseFloat(i)}else if(s.ns6>0)s.apv=parseFloat(s.u.substring(s.ns6+10));else s.apv=parseFloat(v);s.em=0;if(s.em.toPrecision)s.em=3;else if(String.fromCharCode){i=escape(St"
+"ring.fromCharCode(256)).toUpperCase();s.em=(i=='%C4%80'?2:(i=='%U0100'?1:0))}if(s.oun)s.sa(s.oun);s.sa(un);s.vl_l='dynamicVariablePrefix,visitorID,vmk,visitorMigrationKey,visitorMigrationServer,vis"
+"itorMigrationServerSecure,ppu,charSet,visitorNamespace,cookieDomainPeriods,cookieLifetime,pageName,pageURL,referrer,currencyCode';s.va_l=s.sp(s.vl_l,',');s.vl_mr=s.vl_m='charSet,visitorNamespace,co"
+"okieDomainPeriods,cookieLifetime,contextData,lightProfileID,lightStoreForSeconds,lightIncrementBy';s.vl_t=s.vl_l+',variableProvider,channel,server,pageType,transactionID,purchaseID,campaign,state,z"
+"ip,events,events2,products,linkName,linkType,contextData,lightProfileID,lightStoreForSeconds,lightIncrementBy,retrieveLightProfiles,deleteLightProfiles,retrieveLightData';var n;for(n=1;n<=75;n++){s"
+".vl_t+=',prop'+n+',eVar'+n;s.vl_m+=',prop'+n+',eVar'+n}for(n=1;n<=5;n++)s.vl_t+=',hier'+n;for(n=1;n<=3;n++)s.vl_t+=',list'+n;s.va_m=s.sp(s.vl_m,',');s.vl_l2=',tnt,pe,pev1,pev2,pev3,resolution,color"
+"Depth,javascriptVersion,javaEnabled,cookiesEnabled,browserWidth,browserHeight,connectionType,homepage,plugins';s.vl_t+=s.vl_l2;s.va_t=s.sp(s.vl_t,',');s.vl_g=s.vl_t+',trackingServer,trackingServerS"
+"ecure,trackingServerBase,fpCookieDomainPeriods,disableBufferedRequests,mobile,visitorSampling,visitorSamplingGroup,dynamicAccountSelection,dynamicAccountList,dynamicAccountMatch,trackDownloadLinks,"
+"trackExternalLinks,trackInlineStats,linkLeaveQueryString,linkDownloadFileTypes,linkExternalFilters,linkInternalFilters,linkTrackVars,linkTrackEvents,linkNames,lnk,eo,lightTrackVars,_1_referrer,un';"
+"s.va_g=s.sp(s.vl_g,',');s.pg=pg;s.gl(s.vl_g);s.contextData=new Object;s.retrieveLightData=new Object;if(!ss)s.wds();if(pg){s.wd.s_co=function(o){s_gi(\"_\",1,1).co(o)};s.wd.s_gs=function(un){s_gi(u"
+"n,1,1).t()};s.wd.s_dc=function(un){s_gi(un,1).t()}}",
w=window,l=w.s_c_il,n=navigator,u=n.userAgent,v=n.appVersion,e=v.indexOf('MSIE '),m=u.indexOf('Netscape6/'),a,i,x,s;if(un){un=un.toLowerCase();if(l)for(i=0;i<l.length;i++){s=l[i];x=s._c;if((!x||x=='s_c'||x=='s_l')&&(s.oun==un||(s.fs&&s.sa&&s.fs(s.oun,un)))){if(s.sa)s.sa(un);if(x=='s_c')return s}else s=0}}w.s_an='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
w.s_sp=new Function("x","d","var a=new Array,i=0,j;if(x){if(x.split)a=x.split(d);else if(!d)for(i=0;i<x.length;i++)a[a.length]=x.substring(i,i+1);else while(i>=0){j=x.indexOf(d,i);a[a.length]=x.subst"
+"ring(i,j<0?x.length:j);i=j;if(i>=0)i+=d.length}}return a");
w.s_jn=new Function("a","d","var x='',i,j=a.length;if(a&&j>0){x=a[0];if(j>1){if(a.join)x=a.join(d);else for(i=1;i<j;i++)x+=d+a[i]}}return x");
w.s_rep=new Function("x","o","n","return s_jn(s_sp(x,o),n)");
w.s_d=new Function("x","var t='`^@$#',l=s_an,l2=new Object,x2,d,b=0,k,i=x.lastIndexOf('~~'),j,v,w;if(i>0){d=x.substring(0,i);x=x.substring(i+2);l=s_sp(l,'');for(i=0;i<62;i++)l2[l[i]]=i;t=s_sp(t,'');d"
+"=s_sp(d,'~');i=0;while(i<5){v=0;if(x.indexOf(t[i])>=0) {x2=s_sp(x,t[i]);for(j=1;j<x2.length;j++){k=x2[j].substring(0,1);w=t[i]+k;if(k!=' '){v=1;w=d[b+l2[k]]}x2[j]=w+x2[j].substring(1)}}if(v)x=s_jn("
+"x2,'');else{w=t[i]+' ';if(x.indexOf(w)>=0)x=s_rep(x,w,t[i]);i++;b+=62}}}return x");
w.s_fe=new Function("c","return s_rep(s_rep(s_rep(c,'\\\\','\\\\\\\\'),'\"','\\\\\"'),\"\\n\",\"\\\\n\")");
w.s_fa=new Function("f","var s=f.indexOf('(')+1,e=f.indexOf(')'),a='',c;while(s>=0&&s<e){c=f.substring(s,s+1);if(c==',')a+='\",\"';else if((\"\\n\\r\\t \").indexOf(c)<0)a+=c;s++}return a?'\"'+a+'\"':"
+"a");
w.s_ft=new Function("c","c+='';var s,e,o,a,d,q,f,h,x;s=c.indexOf('=function(');while(s>=0){s++;d=1;q='';x=0;f=c.substring(s);a=s_fa(f);e=o=c.indexOf('{',s);e++;while(d>0){h=c.substring(e,e+1);if(q){i"
+"f(h==q&&!x)q='';if(h=='\\\\')x=x?0:1;else x=0}else{if(h=='\"'||h==\"'\")q=h;if(h=='{')d++;if(h=='}')d--}if(d>0)e++}c=c.substring(0,s)+'new Function('+(a?a+',':'')+'\"'+s_fe(c.substring(o+1,e))+'\")"
+"'+c.substring(e+1);s=c.indexOf('=function(')}return c;");
c=s_d(c);if(e>0){a=parseInt(i=v.substring(e+5));if(a>3)a=parseFloat(i)}else if(m>0)a=parseFloat(u.substring(m+10));else a=parseFloat(v);if(a<5||v.indexOf('Opera')>=0||u.indexOf('Opera')>=0)c=s_ft(c);if(!s){s=new Object;if(!w.s_c_in){w.s_c_il=new Array;w.s_c_in=0}s._il=w.s_c_il;s._in=w.s_c_in;s._il[s._in]=s;w.s_c_in++;}s._c='s_c';(new Function("s","un","pg","ss",c))(s,un,pg,ss);return s}


// Endeca Refinement links
$('a[endeca-record="yes"]').live('click', function (event) {
     Moen.util.Omniture.trackData({
	name: 'Endeca Dimension',
	type: 'o',
	data: {
		eVar54: $(this).attr('dimension-name'),
                eVar55: $(this).attr('dimension-name') + '||' + $(this).attr('dimension-value')
        }
     });
     return true;
});
