/**
 * @author ajl
 */
 
if(typeof EXPOTV == "undefined") var EXPOTV = {};
if (typeof console == "undefined") { var console = {}; console.log = function(){}; /*fail silently in IE*/ }

EXPOTV.VideoPlayerManager4 = new function()
{
    var self = this;
    this.players = new Array();
    
    this.instantiateVideoPlayer = function(playerIdStr, swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashVarsObj, paramsObj)
    {
    	var flashVarsDefaultsObj = {
    		                          skinURL: "http://images.expotv.com/expotvplayer/SkinUnderAll.swf",
    		                          partner_id: "5",
                                      beacon_post_url: "http://stats.expotv.com/ping/log.php",
		                              beacon_threshold_type: "time",
		                              beacon_threshold_frequency: "10",
		                              client_ip: "38.107.179.208"
    		                       };
    		                       
        var paramsDefaultsObj    = {
        	                           quality: "best",
        	                           wmode: "window",
        	                           scale: "showall",
        	                           devicefont: "false",
        	                           seamlesstabbing: "true",
        	                           swliveconnect: "true",
        	                           allowfullscreen: "true",
        	                           allowscriptaccess: "always",
        	                           allownetworking: "all"
                                   };
        
        var attributesObj        = { id: playerIdStr, name: playerIdStr };
    		                        
        var flashVarsObj = $.extend(flashVarsDefaultsObj, flashVarsObj);
        var paramsObj =    $.extend(paramsDefaultsObj, paramsObj);
    	
        /* swfobject.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj) */
        swfobject.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashVarsObj, paramsObj, attributesObj);
        
        var player = new EXPOTV.VideoPlayerManager4.VideoPlayer(playerIdStr, replaceElemIdStr);
        self.players[playerIdStr] = player;
        
        return player;
    };
    
    this.broadcastEventsHandler = function(sEvent, oPlayerInfo, sPlayerId)
    {
    	eval("oPlayerInfo = " + oPlayerInfo);
    	
        var broadcastEventsObj = {
                                    eventType: sEvent,
                                    playerInfo: oPlayerInfo,
                                    playerId: sPlayerId 
                                 };
        
        if (broadcastEventsObj.eventType == "onstart")
        {
        	var videoIdStr = broadcastEventsObj.playerInfo.v_videoID || broadcastEventsObj.playerInfo.video_id;
        	var customGAActionStr =  broadcastEventsObj.playerInfo.v_ga_custom_play_action_name || broadcastEventsObj.playerInfo.ga_custom_play_action_name || null;
	        
        	self.sendGAVideoPlayEvent(videoIdStr, customGAActionStr);
        }
    };
    
    this.sendGAVideoPlayEvent = function(videoIdStr, actionNameStr)
	{
	     if (EXPOTV.Google)
	     {
	         var finalActionNameStr = "";
	         
	         if (typeof(actionNameStr) == "undefined" || actionNameStr == null)
	            finalActionNameStr = "Video Start";
	         else
	            finalActionNameStr = actionNameStr;
	         
	         
	         if (EXPOTV.Google.pagetracker._trackEvent("Video Plays", finalActionNameStr, videoIdStr))
	         {
	             console.log("Sent Video Start GA event: '" + finalActionNameStr + "' for video id: " + videoIdStr);
	         }
	         else 
	         {
	             console.log("FAILED Sending Video Start GA event: '" + finalActionNameStr + "' for video id: " + videoIdStr);
	         }
	     }
	}
    
};

/************* Begin VideoPlayer Class ******************/
EXPOTV.VideoPlayerManager4.VideoPlayer = function(playerIdStr, replaceElemIdStr)
{
    this.movieEl = swfobject.getObjectById(playerIdStr);
    this.playerIdStr = playerIdStr;
    this.replaceElemIdStr = replaceElemIdStr;
}

EXPOTV.VideoPlayerManager4.VideoPlayer.prototype.loadVideo = function(videoObj)
{
    this.movieEl.loadobject(videoObj);
}

EXPOTV.VideoPlayerManager4.VideoPlayer.prototype.loadXml = function(urlStr)
{
    /* "data.xml" */
    this.movieEl.loadobject(urlStr);    
}

EXPOTV.VideoPlayerManager4.VideoPlayer.prototype.pause = function()
{
    this.movieEl.pause();
}

