xmp.createNamespace("Triggers");

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.AbstractOmnitureCommand = function() { }

Triggers.AbstractOmnitureCommand.prototype._createReportingObject = function(context)
{
	var s = xmp.getGlobalNamespace().s_gi(this._getOmnitureAccount());
	var vid = this._getVideoId(context);
	return s;
};

Triggers.AbstractOmnitureCommand.prototype._getOmnitureAccount = function()
{
	return xmp.util.SettingsManager.getInstance().
		getContextNode().getString('omniture account', '');
};

Triggers.AbstractOmnitureCommand.prototype._getVideoId = function(context)
{
	var node = context.getPlayableNode();
	return node.getPlayableData().getDataObject().id;
};

Triggers.AbstractOmnitureCommand.prototype._postReportingObject = function(context, s, hit, cType)
{
	if (hit)
	{
		s.t();
	}
	else
	{
		s.tl(xmp.getGlobalNamespace(), 'o', this._getCustomTriggerPrefix() + cType);
	}
};

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.PopupPlayerOmnitureCommand = function() { 
	this._logger = new xmp.util.internals.CategoryLogger( 'BVPOmnitureTriggerCommand' );
};

xmp.DERIVE_CLASS( Triggers.AbstractOmnitureCommand, Triggers.PopupPlayerOmnitureCommand );

Triggers.PopupPlayerOmnitureCommand.prototype._getCustomTriggerPrefix = function()
{
	return 'NASCAR Popup: ';
};

Triggers.PopupPlayerOmnitureCommand.prototype.doCommand = function(context)
{
	switch (context.getTriggerType())
	{
		case 'start': this._doStartCommand(context); break;
		case 'end': this._doEndCommand(context); break;
		default: break;
	}
};

Triggers.PopupPlayerOmnitureCommand.prototype._doStartCommand = function(context)
{
	var o = 0;
	var b = "OMNITURE COMMAND START - ";
	var s = this._createReportingObject(context);
	var vid = this._getVideoId(context);
	s.pageName = vid;
	s.eVar2 = vid;
	s.prop5 = vid;
	s.eVar11 = vid;
	s.eVar12 = vid;
	s.channel = 'VIDEO PLAYER';
	s.eVar3 = 'VIDEO PLAYER';
	s.events = 'event9, event1';
	s.prop6 = context.getPlayableNode().getPlayableData().getDataObject().branding;
	this._postReportingObject(context, s, true, 'Video Start');
	s.linkTrackVars='None'; 
	s.linkTrackEvents='None';
	this._logger.debug("---------- POPUP PLAYER OMNITUER COMMAND START FINISHED");
};

Triggers.PopupPlayerOmnitureCommand.prototype._doEndCommand = function(context)
{
	var o = 0;
	var b = "OMNITURE COMMAND END - ";
	var s = this._createReportingObject(context);
	var vid = this._getVideoId(context);
	s.linkTrackVars='eVar11,eVar12,events'; 
	s.linkTrackEvents='event10';
	s.eVar11 = vid;
	s.eVar12 = vid;
	s.events = 'event10';
	this._postReportingObject(context, s, false, 'Video End');
	this._logger.debug("---------- POPUP PLAYER OMNITUER COMMAND END FINISHED");
};

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.PopupPlayerNielsenCommand = function() { 
	this._logger = new xmp.util.internals.CategoryLogger( 'BVPOmnitureTriggerCommand' );
};

Triggers.PopupPlayerNielsenCommand.prototype.doCommand = function(context) {
	var isTurnerDomain = false;
//	if (location.hostname.indexOf('turner.com')>0) { isTurnerDomain = true; }

	if (!isTurnerDomain) { 	// don't add tracking image to internal player
		var cnnScRandom = Math.ceil(Math.random()*1000000000);
  		var cnnScTitle = escape(context.getPlayableNode().getPlayableData().getDataObject().headline);
		switch (context.getTriggerType()) {
			case 'start':{
				var cnnScImgt1 = 'dav0-' + cnnScTitle;
				break;
			}
			case 'end':{
				var cnnScImgt1 = 'dav2-' + cnnScTitle;
				break;
			}
			default:{
				return false;
			}
		}

		var cnnScImgSrc = 'http://secure-us.imrworldwide.com/cgi-bin/m?ci=us-100429&tl=' + cnnScImgt1 + '&c6=vc,c01&cc=1&rnd=' + cnnScRandom;
		cnnScImg = new Image();
		cnnScImg.src = cnnScImgSrc;
	}
	this._logger.debug("---------- POPUP PLAYER NIELSEN COMMAND FINISHED");
};

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.LivePlayerOmnitureCommand = function() { 
	this._logger = new xmp.util.internals.CategoryLogger( 'BVPOmnitureTriggerCommand' );
};

