var Omni = {
	tracking: null,
	Init: function() {
		if (Omni.tracking === null) return; // Critical failure.
		Omni.Prefs();
		Omni.Clicks();
	},
	Prefs: function() {
		s.pageName=Omni.tracking.category +'>'+ Omni.tracking.page +'>'+ Omni.tracking.type
		s.server=Omni.tracking.divisionsystemid
		s.channel=""
		s.pageType=""
		s.prop1=""
		s.prop2=""
		s.prop3=""
		s.prop4=""
		s.prop5=""
		s.prop6=(Omni.tracking.divisionsystemcode=='92' ? 'off-network' : 'on-network')
		s.prop7=""
		s.prop8=""
		s.prop9=""
		s.prop10=Omni.tracking.headline
		s.prop11=(Omni.tracking.type=='article' && !(/\/[2-9][0-9]*[\/#]*$/).test(window.location.href) ) ? Omni.tracking.provider : ''
		s.prop12=""
		s.prop13=""
		s.campaign=""
		s.state=""
		s.zip=""
		
		s.dstStart=Omni.dateFormat(Omni.tracking.dst.start);
		s.dstEnd=Omni.dateFormat(Omni.tracking.dst.end);
		s.currentYear=Omni.tracking.year;

		s.t();
		
	},
	Clicks: function() {
	
		// Inline Shopping Results Page
		if ($('inlineShopping')) {
			$('inlineShopping').select('a').each(function(a) {
				$(a).onclick = function() {
					var s=s_gi(s_account);
					s.eVar1='RR Shopping Module';
					s.events=s.apl(s.events,"event3",",",2);
					s.prop12='RR Shopping Module Link';
					s.linkTrackVars='prop12,eVar1,events';
					s.linkTrackEvents='event3';
					s.tl(this,'e','RR Shopping Module Link');
				};
			});
		}
	
		// promoSlot only appears on search results page.
		if ($('promoSlot')) {
			$('promoSlot').select('a')[0].onclick = function() {
				var s=s_gi(s_account);
					s.events='event1';
					s.linkTrackVars='events';
					s.linkTrackEvents='event1';
					s.tl(this,'o','search promo');
			};
		}
	},
	dateFormat: function(dt) {
		var dtArr = dt.split(' ')[0].split('-');
		return dtArr[1] +'/'+ dtArr[2] +'/'+ dtArr[0];
	}
};

Object.extend(Array.prototype, {
	reIndexOf: function(re) {
		var idx = -1;
		this.each(function(el,i) {
			if (idx !== -1) return;
			idx = re.test(el) ? i : idx;
		});
		return idx;
	}
});

Element.addMethods({
	getOmniCode: function(el) {
		var trackingCode = '';
		try {
			var oCode = '';
			var sCode = '';
			var tmp = $(el);
			
			while (oCode == '') {
				var idx = $A($(tmp).classNames()).reIndexOf(/^O:/);
				if ( idx == -1 ) {
					tmp = $(tmp).up();
				} else {
					oCode = $A($(tmp).classNames())[idx].split(':')[1];
				}
			}
			
			while (sCode == '') {
				var idx = $A($(tmp).classNames()).reIndexOf(/^S:/);
				if ( idx == -1 ) {
					tmp = $(tmp).up();
				} else {
					sCode = $A($(tmp).classNames())[idx].split(':')[1];
				}
			}
			
			trackingCode = sCode +'-'+ oCode;
		} catch(er) {}

		return (trackingCode);
	}
});


// Run onload
document.observe( 'dom:loaded', Omni.Init );
