﻿
var Azom = {

	addEventToObject: function(oObject, sEvent, func) {
		var existingFunction = oObject[sEvent];
		if (typeof oObject[sEvent] != 'function') {
			oObject[sEvent] = func;
		}
		else {
			oObject[sEvent] = function() {
				existingFunction();
				func();
			}
		}
	}
	,
	createCookie: function(name, value, days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
			var expires = "; expires=" + date.toGMTString();
		}
		else var expires = "";
		document.cookie = name + "=" + value + expires + "; path=/";
	}
	,
	readCookie: function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for (var i = 0; i < ca.length; i++) {
			var c = ca[i];
			while (c.charAt(0) == ' ') c = c.substring(1, c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
		}
		return null;
	}
	,
	eraseCookie: function(name) {
		Azom.createCookie(name, "", -1);
	}
	,
	processLinks: function() {
		
		Azom.addEventToObject(window, 'onload', function() {
			var aImpressionsNotRecordedLinks = [];
			var sThisDomain = window.location.hostname.toLowerCase().replace('www.', '');
			var sAdsUrl = ("http://" + sThisDomain + "/ads/").toLowerCase();
			var sSiteUrl = ("http://" + sThisDomain + "/").toLowerCase();
			var oLinks = document.getElementsByTagName('a');
			for (var i = 0; i < oLinks.length; i++) {
			
				var oLink = oLinks[i];

				if (typeof oLink.href === 'string') {

					var sLinkHref = oLink.href.toLowerCase().replace('http://www.', 'http://');
					var sTrackId = "";
					var sBannerId = "";

					// We want to get links that are for the /ADS/ folder, and links that are
					// offsite URLs.  We want to exclude links that are onsite URLs that are not
					// for the /ADS/ folder.

					if (sLinkHref.indexOf(sAdsUrl) === 0) {
						
						var bId = sLinkHref.match(/[\?&]b=(\d+)?/i);
						if (bId && bId.length > 1) {
						    sBannerId = bId[1];
						}
						
						var bCbExists = /[\?&]cb=1/i.test(sLinkHref);
						if (!bCbExists && sBannerId) {
							var bAlreadyInArray = false;
							for (var c = 0; c < aImpressionsNotRecordedLinks.length; c++) {
								if (aImpressionsNotRecordedLinks[c] == sBannerId) {
									bAlreadyInArray = true;
									break;
								}
							}
							if (!bAlreadyInArray) {
								aImpressionsNotRecordedLinks.push(sBannerId);
							}
						}

						sTrackId = oLink.href.toLowerCase();

					} else if (sLinkHref.indexOf(sSiteUrl) === -1) {
						sTrackId = oLink.href.toLowerCase();
					}

					if (sTrackId) {
						Azom.addEventToObject(oLink, 'onclick', function(sTrackId) {
							return function() {
								if (typeof urchinTracker !== 'undefined') {
									urchinTracker(sTrackId);
								}}
						}(sTrackId));
					}
				}

			};
			
			if (aImpressionsNotRecordedLinks.length > 0) {
				var sIds = aImpressionsNotRecordedLinks.join("|");
				var oImg = new Image();
				oImg.src = "/ads/ads_served.ashx?ids=" + sIds + "&r=" + Math.random();
			}
		});
		
	}
};
