/*
Source: array.js
*/
if (!Array.keys) {
	Array.prototype.keys = function() {
		retVal = [];

		for (item in this)
			retVal.push(item);

		return retVal;
	}
}

if (!Array.values) {
	Array.prototype.values = function() {
		retVal = [];

		for (item in this)
			retVal.push(this[item]);

		return retVal;
	}
}

if (!Array.find) {
	Array.prototype.find = function(obj) {
		retVal = false;

		for (var key in this) {
			value = this[key];

			if (value.toString() == obj.toString()) {
				retVal = true;
				break;
			}
		}

		return retVal;
	}
}


/*
Source: querystring.js
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}


/*
Source: digitas.js
*/
if (YAHOO) {
	var digitas = YAHOO.namespace('com.digitas');

	/**
	*	This is an optionally recursive function that looks for an object loaded by name
	*	@method com.digitas.isLoaded
	*	@return <Object> returns the first found instance of an object with a name specified by obj
	*/
	digitas.isLoaded = function(obj,base,container){
		var retVal = false;
		var item = '';
		var traverse = ((arguments.length == 4) ? arguments[3] : true);

		var currentNamespace = ((typeof base == 'string') ? YAHOO.namespace(base) : base);

		YAHOO.log('Argument 3: ' + arguments[3],'debug','com.digitas.isLoaded');
		YAHOO.log('Traversing: ' + traverse,'debug','com.digitas.isLoaded');
		YAHOO.log('Found: ' + ((typeof(eval('currentNamespace.'+obj)) != 'undefined') ? true : false),'debug','com.digitas.isLoaded');

		//if object is found, return from function
		try {
			if (typeof(eval('currentNamespace.'+obj)) != 'undefined') {
				container.setData(eval('currentNamespace.'+obj));
				return true;
			}
		} catch(er) {
			YAHOO.log(er.toString(),'error','com.digitas.isLoaded');
		}

		YAHOO.log('Keep looking','debug','com.digitas.isLoaded');

		//cycle through current namespace for next level
		if (traverse) {
			for (item in currentNamespace) {
				YAHOO.log('Item ' + base + '.' + item + '<->' + typeof(item),'debug','com.digitas.isLoaded');

				retVal = digitas.isLoaded(obj,base + '.' + item,container,true);

				if (retVal)
					break;
			}
		}

		return retVal;
	}

	/**
	*	This is a function that merges a string with a dataset.  The dataset is expected to be an associative array.
	*	@method com.digitas.merge
	*	@param	<String> the string to be merged
	*	@param	<Array>	the dataset
	*	@return <String> returns the merged string
	*/
	digitas.merge = function(str,arr) {
		var retVal = str;

		for (key in arr.keys)
			retVal = retVal.replace(key,arr[key]);

		return retVal;
	}

	/**
	*	This function sets up a <em>YAHOO.widget.LogReader</em> on the page.
	*	@method	document.debug
	*	@param <String> The URL to send the user to after the delay
	*	@param <Decimal> The amount of time to delay between the click and the change of location in milliseconds
	*/
		digitas.clickThru = function(url,delay){
			if (!delay)
				delay = 500;

			setTimeout('document.location.href = "' + url + '"',delay);
		}

	/**
	*	This function sets up a <em>YAHOO.widget.LogReader</em> on the page.
	*	@method	document.debug
	*/
		document.debug = function(config){
			if (!document.getElementById('logContainer')) {
				var logReaderContainer = document.createElement('div');
				logReaderContainer.setAttribute('id','logContainer');
				document.body.appendChild(logReaderContainer);

				var myLogReader = null;
				if (config)
					myLogReader = new YAHOO.widget.LogReader('logContainer',config);
				else
					myLogReader = new YAHOO.widget.LogReader('logContainer',{newestOnTop:false});
			}
		}

	/* Shortcuts */
	if (typeof(clickThru) == 'undefined')
		clickThru = digitas.clickThru;

}


/*
Source: s_code.js
*/
/* SiteCatalyst code version: H.11.
Copyright 1997-2005 Omniture, Inc.
More info available at http://www.omniture.com */
/* Specify the Report Suite ID(s) to track here */
/* updated 3.28.07 to include deep linking hash fix */

/*
MAKE SURE YOU DEFINE s_account IN A JAVASCRIPT FILE OR INLINE BEFORE INCLUDING THIS FILE

example: var s_account = 'amexnetdev';

*/
if (!s_account)
	var s_account = '@omniture.accounts@';

var s=s_gi(s_account)
/* CONFIG SECTION */
s.charSet=""
s.currencyCode="USD"
s.trackDownloadLinks=false
s.linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls"
s.trackInlineStats=true
s.linkLeaveQueryString=false
s.linkTrackVars="None"
s.linkTrackEvents="None"
s.trackExternalLinks=false
s.linkInternalFilters="javascript:,amexnetwork.com,amexnetwork.co.uk,goingonce.mylifemycard.com"
s.linkInternalFilters+=","+window.location.hostname
s.visitorNamespace="americanexpress"

s.rmvParams=""
s.iaParams="sorted_index,section,destpage"
var s_rmvars=new Array()
var s_rmact=""
var s_rmi=0

function s_csi(s) {
	var u=s.pageURL
	var s_csi,s_csi1="",s_csi2="",s_csi3="",s_csi4=""
	var s_p1,s_p2,s_p3,s_p4
	s_csi=s.getQueryParam('csi');
	if(s_csi){
		s_p1=s_csi.indexOf("/",0);
		if(s_p1==-1)(s_p1=s_csi.length)
		s_csi1=s_csi.substring(0,s_p1)
		s_p2=s_csi.indexOf("/",s_p1+1);
		if(s_p2==-1)(s_p2=s_csi.length)
		s_csi2=s_csi.substring(s_p1+1,s_p2)
		s_p3=s_csi.indexOf("/",s_p2+1);
		if(s_p3==-1)(s_p3=s_csi.length)
		s_csi3=s_csi.substring(s_p2+1,s_p3)
		s_p4=s_csi.indexOf("/",s_p3+1);
		if(s_p4==-1)(s_p4=s_csi.length)
		s_csi4=s_csi.substring(s_p3+1,s_p4)
		u=s.insQP(u,"cardtype",s_csi1,"csi")
		u=s.insQP(u,"entrypoint",s_csi2,"csi")
		u=s.insQP(u,"basic_supp",s_csi3,"csi")
		u=s.insQP(u,"pagenumber",s_csi4,"csi")
	}
	return u;
}
function omn_rmvar(v,u) {
	i=s_rmvars.length
	s_rmvars[i]=new s_rmobj(v,u)
}
function s_rmobj(v,u) {
	this.v=v;this.u=u;return this;
}
function omn_rmaction(a,c) {
	var i,v,u,s=s_gi(s_account)
	s.prop21=s.eVar4=a
	s.prop22=s.eVar5=a+">>"+c
	if(s_rmact!=s.prop22)s_rmi=0
	s_rmact=s.prop22
	s_rmi++
	if(s_rmi<50){
		s.linkTrackVars='prop21,prop22,prop49,eVar4,eVar5'
		s.linkTrackEvents=''
		s.events=''
		for(i in s_rmvars){
			v=s_rmvars[i]['v']
			u=s_rmvars[i]['u']
			if(v && (v.substring(0,4)=='prop'||v.substring(0,4)=='eVar')){
				s.linkTrackVars=v+','+s.linkTrackVars
				s[v]=u
			}
			if(v && (v=='events')){
				s.linkTrackVars=v+','+s.linkTrackVars
				s.linkTrackEvents=u+','+s.linkTrackEvents
				s.events=s.events?s.events+','+u:u
			}
		}
		s.tl(true,'o','Rich Media Action');
	}
	s_rmvars=new Array()
}

