// Relys on jQuery 1.3 or later
var NetEffect = NetEffect || {};
var s_account;
var s;

NetEffect.config = {
	omit: ['06d7b76463b48c3ea21b587c4258736c'],
	publicUserId: 65,
	testing: false
};

jQuery(function($) {
	if(typeof(NetEffect) === 'undefined') {
		return;
	}
	
    var N = NetEffect;
	
	if(N.ready) {
		s.setOIDs();
		N.SC.InitFormTracker();
		if(N.SC.FormCausedPostback === true) {
			// Tracking done in SC form tracker
			return;
		}
		
		N.SC.NameAndPath();
		s.t();
	}
});

NetEffect.init = function() {
	var N = NetEffect;
	N.ready = true;
	
	N.trace = function(msg) {
		if (N.inDev()) {
			$.log(msg);
		}
	};
	
	N.inDev = function() {
		if( typeof( N.SC.ipAddress ) != 'undefined' ) {
			var arr = N.config.omit;
			var ipHash = N.hash(N.SC.ipAddress);
			for(i=arr.length-1; i>=0; i--) {
				if(ipHash == arr[i]) {
					return true;
				}
			}
		}
		if(location.href.indexOf('://local') > -1) {
			return true;
		}
		if (N.config.testing === true) {
			return true;
		}
		return false;
	};
	
	N.getDomain = function(url) {
		if(!url || url == null || url == "")
			url = location.href;
			
		// TODO: account for IP addresses and other additional dots in the url 
		return url.toLowerCase().replace(/^.*:\/\/(([\w][-\w\.]*[\w]\.)+[a-z][-a-z\d]*[a-z])?.*$/, "$1");
	};
	
	N.insertParam = function(url, key, value, escapeValues)
	{
		if(escapeValues) {
			key = escape(key); value = escape(value);
		}
		
		if(url.indexOf('?') != -1) {
			var kvp = url.split('?')[1].split('&');
		
			var i=kvp.length; var x; while(i--) 
			{
				x = kvp[i].split('=');
		
				if (x[0]==key)
				{
					x[1] = value;
					kvp[i] = x.join('=');
					break;
				}
			}
		
			if(i<0) {kvp[kvp.length] = [key,value].join('=');}
			url = url.split('?')[0] + '?' + kvp.join('&');
		} else {
			url += '?' + key + '=' + value;
		}
		
		return url; 
	};
	
	N.removeParam = function(url, key)
	{	
		if(url.indexOf('?') != -1) {
			var kvp = url.split('?')[1].split('&');
			var nkvp = [];
			
			var x; 
			for(var i = 0; i < kvp.length; i++)
			{
				x = kvp[i].split('=');
		
				if (x[0]!=key)
				{
					nkvp.push(x.join('='));
				}
			}
			
			url = url.split('?')[0];
			url = (nkvp.length > 0) ? url + '?' + nkvp.join('&') : url;
		}
		
		return url; 
	};
	
	N.ValidateKenticoAjaxForm = function(args) {
		if (args.get_error() == undefined || args.get_error() == null) {
			var resp = args.get_response().get_responseData();
			if(resp.indexOf("ErrorLabel") == -1 || resp.indexOf("lblError") == -1){
				return true;
			}
		} else {
			// Request failed
			args.set_errorHandled(true);
			alert("There was an error.  Please try again later.  Sorry for the inconvenience.\n");
		}
		
		return false;
	};

	N.hash=function(j){function RotateLeft(a,b){return(a<<b)|(a>>>(32-b))}function AddUnsigned(a,b){var c,lY4,lX8,lY8,lResult;lX8=(a&0x80000000);lY8=(b&0x80000000);c=(a&0x40000000);lY4=(b&0x40000000);lResult=(a&0x3FFFFFFF)+(b&0x3FFFFFFF);if(c&lY4){return(lResult^0x80000000^lX8^lY8)}if(c|lY4){if(lResult&0x40000000){return(lResult^0xC0000000^lX8^lY8)}else{return(lResult^0x40000000^lX8^lY8)}}else{return(lResult^lX8^lY8)}}function F(x,y,z){return(x&y)|((~x)&z)}function G(x,y,z){return(x&z)|(y&(~z))}function H(x,y,z){return(x^y^z)}function I(x,y,z){return(y^(x|(~z)))}function FF(a,b,c,d,x,s,e){a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,c,d),x),e));return AddUnsigned(RotateLeft(a,s),b)};function GG(a,b,c,d,x,s,e){a=AddUnsigned(a,AddUnsigned(AddUnsigned(G(b,c,d),x),e));return AddUnsigned(RotateLeft(a,s),b)};function HH(a,b,c,d,x,s,e){a=AddUnsigned(a,AddUnsigned(AddUnsigned(H(b,c,d),x),e));return AddUnsigned(RotateLeft(a,s),b)};function II(a,b,c,d,x,s,e){a=AddUnsigned(a,AddUnsigned(AddUnsigned(I(b,c,d),x),e));return AddUnsigned(RotateLeft(a,s),b)};function ConvertToWordArray(a){var b;var c=a.length;var d=c+8;var e=(d-(d%64))/64;var f=(e+1)*16;var g=Array(f-1);var h=0;var i=0;while(i<c){b=(i-(i%4))/4;h=(i%4)*8;g[b]=(g[b]|(a.charCodeAt(i)<<h));i++}b=(i-(i%4))/4;h=(i%4)*8;g[b]=g[b]|(0x80<<h);g[f-2]=c<<3;g[f-1]=c>>>29;return g};function WordToHex(a){var b="",WordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(a>>>(lCount*8))&255;WordToHexValue_temp="0"+lByte.toString(16);b=b+WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2)}return b};function Utf8Encode(a){a=a.replace(/\r\n/g,"\n");var b="";for(var n=0;n<a.length;n++){var c=a.charCodeAt(n);if(c<128){b+=String.fromCharCode(c)}else if((c>127)&&(c<2048)){b+=String.fromCharCode((c>>6)|192);b+=String.fromCharCode((c&63)|128)}else{b+=String.fromCharCode((c>>12)|224);b+=String.fromCharCode(((c>>6)&63)|128);b+=String.fromCharCode((c&63)|128)}}return b};var x=Array();var k,AA,BB,CC,DD,a,b,c,d;var l=7,S12=12,S13=17,S14=22;var m=5,S22=9,S23=14,S24=20;var o=4,S32=11,S33=16,S34=23;var p=6,S42=10,S43=15,S44=21;j=Utf8Encode(j);x=ConvertToWordArray(j);a=0x67452301;b=0xEFCDAB89;c=0x98BADCFE;d=0x10325476;for(k=0;k<x.length;k+=16){AA=a;BB=b;CC=c;DD=d;a=FF(a,b,c,d,x[k+0],l,0xD76AA478);d=FF(d,a,b,c,x[k+1],S12,0xE8C7B756);c=FF(c,d,a,b,x[k+2],S13,0x242070DB);b=FF(b,c,d,a,x[k+3],S14,0xC1BDCEEE);a=FF(a,b,c,d,x[k+4],l,0xF57C0FAF);d=FF(d,a,b,c,x[k+5],S12,0x4787C62A);c=FF(c,d,a,b,x[k+6],S13,0xA8304613);b=FF(b,c,d,a,x[k+7],S14,0xFD469501);a=FF(a,b,c,d,x[k+8],l,0x698098D8);d=FF(d,a,b,c,x[k+9],S12,0x8B44F7AF);c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);a=FF(a,b,c,d,x[k+12],l,0x6B901122);d=FF(d,a,b,c,x[k+13],S12,0xFD987193);c=FF(c,d,a,b,x[k+14],S13,0xA679438E);b=FF(b,c,d,a,x[k+15],S14,0x49B40821);a=GG(a,b,c,d,x[k+1],m,0xF61E2562);d=GG(d,a,b,c,x[k+6],S22,0xC040B340);c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);b=GG(b,c,d,a,x[k+0],S24,0xE9B6C7AA);a=GG(a,b,c,d,x[k+5],m,0xD62F105D);d=GG(d,a,b,c,x[k+10],S22,0x2441453);c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);b=GG(b,c,d,a,x[k+4],S24,0xE7D3FBC8);a=GG(a,b,c,d,x[k+9],m,0x21E1CDE6);d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);c=GG(c,d,a,b,x[k+3],S23,0xF4D50D87);b=GG(b,c,d,a,x[k+8],S24,0x455A14ED);a=GG(a,b,c,d,x[k+13],m,0xA9E3E905);d=GG(d,a,b,c,x[k+2],S22,0xFCEFA3F8);c=GG(c,d,a,b,x[k+7],S23,0x676F02D9);b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);a=HH(a,b,c,d,x[k+5],o,0xFFFA3942);d=HH(d,a,b,c,x[k+8],S32,0x8771F681);c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);a=HH(a,b,c,d,x[k+1],o,0xA4BEEA44);d=HH(d,a,b,c,x[k+4],S32,0x4BDECFA9);c=HH(c,d,a,b,x[k+7],S33,0xF6BB4B60);b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);a=HH(a,b,c,d,x[k+13],o,0x289B7EC6);d=HH(d,a,b,c,x[k+0],S32,0xEAA127FA);c=HH(c,d,a,b,x[k+3],S33,0xD4EF3085);b=HH(b,c,d,a,x[k+6],S34,0x4881D05);a=HH(a,b,c,d,x[k+9],o,0xD9D4D039);d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);b=HH(b,c,d,a,x[k+2],S34,0xC4AC5665);a=II(a,b,c,d,x[k+0],p,0xF4292244);d=II(d,a,b,c,x[k+7],S42,0x432AFF97);c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);b=II(b,c,d,a,x[k+5],S44,0xFC93A039);a=II(a,b,c,d,x[k+12],p,0x655B59C3);d=II(d,a,b,c,x[k+3],S42,0x8F0CCC92);c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);b=II(b,c,d,a,x[k+1],S44,0x85845DD1);a=II(a,b,c,d,x[k+8],p,0x6FA87E4F);d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);c=II(c,d,a,b,x[k+6],S43,0xA3014314);b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);a=II(a,b,c,d,x[k+4],p,0xF7537E82);d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);c=II(c,d,a,b,x[k+2],S43,0x2AD7D2BB);b=II(b,c,d,a,x[k+9],S44,0xEB86D391);a=AddUnsigned(a,AA);b=AddUnsigned(b,BB);c=AddUnsigned(c,CC);d=AddUnsigned(d,DD)}var q=WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);return q.toLowerCase()};

	
	N.createSObj = function() {
		var sObj = s_gi(s_account);
		N.SC.ClearOmnitureObject(sObj);
		return sObj;
	};
	/* SiteCatalyst code version: H.20.3.
	Copyright 1997-2009 Omniture, Inc. More info available at
	http://www.omniture.com */
	s_account = (NetEffect.inDev()) ? "neteffect-" + NetEffect.SC.config.reportSuiteId + "-dev" : "neteffect-" + NetEffect.SC.config.reportSuiteId + "-prod";
	s = N.createSObj();
	/************************** CONFIG SECTION **************************/
	/* 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:,173.203";
	s.linkLeaveQueryString = false;
	s.linkTrackVars = "None";
	s.linkTrackEvents = "None";
	
	/* 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 = "neteffect";
	s.dc = "122";
	s.trackingServer = "omni.neteffectservices.com";
	s.trackingServerSecure = "somni.neteffectservices.com";
	
	// Media Module
	s.loadModule("Media");
	s.Media.autoTrack = false;
	s.Media.trackWhilePlaying = true;
	s.Media.trackMilestones='25,50,75';
	s.Media.trackVars = "None";
	s.Media.trackEvents = "None";
	s.Media.__videoScore = {};
	
	s.usePlugins = true;
	
	function s_doPlugins(s) {
		/* Add calls to plugins here */	
		/*Implementation of Settings for Omniture getPageName() plugin*/
		s.defaultPage = "home";
		s.queryVarsList = "";
		s.pathExcludeDelim = "";
		s.pathConcatDelim = ":";
		s.siteID = NetEffect.SC.config.siteId;
	
		// Omit internal links from the link click
		s.linkInternalFilters = s.apl(s.linkInternalFilters, NetEffect.getDomain(location.href), ',', 2);
		$.log('internalFilters: ' + s.linkInternalFilters);
		
		/*Default the pageName to the url via the Omniture getPageName() plugin*/
		if (!s.pageName) {
			s.pageName = s.getPageName().toLowerCase();
		}
		
		s.prop11 = N.getDomain(document.referrer);
		s.prop12 = N.SC.ipAddress;
		s.prop13 = N.SC.userId; // database id
		s.eVar17 = 'D=c11';
		s.eVar19 = 'D=c12';
		s.eVar21 = 'D=c13';
		s.linkTrackVars = s.apl(s.linkTrackVars, 'prop11,prop12,prop13,eVar17,eVar19,eVar21', ',', 2);
		
		// Exit Link Handler
		var url = s.exitLinkHandler(s.linkInternalFilters);  
		if(url){
			s.prop28 = url;
			s.eVar48 = 'D=c28';
			s.linkTrackVars = s.apl(s.linkTrackVars, 'prop28,eVar48', ',', 2);
			N.SC.TrackPreviousPageInfo(s);
		}
		
		/*Campaign variable setting - set this to the query parameter you use for online marketing traffic*/
		if (!s.campaign) {
			s.campaign = s.getQueryParam('sc_cid');
		}
		if (!s.campaign) {
			s.campaign = s.getQueryParam('fb_ref');
		}
		
		var campaign='', channel='', source='', content='', isTrackible=false;
		if (!s.campaign) {
			campaign = s.getQueryParam('utm_campaign');
			
			if(campaign) {
				isTrackible = true;
				channel = s.getQueryParam('utm_medium');
				source = s.getQueryParam('utm_source');
				content = s.getQueryParam('utm_content');
				
				if(!content && channel === 'eml') {
					content = 'InEmail';
				}
				s.campaign = campaign + '|' + channel + '|' + source + '|' + content;
			}
		}
		
		s.campaign = s.getValOnce(s.campaign, 's_campaign', 0);

		if (s.campaign) {
			var c = s.campaign;
			var cType = 'Other';
			
			if((isTrackible && channel === 'sem') || c.indexOf('-sem-') > -1) {
				cType = 'Paid Search';
			} else if((isTrackible && channel === 'eml') || c.indexOf('-eml-') > -1) {
				cType = 'Email';
			} else if((isTrackible && channel === 'ban') || c.indexOf('-ban-') > -1) {
				cType = 'Banner';
			} else if((isTrackible && channel === 'dis') || c.indexOf('-dis-') > -1) {
				cType = 'Display Ad';
			} else if((isTrackible && channel === 'soc') || c.indexOf('-soc-') > -1) {
				cType = 'Social Media';
			} else if((isTrackible && channel === 'tra') || c.indexOf('-tra-') > -1) {
				cType = 'Trade Show';
			} else if((isTrackible && channel === 'par') || c.indexOf('-par-') > -1) {
				cType = 'Partner';
			} else if((isTrackible && channel === 'mag') || c.indexOf('-mag-') > -1) {
				cType = 'Magazine';
			} else if((isTrackible && channel === 'aff') || c.indexOf('-aff-') > -1) {
				cType = 'Affiliate';
			} else if((isTrackible && channel === 'int') || c.indexOf('-int-') > -1) {
				cType = 'Internal';
			}
			
			
			s.eVar12 = s.eVar13 = cType; // First // Last
			s.eVar14 = s.crossVisitParticipation(cType, 'ctype_stack', 90, 5, '>', 'event2,purchase', 1); // Stack  - hold up to 5 values for 90 days and expire on Lead Success or purchase
			s.eVar15 = "+1";
			s.events = s.apl(s.events, 'event8', ',', 2);
		}
		
		
		// If video tracking
		if(s.pev3 && s.Media && (typeof(ytTracker) !== 'undefined' || typeof(N.SC.Video) !== 'undefined')) {
			var videoStartScore = 1;
			var videoMaxScore = 6;
			
			var vv = s.split(s.pev3, '--**--'); // [0:vidID, 1:length(s), 2:type, 3:aggrTimeWatched, 4:id, 5:span (S0L0, L0L45, L45L90, L90L135, L135E170)]
			if(vv.length == 6) {
				var vScore = s.Media.__videoScore[vv[0]];
				if(!score) {
					vScore = {};
					vScore.totalScore = 0;
				}
				
				// Using this logic, every 10% of video will get half an engagement point
				var perc = Math.floor((parseInt(vv[3])/parseInt(vv[1]) * 10)) * 10;
				var score = perc/20;
				
				$.log('total score: ' + vScore.totalScore);
				if(vScore.totalScore) {
					if(vScore.totalScore < videoMaxScore && score > 0) {
						score = score - vScore.totalScore + videoStartScore;
						vScore.totalScore += score;
					} else {
						score = 0;
					}
				} else {
					score += videoStartScore;
					vScore.totalScore = (score <= videoMaxScore) ? score : videoMaxScore;
				}
				$.log(' -- Current Milestone Score: ' + score + '\n -- Total Score So Far: ' + vScore.totalScore);
				NetEffect.SC.TrackEngagement('VideoView', score, 'event29', true);
			}
		}
		
		/* Debugging
		
		$.log('----------------------- Beacon ------------------------------ ');
		
		var vars = s.linkTrackVars.split(',').sort();
		for(var i = 0; i< vars.length; i++) {
			$.log(vars[i] + ': ' + s[vars[i]]);
		}
		
		*/
	
		// Set Time Parting info
		s.dstStart = NetEffect.SC.dstObj.dstStart;
		s.dstEnd = NetEffect.SC.dstObj.dstEnd;
		s.currentYear = NetEffect.SC.dstObj.currentYear;
		s.tp_h = s.getTimeParting('h', NetEffect.SC.dstObj.siteGMT).toLowerCase(); // Set hour
		s.tp_d = s.getTimeParting('d', NetEffect.SC.dstObj.siteGMT).toLowerCase(); // Set day
		s.prop18 = s.tp_d + "|" + s.tp_h;
		if (s.getVisitStart("s_visit")) {
			// If first request in visit
			s.eVar23 = "D=c18";
		}
		
		//N.SC.TrackExternalEngagement(s);
	
		/* Copying content variables to track content effectiveness */
		if (s.pageName) {
			s.eVar2 = "D=pageName"; // s.pageName
		}
		if (s.channel) {
			s.eVar3 = "D=ch";  // s.channel
		}
		if (s.prop1) {
			s.eVar4 = "D=c1";  // s.prop1
		}
		if (s.prop2) {
			s.eVar5 = "D=c2";  // s.prop2
		}
		if (s.prop3) {
			s.eVar6 = "D=c3";  // s.prop3
		}
		if (s.prop4) {
			s.eVar7 = "D=c4";  // s.prop4
		}
		
		// Track engagement score
		NetEffect.SC.ApplyEngagement(s);
	};
	s.doPlugins = s_doPlugins;
	
	/************************** PLUGINS SECTION *************************/
	/* You may insert any plugins you wish to use here.                 */
	
	/*
	* Plugin: getPreviousValue_v1.0 - return previous value of designated
	* variable (requires split utility) - from last page
	*/
	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}");
	
	/*
	* Plugin Get Visit Number
	*/
	s.getVisitNum = new Function(""
	+ "var s=this,e=new Date(),cval,cvisit,ct=e.getTime(),c='s_vnum',c2='s"
	+ "_invisit';e.setTime(ct+30*24*60*60*1000);cval=s.c_r(c);if(cval){var"
	+ " i=cval.indexOf('&vn='),str=cval.substring(i+4,cval.length),k;}cvis"
	+ "it=s.c_r(c2);if(cvisit){if(str){e.setTime(ct+30*60*1000);s.c_w(c2,'"
	+ "true',e);return str;}else return 'unknown visit number';}else{if(st"
	+ "r){str++;k=cval.substring(0,i);e.setTime(k);s.c_w(c,k+'&vn='+str,e)"
	+ ";e.setTime(ct+30*60*1000);s.c_w(c2,'true',e);return str;}else{s.c_w"
	+ "(c,ct+30*24*60*60*1000+'&vn=1',e);e.setTime(ct+30*60*1000);s.c_w(c2"
	+ ",'true',e);return 1;}}");
	
	/*
	* Plugin Utility: apl v1.1 - Append List - appends [v]alue to [L]ist 
	* using a [d]elimiter
	*//*
	s.apl = 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=0;i<a."
	+ "length;i++){n=a[i];m=m||(u==1?(n==v):(n.toLowerCase()==v.toLowerCas"
	+ "e()));}}if(!m)L=L?L+d+v:v;return L");
	*/
	s.apl = function(L, v, d, u) {
		var s = this, m = 0;
		if(!L) L = '';
		if(!v) {
			return L;
		}
		if(v.indexOf(d) > -1) {
			var i, c = s.split(v, d);
			for(i = 0; i < c.length; i++) {
				L = s.apl(L, c[i], d, u);
			}
		} else {
			if(u){
				var i, n, a = s.split(L, d);
				for(i = 0; i < a.length; i++){
					n = a[i];
					m = m || (u == 1 ? (n == v) : (n.toLowerCase() == v.toLowerCase()));
				}
			}
			if(!m)
				L = L ? L + d + v : v;
		}
		
		return L;
	};
	/*
	* Plugin: getPercentPageViewed v1.x
	* This code has been modified from the original version distributed
	* by Omniture and will not be supported by Omniture in any way
	*/
	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 dh=Math.max(Math.max(s.d.body.scrollHeight,s.d.documentElement."
	+ "scrollHeight),Math.max(s.d.body.offsetHeight,s.d.documentElement.of"
	+ "fsetHeight),Math.max(s.d.body.clientHeight,s.d.documentElement.clie"
	+ "ntHeight)),vph=s.d.clientHeight||Math.min(s.d.documentElement.clien"
	+ "tHeight,s.d.body.clientHeight),st=s.wd.pageYOffset||(s.wd.document."
	+ "documentElement.scrollTop||s.wd.document.body.scrollTop),vh=st+vph,"
	+ "pv=Math.round(vh/dh*100),cv=s.c_r('s_ppv'),cpi=cv.indexOf('|'),cpv="
	+ "'',ps='';if(cpi!=-1){cpv=cv.substring(0,cpi);ps=parseInt(cv.substri"
	+ "ng(cpi+1));}else{cpv=ps=0;}if(pv<=100){if(pv>parseInt(cpv)){ps=pv-M"
	+ "ath.round(vph/dh*100);s.c_w('s_ppv',pv+'|'+ps);}}else{s.c_w('s_ppv'"
	+ ",'');}");
	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();
	
	/*
	* 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");
	
	/*
	* Utility Function: join - join a string (JS 1.0 compatible)
	*/
	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;");
	
	/*
	* Utility Function: repl - replace (JS 1.0 compatible)
	*/
	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");
	
	/*
	 * DynamicObjectIDs
	 */
	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,false);else{s.doiol=s.wd.onload;s.wd.onload=s.setOIDs}}s.wd.s_semaphore=1}");
	s.setOIDs=new Function("e","var s=s_c_il["+s._in+"],b=s.eh(s.wd,'onload'),o='onclick',x,l,u,c,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,'\"','');u=s.repl(u,'\\n','').substring(0,97);l.s_oc=l[o];a[u]=a[u]?a[u]+1:1;x='';if(c.indexOf('.t(')>=0||c.indexOf('.tl(')>=0||c.indexOf('s_gs(')>=0)x='var x=\".tl(\";';x+='s_objectID=\"'+u+'_'+a[u]+'\";return this.s_oc?this.s_oc(e):true';if(s.isns&&s.apv>=5)l.setAttribute(o,x);l[o]=new Function('e',x)}}}s.wd.s_semaphore=0;return true");
	s.getObjectID=function(o){return o.href};

	/*
	* Plugin: clickThruQuality 0.8
	*/
	s.clickThruQuality = new Function("scp", "tcth_ev", "cp_ev", "cff_ev", "cf_th", ""
	+ "if(i<=1){var ev=(s.events?s.events+',':'');if(s.getQueryParam(scp)){s.events=ev+"
	+ "tcth_ev;if(s.c_r('cf')){var tct=parseInt(s.c_r('cf'))+1;s.c_w('cf',tct"
	+ ",0);if(tct==cf_th&&cff_ev){s.events=s.events+','+cff_ev;};}else{s.c_w('cf',1,0"
	+ ");}}else{if(s.c_r('cf')>=1){s.c_w('cf',0,0);s.events=ev+cp_ev;}}i++;}");
	
	/*
	 *	Plug-in: crossVisitParticipation v1.5 - stacks values from
	 *	specified variable in cookie and returns value
	 *	PARAMETERS:
	 *		v  = value to stack
	 *		cn = name of the cookie storing the list of values
	 *		ex = expiration (in days) of each value in the list
	 *		ct = number of distinct values to store in the list
	 *		dl = value delimiter
	 *		ev = (optional) Comma seperated list of success events that will clear the list
	 *		dv = (optional) whether consecutive duplicate values will be stored (0=no, 1=yes)
	 *
	 *	RETURNS:
	 *		IF "v" was not empty AND an event clearing the list was NOT set
	 *			the list will be returned
	 *		ELSE an empty string is returned
	 */
	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=='')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=eval(c);var e=new "
	+"Date();e.setFullYear(e.getFullYear()+5);if(dv==0 && arry.length>0 &"
	+"& arry[arry.length-1][0]==v)arry[arry.length-1]=[v, new Date().getT"
	+"ime()];else arry[arry.length]=[v, new Date().getTime()];var start=a"
	+"rry.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])/86"
	+"400000);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,{delim:dl});if(ce) s.c_w(cn"
	+",'');return r;");
	
	/*
	* Plugin: getValOnce 0.2 - get a value once per session or number of days
	* NOTE!!!! - If the value changes, this will return the new value!!!
	*/
	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*24*60);s.c_w(c,v,e?a:0);}return v==k?'':v");
	
	/*
	* Get Visit Start - returns a value only on first page view (new visit), per visit
	*/
	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;");
	
	/*
	* Plugin: getQueryParam 2.1 - return query string parameter(s)
	* p: param name
	* d: ??? - prepended to the return value
	* u: url to search
	*/
	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.locati"
	+ "on);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+'');if(t)v+=v?d+t:t;p=p.subs"
	+ "tring(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 ''");
	
	/*
	* 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;");
	
	/*
	* Plugin: getPageName v2.1 - parse URL and return
	*/
	s.getPageName = new Function("u", ""
	+ "var s=this,v=u?u:''+s.wd.location,x=v.indexOf(':'),y=v.indexOf('/',"
	+ "x+4),z=v.indexOf('?'),c=s.pathConcatDelim,e=s.pathExcludeDelim,g=s."
	+ "queryVarsList,d=s.siteID,n=d?d:'',q=z<0?'':v.substring(z+1),p=v.sub"
	+ "string(y+1,q?z:v.length);z=p.indexOf('#');p=z<0?p:s.fl(p,z);x=e?p.i"
	+ "ndexOf(e):-1;p=x<0?p:s.fl(p,x);p+=!p||p.charAt(p.length-1)=='/'?s.d"
	+ "efaultPage:'';y=c?c:'/';while(p){x=p.indexOf('/');x=x<0?p.length:x;"
	+ "z=s.fl(p,x);if(!s.pt(s.pathExcludeList,',','p_c',z))n+=n?y+z:z;p=p."
	+ "substring(x+1)}y=c?c:'?';while(g){x=g.indexOf(',');x=x<0?g.length:x"
	+ ";z=s.fl(g,x);z=s.pt(q,'&','p_c',z);if(z){n+=n?y+z:z;y=c?c:'&'}g=g.s"
	+ "ubstring(x+1)}return n");
	
	/*
	* Plugin: linkHandler v0.5 - parse params and return url if found
	*/
	s.linkHandler = new Function("p", "t", ""
	+ "var s=this,h=s.p_gh(),i,l;t=t?t:'o';if(!h||(s.linkType&&(h||s.linkN"
	+ "ame)))return '';i=h.indexOf('?');h=s.linkLeaveQueryString||i<0?h:h."
	+ "substring(0,i);l=s.pt(p,'|','p_gn',h.toLowerCase());if(l){s.linkNam"
	+ "e=l=='[['?'':l;s.linkType=t;return h;}return '';");
	s.p_gn=new Function("t","h",""
	+"var i=t?t.indexOf('~'):-1,n,x;if(t&&h){n=i<0?'':t.substring(0,i);x="
	+"t.substring(i+1);if(h.indexOf(x.toLowerCase())>-1)return n?n:'[[';}"
	+ "return 0;");
																	 
	/*
	 * Plugin: exitLinkHandler 0.5 - identify and report exit links
	 */
	s.exitLinkHandler=new Function("p",""
	+"var s=this,h=s.p_gh(),n='linkInternalFilters',i,t;if(!h||(s.linkTyp"
	+"e&&(h||s.linkName)))return '';i=h.indexOf('?');t=s[n];s[n]=p?p:t;h="
	+"s.linkLeaveQueryString||i<0?h:h.substring(0,i);if(s.lt(h)=='e')s.li"
	+"nkType='e';else h='';s[n]=t;return h;");
	
	/*
	* Plugin: getTimeParting 2.0 - Set timeparting values based on time zone
	*/
	s.getTimeParting = new Function("t", "z", ""
	+ "var s=this,cy;dc=new Date('1/1/2000');"
	+ "if(dc.getDay()!=6||dc.getMonth()!=0){return'Data Not Available'}"
	+ "else{;z=parseFloat(z);var dsts=new Date(s.dstStart);"
	+ "var dste=new Date(s.dstEnd);fl=dste;cd=new Date();if(cd>dsts&&cd<fl)"
	+ "{z=z+1}else{z=z};utc=cd.getTime()+(cd.getTimezoneOffset()*60000);"
	+ "tz=new Date(utc + (3600000*z));thisy=tz.getFullYear();"
	+ "var days=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday',"
	+ "'Saturday'];if(thisy!=s.currentYear){return'Data Not Available'}else{;"
	+ "thish=tz.getHours();thismin=tz.getMinutes();thisd=tz.getDay();"
	
	+ "var dow=days[thisd];var ap='AM';var dt='Weekday';var mint='00';"
	+ "if(thismin>30){mint='30'}if(thish>=12){ap='PM';thish=thish-12};"
	+ "if (thish==0){thish=12};if(thisd==6||thisd==0){dt='Weekend'};"
	+ "var timestring=thish+':'+mint+ap;if(t=='h'){return timestring}"
	+ "if(t=='d'){return dow};if(t=='w'){return dt}}};");
	
	/*
	* Plugin: getTimeToComplete 0.4 - return the time from start to stop
	* Useage: 
	*/
	s.getTimeToComplete = new Function("v", "cn", "e", ""
	+ "var s=this,d=new Date,x=d,k;if(!s.ttcr){e=e?e:0;if(v=='start'||v=='"
	+ "stop')s.ttcr=1;x.setTime(x.getTime()+e*86400000);if(v=='start'){s.c"
	+ "_w(cn,d.getTime(),e?x:0);return '';}if(v=='stop'){k=s.c_r(cn);if(!s"
	+ ".c_w(cn,'',d)||!k)return '';v=(d.getTime()-k)/1000;var td=86400,th="
	+ "3600,tm=60,r=5,u,un;if(v>td){u=td;un='days';}else if(v>th){u=th;un="
	+ "'hours';}else if(v>tm){r=2;u=tm;un='minutes';}else{r=.2;u=1;un='sec"
	+ "onds';}v=v*r/u;return (Math.round(v)/r)+' '+un;}}return '';");
	
	/*
	* Utility Function: p_c
	*/
	s.p_c = new Function("v", "c", ""
	+ "var x=v.indexOf('=');return c.toLowerCase()==v.substring(0,x<0?v.le"
	+ "ngth:x).toLowerCase()?v:0");
	
	/*
	* Utility Function: p_gh - Get href
	*/
	s.p_gh = new Function(""
	+ "var s=this;if(!s.eo&&!s.lnk)return '';var o=s.eo?s.eo:s.lnk,y=s.ot("
	+ "o),n=s.oid(o),x=o.s_oidt;if(s.eo&&o==s.eo){while(o&&!n&&y!='BODY'){"
	+ "o=o.parentElement?o.parentElement:o.parentNode;if(!o)return '';y=s."
	+ "ot(o);n=s.oid(o);x=o.s_oidt}}return o.href?o.href:'';");
	
	
	/****************************** MODULES *****************************/
	/* Module: Media */
	s.m_Media_c="var m=s.m_i('Media');m.cn=function(n){var m=this;return m.s.rep(m.s.rep(m.s.rep(n,\"\\n\",''),\"\\r\",''),'--**--','')};m.open=function(n,l,p,b){var m=this,i=new Object,tm=new Date,a='',"
	+"x;n=m.cn(n);l=parseInt(l);if(!l)l=1;if(n&&p){if(!m.l)m.l=new Object;if(m.l[n])m.close(n);if(b&&b.id)a=b.id;for (x in m.l)if(m.l[x]&&m.l[x].a==a)m.close(m.l[x].n);i.n=n;i.l=l;i.p=m.cn(p);i.a=a;i.t=0"
	+";i.ts=0;i.s=Math.floor(tm.getTime()/1000);i.lx=0;i.lt=i.s;i.lo=0;i.e='';i.to=-1;m.l[n]=i}};m.close=function(n){this.e(n,0,-1)};m.play=function(n,o){var m=this,i;i=m.e(n,1,o);i.m=new Function('var m"
	+"=s_c_il['+m._in+'],i;if(m.l){i=m.l[\"'+m.s.rep(i.n,'\"','\\\\\"')+'\"];if(i){if(i.lx==1)m.e(i.n,3,-1);i.mt=setTimeout(i.m,5000)}}');i.m()};m.stop=function(n,o){this.e(n,2,o)};m.track=function(n){va"
	+"r m=this;if (m.trackWhilePlaying) {m.e(n,4,-1)}};m.e=function(n,x,o){var m=this,i,tm=new Date,ts=Math.floor(tm.getTime()/1000),ti=m.trackSeconds,tp=m.trackMilestones,z=new Array,j,d='--**--',t=1,b,"
	+"v=m.trackVars,e=m.trackEvents,pe='media',pev3,w=new Object,vo=new Object;n=m.cn(n);i=n&&m.l&&m.l[n]?m.l[n]:0;if(i){w.name=n;w.length=i.l;w.playerName=i.p;if(i.to<0)w.event=\"OPEN\";else w.event=(x="
	+"=1?\"PLAY\":(x==2?\"STOP\":(x==3?\"MONITOR\":\"CLOSE\")));w.openTime=new Date();w.openTime.setTime(i.s*1000);if(x>2||(x!=i.lx&&(x!=2||i.lx==1))) {b=\"Media.\"+name;pev3 = m.s.ape(i.n)+d+i.l+d+m.s.a"
	+"pe(i.p)+d;if(x){if(o<0&&i.lt>0){o=(ts-i.lt)+i.lo;o=o<i.l?o:i.l-1}o=Math.floor(o);if(x>=2&&i.lo<o){i.t+=o-i.lo;i.ts+=o-i.lo;}if(x<=2){i.e+=(x==1?'S':'E')+o;i.lx=x;}else if(i.lx!=1)m.e(n,1,o);i.lt=ts"
	+";i.lo=o;pev3+=i.t+d+i.s+d+(m.trackWhilePlaying&&i.to>=0?'L'+i.to:'')+i.e+(x!=2?(m.trackWhilePlaying?'L':'E')+o:'');if(m.trackWhilePlaying){b=0;pe='m_o';if(x!=4){w.offset=o;w.percent=((w.offset+1)/w"
	+".length)*100;w.percent=w.percent>100?100:Math.floor(w.percent);w.timePlayed=i.t;if(m.monitor)m.monitor(m.s,w)}if(i.to<0)pe='m_s';else if(x==4)pe='m_i';else{t=0;v=e='None';ti=ti?parseInt(ti):0;z=tp?"
	+"m.s.sp(tp,','):0;if(ti&&i.ts>=ti)t=1;else if(z){if(o<i.to)i.to=o;else{for(j=0;j<z.length;j++){ti=z[j]?parseInt(z[j]):0;if(ti&&((i.to+1)/i.l<ti/100)&&((o+1)/i.l>=ti/100)){t=1;j=z.length}}}}}}}else{m"
	+".e(n,2,-1);if(m.trackWhilePlaying){w.offset=i.lo;w.percent=((w.offset+1)/w.length)*100;w.percent=w.percent>100?100:Math.floor(w.percent);w.timePlayed=i.t;if(m.monitor)m.monitor(m.s,w)}m.l[n]=0;if(i"
	+".e){pev3+=i.t+d+i.s+d+(m.trackWhilePlaying&&i.to>=0?'L'+i.to:'')+i.e;if(m.trackWhilePlaying){v=e='None';pe='m_o'}else{t=0;m.s.fbr(b)}}else t=0;b=0}if(t){vo.linkTrackVars=v;vo.linkTrackEvents=e;vo.p"
	+"e=pe;vo.pev3=pev3;m.s.t(vo,b);if(m.trackWhilePlaying){i.ts=0;i.to=o;i.e=''}}}}return i};m.ae=function(n,l,p,x,o,b){if(n&&p){var m=this;if(!m.l||!m.l[n])m.open(n,l,p,b);m.e(n,x,o)}};m.a=function(o,t"
	+"){var m=this,i=o.id?o.id:o.name,n=o.name,p=0,v,c,c1,c2,xc=m.s.h,x,e,f1,f2='s_media_'+m._in+'_oc',f3='s_media_'+m._in+'_t',f4='s_media_'+m._in+'_s',f5='s_media_'+m._in+'_l',f6='s_media_'+m._in+'_m',"
	+"f7='s_media_'+m._in+'_c',tcf,w;if(!i){if(!m.c)m.c=0;i='s_media_'+m._in+'_'+m.c;m.c++}if(!o.id)o.id=i;if(!o.name)o.name=n=i;if(!m.ol)m.ol=new Object;if(m.ol[i])return;m.ol[i]=o;if(!xc)xc=m.s.b;tcf=n"
	+"ew Function('o','var e,p=0;try{if(o.versionInfo&&o.currentMedia&&o.controls)p=1}catch(e){p=0}return p');p=tcf(o);if(!p){tcf=new Function('o','var e,p=0,t;try{t=o.GetQuickTimeVersion();if(t)p=2}catc"
	+"h(e){p=0}return p');p=tcf(o);if(!p){tcf=new Function('o','var e,p=0,t;try{t=o.GetVersionInfo();if(t)p=3}catch(e){p=0}return p');p=tcf(o)}}v=\"var m=s_c_il[\"+m._in+\"],o=m.ol['\"+i+\"']\";if(p==1){"
	+"p='Windows Media Player '+o.versionInfo;c1=v+',n,p,l,x=-1,cm,c,mn;if(o){cm=o.currentMedia;c=o.controls;if(cm&&c){mn=cm.name?cm.name:c.URL;l=cm.duration;p=c.currentPosition;n=o.playState;if(n){if(n="
	+"=8)x=0;if(n==3)x=1;if(n==1||n==2||n==4||n==5||n==6)x=2;}';c2='if(x>=0)m.ae(mn,l,\"'+p+'\",x,x!=2?p:-1,o)}}';c=c1+c2;if(m.s.isie&&xc){x=m.s.d.createElement('script');x.language='jscript';x.type='tex"
	+"t/javascript';x.htmlFor=i;x.event='PlayStateChange(NewState)';x.defer=true;x.text=c;xc.appendChild(x);o[f6]=new Function(c1+'if(n==3){x=3;'+c2+'}setTimeout(o.'+f6+',5000)');o[f6]()}}if(p==2){p='Qui"
	+"ckTime Player '+(o.GetIsQuickTimeRegistered()?'Pro ':'')+o.GetQuickTimeVersion();f1=f2;c=v+',n,x,t,l,p,p2,mn;if(o){mn=o.GetMovieName()?o.GetMovieName():o.GetURL();n=o.GetRate();t=o.GetTimeScale();l"
	+"=o.GetDuration()/t;p=o.GetTime()/t;p2=o.'+f5+';if(n!=o.'+f4+'||p<p2||p-p2>5){x=2;if(n!=0)x=1;else if(p>=l)x=0;if(p<p2||p-p2>5)m.ae(mn,l,\"'+p+'\",2,p2,o);m.ae(mn,l,\"'+p+'\",x,x!=2?p:-1,o)}if(n>0&&"
	+"o.'+f7+'>=10){m.ae(mn,l,\"'+p+'\",3,p,o);o.'+f7+'=0}o.'+f7+'++;o.'+f4+'=n;o.'+f5+'=p;setTimeout(\"'+v+';o.'+f2+'(0,0)\",500)}';o[f1]=new Function('a','b',c);o[f4]=-1;o[f7]=0;o[f1](0,0)}if(p==3){p='"
	+"RealPlayer '+o.GetVersionInfo();f1=n+'_OnPlayStateChange';c1=v+',n,x=-1,l,p,mn;if(o){mn=o.GetTitle()?o.GetTitle():o.GetSource();n=o.GetPlayState();l=o.GetLength()/1000;p=o.GetPosition()/1000;if(n!="
	+"o.'+f4+'){if(n==3)x=1;if(n==0||n==2||n==4||n==5)x=2;if(n==0&&(p>=l||p==0))x=0;if(x>=0)m.ae(mn,l,\"'+p+'\",x,x!=2?p:-1,o)}if(n==3&&(o.'+f7+'>=10||!o.'+f3+')){m.ae(mn,l,\"'+p+'\",3,p,o);o.'+f7+'=0}o."
	+"'+f7+'++;o.'+f4+'=n;';c2='if(o.'+f2+')o.'+f2+'(o,n)}';if(m.s.wd[f1])o[f2]=m.s.wd[f1];m.s.wd[f1]=new Function('a','b',c1+c2);o[f1]=new Function('a','b',c1+'setTimeout(\"'+v+';o.'+f1+'(0,0)\",o.'+f3+"
	+"'?500:5000);'+c2);o[f4]=-1;if(m.s.isie)o[f3]=1;o[f7]=0;o[f1](0,0)}};m.as=new Function('e','var m=s_c_il['+m._in+'],l,n;if(m.autoTrack&&m.s.d.getElementsByTagName){l=m.s.d.getElementsByTagName(m.s.i"
	+"sie?\"OBJECT\":\"EMBED\");if(l)for(n=0;n<l.length;n++)m.a(l[n]);}');if(s.wd.attachEvent)s.wd.attachEvent('onload',m.as);else if(s.wd.addEventListener)s.wd.addEventListener('load',m.as,false)";
	s.m_i("Media");
	
	/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
	var s_code='',s_objectID;function s_gi(un,pg,ss){var c="s._c='s_c';s.wd=window;if(!s.wd.s_c_in){s.wd.s_c_il=new Array;s.wd.s_c_in=0;}s._il=s.wd.s_c_il;s._in=s.wd.s_c_in;s._il[s._in]=s;s.wd.s_c_in++;s"
	+".an=s_an;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){return x?(''+x).substring(0,l):x};s.co=func"
	+"tion(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').indexO"
	+"f(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.toUpperCase():'';if(x){x=''+x;if(s.em==3)"
	+"return 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)}return y}else{x=s.rep(escape(''+x),'+','%2B');if(c&&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=''+x;return s.em==3?de"
	+"codeURIComponent(x):unescape(s.rep(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.substring(0,y);r=s[f](t,a);if(r)return r;z+=y+d.l"
	+"ength;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);if(t.substring(0,2)=='s_')t=t.substring(2);return (t!=''&&t==a)};s.f"
	+"sf=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!=undefined){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?parseInt(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.ape(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!='NON"
	+"E'){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.gtfsoe=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=this,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,0,r.t,r.u)}};s.br=function(id,rs){var s=this;if(s.disableBufferedRequests||!s.c_w('s_br',rs))s.brl=rs};s.flushBufferedReques"
	+"ts=function(){this.fbr(0)};s.fbr=function(id){var s=this,br=s.c_r('s_br');if(!br)br=s.brl;if(br){if(!s.disableBufferedRequests)s.c_w('s_br','');s.mr(0,0,br)}s.brl=0};s.mr=function(sess,q,rs,id,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 Object,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')+'/H.22.1/'+sess+'?AQB=1&ndh=1'+(q?q:'')+'&AQE=1';if(s.isie&&!s.ismac)rs=s.fl(rs,2047);if(id){s.br(id,rs);return}}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++;im.src=rs;if((!ta||ta=='_self'||ta="
	+"='_top'||(s.wd.name&&ta==s.wd.name))&&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){var 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,l,a,b='',c='',t;if(x){y=''+x;i=y.indexOf('?');if(i>0){a=y.substring(i+1);y=y.substring(0,i);h=y.toLowerCase()"
	+";i=0;if(h.substring(0,7)=='http://')i+=7;else if(h.substring(0,8)=='https://')i+=8;h=h.substring(i);i=h.indexOf(\"/\");if(i>0){h=h.substring(0,i);if(h.indexOf('google')>=0){a=s.sp(a,'&');if(a.lengt"
	+"h>1){l=',q,ie,start,search_key,word,kw,cd,';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){y+='?'+b+'&'"
	+"+c;if(''+x!=y)x=y}}}}}}return x};s.hav=function(){var s=this,qs='',fv=s.linkTrackVars,fe=s.linkTrackEvents,mn,i;if(s.pe){mn=s.pe.substring(0,1).toUpperCase()+s.pe.substring(1);if(s[mn]){fv=s[mn].tr"
	+"ackVars;fe=s[mn].trackEvents}}fv=fv?fv+','+s.vl_l+','+s.vl_l2:'';for(i=0;i<s.va_t.length;i++){var k=s.va_t[i],v=s[k],b=k.substring(0,4),x=k.substring(4),n=parseInt(x),q=k;if(v&&k!='linkName'&&k!='l"
	+"inkType'){if(s.pe||s.lnk||s.eo){if(fv&&(','+fv+',').indexOf(','+k+',')<0)v='';if(k=='events'&&fe)v=s.fs(v,fe)}if(v){if(k=='dynamicVariablePrefix')q='D';else if(k=='visitorID')q='vid';else if(k=='pa"
	+"geURL'){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.visitorMigra"
	+"tionServerSecure)v=''}else if(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 if(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(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+='&'+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.linkExt"
	+"ernalFilters,lif=s.linkInternalFilters;lif=lif?lif:s.wd.location.hostname;h=h.toLowerCase();if(s.trackDownloadLinks&&lft&&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 Function('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 Functi"
	+"on(\"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.inde"
	+"xOf(':');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.tagUrn===''))return '';if(o.scopeN"
	+"ame&&!(o.scopeName===''))return '';t=t&&t.toUpperCase?t.toUpperCase():'';if(t=='SHAPE')t='';if(t){if((t=='INPUT'||t=='BUTTON')&&o.type&&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.o"
	+"h(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.text"
	+"Content)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.wdl=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.visitorSamplingGroup,k='s_vsn_'+s.un+(g?'_'+g:''),n=s.c_r(k),e=new D"
	+"ate,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,',','dyasmf',m))return n}return 0};s.uns=function(){var s=this,x=s.dynam"
	+"icAccountSelection,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._in]=r;m=s.m_l[n]=r}if(f==f.toUpperCase())s[n]=m;return m};s.m_a=ne"
	+"w 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=funct"
	+"ion(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 if(d)u=m[t+1](d);else u=m[t+1]()}}m[f]=1;if(u)r=1}}return r};s.m_l"
	+"l=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.loadModule=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.f2,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.onreadystatechange=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.lengt"
	+"h&&g[i])i++;g[i]=o}}else if(n){m=s.m_i(n);m._e=1}return m};s.vo1=function(t,a){if(a[t]||a['!'+t])this[t]=a[t]};s.vo2=function(t,a){if(!a[t]){a[t]=this[t];if(!a[t])a['!'+t]=1}};s.dlt=new Function('v"
	+"ar 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)clearTimeou"
	+"t(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.pt(s.vl_g,',','vo2',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.t=function(vo,id){var s=this,trk=1,tm=new Date,sed=Math&&Math.random?Math.floor(Math.random()*10000000000000):tm.get"
	+"Time(),sess='s'+Math.floor(tm.getTime()/10800000)%10+sed,y=tm.getYear(),vt=tm.getDate()+'/'+tm.getMonth()+'/'+(y<1900?y+1900:y)+' '+tm.getHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' '+tm.getD"
	+"ay()+' '+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=tfs.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.innerHeight}}s.pl=s.n.plugins}else if(s.isie){if(s.apv>=4){v=s.n.j"
	+"avaEnabled()?'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.addBehav"
	+"ior(\"#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}c"
	+"atch(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;pn++}s.resolution=x;s.colorDepth=c;s.javascriptVersion=j;s.ja"
	+"vaEnabled=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.pt(s.vl_g,',','vo2',vb);s.pt(s.vl_g,',','vo1',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.parentElement?o.parentElement:o.p"
	+"arentNode;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)return ''}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?'&pe"
	+"v1='+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,id,ta);qs='';s.m_m('t');if(s.p_r)s.p_r();s.referrer=''}s.sq(qs);}else{s.dl(vo);}if(vo)s.pt(s.vl_g,',','vo1',vb);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='';if(!id&&!s.tc){s.tc=1;s.flushBufferedRequests()}return code};s.tl=function(o,t,n,vo){va"
	+"r s=this;s.lnk=s.co(o);s.linkType=t;s.linkName=n;s.t(vo)};if(pg){s.wd.s_co=function(o){var s=s_gi(\"_\",1,1);return s.co(o)};s.wd.s_gs=function(un){var s=s_gi(un,1,1);return s.t()};s.wd.s_dc=functi"
	+"on(un){var s=s_gi(un,1);return s.t()}}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=navigator;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)ap"
	+"n='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.a"
	+"pv=parseInt(i=v.substring(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.f"
	+"romCharCode){i=escape(String.fromCharCode(256)).toUpperCase();s.em=(i=='%C4%80'?2:(i=='%U0100'?1:0))}s.sa(un);s.vl_l='dynamicVariablePrefix,visitorID,vmk,visitorMigrationKey,visitorMigrationServer,"
	+"visitorMigrationServerSecure,ppu,charSet,visitorNamespace,cookieDomainPeriods,cookieLifetime,pageName,pageURL,referrer,currencyCode';s.va_l=s.sp(s.vl_l,',');s.vl_t=s.vl_l+',variableProvider,channel"
	+",server,pageType,transactionID,purchaseID,campaign,state,zip,events,products,linkName,linkType';for(var n=1;n<76;n++)s.vl_t+=',prop'+n+',eVar'+n+',hier'+n+',list'+n;s.vl_l2=',tnt,pe,pev1,pev2,pev3,"
	+"resolution,colorDepth,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"
	+",trackingServerSecure,trackingServerBase,fpCookieDomainPeriods,disableBufferedRequests,mobile,visitorSampling,visitorSamplingGroup,dynamicAccountSelection,dynamicAccountList,dynamicAccountMatch,tra"
	+"ckDownloadLinks,trackExternalLinks,trackInlineStats,linkLeaveQueryString,linkDownloadFileTypes,linkExternalFilters,linkInternalFilters,linkTrackVars,linkTrackEvents,linkNames,lnk,eo,_1_referrer';s."
	+"va_g=s.sp(s.vl_g,',');s.pg=pg;s.gl(s.vl_g);if(!ss)s.wds()",
	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=='s_c'){if(s.oun==un)return s;else if(s.fs&&s.sa&&s.fs(s.oun,un)){s.sa(un);return s}}}}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){w.s_c=new Function("un","pg","ss","var s=this;"+c);return new s_c(un,pg,ss)}else s=new Function("un","pg","ss","var s=new Object;"+s_ft(c)+";return s");return s(un,pg,ss)}
};


