/* HELPER FUNCTIONS */
function _tp_debug() { 
	return _tp_ga_read_cookie('DEBUG=(T)', 1, 'F') == 'T';
}

function _tp_ga_read_cookie(pattern, group, def) {
	var value = def;
	if (typeof(RegExp) == 'function') {
		var regex = new RegExp(pattern, 'i');
		var match = regex.exec(document.cookie);
		if(match)
			{ value = match[group]; }
	}
	return value;
}

function _tp_ga_set_acctno() {
	var acctno = 'UA-4535902-';
	if (typeof(location.hostname) == 'string') {
		var hostname = location.hostname;
		if (typeof(hostname.toLowerCase) == 'function')
			{ hostname = hostname.toLowerCase(); }
		if (!(hostname == 'store.taunton.com' || hostname == 'reg.taunton.com'))
			{ acctno = 'UA-4680151-'; }
	}
	return acctno;
}

/* VARS */
var _tp_ga_tracker = _tp_ga_set_acctno();
var _tp_ga_rollup = _tp_ga_tracker + '1';

var _tp_ga_property = (typeof(_tp_ga_property_key) == 'undefined' ? undefined : _tp_ga_tracker + _tp_ga_property_key);

var _tp_ga_domain = 'taunton.com';
var _tp_ga_link = (typeof(_tp_ga_link) == 'undefined' ? undefined : _tp_ga_link);
var _tp_ga_custvar = _tp_ga_read_cookie('cchbx=([^;]+)', 1, 'W0001');

/* TRACKING FUNCTIONS */
function _tp_ga_track(acct, galink) {
	if (typeof(acct) != 'undefined') {
		if (_tp_debug()) {
			alert(acct + "\n" + ((typeof(galink) == 'undefined') ? location.pathname + location.search : galink));
		}
		var t = _gat._getTracker(acct);
		t._setDomainName(_tp_ga_domain);
		t._setVar(_tp_ga_custvar);
		if (typeof(galink) == 'undefined') {
			t._trackPageview();
		} else {
			t._trackPageview(galink);
		}
		_tp_ga_track_trans(t);
	}
}

function _tp_ga_track_trans(tracker) {
	if (typeof(_tp_ga_trans) != 'undefined' && typeof(_tp_ga_trans_items)) {
		if (_tp_debug()) { alert('trans: ' + _tp_ga_trans.orderid); }
		tracker._addTrans(
			_tp_ga_trans.orderid,
			_tp_ga_trans.store,
			_tp_ga_trans.total,
			_tp_ga_trans.tax,
			_tp_ga_trans.shipping,
			_tp_ga_trans.city,
			_tp_ga_trans.state,
			_tp_ga_trans.country);
		for (var i = 0; i < _tp_ga_trans_items.length; i++) {
			tracker._addItem(
				_tp_ga_trans_items[i].orderid,
				_tp_ga_trans_items[i].code,
				_tp_ga_trans_items[i].title,
				_tp_ga_trans_items[i].prodtype,
				_tp_ga_trans_items[i].price,
				_tp_ga_trans_items[i].qty);
		}
		tracker._trackTrans();
	}
}

/* TRACK */
_tp_ga_track(_tp_ga_rollup, _tp_ga_link);
_tp_ga_track(_tp_ga_property, _tp_ga_link);
