/************************************************
 *    @Module - videoplayer.js
 *    @Developers:
 *          James Kersbergen [JHK :: jkersbergen@nexstar.tv]
 *    @Dependancies:
 *					 - Yahoo User Interface (YUI) library
 * 
 *  Javascript functions used by the video player
 *
 * =================================
 * Revision History
 * =================================
 * Date          Developer    Description
 * ==========    =========    ====================
 * 2009.09.09    JHK          added this comment block to track updates
 *                            updated setMediaPlayerState()
 *
 ************************************************/

 
videoplayer_build_num = '7D938D-nxd'; // used to track latest file version
if (showLog) nxdLogCall("videoplayer.js","enter file (build : "+videoplayer_build_num+")",null,"info","videoplayer.js");

var videoPlayerAJAX = "/common/videoplayer/ajax.php?data=get_video";
var videoPlayerSWF = "/common/videoplayer/VideoPlayer.swf";
var videoPlayerResponse;
var videoPlayerStateCode = -1;
var videoPlayerStateStr = 'n/a';
var videoPlayerBandwidth = 'high';
var videoPlayerSize = 320;
var currentVideoID = 0;

if (showLog)
{
	loggerArgs =  new Object ( );
	loggerArgs = { 'videoPlayerAJAX': videoPlayerAJAX, 'videoPlayerSWF' : videoPlayerSWF, 'videoPlayerResponse' : videoPlayerResponse, 'videoPlayerStateCode' : videoPlayerStateCode, 'videoPlayerStateStr' : videoPlayerStateStr, 'videoPlayerBandwidth' : videoPlayerBandwidth, 'videoPlayerSize' : videoPlayerSize, 'currentVideoID' : currentVideoID  };
	nxdLogCall("videoplayer.js","initial js Variables",loggerArgs,"script","videoplayer.js");
}


var videoPlayerSuccess = function(o)
{
	if(o.responseText !== undefined)
	{
		try
		{ 
			videoPlayerResponse = YAHOO.lang.JSON.parse(o.responseText);
			if (videoPlayerResponse.results.length >=1)
			{
				var video_player_object_el = document.getElementById('video_player_object');
				video_player_object_el.innerHTML = '';
				YAHOO.util.Dom.setStyle(video_player_object_el,'display','none');
				displayPrerollCompanion(videoPlayerResponse.results[0].preroll_companion_zone_id);
				
				var flashvars = {};
				if (videoPlayerResponse.results[0].preroll_file !== null) flashvars.prerollAd = videoPlayerResponse.results[0].preroll_file;
				flashvars.video = videoPlayerResponse.results[0].video_file;
				
				
				YAHOO.util.Dom.setStyle('videoplayer_loading_container','display','none');
				
				var params = {};
				params.allowfullscreen = true;
				params.autoplay = true;
				params.wmode = 'transparent';
			
				var attributes = {};
				attributes.id = "nxd_video_player";
				attributes.name = "nxd_video_player";
				
				switch (videoPlayerSize)
				{
					case 220:
						videoWidth = 220;
						videoHeight = 192;
						videoSWF = '/common/videoplayer/VideoPlayer_220.swf';
						break;
						
					default:
						videoWidth = 320;
						videoHeight = 260;
						videoSWF = '/common/videoplayer/VideoPlayer.swf';
				}
				
				swfobject.embedSWF(videoSWF, "video_player_swf", videoWidth, videoHeight, "9.0.0", "/common/videoplayer/expressInstall.swf", flashvars, params, attributes);
				
				setMediaPlayerState(0,'loaded');
				
			}
		}
		catch (e) {}
	}
}

var videoPlayerFailure = function(o)
{
	if(o.responseText !== undefined)
	{
	}
}

var videoPlayerCallback =
{
	success: videoPlayerSuccess,
	failure: videoPlayerFailure
};


/************************************************
 *    @Function -  setMediaPlayerState
 *    @Author - James Kersbergen [JHK]
 *    @Arguments :
 *        stateCode - code sent from player [num] (required)
 *        stateStr - player state sent from player [str] (required)
 *    @Returns : n/a
 * 
 *  set the state of the video player
 *
 * =================================
 * Revision History
 * =================================
 * Date          Developer    Description
 * ==========    =========    ====================
 * 2009.09.09    JHK          added this comment block to track updates
 *                            added logging
 * 
 ************************************************/
function setMediaPlayerState(stateCode,stateStr)
{
	if (showLog)
	{
		loggerArgs =  new Object ( );
		loggerArgs = { 'stateCode': stateCode, 'stateStr' : stateStr, 'videoPlayerStateCode' : videoPlayerStateCode, 'videoPlayerStateStr' : videoPlayerStateStr };
		nxdLogCall("setMediaPlayerState()","enter function",loggerArgs,"info","videoplayer.js");
	}
	videoPlayerStateCode = stateCode;
	videoPlayerStateStr = stateStr;
	if (showLog)
	{
		loggerArgs =  new Object ( );
		loggerArgs = { 'videoPlayerStateCode' : videoPlayerStateCode, 'videoPlayerStateStr' : videoPlayerStateStr };
		nxdLogCall("setMediaPlayerState()","js variables",loggerArgs,"info","videoplayer.js");
	}
}

function loadVideo(videoID, autoplay)
{
	autoplay = (typeof(autoplay) == 'undefined') ? true : autoplay;
	videoID = (typeof(videoID) == 'undefined') ? null : videoID;
	bandwidthParam = (videoPlayerBandwidth == 'high') ? '' : '&bw='+videoPlayerBandwidth;
	videoPlayerAJAXURL = videoPlayerAJAX+'&vid_id='+videoID+bandwidthParam;
	currentVideoID = videoID;
	YAHOO.util.Connect.asyncRequest('GET', videoPlayerAJAXURL, videoPlayerCallback);
}