// NetEffect Site Catalyst Functions
(function() {
	var N = NetEffect;
	
	N.SC = {
		config: {
			siteId: '',
			reportSuiteId: '',
			maxPathLevels: 5, // Maximum nesting level of pages to track
			errorPath404_param: 'aspxerrorpath', // Querystring param containing the attempted page URI
			pageNameCookie: 'sc_page_name',
			formObjCookie: 'sc_lead_obj',
			defaultLeadScore: 7,
			depthCountCookie: 'sc_click_depth',
			clickDepthEvent: ['event41','event42','event43','event44','event45'],
			icCookieName: 'sc_internal_campaign'
		},
		
		aliasPath: '',
		pageName: '',
		ipAddress: '',
		dstObj: {},
		userId: N.config.publicUserId,
		trackForms: [],
		__testInfo: 'no', // initialize as 'no'
		
		/* - Finish making the testInfo object with email, userid, etc.
		testmode: function() {
			if(N.SC.__testInfo === 'no') {
				var qt = s.getQueryParam('testmode');
				if(qt !== '') {
					qt = (parseInt(qt) === 1 || qt.toString() === 'true') ? 1 : 0;
					N.SC.
					$.JSONCookie(N.SC.config.formObjCookie, formData, {path: '/'});
					N.SC.__testing = qt;
				} else {
					var ct = $.cookie('testing');
					ct = (ct && (parseInt(ct) === 1 || ct.toString() === 'true')) ? 1 : 0;
					N.SC.__testing = ct;
				}
			}
			return N.SC.__testing;
			//Math.random?Math.floor(Math.random()*10000000000000)
		},
		*/
		
		NameAndPath: function(sObj, path, name) {
			if(!sObj) {
				if(s) {
					sObj = s;
				} else {
					return;
				}
			}
			if (!path || path == null) {
				if(N.SC.aliasPath) {
					path = N.SC.aliasPath;
				} else {
					return;
				}
			}
			if(!name || name == null) {
				name = N.SC.pageName || path[path.length - 1];
			}
			
			var pathArray = path.split('/');
			if(pathArray[0] == '') {
				pathArray.shift();
			}
			
			sObj.pageName = (N.SC.config.siteId + ':' + pathArray.join(':')).toLowerCase();
			sObj.channel = (pathArray[0]).toLowerCase();
			sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'server', ',', 2);
			sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'channel', ',', 2);
			
			// 404 handling
			if (sObj.pageType) {
				sObj.prop14 = sObj.getQueryParam(errorPath404_param); // Target (attempted) page
			}
			
			sObj.eVar16 = '+1'; // Page views before lead counter
	
			sObj.eVar18 = name.toLowerCase();
			sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'prop11,eVar17,eVar18', ',', 2);			
			
			sObj.eVar35 = sObj.getQueryParam('sc_uvid');// unique visitor id
			sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'eVar35', ',', 2);
	
			sObj.events = sObj.apl(sObj.events, 'event3', ',', 2); // Visits custom
			sObj.events = sObj.apl(s.events, 'event4', ',', 2); // Page view custom
			sObj.events = sObj.apl(s.events, 'event28', ',', 2); // Page view custom with participation
			
			// Click Depth
			var depthCount = sObj.c_r(N.SC.config.depthCountCookie);
			if (sObj.getVisitStart("s_visit") || !depthCount) {
				depthCount = 0;
			} else {
				depthCount = parseInt(depthCount) + 1;
			}
			sObj.c_w(N.SC.config.depthCountCookie, depthCount);
			if(N.SC.config.clickDepthEvent[depthCount]) {
				sObj.events = s.apl(sObj.events, N.SC.config.clickDepthEvent[depthCount], ',', 2);
			}
	
			sObj.prop16 = sObj.getQueryParam('sc_icid') || $.cookie(N.SC.config.icCookieName);
			if (sObj.prop16) {
				$.cookie(N.SC.config.icCookieName, null, {path:'/'})
				sObj.eVar9 = sObj.eVar10 = 'D=c16'; // First // Last
				sObj.eVar11 = s.crossVisitParticipation(sObj.prop16, 'sc_icid_stack', 90, 5, '>', 'event2,purchase', 1); // Stack  - hold up to 5 values for 90 days and expire on Lead Success or purchase
				
				sObj.events = sObj.apl(sObj.events, 'event10', ',', 2);
				sObj.products = sObj.apl(sObj.products, 'promo:' + sObj.prop16, ',', 2);
				
				sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'prop16,eVar9,eVar10,eVar11,products,events', ',', 2);
				sObj.linkTrackEvents = s.apl(sObj.linkTrackEvents, 'event10', ',', 2);
			}
			
			N.SC.TrackPreviousPageInfo(sObj);
	
			if (pathArray.length > N.SC.config.maxPathLevels && N.inDev()) {
				trace('Pages greater than ' + N.SC.config.maxPathLevels + ' deep are not getting tracked!');
			}
	
			// The first path item is used by channel, so start on 1.
			var pageName = '';
			for (i = 1; i < N.SC.config.maxPathLevels; i++) {
				var prop = '';
				var exists = false;
	
				if (pathArray[i-1] && pathArray[i-1] != null) {
					pageName = pathArray[i - 1].toLowerCase();
					if (pageName.indexOf('?') > -1) {
						pageName = pageName.substring(0, pageName.indexOf('?') - 1);
					}
					exists = true;
				}
				
				if (i > 1) {
					prop = 'D=c' + (i - 1);
					if (exists) {
						prop += '+":' + pageName + '"';
					}  
				} else {
					prop = pageName;
				}
				
				sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'prop' + i, ',', 2);
	
				sObj['prop' + i] = prop;			
			}
		},
		// Rule 1: Pass a null 'sObj' to send via tl() as opposed to t()
		// Rule 2: Omit 'path' or 'name' to prevent SC_NameAndPath from being called
		// Rule 3: 'name' must always be set
		TrackEvent: function(sObj, propsObj, eVarsObj, eventsArray, path, name, productsArray) {
			var sendViaTL = false;
		
			if (!sObj || sObj == null) {
				sendViaTL = true;
				var sObj = N.createSObj();
			}
			
			if (propsObj && propsObj != null) {
				for (var prop in propsObj) {
					if (sendViaTL) {
						sObj.linkTrackVars = s.apl(sObj.linkTrackVars, prop.toString(), ',', 2);
					}
					sObj[prop] = (propsObj[prop].indexOf('D=') > -1) ? propsObj[prop] : propsObj[prop].toLowerCase();
				}
			}
			if (eVarsObj && eVarsObj != null) {
				for (var eVar in eVarsObj) {
					if (sendViaTL) {
						sObj.linkTrackVars = s.apl(sObj.linkTrackVars, eVar.toString(), ',', 2);
					}
					sObj[eVar] = (eVarsObj[eVar].indexOf('D=') > -1) ? eVarsObj[eVar] : eVarsObj[eVar].toLowerCase();
				}
			}
			if (eventsArray && eventsArray != null && eventsArray.length > 0) {
				if (sendViaTL) {
					sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'events', ',', 2);
				}
				for (var i = 0; i < eventsArray.length; i++) {
					if (sendViaTL) {
						sObj.linkTrackEvents = s.apl(sObj.linkTrackEvents, eventsArray[i].toLowerCase(), ',', 2);
					}
		
					sObj.events = s.apl(sObj.events, eventsArray[i].toLowerCase(), ',', 2);
				}
			}
		
			if (path && path != null && path != '' && name && name != null && name != '') {
				N.SC.NameAndPath(sObj, path, name);
			}
			
			if(productsArray && productsArray !== null) {
				N.SC.TrackProducts(sObj, productsArray.join(','), sendViaTL);
			}
			
			if (sendViaTL) {
				sObj.tl(this, 'o', name.toLowerCase());
			} else {
				sObj.t();
			}
		},
		
		TrackPreviousPageInfo: function(sObj) {
			if(typeof(sObj) === 'undefined') {
				sObj = s;
			}
			
			// Previous page name- reset on every page view & on exit
			sObj.eVar22 = sObj.getPreviousValue(sObj.pageName, N.SC.config.pageNameCookie);
			if(sObj.eVar22) {
				// Percent page viewed
				sObj.prop24 = sObj.getPercentPageViewed();
				sObj.prop25 = 'D=v22';
				sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'prop24,prop25,eVar22', ',', 2);
			}
		},
		
		// Check this before tracking a page load.  We don't want to track form postbacks as page views.
		FormCausedPostback: false,
		ActiveForm: '',
		
		// IMPORTANT: The selector must exist, even after successful submission!  Give the form a wrapper, and use it for the selector
		FormData: function(sel, fn, fs, fe, lf, bs, as) {
			this.selector = sel;
			this.formName = fn;
			this.formScore = fs;
			this.formEvent = fe;
			this.isLeadForm = lf;
			this.beforeSubmit = bs; // function
			this.afterSubmit = as; // function
			
			this.formStartTime = 0;
			this.formAliasPath = '';
		},
		
		InitFormTracker: function() {
			var forms = N.SC.trackForms;
			N.SC.ActiveForm = $.JSONCookie(N.SC.config.formObjCookie);
			
			/*if(N.SC.ActiveForm) {
				$.log('Form In Use: ' + N.SC.ActiveForm.formName + ' - on page: ' + N.SC.ActiveForm.formAliasPath);
			}*/
			for(var i = forms.length-1; i >= 0 ; i--) {
				var $form = $( forms[i].selector );
				var $fields = N.SC.$GetFormFields( $form );
				
				if($fields.length) {
					if( N.SC.FormStarted(forms[i]) && !N.SC.IsFormComplete(forms[i].selector) ) {
						// failed validation (full postback)
						//$.log(' -- Post back with errors');
						N.SC.TrackFormResonse(true, false);
						N.SC.FormCausedPostback = true; // Prevents duplicate page view tracking
					} else {
						// It's a fresh start... delete the cookie
						//$.log('Set up event handlers for form focus');
						N.SC.ClearFormCookie();
						$fields.bind('focus.leadInit', forms[i], function( e ) {
							var eData = e.data; // In some scenarios, the scope of TrackFormStart loses context, and e.data was undefined... so lets hold e.data in a local variable
							var $fields = N.SC.$GetFormFields(eData.selector);
							$fields.unbind('focus.leadInit');
							setTimeout(function() { N.SC.TrackFormStart(eData, true); }, 200);
						});
						N.SC.$GetSubmit($form).attr('disabled', 'disabled');
					}
				} else {
					if( N.SC.FormStarted(forms[i]) ) {
						// TODO: See about saving cookies with a specific path so that the cookie itself is scoped to the page alias/url
						//$.log('No form fields found for ' + forms[i].formName + '.  Form started on page: ' + N.SC.ActiveForm.formAliasPath);
						if(typeof(forms[i].formAliasPath) !== 'undefined' && forms[i].formAliasPath.toLowerCase() == N.SC.aliasPath.toLowerCase()) {
							// Lead success with full postpack
							$.log('Tracked lead success with postback');
							N.SC.TrackFormResonse(true);
							N.SC.FormCausedPostback = true; // Prevents duplicate page view tracking
						} else {
							// Switched pages.  Delete the cookie
							N.SC.ClearFormCookie();
						}
					}
				}
				
				if(forms[i].onFormInit && typeof forms[i].onFormInit === 'function') {
					forms[i].onFormInit();
				}
			}
		},
			
		FormStarted: function(formData) {
			return (N.SC.ActiveForm && typeof(formData) !== 'undefined' && typeof(N.SC.ActiveForm.formName) !== 'undefined' && N.SC.ActiveForm.formName.toLowerCase() == formData.formName.toLowerCase());
		},
		$GetFormFields: function(selector) {
			return $(selector).find(':input').not('input[type=hidden]').not('input[type=submit]').not('input[type=image]');
		},
		$GetSubmit: function($form) {
			return $form.find('input[type=submit],input[type=image]').last();
		},
		SaveFormData: function(formData) {
			// TODO: See about using the alias path to store the cookie itself - consider formData property "IsGlobalForm"
			// TODO: Namespace the cookie so that multiple forms can go at same time
			$.JSONCookie(N.SC.config.formObjCookie, formData, {path: '/'});
		},
		
		TrackFormStart: function(formData, sendViaTL) {
			if(formData) {
				var eVarObj = {};
				var eventArray = [];
				var t = new Date;
				formData.formStartTime = t.setTime(t.getTime());
				formData.formAliasPath = N.SC.aliasPath;
				
				$.log('Track form start on page: ' + N.SC.aliasPath);
				N.SC.SetupForm(formData);
				N.SC.SutupAsyncFormHandlers(formData); // Only do this on Form Start
				
				if(formData.onStart && typeof formData.onStart === 'function') {
					formData.onStart();
				}
				
				formData.rrrr = 'ssss';
				N.SC.SaveFormData(formData);
				
				if(sendViaTL === true) {
					if(formData.isLeadForm === true) {
						eVarObj.eVar1 = formData.formName;
						eventArray.push('event1');
					}
					N.SC.TrackEvent(null, null, eVarObj, eventArray, formData.formAliasPath, formData.formName);
				} else {
					if(formData.isLeadForm === true) {
						s.eVar1 = leadData.leadName;
						s.events = s.apl(s.events, 'event1', ',', 2); // Any Lead initiated
					}
				}
			}
		},
		
		// Call this on Start, and after every postback (async or sync)
		SetupForm: function(formData) {
			//$.log('Setup Form');
			var $form = $(formData.selector);
			var $submit = N.SC.$GetSubmit($form);
			$submit.removeAttr('disabled').bind('click.LeadInit', function() {
				if(typeof(formData.userEmail) === 'undefined') {
					var $fields = N.SC.$GetFormFields( $form );
					if($fields.length) {
						$fields.each(function() {
							var val = $(this).val();
							if( N.SC.IsValidEmail(val) ) {
								formData.userEmail = val;
								N.SC.SaveFormData(formData);
								return false;
							}
						});
					}
				}
			});
		},
		
		SutupAsyncFormHandlers: function(formData) {
			//$.log('SutupAsyncFormHandlers');
			var $form = $(formData.selector);
			var $submit = N.SC.$GetSubmit($form);
			
			//// Handle .NET UpdatePanel postbacks
			if(typeof(Sys) !== 'undefined') {
				$submit.bind('click.LeadInit', function() {
					if(formData.beforeSubmit && typeof formData.beforeSubmit === 'function') {
						Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(formData.beforeSubmit);
					}
				});
				
				Sys.WebForms.PageRequestManager.getInstance().add_endRequest(N.SC.HandleAsyncFormResonse);
			}
		},
		
		// Only pass value to formIsValid if you are absolutely sure... otherwise leave blank.
		TrackFormResonse: function(sendViaTL, formIsValid) {
			var formData = $.JSONCookie(N.SC.config.formObjCookie);
							
			if(formData) {
				var success = (!formIsValid) ? N.SC.IsFormComplete(formData.selector) : formIsValid;
				var leadName = formData.formName;
				var alias = formData.formAliasPath;
				var eVarObj = {};
				var eventArray = [];
				var pageName = leadName + ' - ';
				
				if(formData.afterSubmit && typeof formData.afterSubmit === 'function') {
					formData.afterSubmit(success);
				}
				
				s.events = s.events.replace(/event(?:1|5),?/, '');
				if(success === true) {
					pageName += ' success';
					// Set the Unique Visitor ID here
					if(sendViaTL === true) {
						if(formData.isLeadForm === true) {
							eventArray.push('event2'); // Any Lead completed
						}
					} else {
						if(formData.isLeadForm === true) {
							s.events = s.apl(s.events, 'event2', ',', 2);
						}
					}
					
					N.SC.TrackEngagement(formData.formName + ' - Form Complete', formData.successScore, formData.successEvent, true);
					
					// Empty the cookie
					N.SC.ClearFormCookie();
				} else {
					pageName += ' friction';
					N.SC.SetupForm(formData);
					
					if(sendViaTL == true) {
						if(formData.isLeadForm === true) {
							eventArray.push('event5'); // Any Lead form friction
						}
					} else {
						if(formData.isLeadForm === true) {
							s.events = s.apl(s.events, 'event5', ',', 2);
						}
					}
				}
				
				if(sendViaTL == true) {
					$.log('Track form via TL');
					if(formData.isLeadForm === true) {
						eVarObj.eVar1 = leadName;
					}
					if(typeof(formData.userEmail) !== 'undefined') {
						eVarObj.eVar38 = formData.userEmail;
						eVarObj.eVar39 = 'D=v38';
					}
					N.SC.TrackEvent(null, null, eVarObj, eventArray, formData.formAliasPath, formData.formName);
				} else {
					if(formData.isLeadForm === true) {
						s.eVar1 = leadName;
					}
					if(typeof(formData.userEmail) !== 'undefined') {
						s.eVar38 = formData.userEmail;
						s.eVar39 = 'D=v38';
					}
				}
			}
		},
		
		HandleAsyncFormResonse: function(sender, args) {
			if (args.get_error() == undefined || args.get_error() == null) {
				N.SC.TrackFormResonse(true);
			} else {
				// Request failed
				args.set_errorHandled(true);
				alert("There was an error processing the form.  Please try again later. \n\nSorry for the inconvenience.\n");
			}
		},
		
		IsFormComplete: function(selector) {
			//$.log('Is form complete');
			var $form = $(selector);
			var errorSelectors = ['.ErrorLabel','.EditingFormErrorLabel','span[id*=lblError]'];
			var isError = false;
			for(var i = errorSelectors.length-1; i >= 0; i--) {
				if($form.find( errorSelectors[i] ).length > 0) {
					isError = true;
					break;
				}
			}
			return !isError;
		},
		
		IsValidEmail: function(email)
		{
			var re =  /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;               //'//Keep this double comment to allow code formatting in IDE 
			return email.match(re);
		},
		
		ClearFormCookie: function() {
			$.cookie(N.SC.config.formObjCookie, null, {path: '/'});
		},
		
		TrackPressReleasePage: function() {
			N.SC.TrackEngagement('PressReleaseView', 3, 'event38');
		},
		
		TrackSearchPage: function(searchPhraseParam, searchModeParam, pagingParam) {
			searchPhraseParam = searchPhraseParam ? searchPhraseParam : 'searchtext';
			searchModeParam = searchModeParam ? searchModeParam : 'searchmode';
			pagingParam = pagingParam ? pagingParam : 'page';
			
			var searchPhrase = s.getQueryParam(searchPhraseParam);
			var searchMode = s.getQueryParam(searchModeParam);
			var page = s.getQueryParam(pagingParam);
			
			if(searchPhrase) {
				if(searchMode) {
					s.prop9 = searchMode;
				}
				if(page) {
					if(page > 1) {
						searchPhrase += ' [page: ' + page +']';
					}
				}
				s.prop6 = searchPhrase;
				s.eVar20 = 'D=c6';
				s.events = s.apl(s.events, 'event19', ',', 2);
				
				s.prop8 = 'D=v22'; // Referring page
				N.SC.TrackEngagement('Search', 3);
			}
		},
		
		TrackNoSearchResults: function(searchPhraseParam) {
			searchPhraseParam = searchPhraseParam ? searchPhraseParam : 'searchtext';
			
			s.prop6 = ''; // Remove search term
			s.prop7 = s.getQueryParam(searchPhraseParam); // Set only when no results
		},
		
		TrackSubscription: function(sObj, type, score, p, v, e) {
			p = p ? p : {};
			v = v ? v : {};
			e = e ? e : [];
			score = score ? score : 2;
			N.SC.TrackEngagement(type, score, e.join(','));
			
			if(!sObj || sObj == null || typeof sObj === 'undefined') {
				e = e.push('event13'); // all subscriptions
				v['eVar33'] = type; // subscription type
				
				N.SC.TrackEvent(null, p, v, e, aliasPath, type);
			} else {
				sObj.events = s.apl(sObj.events, 'event13', ',', 2);
				sObj.eVar33 = type;
			}
		},
		
		// Call this on any page of type CMS.Blog
		TrackBlogView: function(blogName) {
			s.prop19 = blogName.toLowerCase();
			s.eVar24 = 'D=c19';
		},
		
		TrackBlogMonthView: function() {
			N.SC.TrackEngagement('BlogMonthView', 2, 'event14');
		},
		
		// Call this on any page of type CMS.BlogPost
		// postTitle	:	string
		// userId		:	int
		// blogName		: 	string
		// tags			;	array
		TrackBlogPostView: function(postTitle, authorId, blogName, tags) {
			N.SC.TrackBlogView(blogName);
			
			var hasTag = false;
			if(tags !== undefined) {
				var tagArray = tags.split(',');
				for(var i = 0; i < tagArray.length - 1; i++) {
					var tag = tagArray[i].replace(/(")/gi, '').replace(/^\s+|\s+$/g, ''); // remove quotes and trim white space
					if(tag.replace(/( )/gi, '') != '') {
						hasTag = true;
						s.products = s.apl(s.products, ';BlogPostTag:' + tag, ',', 2); // ex: s.products = ";tag1,;tag2"
					}
				}
			}
			
			s.prop20 = authorId; // Author ID
			s.prop21 = postTitle.toLowerCase(); // Post Title
			
			s.eVar25 = 'D=c20';
			s.eVar26 = 'D=c21';
			s.eVar27 = '+1'; // Blog post view counter, added 5/13/2010
			s.eVar30 = '+1'; // Blog post view counter
			
			s.events = s.apl(s.events, 'event11', ',', 2); // Blog Post View
			s.events = s.apl(s.events, 'event12', ',', 2); // Blog Post View w/ Participation (used for pull-through rate)
			
			if(hasTag) {
				s.events = s.apl(s.events, 'event16', ',', 2); // Blog Tag impression
			}
			
			N.SC.TrackEngagement('BlogPostView', 1);
		},
		
		// IMPORTANT: call this AFTER all props, evars, and events are sent for the page
		// Rule 1: Do not add anything directly to sObj.
		TrackBlogComment: function(email, boolSubscribed) {
			s.prop23 = (email).toLowerCase(); // email
			s.eVar28 = 'D=c23'; // email
			s.eVar29 = '+1'; // comment counter
			s.events = s.apl(s.events, 'event18', ',', 2);
			
			N.SC.TrackEngagement('BlogPostComment', 4, 'event18', true);
		
			if (boolSubscribed) {
				N.SC.TrackSubscription(s, 'BlogPostSubscription', 2, '', '', ['event15']);
			}
		},
		
		TrackProductView: function(productId) {
			s.products = s.apl(s.products, ';' + productId, ',', 2);
			s.events = s.apl(s.events, 'prodView', ',', 2); // Omniture Product View Event
			s.events = s.apl(s.events, 'event20', ',', 2); // Product View
		},
		
		TrackProducts: function(sObj, products, boolIsAsync) {
			if(products) {
				if(!sObj || sObj == null) {
					sObj = s;

				}
				if(products.indexOf(',') > -1) {
					var productsArray = products.split(',');
					for (var i = 0; i < productsArray.length; i++) {
						if(productsArray[i] != '') {
							sObj.products = sObj.apl(sObj.products, productsArray[i], ',', 2);
						}
					}
				} else {
					sObj.products = sObj.apl(sObj.products, products, ',', 2);
				}
				if(boolIsAsync === true) {
					sObj.linkTrackVars = sObj.apl(sObj.linkTrackVars, 'products', ',', 2);
				}
			}
		},
		
		// Function to clean out duplicate products, based on certain criteria
		// If the criteria (string) is found in the products string, the product is removed
		EnsureUniqueProduct: function(sObj, criteria) {
			if(!sObj || !criteria) {
				return;
			}
			// Special treatment for products
			if(sObj.products) {
				var products = sObj.products.split(',');
				sObj.products = '';
				for(var i = 0; i < products.length; i++) {
					if(products[i].indexOf(criteria) == -1) {
						sObj.products = s.apl(sObj.products, products[i], ',', 2);
					}
				}
			}
		},
		
		// isFirstItem	:	boolean - Is this the first item in the cart?
		TrackAddToCart: function(product, isFirstItem) {
			s.products = s.apl(s.products, product, ',', 2);
			
			if(isFirstItem === true) {
				s.events = s.apl(s.events, 'scOpen', ',', 2); // Omniture Create Cart Event
		
				N.SC.TrackEngagement('scOpen', 3);
			}
			s.events = s.apl(s.events, 'scAdd', ',', 2); // Omniture Add to Cart
		},
		
		TrackShoppingCartView: function() {
			s.events = s.apl(s.events, 'scView', ',', 2); // Omniture View Cart
		},
		
		TrackCoupon: function(cID) {
			if(cID) {
				s.prop26 = cID;
				s.eVar34 = 'D=c26';
			}
		},
		
		TrackCheckout: function() {
			s.events = s.apl(s.events, 'scCheckout', ',', 2); // Omniture View Cart
			
			N.SC.TrackEngagement('scCheckout', 3);
		},
		
		TrackClickToCall: function() {
				setTimeout(function() { N.SC.TrackEvent(null, '', '', ['event24'], N.SC.aliasPath, 'Click To Call') }, 200);
		},
		
		TrackInternalCampaign: function(icName) {
			// Set a cookie, and ckeck on next page load
			if(icName && icName != null) {
				$.cookie(N.SC.config.icCookieName, icName, {path:'/'});
			}
		},
		
		TrackOrderSuccess: function(orderId, stateCode, postalCode, products) {
			N.SC.TrackProducts(s, products);
			
			s.events = s.apl(s.events, 'purchase', ',', 2);
			s.purchaseID = orderId;
			s.zip = postalCode;
			s.state = stateCode;
		
			N.SC.TrackEngagement('purchase', 4);
		},
		
		// User engagement score
		Engagement: {
			score: 0,
			activity: '',
			events: ''
		},
		
		TrackEngagement: function(type, score, evt, boolReset) {
			if(type && score) {
				// TODO: Save 'type' and 'page name' in a cookie and run a check to prevent double scoring
				score = parseFloat(score);
				N.SC.Engagement.score = (boolReset == true) ? score : N.SC.Engagement.score + score;
				N.SC.Engagement.activity = (boolReset == true) ? type : (N.SC.Engagement.activity) ? N.SC.Engagement.activity + '-' + type : type;
				N.SC.Engagement.events = (boolReset == true) ? evt : s.apl(N.SC.Engagement.events, evt, ',', 2);
			}
			//trace('Track Enagagemnt: ' + s.prop22 + ', ' + engagement);
		},
		
		ApplyEngagement: function(sObj) {
			if(N.SC.Engagement.score > 0) {
				sObj.prop22 = N.SC.Engagement.activity;
				sObj.eVar31 = '+' + N.SC.Engagement.score;
				sObj.eVar32 = 'D=c22';
				sObj.eVar36 = 'D=v31'; 
				sObj.eVar37 = 'D=v31';
				sObj.events = s.apl(sObj.events, 'event6,event22,event23', ',', 2); // Engagement score, Engagement participation, Activity Score
				sObj.events = s.apl(sObj.events, N.SC.Engagement.events, ',', 2); // Custom activity event
				sObj.linkTrackVars = s.apl(sObj.linkTrackVars, 'products,eVar31,eVar32,eVar36,eVar37,prop22,events', ',', 2);
				sObj.linkTrackEvents = s.apl(sObj.linkTrackEvents, 'event6,event22,event23', ',', 2);
				sObj.linkTrackEvents = s.apl(sObj.linkTrackEvents, N.SC.Engagement.events, ',', 2);
				
				N.SC.EnsureUniqueProduct(sObj, ';;;;event6=');
				sObj.products = s.apl(sObj.products, ';;;;event6=' + N.SC.Engagement.score, ',', 2);
		
				N.SC.Engagement.score = 0;
				N.SC.Engagement.activity = '';
				N.SC.Engagement.events = '';
			}	
		},
		
		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 = '';
		},
		
		// Facebook tracking functions
		FB: {
			TrackLikeButton: function(href) {
				N.SC.TrackEngagement('FacebookLike', 1, 'event40', true);
				N.SC.TrackEvent(null, null, null, null, '', 'FacebookLike');
			}
		}
	};
}());

