// v1.03 2010-10-18


WebTrendsWrapper.prototype = new WebTrends();
WebTrendsWrapper.prototype.constructor = WebTrendsWrapper();

/**
* @class WebTrendsWrapper interacts with the core WebTrends library to add an abstraction layer to fire events
* @param {string} dcsid The DCSID value issued by WebTrends for the data source to be used by this script
* @param {string} domain The domain name of the Smart Source Data collector.
* @example
* var wt = new WebTrendsWrapper(wt_od_dcs_id, wt_od_domain);
* @constructor
*/
function WebTrendsWrapper (dcsid,domain)
{
	WebTrends.apply(this, arguments);
	this.Type="webtrends"; 
	this._dcsext = {};
	this._wt = {};
	this._dcs = {};
}

WebTrendsWrapper.prototype._init = function(d)
{
	for(var k in d)
	{
		if(k=="WT")
		{
			for(var w in d[k])
			{
				this._wt[w] = d[k][w];
			};
		} else if (k=="DCSext") {
			for(var e in d[k])
			{
				this._dcsext[e] = d[k][e];
			};
		} else if (k=="DCS") {
			for(var c in d[k])
			{
				this._dcs[c] = d[k][c];
			};
		};
	};
};

/**
* Sends the data to WebTrends
* @return void
* @private
*/
WebTrendsWrapper.prototype._sendData = function()
{
	if(arguments.length>0)
		t=arguments[0];
	else
		t = this;
	
	t.dcsVar();
	t.dcsMeta();
	t.dcsAdv();
	
	var arglist = Array();
	for(var i in t._dcsext)
	{
		arglist.push("DCSext." + i);
		arglist.push(t._dcsext[i]);
	}
	// if there is any overloaded parameters force these here
	if(typeof(t._dcs) != "")
	{
		for(var d in t._dcs)
		{
			t.DCS[d] = t._dcs[d];
		}
	};
	if(typeof(t._wt) != "")
	{
		for(var w in t._wt)
		{
			t.WT[w] = t._wt[w];
		}
	};
	
	t.dcsMultiTrack.apply(t, arglist);
		
	for(var i in t._dcsext)
	{
		delete(t._dcsext[i]);
		delete(t.DCSext[i]);
	}
	for(var i in t._dcs)
	{
		delete(t._dcs[i]);
		delete(t.DCS[i]);
	}
	for(var i in t._wt)
	{
		delete(t._wt[i]);
		delete(t.WT[i]);
	}
};

