window.onload = function() {
	var ol = window.onload;
	return function() {
		if( !window.SME$Analytics$Included) {
			window.SME$Analytics$Included="hackbridge_v_1";
			reportSalesToGA();			
		}
		if(ol) {ol();}
	};
}();
function reportSalesToGA() {
	function reportSale(tracker, addTaxonomy){	
		//console.debug("reportSale tracker=" + tracker, " addTaxonomy=", addTaxonomy);
		if( !tracker || !window.pageConfig || !window.pageConfig.order || window.pageConfig.order.status !== "purchase") {
			return;
		}
		var order = window.pageConfig.order;
		if( order.currencyCode && order.currencyCode !== "USD" ) {
			// we can't handle currency conversion in this hack
			return;
		}
		var site = window.__tkDomain||document.location.hostname;
		var orderID = (order.orderNameSpace||site) + "-" + order.orderID;
		if( addTaxonomy && __tkRegion ) {
			orderID = orderID.replace(/:/g,'') + ':' + order.currencyCode + ':' + __tkFullDomain.replace("^(w+[0-9]*\.)?(.*[^\.]+)\.*$",'') + ':/' +  __tkRegion + '/' + __tkCountry  + '/' + __tkLabel  + '/' +  __tkSubLabel + '/' + __tkArtist + '/' + __tkDomain;
		}
		if( !order.shippingAddr || !order.billingAddr ) {
			order.shippingAddr = order.billingAddr = (order.shippingAddr||order.billingAddr||{});
		}
		var _n = function(num) {
			return num || 0;
		};
		var _t = function(s) {
			return s || "";
		};		
		tracker._addTrans(
			orderID,
			"",
			_n(order.subtotal) + _n(order.shippingCharge),
			_n(order.tax) + _n(order.importFees),
			_n(order.shippingCharge),
			_t(order.shippingAddr.city),
			_t(order.shippingAddr.state),
			order.shippingAddr.countryCode || "USA"
		);
		var items = order.items;
		for(var i=0; i<items.length; i++) {
			var item = items[i];
			var itemID = (item.skuIDType||site) + ":" + item.skuID;
			tracker._addItem(
				orderID,
				(item.skuIDType||site) + ":" + item.skuID,
				(item.name||itemID) + (item.format ? " (" + item.format + ")": ""),
				_t(item.categoryName||item.categoryID),
				_n(item.itemPrice),
				item.quantity || 1
			);
		}
		tracker._trackTrans();		
	}
	
	reportSale(window.globalTracker, true);
	reportSale(window.labelTracker, true);
	reportSale(window.siteTracker, false);	
}