﻿// JavaScript Document

var pageTrackers		= [];

// Google Analytics tracker wrapper
function GooglePageTracker(id, name) {
	this.id						= id;
	this.name					= name;
	_gaq.push([this.name + '._setAccount', this.id]);
}
GooglePageTracker.prototype._trackEvent 			= function(category, action, optional_label, optional_value) {
	_gaq.push([this.name + '._trackEvent', category, action, optional_label, optional_value]);
}
GooglePageTracker.prototype._trackPageview 		= function(opt_pageURL) {
	if(opt_pageURL == "")
		_gaq.push([this.name + '._trackPageview']);
	else
		_gaq.push([this.name + '._trackPageview', opt_pageURL]);
}
GooglePageTracker.prototype._addTrans 				= function(orderId, affiliation, total, tax, shipping, city, state, country) {
	_gaq.push([this.name + '._addTrans', orderId, affiliation, total, tax, shipping, city, state, country]);
}
GooglePageTracker.prototype._addItem 					= function(orderId, sku, name, category, price, quantity) {
	_gaq.push([this.name + '._addItem', orderId, sku, name, category, price, quantity]);
}
GooglePageTracker.prototype._trackTrans 			= function() {
	_gaq.push([this.name + '._trackTrans']);
}

// Silverpop tracker wrapper
function SilverpopPageTracker(pageName) {
	if(pageName != "") window.eb2b_pagename = pageName;
}
SilverpopPageTracker.prototype._trackEvent 		= function(category, action, optional_label, optional_value) {
	var type	= "Click";
	switch(category.toLowerCase()) {
		case "shop":
			type	= "Click";
			break;
		case "filter":
			type	= "Click";
			break;
		case "download":
			type	= "Download";
			break;
		case "product":
			type	= "Click";
			break;
		case "order":
			type	= "Form";
			break;
		case "video":
			type	= "Multimedia";
			break;
	}
	eb2b.track({
			name:	action + " - " + optional_label
		,	type:	type
		});
}
SilverpopPageTracker.prototype._trackPageview = function() {}
SilverpopPageTracker.prototype._addTrans 			= function() {}
SilverpopPageTracker.prototype._addItem 			= function() {}
SilverpopPageTracker.prototype._trackTrans 		= function() {}

function TestPageTracker() {}
TestPageTracker.prototype._trackEvent 		= function(category, action, optional_label, optional_value) {alert("_trackEvent('"+category+"', '"+action+"', '"+optional_label+"', "+optional_value+")");}
TestPageTracker.prototype._trackPageview 	= function(opt_pageURL) {alert("_trackPageview('"+opt_pageURL+"')");}
TestPageTracker.prototype._addTrans 			= function(orderId, affiliation, total, tax, shipping, city, state, country) {alert("_addTrans('"+orderId+"', '"+affiliation+"', '"+total+"', '"+tax+"', '"+shipping+"', '"+city+"', '"+state+"', '"+country+"')");}
TestPageTracker.prototype._addItem 				= function(orderId, sku, name, category, price, quantity) {alert("_addItem('"+orderId+"', '"+sku+"', '"+name+"', '"+category+"', '"+price+"', '"+quantity+"')");}
TestPageTracker.prototype._trackTrans 		= function() {alert("_trackTrans()");}


var pageTracker 		= {
		_trackEvent: function(category, action, optional_label, optional_value) {
			for(var t in pageTrackers) pageTrackers[t]._trackEvent(category, action, optional_label, optional_value);
		}
	,	_trackPageview: function(opt_pageURL) {
			for(var t in pageTrackers) pageTrackers[t]._trackPageview(opt_pageURL);
		}
	,	_addTrans: function(orderId, affiliation, total, tax, shipping, city, state, country) {
			for(var t in pageTrackers) pageTrackers[t]._addTrans(orderId, affiliation, total, tax, shipping, city, state, country);
		}
	,	_addItem: function(orderId, sku, name, category, price, quantity) {
			for(var t in pageTrackers) pageTrackers[t]._addItem(orderId, sku, name, category, price, quantity);
		}
	,	_trackTrans: function() {
			for(var t in pageTrackers) pageTrackers[t]._trackTrans();
		}
};