/* Plugin Config */
s.usePlugins=true
function s_doPlugins(s) {
	// s.campaign=s.getQueryParam('cid');
	var qParm = semphonicGetQueryParm("cid");
	 //alert(qParm);
	 if (qParm != null)

	{

  	  // Set the Omniture Campaign Variable to qParm
	    s.campaign=qParm;
 	}


}
s.doPlugins=s_doPlugins



/* SEMPHONIC edits BEGIN */

function semphonicGetQueryParm(qp)
{
	var pos = document.URL.indexOf(qp + "=");
	if (pos == -1)
      	return null;
	pos += qp.length+1;
	if (pos >= document.URL.length)
      	return null;
	var endPos1 = document.URL.indexOf("&", pos);
	var endPos2 = document.URL.indexOf("#", pos);
	if (endPos1 < 0 && endPos2 < 0)
	{
		return unescape(document.URL.substring(pos));
	}
	var endPos = endPos1;
	if (endPos < 0 || (endPos2 >= 0 && endPos2 < endPos1))
		endPos = endPos2;

	return unescape(document.URL.substring(pos, endPos));
}



/* SEMPHONIC edits END */


/* PLUGINS SECTION */
s.rmvQP=new Function("u","p",""
+"var s=this,i,j,k,pa=s.split(p,',');"
+"u=''+u;"
+"for(i in pa){"
	+"p=pa[i];j=0;"
	+"while(j!=-1){"
		+"j=u.indexOf('?'+p+'=');"
		+"if(j==-1)j=u.indexOf('&'+p+'=');"
		+"if(j!=-1){"
			+"k=u.indexOf('&',j+1);"
			+"if(k==-1)k=u.length;"
			+"u=u.substring(0,j+1)+u.substring(k+1,u.length)"
		+"}"
	+"}"
+"}"
+"return u");
s.insQP=new Function("u","p","v","q",""
+"var s=this,i=-1,u=''+u;"
+"if(q){"
	+"i=u.indexOf('?'+q+'=');"
	+"if(i==-1){i=u.indexOf('&'+q+'=')};"
+"}if(i==-1){"
	+"if(u.indexOf('?')==-1){u+='?'}else{u+='&'};"
	+"i=u.length;"
+"}"
+"u=u.substring(0,i+1)+p+'='+v+'&'+u.substring(i+1,u.length);"
+"return u");
s.getQueryParam=new Function("p","d","u",""
+"var s=this,v='',i,t;d=d?d:'';u=u?u:(s.pageURL?s.pageURL:''+s.wd.loc"
+"ation);u=u=='f'?''+s.gtfs().location:u;while(p){i=p.indexOf(',');i="
+"i<0?p.length:i;t=s.p_gpv(p.substring(0,i),u);if(t)v+=v?d+t:t;p=p.su"
+"bstring(i==p.length?i:i+1)}return v");
s.p_gpv=new Function("k","u",""
+"var s=this,v='',i=u.indexOf('?'),q;if(k&&i>-1){q=u.substring(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 ''");
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");
s.c_rr=s.c_r;
s.c_r=new Function("k",""
+"var s=this,d=new Date,v=s.c_rr(k),c=s.c_rr('s_pers'),i,m,e;if(v)ret"
+"urn v;k=s.ape(k);i=c.indexOf(' '+k+'=');c=i<0?s.c_rr('s_sess'):c;i="
+"c.indexOf(' '+k+'=');m=i<0?i:c.indexOf('|',i);e=i<0?i:c.indexOf(';'"
+",i);m=m>0?m:e;v=i<0?'':s.epa(c.substring(i+2+k.length,m<0?c.length:"
+"m));if(m>0&&m!=e)if(parseInt(c.substring(m+1,e<0?c.length:e))<d.get"
+"Time()){d.setTime(d.getTime()-60000);s.c_w(s.epa(k),'',d);v='';}ret"
+"urn v;");
s.c_wr=s.c_w;
s.c_w=new Function("k","v","e",""
+"var s=this,d=new Date,ht=0,pn='s_pers',sn='s_sess',pc=0,sc=0,pv,sv,"
+"c,i,t;d.setTime(d.getTime()-60000);if(s.c_rr(k)) s.c_wr(k,'',d);k=s"
+".ape(k);pv=s.c_rr(pn);i=pv.indexOf(' '+k+'=');if(i>-1){pv=pv.substr"
+"ing(0,i)+pv.substring(pv.indexOf(';',i)+1);pc=1;}sv=s.c_rr(sn);i=sv"
+".indexOf(' '+k+'=');if(i>-1){sv=sv.substring(0,i)+sv.substring(sv.i"
+"ndexOf(';',i)+1);sc=1;}d=new Date;if(e){if(e.getTime()>d.getTime())"
+"{pv+=' '+k+'='+s.ape(v)+'|'+e.getTime()+';';pc=1;}}else{sv+=' '+k+'"
+"='+s.ape(v)+';';sc=1;}if(sc) s.c_wr(sn,sv,0);if(pc){t=pv;while(t){v"
+"ar t1=parseInt(t.substring(t.indexOf('|')+1,t.indexOf(';')));t=t.su"
+"bstring(t.indexOf(';')+1);ht=ht<t1?t1:ht;}d.setTime(ht);s.c_wr(pn,p"
+"v,d);}return v==s.c_r(s.epa(k));");
s.getVisitStart=new Function("c",""
+"var s=this,v=1,t=new Date;t.setTime(t.getTime()+1800000);if(s.c_r(c"
+")){v=0}if(!s.c_w(c,1,t)){s.c_w(c,1,0)}if(!s.c_r(c)){v=0}return v;");
s.setupDynamicObjectIDs=new Function(""
+"var s=this;if(!s.doi){s.doi=1;if(s.apv>3&&(!s.isie||!s.ismac||s.apv"
+">=5)){if(s.wd.attachEvent)s.wd.attachEvent('onload',s.setOIDs);else"
+" if(s.wd.addEventListener)s.wd.addEventListener('load',s.setOIDs,fa"
+"lse);else{s.doiol=s.wd.onload;s.wd.onload=s.setOIDs}}s.wd.s_semapho"
+"re=1}");
s.setOIDs=new Function("e",""
+"var s=s_c_il["+s._in+"],b=s.eh(s.wd,'onload'),o='onclick',l,u,c,x,i"
+",a=new Array;if(s.doiol){if(b)s[b]=s.wd[b];s.doiol(e)}if(s.d.links)"
+"{for(i=0;i<s.d.links.length;i++){l=s.d.links[i];c=l[o]?''+l[o]:'';b"
+"=s.eh(l,o);z=l[b]?''+l[b]:'';u=s.getObjectID(l);if(u&&c.indexOf('s_"
+"objectID')<0&&z.indexOf('s_objectID')<0){u=s.repl(u,'\"','').substri"
+"ng(0,97);l.s_oc=l[o];a[u]=a[u]?a[u]+1:1;x='s_objectID=\"'+u+'_'+a[u"
+"]+'\";return this.s_oc?this.s_oc(e):true';if(s.isns&&s.apv>=5)l.set"
+"Attribute(o,x);l[o]=new Function('e',x)}}}s.wd.s_semaphore=0;return"
+" true");
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");
s.appendList=new Function("L","v","d","u",""
+"var s=this,m=0;if(!L)L='';if(u){var i,n,a=s.split(L,d);for(i in a){"
+"n=a[i];m=m||(u==1?(n==v):(n.toLowerCase()==v.toLowerCase()));}}if(!"
+"m)L=L?L+d+v:v;return L");
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");

