var _previousTime = 0;
var _priorState = "";
var _adPresent = false;
var _isReplayed = false;
var _previousCIEC = ""; // previous current item embed code
var _previousEC = ""; //   previous embed code
var _firstFramePlayed = false; //   previous embed code
var _playComplete = false;

function getFlashMovie(movieName)
{
	if (window.document[movieName]) 
	{
		return window.document[movieName];
	}

	if (navigator.appName.indexOf("Microsoft") == -1)
	{
		if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName]; 
		else
			return document[movieName];
	}
	else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
	{
		return document.getElementById(movieName);
	}
}	

function receiveOoyalaEvent(playerId, eventName, p)
{
  var player = document.getElementById(playerId);
	var event_catcher = getFlashMovie("eventCatcher");
	
  switch (eventName)
  {		
		case "currentItemEmbedCodeChanged":
			event_catcher.resetEvents(playerId, player.getCurrentItemTitle());
			_priorState = "";
			_firstFramePlayed = false;
		break;

		case "embedCodeChanged":
			event_catcher.resetEvents(playerId, player.getTitle());
			_priorState = "";
			_firstFramePlayed = false;
		break;
			
		case "playComplete":
			_playComplete = true;
			event_catcher.sendPercent_100(playerId);
			event_catcher.sendFinish(playerId);
		break;
			
		case "activePanelChanged":
		break;
			
		case "adStarted":
			_adPresent = true;
		break;

		case "adCompleted":
			_priorState = "";
			_adPresent = false;
		break;
			
    case "stateChanged":		
		if(_adPresent == false)
		{
			if (p["state"] == "playing")
			{				
				//replay and start decisions
				if (isReplayed(player) && _playComplete)
				{
					event_catcher.resetEvents(playerId, player.getTitle());
					event_catcher.sendReplay(playerId);
				} else if (!_firstFramePlayed)
				{
					event_catcher.sendStart(playerId);
					_firstFramePlayed = true;
					AddVideoPlayedSpotlightTag();
				}
				_playComplete = false;
				
				if (_priorState == "paused")
				{
					event_catcher.sendPlay(playerId);
				} else if ( _priorState == "seeked")
				{
					event_catcher.seek(playerId);	
				}
				_priorState = "playing";
			} else if (p["state"] == "paused" || p["state"] == "channel")
			{				
				if (_priorState == "playing") 
				{
					if (player.getPlayheadTime() != 0)
					{ 
					  // if reaches here and the playHeatime is zero it means the play is complete
						event_catcher.sendPause(playerId);
					}
				}
				_priorState = "paused";
			}
		}
    break;
			
		case "seeked":
			_priorState = "seeked";
		break;
			
		case "playheadTimeChanged":
			if(_adPresent == false)
			{
				if (p.playheadTime >= player.getTotalTime()*0.75)
				{
					event_catcher.sendPercent_75(playerId);
				} else if (p.playheadTime >= player.getTotalTime()*0.5)
				{
					event_catcher.sendPercent_50(playerId);
			  } else if (p.playheadTime >= player.getTotalTime()*0.25)
			  {
					event_catcher.sendPercent_25(playerId);
				}
		  }
		break;			
  }
}

function isReplayed(player)
{	
	var replay = false;
	
	if (player.getLineup() != null)
	{
		if (player.getCurrentItemEmbedCode() == _previousCIEC)
		{
			replay = true;
		}
		_previousCIEC = player.getCurrentItemEmbedCode();
	} else
	{
		if (player.getEmbedCode() == _previousEC)
		{
			replay = true;
		}
		_previousEC = player.getEmbedCode();
	}	
	return replay;
}

function AddVideoPlayedSpotlightTag() {
    var axel = Math.random() + "";
    var a = axel * 10000000000000;
    document.getElementById('VideoPlayedSpotlightTag').innerHTML = '<IFRAME SRC="http://ad.doubleclick.net/activity;src=1869704;type=betty077;cat=bc_vi646;ord=1;num=' + a + '?" width="1" height="1" alt=""/>';         
}
//function dcsMultiTrack() 
//// Mock dcsMultiTrack() function to be used in testing; remove or comment out when deploying 
////to production.
//{
//  alert("key1 = " + arguments[0] +"  ->  value1 = " + arguments[1] 
//      + "\n" + "key2 = " + arguments[2] +"  ->  value2 = " + arguments[3] 
//      + "\n" + "key3 = " + arguments[4] +"  ->  value3 = " + arguments[5]);
//  
//  if (arguments.length%2==0)
//  {
//    for (var i=0;i<arguments.length;i+=2)
//    {			
//		  // alert("::: inside the if statement, so it's working");
//		  if (arguments[i].indexOf('WT.')==0)
//		  {
//        WT[arguments[i].substring(3)]=arguments[i+1];
//      } else if (arguments[i].indexOf('DCS.')==0)
//      {
//        DCS[arguments[i].substring(4)]=arguments[i+1];
//      } else if (arguments[i].indexOf('DCSext.')==0)
//      {
//        DCSext[arguments[i].substring(7)]=arguments[i+1];
//      }
//    }
//    
//    var dCurrent=new Date();
//    DCS.dcsdat=dCurrent.getTime();
//    dcsFunc("dcsCookie");
//    dcsTag();
//  }
//}