(function() {
	var N = NetEffect;
	N.SC.Video = {
		list: {}, // id -> VideoObject
		
		VideoObject: function(playerType) {
			this.playerType = playerType || 'Unspecified';
			this.isOpen = false;
			this.isPlaying = false;
			this.isSeeking = false;
			this.isEnded = false;
			this.duration = 0;
			this.position = 0;
		},
		
		TrackPlay: function(playerId, duration) {
			if(playerId && N.SC.Video.list[playerId] && (!N.SC.Video.list[playerId].isPlaying || N.SC.Video.list[playerId].isSeeking)) {
				if(!N.SC.Video.list[playerId].isOpen) {
					if(isNaN(duration)) {
						return;
					}
					N.SC.Video.list[playerId].duration = duration;
					N.SC.Video.list[playerId].isOpen = true;
					s.Media.open(playerId, N.SC.Video.list[playerId].duration, N.SC.Video.list[playerId].playerType);
					$.log('open: ' + playerId + ' - ' + duration + ' - ' + N.SC.Video.list[playerId].playerType);
				}
				
				N.SC.Video.list[playerId].isPlaying = true;
				N.SC.Video.list[playerId].isEnded = false;
				s.Media.play(playerId, Math.floor(N.SC.Video.list[playerId].position));
				$.log('play: ' + playerId + ' - ' + N.SC.Video.list[playerId].position);
			}
		},
		
		TrackPause: function(playerId) {
			if(playerId && N.SC.Video.list[playerId] && N.SC.Video.list[playerId].isPlaying) {
				if(!N.SC.Video.list[playerId].isSeeking) {
					N.SC.Video.list[playerId].isPlaying = false;
				}
				s.Media.stop(playerId, N.SC.Video.list[playerId].position);
				$.log('pause: ' + playerId + ' - ' + N.SC.Video.list[playerId].position);
			}
		},
		
		TrackSeeked: function(playerId) {
			if(playerId && N.SC.Video.list[playerId] && N.SC.Video.list[playerId].isOpen && N.SC.Video.list[playerId].isSeeking) {
				//$.log('seeked: pos = ' + N.SC.Video.list[playerId].position);
				if(N.SC.Video.list[playerId].isPlaying) {
					N.SC.Video.TrackPlay(playerId);
				}
				N.SC.Video.list[playerId].isSeeking = false; // Do this last
			}
		},
		
		TrackSeeking: function(playerId) {
			if(playerId && N.SC.Video.list[playerId] && N.SC.Video.list[playerId].isOpen && !N.SC.Video.list[playerId].isSeeking) {
				//$.log('seeking: pos = ' + N.SC.Video.list[playerId].position);
				N.SC.Video.list[playerId].isSeeking = true;
				N.SC.Video.TrackPause(playerId);
			}
		},
		
		TrackEnd: function(playerId) {
			if(playerId && N.SC.Video.list[playerId] && N.SC.Video.list[playerId].isOpen) {
				N.SC.Video.TrackPause(playerId);
				N.SC.Video.list[playerId].isEnded = true;
				N.SC.Video.list[playerId].isOpen = false;
				s.Media.close(playerId);
				$.log('close: ' + playerId);
			}
		},
		
		SetPosition: function(playerId, currentTime, duration) {
			if(playerId && N.SC.Video.list[playerId]) {
				// Chrome does not know the 'duration' on first play... so we must do this stupidness
				if(!N.SC.Video.list[playerId].isOpen && !N.SC.Video.list[playerId].isEnded) {
					N.SC.Video.TrackPlay(playerId, duration);
				}
				N.SC.Video.list[playerId].position = currentTime;
			}
		}
	};
}());