/* 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="americanexpressnetwork"
s.trackingServer="omn.americanexpress.com"
s.trackingServerSecure="omns.americanexpress.com"
s.dc=122

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code='',s_objectID;function s_gi(un,pg,ss){var d="function s_dr"
+"(x,o,n){var i=x.indexOf(o);if(i>=0&&x.split)x=(x.split(o)).join(n);"
+"else while(i>=0){x=x.substring(0,i)+n+x.substring(i+o.length);i=x.i"
+"ndexOf(o)}return x}function s_d(x) {var t='`^@$#',l='0123456789ABCD"
+"EFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',d,n=0,b,k,w,i=x.l"
+"astIndexOf('~~');if(i>0){d=x.substring(0,i);x=x.substring(i+2);whil"
+"e(d){w=d;i=d.indexOf('~');if(i>0){w=d.substring(0,i);d=d.substring("
+"i+1)}else d='';b=parseInt(n/62);k=n-b*62;k=t.substring(b,b+1)+l.sub"
+"string(k,k+1);x=s_dr(x,k,w);n++}for(i=0;i<5;i++){w=t.substring(i,i+"
+"1);x=s_dr(x,w+' ',w)}}return x}",c=".substring(~.indexOf(~return ~="
+"f`K(~){`Ls=^u~';`At`g~;$1~.toLowerCase()~`YF`K('e`z`Ls=s_c_il['+@f+"
+"']~};s.~`r $1~.length~`YObject~.toUpperCase~s.wd~.location~')q='~s."
+"apv~s.`v~$d$T~unction~var ~s.pt(~ookieDomainPeriods~,`z,'~while(~.p"
+"rotocol~){$1~);s.~:'')~;@E^Us[k],255)}~=''~javaEnabled~connection^E"
+"~=new ~.lastIndexOf('~tm.get~@5\"$Ns.b.addBehavior('# default# ~onc"
+"lick~ternalFilters~entElement~Name~=='~javascriptVersion~=parseFloa"
+"t(~=s.dynamicAccount~s_c_il['+@f+'].mrq(\"'+un+'\")'~visitor~cookie"
+"~parseInt(~s.^I~o@6oid~browser~else~referrer~colorDepth~String~link"
+"~.host~s.rep(~}catch(e){~','~r=s.m(f)?s[f](~}$1~s.un~s.eo~s.sq~t=s."
+"ot(o)~track~j='1.~)?'Y':'N'~$XURL~@6c_i~s.ismac~lugins~;for(~Type~s"
+".rc[un]~s.b.addEventListener~Download~tfs~resolution~.get@H()~s.eh~"
+"s.isie~s.vl_l~s.vl_t~Height~t,h){t=t?t~isopera~escape(~screen.~s.fl"
+"(~harCode~&&(~variableProvider~s.gg('objectID')~&&s.~:'';h=h?h~e&&l"
+"$cSESSION'~');~f',~Date~name~home$X~s_c2~s.c_r(~s.rl[u~o.href~Lifet"
+"ime~Width~sEnabled~'){q='~transactionID~b.attachEvent~&&l$cNONE'){~"
+"ExternalLinks~_'+~this~charSet~onerror~currencyCode~s=s_gi(~e$PElem"
+"ent~;s.gl(s.vl_g~.parent~Array~lnk~Opera~eval(~.s_~Math.~s.fsg~s.ns"
+"6~docum~s.oun~InlineStats~'0123456789~s[k]=~window~onload~Time~s.ep"
+"a(~s.c_w(~(s.ssl~n=s.oid(o)~LeaveQuery~')>=~&&t~'=')~){n=~+1))~' '+"
+"~s.t()}~\",''),~=s.oh(o);~+(y<1900?~ingServer~true~sess~campaign~li"
+"f~s_gs(~,100)~s.co(~s._in~x in ~='s_~ffset~s.c_d~'&pe~s.gv(~s.qav~s"
+".pl~=(apn~Sampling~sqs',q);~Year(~=s.n.app~(''+~)+'/~',s~'||t~s()+'"
+":'+~a):f(~){v=s.n.~channel~if(~un)~.target~o.value~\".tl(\")~etscap"
+"e~(ns?ns:~s_')t=t~omePage~++}~&&!~')<~){x~1);~e))~'+n~height~events"
+"~trk~random~code~un,~try{~'MSIE ~.src~floor(~s.pg~s.num(~s.ape(~s.c"
+"_gd~s.dc~.inner~page~.set~.fromC~++){~?'':~!='~='+~?'&~+';~(f){~){p"
+"=~>=5)~&&i>~[b](~=l[n];~~f`K ^hfe$g`Lx`V,s=0,e,a,b,c;`P1){e=f`1'\"@"
+"v);b=f`1'\\\\',s);c=f`1\"\\n\",s)`6e<0||(b>=0&&b<$Fe=b`6e<0||(c>=0&"
+"&c<$Fe=c`6e>=0$D+=(e>s?f`0s,e)`T+(e==c?'\\\\n':'\\\\'+f`0e,e@R;s=e+"
+"1}`r `2x+f`0s)}`2f}f`K ^hfa$g`Ls=f`1'(')+1,e=f`1')'),a`V,c;`Ps>=0&&"
+"s<e){c=f`0s,s+1)`6c`g,')a+='\",\"';`A(\"\\n\\r\\t \")`1c)<0)a+=c;s$"
+"A`2a?'\"'+a+'\"':a}f`K ^hf(cc){cc`V+cc;`Lfc='`Lf`YF`K(@v=cc`1';',cc"
+"`1'{')),e=cc`Z}'),o,a,d,q,c,f,h,x;fc+=^hfa(cc)+',\"`Ls`C;';c=cc`0s+"
+"1,e);s=c`1'f`K^c`Ps>=0){d=1;q`V;x=0;f=c`0s);a=^hfa(f);e=o=c`1'{@v);"
+"e++;`Pd>0){h=c`0e,e+1)`6q`Rh==q$Bx)q`V`6h`g\\\\')x=x?0:1;`r x=0}`r{"
+"$1h`g\"'||h==\"'\")q=h`6h`g{')d++`6h`g}')d--^1d>0)e$Ac=c`00,s)+'new"
+" F`K('+(a?a+`z`T+'\"'+^hfe(c`0o+1,$F+'\")'+c`0e+$Es=c`1'f`K')}fc+=^"
+"hfe(c)$f`2s\");';@5fc);`2f}f`K s_co(o){`L^y\"^ \",1,$E`2@eo)}f`K @c"
+"$2{`L^y$M1,$E`2@Tf`K s_dc($2{`L^y$M$E`2@Tf`K s_c($Mpg,ss`4;s._c@hc'"
+";`E=@F`6!`E^An){`E^Al`Y@2;`E^An=0;}s._il=`E^Al;@f=`E^An;s._il[@f]=s"
+";`E^An++;s.m`3m){`2@tm)`1'{$C0`9fl`3x,l){`2x?@tx)`00,l):x`9co`3o`R!"
+"o)`2o;`Ln`C,x^D@go)$1x`1'select$C0&&x`1'filter$C0)n[x]=o[x];`2n`9nu"
+"m`3x$D`V+x^D`Lp=0;p<x`B;p++)$1(@D')`1x`0p,p@R<0)`20;`21`9rep`3x,o,n"
+"){`Li=x`1o);`Px$j=0$D=x`00,i)+n+x`0i+o`B);i=x`1o,i+n`B)}`2x`9ape`3x"
+"`4,h=@DABCDEF',i,c=s.^v,n,l,e,y`V;c=c?c`D():''`6x$D`V+x`6c`gAUTO'^W"
+"'').c^VAt){for(i=0;i<x`B;i$ac=x`0i,i+$En=x.c^VAt(i)`6n>127){l=0;e`V"
+";`Pn||l<4){e=h`0n%16,n%16+1)+e;n=`nn/16);l$Ay+='%u'+e}`Ac`g+')y+='%"
+"2B';`r y+=^Sc)}x=y}`r{x=x?`x^S''+x),'+`z%2B'):x`6x&&c^Zem==1&&x`1'%"
+"u$C0&&x`1'%U$C0){i=x`1'%^c`Pi>=0){i++`6h`08)`1x`0i,i+1)`D())>=0)`2x"
+"`00,i)+'u00'+x`0i);i=x`1'%',i)}}}}`2x`9epa`3x`4;`2x?un^S`x''+x,'+`z"
+" ')):x`9pt`3x,d,f,a`4,t=x,z=0,y,r;`Pt){y=t`1d);y=y<0?t`B:y;t=t`00,y"
+");^0t,@yt,a)`6r)`2r;z+=y+d`B;t=x`0z,x`B);t=z<x`B?t:''}`2''`9isf`3t,"
+"a){`Lc=a`1':')`6c>=0)a=a`00,c)`6t`00,2)`g$8`02);`2(t!`V@O==a)`9fsf`"
+"3t,a`4`6`Ma`Ois^dt))@8+=(@8!`V?`z`T+t;`20`9fs`3x,f`4;@8`V;`Mx`Ofs^d"
+"f);`2@8`9c_d`V;$Uf`3t,a`4`6!$St))`21;`20`9c_gd`3`4,d=`E`F`w^f,n=s.f"
+"pC`N,p`6!n)n=s.c`N`6d$B@j@Qn?`nn):2;n=n>2?n:2;p=d`Z.')`6p>=0){`Pp>="
+"0&&n>1$hd`Z.',p-$En--}@j=p>0&&`Md,'.`zc_gd^d0)?d`0p):d}}`2@j`9c_r`3"
+"k`4;k=$Tk);`Lc=@Ss.d.`m,i=c`1@Sk+@P,e=i<0?i:c`1';',i),v=i<0$b@Ic`0i"
+"+2+k`B,e<0?c`B:$F;`2v$c[[B]]'?v:''`9c_w`3k,v,e`4,d=$U(),l=s.`m^l,t;"
+"v`V+v;l=l?@tl)`D():''`6^b^rt=(v!`V?`nl?l:0):-60)`6t){e`Y^e;e$Y@H(e^"
+"K+(t*1000))}^1k^rs.d.`m=k+'`Jv!`V?v:'[[B]]')$f path=/;'+(^b?' expir"
+"es$de.toGMT`u()$f'`T+(d?' domain$dd$f'`T;`2^ik)==v}`20`9eh`3o,e,r,f"
+"`4,b='s^te+'^t@f,n=-1,l,i,x`6!^Ll)^Ll`Y@2;l=^Ll^Di=0;i<l`B&&n<0;i++"
+"`Rl[i].o==o&&l[i].e==e)n=i^1n<0@Qi;l[n]`C}x$lx.o=o;x.e=e;f=r?x.b:f`"
+"6r||f$D.b=r?0:o[e];x.o[e]=f^1x.b$D.o[b]=x.b;`2b}`20`9cet`3f,a,t,o,b"
+"`4,r`6`H>=5^W!s.^R||`H>=7))@5'$N^0@ya)`yr=s.m(t)?s[t](e):t(e)}^c`r{"
+"$1^B^Zu`1$O4@N0)r=s.m(b)?s$ka):b(a);`r{^L(`E,'^w',0,o);^0@ya`Seh(`E"
+",'^w',1)}}`2r`9g^Iet`3e`4;`2`o`9g^Ioe`8;^L(@F,\"^w\",1`Se^I=1;`Lc=s"
+".t()`6c)s.d.write(c`Se^I=0;`2@Y'`Sg^Ifb`3a){`2@F`9g^If`3w`4,p=w@1,l"
+"=w`F;`o=w`6p&&p`F!=l&&p`F`w==l`w){`o=p;`2s.g^If(`o)}`2`o`9g^I`3`4`6"
+"!`o){`o=`E`6!s.e^I)`o=s.cet('g^I^d`o,'g^Iet@v.g^Ioe,'g^Ifb')}`2`o`9"
+"mrq`3u`4,l=^j],n,r;^j]=0`6l)for(n=0;n<l`B;n$ar$ls.mr(0,0,r.t,r.u,r."
+"r)}`9mr`3@Z,q,ta,u,rs`4,dc=$V,t1=s.^6@X,t2=s.^6@XSecure,ns=s.`l`fsp"
+"ace,un=u?u:$7s.f$2,unc=`x$M'_`z-'),r`C,l,imn@hi^t($2,im,b,e`6!rs){r"
+"s='http'+@K?'s'`T+'://'+(t1?@K@O2?t2:t1):($7@K?'102':unc))+'.'+($V?"
+"$V:112)+'.2o7.net')@ub/ss/'+^2+'/1/H.11-Pdvu-2/'+@Z+'?[AQB]&ndh=1'+"
+"(q?q`T+'&[AQE]'`6^M$B^B`R`H>5.5)rs=^Urs,4095);`r rs=^Urs,2047)}^1s."
+"d.images&&`H>=3^W!s.^R||`H>=7)^W@9<0||`H>=6.1)`R!s.rc)s.rc`C`6!^F){"
+"^F=1`6!s.rl)s.rl`C;^jn]`Y@2;set@Hout('`k,750)}`r{l=^jn]`6l){r.t=ta;"
+"r.u=un;r.r=rs;l[l`B]=r;`2''}imn+='^t^F;^F$Aim=`E[imn]`6!im)im=`E[im"
+"n]`YImage;im@6l=0;im.@G`YF`K('e`z^u@6l=1;`k);im$P=rs`6rs`1@k=@N0^W!"
+"ta||ta`g_self@wa`g_top'||(`E.^f@Oa==`E.^f))){b=e`Y^e;`P!im@6l&&e^K-"
+"b^K<500)e`Y^e}`2''}`2'<im'+'g sr'+'c=\"'+rs+'\" width=1 $H=1 border"
+"=0 alt=\"\">'`9gg`3v`4;`2`E['s^tv]`9glf`3t,a`Rt`00,2)`g$8`02);`Ls=^"
+"u,v=s.gg(t)`6v)s[t]=v`9gl`3v`4`6$R)`Mv`Ogl^d0)`9gv`3v`4;`2s['vpm^tv"
+"]?s['vpv^tv]:(s[v]?s[v]`T`9havf`3t,a`4,b=t`00,4),x=t`04),n=`nx),k='"
+"g^tt,m='vpm^tt,q=t,v=`ITrackVars,e=`ITrackEvents;@E@lt)`6s.@3||^3){"
+"v=v?v+`z+^N+`z+^N2:''`6v$B`Mv`Ois^dt))s[k]`V`6t`g$I'&&e)@Es.fs(s[k]"
+",e)}s[m]=0`6t`g`lID`Gvid`5^9^og'`U`At`g`s^or'`U`At`gvmk`Gvmt`5^v^oc"
+"e'`6s[k]&&s[k]`D()`gAUTO')@E'ISO8859-1';`As[k]^Zem==2)@E'UTF-8'}`At"
+"`g`l`fspace`Gns`5c`N`Gcdp`5`m^l`Gcl`5^X`Gvvp`5^x`Gcc`5$0`Gch`5^p`Gx"
+"act`5@a`Gv0`5^J`Gx`5`t`Gc`5`h`Gj`5`W`Gv`5`m^n`Gk`5`q^m`Gbw`5`q^P`Gb"
+"h`5`X`Gct`5^g`Ghp`5p^C`Gp';`A$Sx)`Rb`gprop`Gc$G;`Ab`geVar`Gv$G;`Ab`"
+"ghier^oh$G`U^1s[k]@O$c`v`f'@O$c`v^E')@m+='&'+q+'`Js[k]);`2''`9hav`3"
+"`4;@m`V;`M^O`Ohav^d0);`2@m`9lnf`3^Q`7^a`7:'';`Lte=t`1@P`6t@Oe>0&&h`"
+"1t`0te@R>=0)`2t`00,te);`2''`9ln`3h`4,n=`I`fs`6n)`2`Mn`Oln^dh);`2''`"
+"9ltdf`3^Q`7^a`7:'';`Lqi=h`1'?^ch=qi>=0?h`00,qi):h`6t&&h`0h`B-(t`B@R"
+"`g.'+t)`21;`20`9ltef`3^Q`7^a`7:''`6t&&h`1t)>=0)`21;`20`9lt`3h`4,lft"
+"=`I^HFile^Es,lef=`IEx`d,@b=`IIn`d;@b=@b?@b:`E`F`w^f;h=h`7`6s.^6^HLi"
+"nks&&lft&&`Mlft`Oltd^dh))`2'd'`6s.^6^s^Wlef||@b)^W!lef||`Mlef`Olte^"
+"dh))^W!@b||!`M@b`Olte^dh)))`2'e';`2''`9lc`8,b=^L(^u,\"`c\"`S@3=@e^u"
+"`St(`S@3=0`6b)`2^u$ke);`2@Y'`Sbc`8,f`6s.d^Zd.all^Zd.all.cppXYctnr)r"
+"eturn;^3=^z?^z:e$3;@5\"$N$1^3^W^3.tag`f||^3.par`e||^3@1Nod$F@Tcatch"
+"$g}\"`Seo=0'`Soh`3o`4,l=`E`F,h=^k?^k:'',i,j,k,p;i=h`1':^cj=h`1'?^ck"
+"=h`1'/')`6h^Wi<0||(j>=0$jj)||(k>=0$jk))$ho`Q&&o`Q`B>1?o`Q:(l`Q?l`Q`"
+"T;i=l.path^f`Z/^ch=(p?p+'//'`T+(o`w?o`w:(l`w?l`w`T)+(h`00,1)$c/'?l."
+"path^f`00,i<0?0:i@u'`T+h}`2h`9ot`3o){`La=o.type,b=o.tag`f;`2(a&&a`D"
+"?a:b&&b`D?b:^k?'A'`T`D()`9oid`3o`4,^5,p=o`Q,c=o.`c,n`V,x=0`6!`p`R^k"
+"^Wt`gA@w`gAREA')^W!c||!p||p`7`1'javascript$C0))n@V`Ac@Q`xs.rep(`xs."
+"rep@tc,\"\\r@U\"\\n@U\"\\t@U' `z^cx=2}`A$4^Wt`gINPUT@w`gSUBMIT')@Q$"
+"4;x=3}`Ao$P@O`gIMAGE')n=o$P`6n){`p=^Un@d;`pt=x}}`2`p`9rqf`3t,un`4,e"
+"=t`1@P,u=e>=0?`z+t`00,e)+`z:'';`2u&&u`1`z+un+`z)>=0?@It`0e@R:''`9rq"
+"`3un`4,c=un`1`z),v=^i's_sq'),q`V`6c<0)`2`Mv,'&`zrq^d$2;`2`Mun`Orq',"
+"0)`9sqp`3t,a`4,e=t`1@P,q=e<0$b@It`0e+1)`Ssqq[q]`V`6e>=0)`Mt`00,e)`O"
+"@q`20`9sqs`3$Mq`4;^4u[un]=q;`20`9sq`3q`4,k@hsq',v=^ik),x,c=0;^4q`C;"
+"^4u`C;^4q[q]`V;`Mv,'&`zsqp',0);`M^2`O@qv`V^D@g^4u)^4q[^4u[x]]+=(^4q"
+"[^4u[x]]?`z`T+x^D@g^4q)$1x&&^4q[x]^Wx==q||c<2)){v+=(v$e'`T+^4q[x]+'"
+"`Jx);c$A`2@Jk,v,0)`9wdl`8,r=@Y,b=^L(`E,\"@G\"),i,o,oc`6b)r=^u$ke)^D"
+"i=0;i<s.d.`vs`B;i$ao=s.d.`vs[i];oc=o.`c?\"\"+o.`c:\"\"`6(oc`1\"@c\""
+")<0||oc`1\"@6oc(\")>=0)&&oc`1$5<0)^L(o,\"`c\",0,s.lc);}`2r^c`Es`3`4"
+"`6`H>3^W!^M||!^B||`H$i`Rs.b^Z^q)s.^q('`c@v.bc);`As.b&&^G)^G('click@"
+"v.bc,false);`r ^L(`E,'@G',0,`El)}`9vs`3x`4,v=s.`l@p,g=s.`l@pGroup,k"
+"@hvsn^t^2+(g?'^tg`T,n=^ik),e`Y^e,y=e.get@r);e$Y@ry+10@W1900:0))`6v)"
+"{v*=100`6!n`R!@Jk,x,$F`20;n=x^1n%10000>v)`20}`21`9dyasmf`3t,m`Rt&&m"
+"&&m`1t)>=0)`21;`20`9dyasf`3t,m`4,i=t?t`1@P:-1,n,x`6i>=0&&m){`Ln=t`0"
+"0,i),x=t`0i+1)`6`Mx`Odyasm^dm))`2n}`20`9uns`3`4,x`jSelection,l`jLis"
+"t,m`jMatch,n,i;^2=^2`7`6x&&l`R!m)m=`E`F`w`6!m.toLowerCase)m`V+m;l=l"
+"`7;m=m`7;n=`Ml,';`zdyas^dm)`6n)^2=n}i=^2`1`z`Sfun=i<0?^2:^2`00,i)`9"
+"sa`3un`4;^2=un`6!@B)@B=un;`A(`z+@B+`z)`1$2<0)@B+=`z+un;^2s()`9t`3`4"
+",$J=1,tm`Y^e,sed=Math&&@7$K?@7$Q@7$K()*10000000000000):`a@H(),@Z='s"
+"'+@7$Q`a@H()/10800000)%10+sed,y=`a@r),vt=`a^e(@u'+`aMonth(@u'@Wy+19"
+"00:y)+@S`aHour@x`aMinute@x`aSeconds()+@S`aDay()+@S`a@HzoneO@i(),^I="
+"s.g^I(),ta`V,q`V,qs`V@0`Suns()`6!s.td){`Ltl=^I`F,a,o,i,x`V,c`V,v`V,"
+"p`V,bw`V,bh`V,^70',k=@J's_cc`z@Y',0^8,hp`V,ct`V,pn=0,ps`6`u&&`u.pro"
+"totype){^71'`6j.match){^72'`6tm$YUTC^e){^73'`6^M&&^B&&`H$i^74'`6pn."
+"toPrecision){^75';a`Y@2`6a.forEach){^76';i=0;o`C;@5'$Ni`YIterator(o"
+")`y}')`6i&&i.next)^77'}}}}^1`H>=4)x=^Twidth+'x'+^T$H`6s.isns||s.^R`"
+"R`H>=3@z`W(^8`6`H>=4){c=^TpixelDepth;bw=`E$W^m;bh=`E$W^P}}@n=s.n.p^"
+"C}`A^M`R`H>=4@z`W(^8;c=^T`t`6`H$i{bw=s.d.@A`e.o@i^m;bh=s.d.@A`e.o@i"
+"^P`6!^B^Zb){`bh$9^chp=s.b.isH$9(tl^8`y}\");`bclientCaps^cct=s.b.`X`"
+"y}\")}}}`r r`V^1@n)`Ppn<@n`B&&pn<30){ps=^U@n[pn].^f@d$f'`6p`1ps)<0)"
+"p+=ps;pn$As.^J=x;s.`t=c;s.`h=j;s.`W=v;s.`m^n=k;s.`q^m=bw;s.`q^P=bh;"
+"s.`X=ct;s.^g=hp;s.p^C=p;s.td=1^1s.useP^C)s.doP^C(s);`Ll=`E`F,r=^I.@"
+"Aent.`s`6!s.^9)s.^9=l`6!s.`s)s.`s=r`6s.@3||^3){`Lo=^3?^3:s.@3`6!o)`"
+"2'';`Lp=@l'$X`f'),w=1,^5,@L,x=`pt,h,l,i,oc`6^3&&o==^3){`Po$Bn@O$cBO"
+"DY'){o=o.par`e?o.par`e:o@1Node`6!o)`2'';^5;@L;x=`pt}oc=o.`c?''+o.`c"
+":''`6(oc`1\"@c\")>=0&&oc`1\"@6oc(\")<0)||oc`1$5>=0)`2''}ta=n?o$3:1;"
+"h@Vi=h`1'?^ch=`I@M`u||i<0?h:h`00,i);l=`I`f?`I`f:s.ln(h);t=`I^E?`I^E"
+"`7:s.lt(h)`6t^Wh||l))q+=@k=@3^t(t`gd@w`ge'?$Tt):'o')+(h?@kv1`Jh)`T+"
+"(l?@kv2`Jl)`T;`r $J=0`6s.^6@C`R!p$h@l'^9^cw=0}^5;i=o.sourceIndex`6^"
+"Y@Q^Y;x=1;i=1^1p&&n@O)qs='&pid`J^Up,255))+(w$epidt$dw`T+'&oid`J^Un@"
+"d)+(x$eoidt$dx`T+'&ot`Jt)+(i$eoi$di`T}^1!$J$Bqs)`2''`6s.p_r)s.p_r()"
+";`L$L`V`6$J^Zvs(sed))$L=s.mr(@Z,(vt$et`Jvt)`T+s.hav()+q+(qs?qs:s.rq"
+"(^2)),ta`Ssq($J$bqs`S@3=^3=`I`f=`I^E=`E@6objectID=s.ppu`V`6$R)`E@6@"
+"3=`E@6eo=`E@6`v`f=`E@6`v^E`V;`2$L`9tl`3o,t,n`4;s.@3=@eo);`I^E=t;`I`"
+"f=n;s.t()`9ssl=(`E`F`Q`7`1'https@N0`Sd=@Aent;s.b=s.d.body;s.n=navig"
+"ator;s.u=s.n.userAgent;@9=s.u`1'N$66/^c`Lapn@s`f,v@sVersion,ie=v`1$"
+"O'),o=s.u`1'@4 '),i`6v`1'@4@N0||o>0)apn='@4';^M@o`gMicrosoft Intern"
+"et Explorer'`Sisns@o`gN$6'`S^R@o`g@4'`Sismac=(s.u`1'Mac@N0)`6o>0)`H"
+"`is.u`0o+6));`Aie>0){`H=`ni=v`0ie+5))`6`H>3)`H`ii)}`A@9>0)`H`is.u`0"
+"@9+10));`r `H`iv`Sem=0`6`u$Z^V){i=^S`u$Z^V(256))`D(`Sem=(i`g%C4%80'"
+"?2:(i`g%U0100'?1:0))}s.sa(un`Svl_l='`lID,vmk,ppu,^v,`l`fspace,c`N,`"
+"m^l,$X`f,^9,`s,^x,purchaseID';^O=^N+',^X,$0,server,$X^E,^p,@a,state"
+",zip,$I,products,`v`f,`v^E'^D`Ln=1;n<51;n++)^O+=',prop$G+',eVar$G+'"
+",hier$G;^N2='^J,`t,`h,`W,`m^n,`q^m,`q^P,`X,^g,p^C';^O+=`z+^N2;s.vl_"
+"g=^O+',^6^HLinks,^6^s,^6@C,`v@M`u,`v^HFile^Es,`vEx`d,`vIn`d,`v`fs,@"
+"3';$R=pg@0)`6!ss)`Es()}",
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,s;if(un){un=
un.toLowerCase();if(l)for(i=0;i<l.length;i++){s=l[i];if(s._c=='s_c'){
if(s.oun==un)return s;else if(s.fs(s.oun,un)){s.sa(un);return s}}}}
w.eval(d);c=s_d(c);i=c.indexOf("function s_c(");w.eval(c.substring(0,i
));if(!un)return 0;c=c.substring(i);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){eval(c);return new s_c(un,pg,ss)}else s=s_c2f(c);return s(
un,pg,ss)}s_gi()


/*
Source: omniture.js
*/
if (YAHOO) {
	/**
	*	The <em>com.digitas.global.tracking.omniture</em> namespace contains objects that support the DIGITAS
	*	Omniture Framework.
	*	@module com.digitas.global.tracking.omniture
	*	@title DIGITAS Omniture Framework
	*/
	var omniture = YAHOO.namespace('com.digitas.global.tracking.omniture');

	omniture.DataContainerCache = null;

	/**
	*	The <em>com.digitas.global.tracking.omniture.Beacon</em> class represents 1 beacon to be fired by Omniture
	*	@class com.digitas.global.tracking.omniture.Beacon
	*	@param <Object> d the data retrieved from BeaconData
	*/
	omniture.Beacon = function(d) {
		this.properties = {};
		this.reservedProperties = {};

		for (var itm in d) {
			if (typeof(d[itm]) == 'string') {
				if (this.RESERVED_WORDS.find(itm))
					this.reservedProperties[itm] = d[itm];
				else
					this.properties[itm] = d[itm];
			}
		}
	}

	omniture.Beacon.prototype.RESERVED_WORDS = ['type'];

	/**
	*	Returns the set of keys represented within the object based on the format specified
	*	@class	com.digitas.global.tracking.omniture.Beacon
	*	@method	getKeys
	*	@param	<String>	frmt 	the format of one of the keys
	*	@param	<String>	key		the part of the format that should be replace with the key
	*	@return	<String>	the keys represented in the format specified.  If data isn't present, it will return an empty string
	*/
	omniture.Beacon.prototype.getKeys = function(frmt,key) {
		retVal = '';

		if (this.data) {
			for( var itm in this.data )
				retVal += frmt.replace(key,itm);
		}

		return retVal;
	}

	/**
	*	<em>com.digitas.global.tracking.omniture.DataContainer</em> is container to store data loaded from a <em>BeaconData</em> object
	*	@class com.digitas.global.tracking.omniture.DataContainer
	*/
	omniture.DataContainer = function() {}
	omniture.DataContainer.prototype.data = [];

	/**
	*	Sets the data of the object
	*	@class com.digitas.global.tracking.omniture.DataContainer
	*	@method setData
	*	@param <Array> the array to store
	*/
	omniture.DataContainer.prototype.setData = function(d) {
		this.data = d;
	}
	/**
	*	Gets the data of the object
	*	@class com.digitas.global.tracking.omniture.DataContainer
	*	@method setData
	*	@param <Array> the array to store
	*/
	omniture.DataContainer.prototype.getData = function() {
		return this.data;
	}

	/**
	*	<em>com.digitas.global.tracking.omniture.AbstractEventHandler</em> is intended to be an abstract class that
	*	encapsulates the core functionality of an event handler, but should never be instantiated itself.
	*	@class com.digitas.global.tracking.omniture.AbstractEventHandler
	*	@param {String} evt The event type
	*	@param {String} id Unique identifier of the event
	*/
	omniture.AbstractEventHandler = function(evt,id) {
		this.beacon = null;

		YAHOO.log('AbstractEventHandler created','debug','com.digitas.global.tracking.omniture.AbstractEventHandler');
		YAHOO.log('AbstractEventHandler event : '+evt,'debug','com.digitas.global.tracking.omniture.AbstractEventHandler');
		YAHOO.log('AbstractEventHandler id : '+id,'debug','com.digitas.global.tracking.omniture.AbstractEventHandler');

		this.setBeacon(evt,id);
	}


	/**
	*	Intended to be an abstract method, <em>com.digitas.global.tracking.omniture.AbstractEventHandler.track</em> is the default
	*	action of any <strong>EventHandler</strong> that inherits from <em>com.digitas.global.tracking.omniture.AbstractEventHandler</em>
	*	and doesn't override the method.
	*	@class com.digitas.global.tracking.omniture.AbstractEventHandler
	*	@method track
	*	@return boolean Whether beacon was fired correctly
	*/
	omniture.AbstractEventHandler.prototype.track = function(){
		YAHOO.log('AbstractEventHandler fired','info','com.digitas.global.tracking.omniture.AbstractEventHandler');
		return true;
	};

	/**
	*	Set the beacon of the event handler.
	*
	*	@class com.digitas.global.tracking.omniture.AbstractEventHandler
	*	@method setBeacon
	*/
	omniture.AbstractEventHandler.prototype.setBeacon = function(evt,id){
		//get data for beacon if available
		var bContainer = new omniture.DataContainer();

		YAHOO.log("Locating beaconData."+evt+"['"+id+"']",'debug','com.digitas.global.tracking.omniture.AbstractEventHandler');

		if (omniture.DataContainerCache == null) {
			YAHOO.com.digitas.isLoaded('BeaconData','com.digitas',bContainer);
			YAHOO.log('beaconData object found','debug','com.digitas.global.tracking.omniture.AbstractEventHandler');
			omniture.DataContainerCache = bContainer.getData();
		}

		var beaconData = omniture.DataContainerCache;
		var data = eval('beaconData.'+evt+"['"+id+"']");

		if (typeof(data) == 'object') {
			YAHOO.log('Beacon data found','debug','com.digitas.global.tracking.omniture.AbstractEventHandler');
			this.beacon = new omniture.Beacon(data);
		} else {
			YAHOO.log("Unable to locate beaconData."+evt+"['"+id+"']",'error','com.digitas.global.tracking.omniture.AbstractEventHandler');
			throw new Exception("Unable to locate beaconData."+evt+"['"+id+"']");
		}
	};

	/**
	*	<em>com.digitas.global.tracking.omniture.LoadEventHandler</em> is a subclass of <em>com.digitas.global.tracking.omniture.AbstractEventHandler</em>
	*	and is meant to handle the handling of a beacon fired on load of an HTML page.
	*	@class com.digitas.global.tracking.omniture.LoadEventHandler
	*	@param {String} id Unique identifier of the event
	*/
	omniture.LoadEventHandler = function(id) {
		try {
			omniture.LoadEventHandler.superclass.constructor.call(this,'load',id);
		} catch (e) {
			YAHOO.log('Unable to create LoadEventHandler','error','com.digitas.global.tracking.omniture.LoadEventHandler');
		}
	}

	/**
	*	Override of the <em>com.digitas.global.tracking.omniture.AbstractEventHandler.track</em> method.
	*	@class com.digitas.global.tracking.omniture.LoadEventHandler
	*	@method track
	*	@return boolean Whether beacon was fired correctly
	*/
	omniture.LoadEventHandler.track = function(){
		YAHOO.log('in LoadEventHandler','debug','com.digitas.global.tracking.omniture.LoadEventHandler');

		if (document.omnitureFire && s){
			//set each property into Omniture object
			for (var itm in this.beacon.properties) {
				s[itm] = this.beacon.properties[itm];
			}

			//call Omniture page load beacon generation function
			code = s.t();


		} else {
			if (document.omnitureFire)
				throw Exception('Unable to find Omniture library');
		}
	}
	YAHOO.lang.extend(omniture.LoadEventHandler,omniture.AbstractEventHandler,{track : omniture.LoadEventHandler.track});

	/**
	*	<em>com.digitas.global.tracking.omniture.ClickEventHandler</em> is a subclass of <em>com.digitas.global.tracking.omniture.AbstractEventHandler</em>
	*	and is meant to handle the handling of a beacon fired on load of an HTML page.
	*	@class com.digitas.global.tracking.omniture.ClickEventHandler
	*	@param {String} id Unique identifier of the event
	*/
	omniture.ClickEventHandler = function(lnk) {
		this.link = lnk;

		try {
			omniture.ClickEventHandler.superclass.constructor.call(this,'click',lnk.id);
		} catch (e) {
			//see if there are any classes set up within the omniture data
			if (lnk.className) {
				var classes = lnk.className.split(' ');

				for (var i=0; i<classes.length; i++) {
					try {
						this.setBeacon('click',classes[i]);

						//if data is found, move on
						if (this.beacon != null)
							break;
					} catch (e2) {
						//do nothing so loop moves on
					}
				}
			}
		}
		YAHOO.util.Event.addListener(lnk,'click',this.track,this,true);
	}

	/**
	*	Override of the <em>com.digitas.global.tracking.omniture.AbstractEventHandler.track</em> method.
	*	@class com.digitas.global.tracking.omniture.ClickEventHandler
	*	@method track
	*	@return boolean Whether beacon was fired correctly
	*/
	omniture.ClickEventHandler.track = function() {
		var retVal = true;

		YAHOO.log('in ClickEventHandler','debug','com.digitas.global.tracking.omniture.ClickEventHandler');

		if (document.omnitureFire && s) {
			YAHOO.log('ClickEventHandler fired','debug','com.digitas.global.tracking.omniture.ClickEventHandler');

			//initialize
			s.linkTrackVars = '';
			s.linkTrackEvents = 'None';
			s.events = '';

			//see if object has a omnituredata attribute
			if (this.link.getAttribute && (this.link.getAttribute('omnituredata') != 'undefined')) {
				var dData = eval('('+this.link.getAttribute('omnituredata')+')');

				//merge data with beacon
				for (var itm in dData) {
					var rexp = new RegExp("\\["+itm+"\\]", "gi");
					for (var bData in this.beacon.properties) {
						this.beacon.properties[bData] = this.beacon.properties[bData].replace(rexp,dData[itm]);
					}
				}
			}

			//set each property into Omniture object
			for (var itm in this.beacon.properties) {
				s[itm] = this.beacon.properties[itm];

				//add item to linkTrackVars if it doesn't already exist
				if (s.linkTrackVars.indexOf(itm) < 0) {
					s.linkTrackVars += itm + ',';
				}

				//if an event, set it into linkTrackEvents
				if (itm.toLowerCase() == 'events') {
					if (s.linkTrackEvents == 'None')
						s.linkTrackEvents = '';

					s.linkTrackEvents += this.beacon.properties[itm] + ',';
				}
			}

			//clean of linkTrackVars and linkTrackEvents
			s.linkTrackVars = s.linkTrackVars.substr(0,s.linkTrackVars-1);
			if (s.linkTrackEvents.length > 0)
				s.linkTrackEvents = s.linkTrackEvents.substr(0,s.linkTrackEvents-1);

			//call Omniture click action beacon generation function
			var type = ((this.beacon.reservedProperties['type']) ? this.beacon.reservedProperties['type'] : 'o');
			var action = ((this.beacon.properties['prop1']) ? this.beacon.properties['prop1'] : 'HTML Action');

			code = s.tl(this.link,type,action);

		} else {
			if (document.omnitureFire)
				throw Exception('Unable to find Omniture library');
		}

		return retVal;
	}
	YAHOO.lang.extend(omniture.ClickEventHandler,omniture.AbstractEventHandler,{track : omniture.ClickEventHandler.track});

    omniture.SendBeacon = function(beaconName, properties) {
        var beaconData = omniture.DataContainerCache.click[beaconName];
        if(beaconData == null) {            
            return;
        }
        var beacon = new omniture.Beacon(beaconData);

        // Dynamic Properties
        for (var p in properties)
            beacon.properties[p] = properties[p];

        if (document.omnitureFire && s) {
			//initialize
			s.linkTrackVars = '';
			s.linkTrackEvents = 'None';
			s.events = '';

			//set each property into Omniture object
			for (var itm in beacon.properties) {
				s[itm] = beacon.properties[itm];

				//add item to linkTrackVars if it doesn't already exist
				if (s.linkTrackVars.indexOf(itm) < 0) {
					s.linkTrackVars += itm + ',';
				}

				//if an event, set it into linkTrackEvents
				if (itm.toLowerCase() == 'events') {
					if (s.linkTrackEvents == 'None')
						s.linkTrackEvents = '';

					s.linkTrackEvents += beacon.properties[itm] + ',';
				}
			}

            //clean of linkTrackVars and linkTrackEvents
			s.linkTrackVars = s.linkTrackVars.substr(0,s.linkTrackVars-1);
			if (s.linkTrackEvents.length > 0)
				s.linkTrackEvents = s.linkTrackEvents.substr(0,s.linkTrackEvents-1);

			//call Omniture click action beacon generation function
			var type = ((beacon.reservedProperties['type']) ? beacon.reservedProperties['type'] : 'o');
			var action = ((beacon.properties['prop1']) ? beacon.properties['prop1'] : 'HTML Action');

            code = s.tl(null,type,action);

		} else {
			if (document.omnitureFire)
				throw Exception('Unable to find Omniture library');
		}
    }

    /**
	*	This function fires the appropriate Omniture page load beacon, as well as, sets up all the
	*	link beacons
	*	@method Initialize
	*/
	omniture.Initialize = function(){
        var qs = new Querystring();

		document.omnitureFire = qs.get('fire',true);

		var debug = qs.get('debug','false');
		if (debug.toLowerCase() == 'true')
			document.debug();

		//get URI
		var page = window.location.pathname;
		YAHOO.log('Original page path: ' + page,'debug','com.digitas.global.tracking.omniture.Initialize');
		//make sure it always ends with an actual filename -- index.html is the default
		if (/(^\/|\/$)/.test(page))
			page += 'index.html';

		YAHOO.log('Tested page path: ' + page,'debug','com.digitas.global.tracking.omniture.Initialize');
		//remove leading /, filename extension if present, and any / left in name
		page = page.replace(/^\/(.*)/,'$1');
		page = page.replace(/([^\.*])\..*$/,'$1');
		page = page.replace(/\//g,'');

		YAHOO.log('Final page path: ' + page,'debug','com.digitas.global.tracking.omniture.Initialize');

        //attach objects to click events
        omniture.attachClickHandlers(null);

		//create and fire page load beacon
		var loadBeacon = new omniture.LoadEventHandler(page);
		loadBeacon.track();
    }

    omniture.attachClickHandlers = function(rootElement) {
        var omnitureLinks;
        if (rootElement == null) {
            omnitureLinks = YAHOO.util.Dom.getElementsByClassName('omniture');
        } else {
            omnitureLinks = YAHOO.util.Dom.getElementsByClassName('omniture', "*", rootElement);
        }

        //create new omniture click handler(s)
		for(var i=0;i<omnitureLinks.length;i++) {
			var tempTracking = new omniture.ClickEventHandler(omnitureLinks[i]);
		}
    }


	YAHOO.util.Event.onDOMReady(omniture.Initialize);
}