xmp.DERIVE_CLASS( Triggers.AbstractOmnitureCommand, Triggers.LivePlayerOmnitureCommand );

Triggers.PopupPlayerOmnitureCommand.prototype._getCustomTriggerPrefix = function()
{
	return 'NASCAR Live: ';
};

Triggers.LivePlayerOmnitureCommand.prototype.doCommand = function(context)
{
	switch (context.getTriggerType())
	{
		case 'start': this._doStartCommand(context); break;
		case 'end': this._doEndCommand(context); break;
		default: break;
	}
};

Triggers.LivePlayerOmnitureCommand.prototype._doStartCommand = function(context)
{
	var s = this._createReportingObject(context);
	var vid = this._getVideoId(context);
	s.pageName = vid;
	s.eVar2 = vid;
	s.prop5 = vid;
	s.eVar11 = vid;
	s.eVar13 = vid;
	s.channel = 'LIVE PLAYER';
	s.eVar3 = 'LIVE PLAYER';
	s.events = 'event9, event1';
	s.prop6 = context.getPlayableNode().getPlayableData().getDataObject().branding; //Is there branding for live video?
	this._postReportingObject(context, s, true, 'Video Start');
	s.linkTrackVars='None'; 
	s.linkTrackEvents='None';
	this._logger.debug("---------- LIVE PLAYER OMNITURE COMMAND FINISHED");
	$('xmpControlsMessage').innerHTML = '';
};

Triggers.LivePlayerOmnitureCommand.prototype._doEndCommand = function(context)
{
	//	
};

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.LivePlayerNielsenCommand = function() { 
	this._logger = new xmp.util.internals.CategoryLogger( 'BVPOmnitureTriggerCommand' );
};

Triggers.LivePlayerNielsenCommand.prototype.doCommand = function(context) {
	var isTurnerDomain = false;
//	if (location.hostname.indexOf('turner.com')>0) { isTurnerDomain = true; }

	if (!isTurnerDomain) { 	// don't add tracking image to internal player
		var cnnScRandom = Math.ceil(Math.random()*1000000000);
  		var cnnScTitle = escape(context.getPlayableNode().getPlayableData().getDataObject().headline);
		var cnnScImgt1 = 'dav0-' + cnnScTitle;
		var cnnScImgSrc = 'http://secure-us.imrworldwide.com/cgi-bin/m?ci=us-100429&tl=' + cnnScImgt1 + '&c6=vc,c01&cc=1&rnd=' + cnnScRandom;
		cnnScImg = new Image();
		cnnScImg.src = cnnScImgSrc;
	}
	this._logger.debug("---------- LIKVE PLAYER OMNITURE COMMAND FINISHED");
};

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.WebstatTriggerCommand = function() {};

Triggers.WebstatTriggerCommand.prototype.doCommand = function(context) {
	switch ( context.getTriggerType() ) {
		case 'start': 
			this._doStartCommand( context ); 
			break;
		default: 
			break;
	}
};

Triggers.WebstatTriggerCommand.prototype._doStartCommand = function(context) {
	var node = context.getPlayableNode();
	var pingUrl = node.getPlayableData().getDataObject().id+'/tracking.vidt';
	xmp.net.AjaxRequestManager.ping('videoTracking', pingUrl);
};

///////////////////////////////////////////////////////////////////////////////////////////////////

Triggers.LiveWebstatTriggerCommand = function() {};

Triggers.LiveWebstatTriggerCommand.prototype.doCommand = function(context) {
	switch ( context.getTriggerType() ) {
		case 'start': this._doStartCommand( context ); break;
		default: break;
	}
};

Triggers.LiveWebstatTriggerCommand.prototype._doStartCommand = function(context) {};