/**
 * Copyright (C) 2009 Jonathan Azoff <jon@azoffdesign.com>
 * jQuery.log v1.0.0 - A jQuery plugin that unifies native console logging across browsers
 */
(function(a){a.extend({log:function(){if(arguments.length>0){var b=(arguments.length>1)?Array.prototype.join.call(arguments," "):arguments[0];try{console.log(b);return true}catch(c){try{opera.postError(b);return true}catch(c){}}return false}}})})(jQuery);

/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1}var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000))}else{date=options.expires}expires='; expires='+date.toUTCString()}var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('')}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break}}}return cookieValue}};

/*
    http://www.JSON.org/json2.js
    2008-05-25

    Public Domain.

    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.

    See http://www.JSON.org/js.html

    This file creates a global JSON object containing two methods: stringify
    and parse.
*/
if(!this.JSON){JSON=function(){function f(n){return n<10?'0'+n:n}Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z'};var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapeable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapeable.lastIndex=0;return escapeable.test(string)?'"'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c}return'\\u'+('0000'+(+(a.charCodeAt(0))).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key)}if(typeof rep==='function'){value=rep.call(holder,key,value)}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null'}gap+=indent;partial=[];if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null'}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value,rep);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value,rep);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v}}return{stringify:function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' '}}else if(typeof space==='string'){indent=space}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':value})},parse:function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+(+(a.charCodeAt(0))).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j}throw new SyntaxError('JSON.parse');}}}()}

/** 
 * JSON Cookie - jquery.jsoncookie.js
 *
 * Sets and retreives native JavaScript objects as cookies.
 * Depends on the object serialization framework provided by JSON2.
 *
 * Dependencies: jQuery, jQuery Cookie, JSON2
 * 
 * @project JSON Cookie
 * @author Randall Morey
 * @version 0.9
 */
(function($){var isObject=function(x){return(typeof x==='object')&&!(x instanceof Array)&&(x!==null)};$.extend({getJSONCookie:function(cookieName){var cookieData=$.cookie(cookieName);return cookieData?JSON.parse(cookieData):{}},setJSONCookie:function(cookieName,data,options){var cookieData='';options=$.extend({expires:90,path:'/'},options);if(!isObject(data)){throw new Error('JSONCookie data must be an object');}cookieData=JSON.stringify(data);return $.cookie(cookieName,cookieData,options)},removeJSONCookie:function(cookieName){return $.cookie(cookieName,null)},JSONCookie:function(cookieName,data,options){if(data){$.setJSONCookie(cookieName,data,options)}return $.getJSONCookie(cookieName)}})})(jQuery);

/* Uniform: http://pixelmatrixdesign.com/uniform */
(function(a){a.uniform={options:{selectClass:"selector",radioClass:"radio",checkboxClass:"checker",fileClass:"uploader",filenameClass:"filename",fileBtnClass:"action",fileDefaultText:"No file selected",fileBtnText:"Choose File",checkedClass:"checked",focusClass:"focus",disabledClass:"disabled",buttonClass:"button",activeClass:"active",hoverClass:"hover",useID:true,idPrefix:"uniform",resetSelector:false,autoHide:true},elements:[]};if(a.browser.msie&&a.browser.version<7){a.support.selectOpacity=false}else{a.support.selectOpacity=true}a.fn.uniform=function(k){k=a.extend(a.uniform.options,k);var d=this;if(k.resetSelector!=false){a(k.resetSelector).mouseup(function(){function l(){a.uniform.update(d)}setTimeout(l,10)})}function j(l){$el=a(l);$el.addClass($el.attr("type"));b(l)}function g(l){a(l).addClass("uniform");b(l)}function i(o){var m=a(o);var p=a("<div>"),l=a("<span>");p.addClass(k.buttonClass);if(k.useID&&m.attr("id")!=""){p.attr("id",k.idPrefix+"-"+m.attr("id"))}var n;if(m.is("a")||m.is("button")){n=m.text()}else{if(m.is(":submit")||m.is(":reset")||m.is("input[type=button]")){n=m.attr("value")}}n=n==""?m.is(":reset")?"Reset":"Submit":n;l.html(n);m.css("opacity",0);m.wrap(p);m.wrap(l);p=m.closest("div");l=m.closest("span");if(m.is(":disabled")){p.addClass(k.disabledClass)}p.bind({"mouseenter.uniform":function(){p.addClass(k.hoverClass)},"mouseleave.uniform":function(){p.removeClass(k.hoverClass);p.removeClass(k.activeClass)},"mousedown.uniform touchbegin.uniform":function(){p.addClass(k.activeClass)},"mouseup.uniform touchend.uniform":function(){p.removeClass(k.activeClass)},"click.uniform touchend.uniform":function(r){if(a(r.target).is("span")||a(r.target).is("div")){if(o[0].dispatchEvent){var q=document.createEvent("MouseEvents");q.initEvent("click",true,true);o[0].dispatchEvent(q)}else{o[0].click()}}}});o.bind({"focus.uniform":function(){p.addClass(k.focusClass)},"blur.uniform":function(){p.removeClass(k.focusClass)}});a.uniform.noSelect(p);b(o)}function e(o){var m=a(o);var p=a("<div />"),l=a("<span />");if(!m.css("display")=="none"&&k.autoHide){p.hide()}p.addClass(k.selectClass);if(k.useID&&o.attr("id")!=""){p.attr("id",k.idPrefix+"-"+o.attr("id"))}var n=o.find(":selected:first");if(n.length==0){n=o.find("option:first")}l.html(n.html());o.css("opacity",0);o.wrap(p);o.before(l);p=o.parent("div");l=o.siblings("span");o.bind({"change.uniform":function(){l.text(o.find(":selected").html());p.removeClass(k.activeClass)},"focus.uniform":function(){p.addClass(k.focusClass)},"blur.uniform":function(){p.removeClass(k.focusClass);p.removeClass(k.activeClass)},"mousedown.uniform touchbegin.uniform":function(){p.addClass(k.activeClass)},"mouseup.uniform touchend.uniform":function(){p.removeClass(k.activeClass)},"click.uniform touchend.uniform":function(){p.removeClass(k.activeClass)},"mouseenter.uniform":function(){p.addClass(k.hoverClass)},"mouseleave.uniform":function(){p.removeClass(k.hoverClass);p.removeClass(k.activeClass)},"keyup.uniform":function(){l.text(o.find(":selected").html())}});if(a(o).attr("disabled")){p.addClass(k.disabledClass)}a.uniform.noSelect(l);b(o)}function f(n){var m=a(n);var o=a("<div />"),l=a("<span />");if(!m.css("display")=="none"&&k.autoHide){o.hide()}o.addClass(k.checkboxClass);if(k.useID&&n.attr("id")!=""){o.attr("id",k.idPrefix+"-"+n.attr("id"))}a(n).wrap(o);a(n).wrap(l);l=n.parent();o=l.parent();a(n).css("opacity",0).bind({"focus.uniform":function(){o.addClass(k.focusClass)},"blur.uniform":function(){o.removeClass(k.focusClass)},"click.uniform touchend.uniform":function(){if(!a(n).attr("checked")){l.removeClass(k.checkedClass)}else{l.addClass(k.checkedClass)}},"mousedown.uniform touchbegin.uniform":function(){o.addClass(k.activeClass)},"mouseup.uniform touchend.uniform":function(){o.removeClass(k.activeClass)},"mouseenter.uniform":function(){o.addClass(k.hoverClass)},"mouseleave.uniform":function(){o.removeClass(k.hoverClass);o.removeClass(k.activeClass)}});if(a(n).attr("checked")){l.addClass(k.checkedClass)}if(a(n).attr("disabled")){o.addClass(k.disabledClass)}b(n)}function c(n){var m=a(n);var o=a("<div />"),l=a("<span />");if(!m.css("display")=="none"&&k.autoHide){o.hide()}o.addClass(k.radioClass);if(k.useID&&n.attr("id")!=""){o.attr("id",k.idPrefix+"-"+n.attr("id"))}a(n).wrap(o);a(n).wrap(l);l=n.parent();o=l.parent();a(n).css("opacity",0).bind({"focus.uniform":function(){o.addClass(k.focusClass)},"blur.uniform":function(){o.removeClass(k.focusClass)},"click.uniform touchend.uniform":function(){if(!a(n).attr("checked")){l.removeClass(k.checkedClass)}else{var p=k.radioClass.split(" ")[0];a("."+p+" span."+k.checkedClass+":has([name='"+a(n).attr("name")+"'])").removeClass(k.checkedClass);l.addClass(k.checkedClass)}},"mousedown.uniform touchend.uniform":function(){if(!a(n).is(":disabled")){o.addClass(k.activeClass)}},"mouseup.uniform touchbegin.uniform":function(){o.removeClass(k.activeClass)},"mouseenter.uniform touchend.uniform":function(){o.addClass(k.hoverClass)},"mouseleave.uniform":function(){o.removeClass(k.hoverClass);o.removeClass(k.activeClass)}});if(a(n).attr("checked")){l.addClass(k.checkedClass)}if(a(n).attr("disabled")){o.addClass(k.disabledClass)}b(n)}function h(q){var o=a(q);var r=a("<div />"),p=a("<span>"+k.fileDefaultText+"</span>"),m=a("<span>"+k.fileBtnText+"</span>");if(!o.css("display")=="none"&&k.autoHide){r.hide()}r.addClass(k.fileClass);p.addClass(k.filenameClass);m.addClass(k.fileBtnClass);if(k.useID&&o.attr("id")!=""){r.attr("id",k.idPrefix+"-"+o.attr("id"))}o.wrap(r);o.after(m);o.after(p);r=o.closest("div");p=o.siblings("."+k.filenameClass);m=o.siblings("."+k.fileBtnClass);if(!o.attr("size")){var l=r.width();o.attr("size",l/10)}var n=function(){var s=o.val();if(s===""){s=k.fileDefaultText}else{s=s.split(/[\/\\]+/);s=s[(s.length-1)]}p.text(s)};n();o.css("opacity",0).bind({"focus.uniform":function(){r.addClass(k.focusClass)},"blur.uniform":function(){r.removeClass(k.focusClass)},"mousedown.uniform":function(){if(!a(q).is(":disabled")){r.addClass(k.activeClass)}},"mouseup.uniform":function(){r.removeClass(k.activeClass)},"mouseenter.uniform":function(){r.addClass(k.hoverClass)},"mouseleave.uniform":function(){r.removeClass(k.hoverClass);r.removeClass(k.activeClass)}});if(a.browser.msie){o.bind("click.uniform.ie7",function(){setTimeout(n,0)})}else{o.bind("change.uniform",n)}if(o.attr("disabled")){r.addClass(k.disabledClass)}a.uniform.noSelect(p);a.uniform.noSelect(m);b(q)}a.uniform.restore=function(l){if(l==undefined){l=a(a.uniform.elements)}a(l).each(function(){if(a(this).is(":checkbox")){a(this).unwrap().unwrap()}else{if(a(this).is("select")){a(this).siblings("span").remove();a(this).unwrap()}else{if(a(this).is(":radio")){a(this).unwrap().unwrap()}else{if(a(this).is(":file")){a(this).siblings("span").remove();a(this).unwrap()}else{if(a(this).is("button, :submit, :reset, a, input[type='button']")){a(this).unwrap().unwrap()}}}}}a(this).unbind(".uniform");a(this).css("opacity","1");var m=a.inArray(a(l),a.uniform.elements);a.uniform.elements.splice(m,1)})};function b(l){l=a(l).get();if(l.length>1){a.each(l,function(m,n){a.uniform.elements.push(n)})}else{a.uniform.elements.push(l)}}a.uniform.noSelect=function(l){function m(){return false}a(l).each(function(){this.onselectstart=this.ondragstart=m;a(this).mousedown(m).css({MozUserSelect:"none"})})};a.uniform.update=function(l){if(l==undefined){l=a(a.uniform.elements)}l=a(l);l.each(function(){var n=a(this);if(n.is("select")){var m=n.siblings("span");var p=n.parent("div");p.removeClass(k.hoverClass+" "+k.focusClass+" "+k.activeClass);m.html(n.find(":selected").html());if(n.is(":disabled")){p.addClass(k.disabledClass)}else{p.removeClass(k.disabledClass)}}else{if(n.is(":checkbox")){var m=n.closest("span");var p=n.closest("div");p.removeClass(k.hoverClass+" "+k.focusClass+" "+k.activeClass);m.removeClass(k.checkedClass);if(n.is(":checked")){m.addClass(k.checkedClass)}if(n.is(":disabled")){p.addClass(k.disabledClass)}else{p.removeClass(k.disabledClass)}}else{if(n.is(":radio")){var m=n.closest("span");var p=n.closest("div");p.removeClass(k.hoverClass+" "+k.focusClass+" "+k.activeClass);m.removeClass(k.checkedClass);if(n.is(":checked")){m.addClass(k.checkedClass)}if(n.is(":disabled")){p.addClass(k.disabledClass)}else{p.removeClass(k.disabledClass)}}else{if(n.is(":file")){var p=n.parent("div");var o=n.siblings(k.filenameClass);btnTag=n.siblings(k.fileBtnClass);p.removeClass(k.hoverClass+" "+k.focusClass+" "+k.activeClass);o.text(n.val());if(n.is(":disabled")){p.addClass(k.disabledClass)}else{p.removeClass(k.disabledClass)}}else{if(n.is(":submit")||n.is(":reset")||n.is("button")||n.is("a")    /*  ||l.is("input[type=button]")   */   ){var p=n.closest("div");p.removeClass(k.hoverClass+" "+k.focusClass+" "+k.activeClass);	if(n.is(":disabled")){p.addClass(k.disabledClass)}else{p.removeClass(k.disabledClass)}}}}}}})};return this.each(function(){if(a.support.selectOpacity){var l=a(this);if(l.is("select")){if(l.attr("multiple")!=true){if(l.attr("size")==undefined||l.attr("size")<=1){e(l)}}}else{if(l.is(":checkbox")){f(l)}else{if(l.is(":radio")){c(l)}else{if(l.is(":file")){h(l)}else{if(l.is(":text, :password, input[type='email']")){j(l)}else{if(l.is("textarea")){g(l)}else{if(l.is("a")||l.is(":submit")||l.is(":reset")||l.is("button")||l.is("input[type=button]")){i(l)}}}}}}}}})}})(jQuery);

// Plugin LinkBlock - finds the last link in a block, and turns the entire block into a clickable item.
// Also adds the 'over' class to the block on hover
// Copyright 2010 - Ryan Wheale <ryan.wheale@gmail.com>
(function($) {
	$.fn.LinkBlock = function() {
		return this.each(function () {
			var $obj = $(this);
			var $link = $obj.find('a').last();
			if($link.length) {
				$obj.css('cursor', 'pointer').hover(function() {
					$obj.addClass('over');
				}, function() {
					$obj.removeClass('over');
				}).click( function() {
					window.location = $link.attr('href');
					return false;
				}).attr('title', $link.attr('title'));
			}
		});
	};
}(jQuery));

// Plugin - Containerize
// Author: Ryan Wheale <ryan.wheale [at] gmail.com>
// Allows for fluid background container
(function($) {
	$.fn.containerize = function(options) {
		var $elems = this;
		var settings = {
			inset: true,
			padding: '0',
			rightWidth: '50%',
			bottomHeight: '50%',
			zIndex: 1
		};
		$.extend(settings, options);
		
		return this.each(function() {
			var $this = $(this);
			var $container = $('<div class="containerize" />');
			var $content = $('<div class="content" />');
			
			$container.append('<div class="tl" /><div class="tr" /><div class="bl" /><div class="br" />')
				.css({'z-index':(parseInt(settings.zIndex) - 1),'position':'absolute','top':0,'left':0,'right':0,'bottom':0});
			$content.css({'position':'relative','z-index':settings.zIndex});
			
			if($this.css('position') === 'static') {
				$this.css({'position':'relative'});
			}
			$this.wrapInner($content).append($container);
			
			if(settings.inset === true) {
				$this.find('.content').css('padding', settings.padding);
			} else {
				$container.css('margin', settings.padding.replace(/([\d]+)/g, '-$1'));
			}
			
			if(/[\d]+\%/.test(settings.bottomHeight)) {
				// fix for opera - it did not like percentage values for the "bottom" property
				//    so we must convert to height.
				var h = 101 - parseInt(settings.bottomHeight);
				$container.find('.tl').css({'height': h + '%','right':settings.rightWidth});
				$container.find('.tr').css({'height': h + '%','width':settings.rightWidth});
			} else {
				$container.find('.tl').css({'bottom':settings.bottomHeight,'right':settings.rightWidth});
				$container.find('.tr').css({'bottom':settings.bottomHeight,'width':settings.rightWidth});
			}
			
			$container.find('.bl').css({'height':settings.bottomHeight,'right':settings.rightWidth});
			$container.find('.br').css({'height':settings.bottomHeight,'width':settings.rightWidth});
		});
	};
}(jQuery));
	
/* 
* Plugin SearchGhost - adds "Search" text to search box, and removes it on focus
* Author - Ryan Wheale <ryan.wheale@gmail.com>
* Copyright 2010
*/
(function($) {
	$.fn.SearchGhost = function(opts) {
		var options = $.extend($.fn.SearchGhost.settings, opts);
		return this.each(function() {
			var $this = $(this);
			var $tb = $this.is('input[type=text]') ? $this : $this.find('input[type=text]').first();
			if($tb.length) {
				$tb.focus(function() {
					var $this = $(this);
					$this.removeClass('inactive')
					if($this.val() == 'Search') {
						$this.val('');
					}
				}).blur(function() {
					var $this = $(this);
					if($this.val() == '') {
						$this.val('Search').addClass('inactive');
					}
				}).trigger('blur');
			}
		});
	}
	$.fn.SearchGhost.settings = {
		offText: 'Search'
	}
}(jQuery));

// Global Setup and Default overrides
(function($) {
	$.browser.isRetarded = ($.browser.msie && parseInt($.browser.version) <= 7);
}(jQuery));

// Keep outside of closure!
Array.prototype.makeUnique = function() {
	var obj = {};
	var arr = [];
	for(var i=0; i<this.length; i++) {
		obj[this[i]] = i;
	}
	for(var val in obj) {
		arr.push(val);
	}
	return arr;
};
Array.prototype.addUnique = function (v, c) {
	var m = false;
	for (i = 0; e = this[i]; i++) { 
		m = (c) ? (e.toLowerCase() == v.toLowerCase()) : (e == v);
	}
	if(!m) this.push(v);
};
String.prototype.startsWith = function(str) {
	return (this.match("^"+str)==str)
};
String.prototype.endsWith = function(str) {
	return (this.match(str+"$")==str)
};
