if (! window.getfused) { getfused = {} }
if (! window.getfused.ads) { getfused.ads = {} }
if (! window.getfused.ads.AdDisplay) {

getfused.ads.AdDisplay = function () {};

// Static Ad Counter
getfused.ads.AdDisplay.adCount = 0;

// Generic Ad Writing
getfused.ads.AdDisplay.writeAd = function (ad, layout, isLast) {
	var adString = "";

	// Set the link target
	var target = ' target="_blank"';
	if (ad.target) {
		target = (ad.target != "") ? ' target="' + ad.target + '"' : "";
	}

	// Set style based on the layout
	var style = (layout == "horizontal") ? ' style="float: left;"' : "";

	switch (ad.type) {
		case "html":
			adString = '<div id="gfad_' + getfused.ads.AdDisplay.adCount + '"' + style + '>';
			adString += ad.html;
			adString += '</div>';
			adString += '<script type="text/javascript">urchinTracker("/AdsImpression/AdID=' + ad.adid + '");</script>';
			document.write(adString);
		break;
		case "image":
			var dims = ((ad.width) ? ' width="' + ad.width + '"' : "") + ((ad.height) ? ' height="' + ad.height + '"' : "");
			adString = '\n<div class="gfad"' + style + '><a onClick="urchinTracker(\'/AdsClick/AdID=' + ad.adid + '\');" href="' + ad.href + '"' + target + '>';
			adString += '<img src="' + ad.src + '"' + dims + ' style="border: none;" />';
			adString += '</a>';
			adString += '</div>';
			adString += '<script type="text/javascript">urchinTracker("/AdsImpression/AdID=' + ad.adid + '");</script>';
			document.write(adString);
		break;
		case "flash":
			ad.flashVersion = (ad.flashVersion) ? ad.flashVersion : "9";
			document.write('\n<div id="gfad_' + getfused.ads.AdDisplay.adCount + '" class="gfad"' + style + '></div>');
			document.write('\n<script type="text/javascript">');
			document.write('\nvar so = new SWFObject("' + ad.src + '", "gfad_' + getfused.ads.AdDisplay.adCount + '_flash", "' + ad.width + '", "' + ad.height + '", "' + ad.flashVersion + '", "#000000");')
			document.write('\nso.addParam("wmode", "transparent");');
			document.write('\nso.addParam("allowScriptAccess", "sameDomain");');
			if (ad.vars) {
				for (var i in ad.vars) {
					document.write('\nso.addVariable("' + i + '", "' + ad.vars[i] + '");');
				}
			}
			document.write('\nso.write("gfad_' + getfused.ads.AdDisplay.adCount + '");');
			document.write('\n</script>');
			document.write('<script type="text/javascript">urchinTracker("/AdsImpression/AdID=' + ad.adid + '");</script>');
		break;
	}

	if (isLast && layout == "horizontal") {
		document.write('<div style="clear: left;"></div>');
	}
}

// Writes an array of ads to the page, handling vendor
getfused.ads.AdDisplay.writeAds = function (adArray, layout) {
	// Set the layout
	if (layout != "horizontal") {
		layout = "vertical";
	}

	if (adArray) {
		var currAd = null;
		for (var i = 0; i < adArray.length; i++) {
			getfused.ads.AdDisplay.adCount += 1;
			this.writeAd(adArray[i], layout, (i == (adArray.length - 1)));
		}
	}
}
}

if (! window.getfused.ads.Tracker) {
	getfused.ads.Tracker = function () {};

	// Writes an array of ads to the page, handling vendor
	getfused.ads.Tracker.track = function (profileId, type, adId) {
		if (getfused.ads.debug) {
			document.getElementById("log").innerHTML = "Tracked profile: " + profileId + ", type: " + type + ", id: " + adId + "<br />"
				+ document.getElementById("log").innerHTML;
		}

		if (type == "click") {
			urchinTracker("/AdsClick/AdID=" + adId);
		} else if (type == "impression") {
			urchinTracker("/AdsImpression/AdID=" + adId);
		}
	}
}
