var VideoPlayer_TrackedUUIDs = new Array();
function MsnVideoInitialize2() {
    var VideoPlayer_WidgetIDs = document.getElementsByName("VideoPlayer_WidgetID");
    for (var i = 0; i < VideoPlayer_WidgetIDs.length; i++) {
        var widgetId = VideoPlayer_WidgetIDs[i].value + "_OnPlaybackStatusChanged"; //this id must be different than the actual widgetId or the event won't fire.
        //alert(widgetId);
        MsnVideo2.addMessageReceiver(
        {
            eventType: "playbackStatusChanged"
        , widgetId: widgetId
        , widgetGroup: null
        , funcCb: function (msg) { VideoPlayer_OnPlaybackStatusChanged(msg, widgetId); }
        }
        );
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Loading            //Loading video metadata (from VC or Javascript call)
// Loaded             //Loading video metata data finished
// LoadFailed         //Loading video metadata failure
// videoOpening       //Any activity that is needed before we can start buffering the video. Might include loading VAC and seeing if an ad needs to play
// videoBuffering     //Video is buffering
// videoPlaying       //Video is playing/seeking?
// videoPaused        //Video is paused
// videoPlayFailed    //Video playback has failed
// videoPlayCompleted //Video playback has completed
function VideoPlayer_OnPlaybackStatusChanged(msg, widgetId_OnPlaybackStatusChanged) {
    var widgetId = widgetId_OnPlaybackStatusChanged.replace("_OnPlaybackStatusChanged", "");
    if ("videoPlaying" == msg.param.status) {
        var uuid = VideoPlayer_GetCurrentVideoUUID(widgetId);
        var videoTracked = false;
        for (var i = 0; i < VideoPlayer_TrackedUUIDs.length; i++) {
            if (uuid == VideoPlayer_TrackedUUIDs[i]) {
                videoTracked = true;
                break;
            }
        }
        if (!videoTracked) {
            VideoPlayer_TrackedUUIDs.push(uuid);
            var oAnchor = document.getElementById(widgetId + "_UUID_" + uuid);
            if (oAnchor != null) {
                var caption = "";
                if (oAnchor.textContent != null)
                    caption = oAnchor.textContent;
                else
                    caption = oAnchor.innerText;
                DoOmnitureCustomLink(oAnchor, 'event18', omniture_clean(caption), "watch video;" + omniture_clean(caption), null, "VideoPlayer", uuid, null, null, null);
                //alert(msg.param.status + "\n\nuuid:" + uuid + "\n\caption:" + caption);
            }
        }
    }
    else if ("videoPlayCompleted" == msg.param.status) {
        var uuid = VideoPlayer_GetCurrentVideoUUID(widgetId).toLowerCase();
        if (uuid != null) {
            var links = document.getElementsByName("VideoPlayer_Thumbnail");
            var playNextVideo = false;
            var nextVideoLink = null;
            var uniqueId = null;
            for (var i = 0; i < links.length; i++) {
                var link_uuid = links[i].getAttribute("VideoGUID").toLowerCase();
                if (uuid == link_uuid) {
                    uniqueId = links[i].getAttribute("UniqueID").toLowerCase();
                    playNextVideo = true;
                }
                else if (playNextVideo && uniqueId == links[i].getAttribute("UniqueID").toLowerCase()) {
                    nextVideoLink = links[i];
                    break;
                }
            }
            if (nextVideoLink != null) {
                $("#" + nextVideoLink.getAttribute("id")).click();
            }
        }
    }
}

//-----------------------------------------
function VideoPlayer_GetCurrentVideoUUID(widgetId) {
    var uuid = null;
    try { uuid = MsnVideo2.getProperties({ type: 'currentVideo', widgetId: widgetId })[0].param.video.uuid; }
    catch (e) { uuid = null; }
    return uuid;
}

//-----------------------------------------
function VideoPlayer_UpdateContent(sourceObjId, destObjId) {
    var sourceObj = document.getElementById(sourceObjId);
    var destObj = document.getElementById(destObjId);
    if (sourceObj != null && destObj != null) {
        destObj.innerHTML = sourceObj.value;
    }
}
//-----------------------------------------
function VideoPlayer_ClearThumbnailClass(objId, playerid) {
    if (objId != null) {
        var obj = document.getElementById(objId);
        if (obj != null)
            obj.className = '';
    }
    if (playerid != null) {
        var objs = document.getElementsByName("VideoPlayer_Thumbnail");
        for (var i = 0; i < objs.length; i++) {
            if ("VideoPlayer_" + objs[i].getAttribute("UniqueID") == playerid)
                objs[i].className = '';
        }
    }
}
//-----------------------------------------
function VideoPlayer_SetThumbnailClass(objId, className) {
    var obj = document.getElementById(objId);
    if (obj != null)
        obj.className = className
}

//-----------------------------------------
function VideoPlayer_Render(playerid, height, width, mkt, mk, omnituresuitename, aspectRatioIs16x9, defaultFlash, autoPlay, uuid) { VideoPlayer_RenderPlayer(playerid, uuid, width, autoPlay, defaultFlash); }

function VideoPlayer_RenderPlayer(playerid, uuid, width, autoPlay, defaultFlash) {
    $.getScript("http://img1.video.s-msn.com/s/js/vxp.js", function () {
        if (typeof (MsnVideoUx) != "undefined") {

        	//MSNVideo_VxP_Player_ConfigName = 'MsnVideoMplTest';
        	//MSNVideo_VxP_Player_RefId = 'msn_video_mpl_test';
        	//MSNVideo_VxP_Player_CSID = 'ux-en-us';
        	//MSNVideo_VxP_Player_HubDomain = 'v5dev.uk.msn-int.com'

            var configName = MSNVideo_VxP_Player_ConfigName;
            var wRefId = MSNVideo_VxP_Player_RefId;

            var defaultDomain = {};
            defaultDomain["csid"] = MSNVideo_VxP_Player_CSID;
            if (MSNVideo_VxP_Player_HubDomain != null && MSNVideo_VxP_Player_HubDomain != '') {
                defaultDomain["hubDomain"] = MSNVideo_VxP_Player_HubDomain;
            }

            var playerOverrides = {};

            playerOverrides[new String(wRefId + ".WidgetReferenceId")] = playerid;

            playerOverrides[new String(wRefId + ".DefaultVideo")] = { videoQuery: { videoFilter: { type: 'Uuid', uuids: [uuid]}} };
            //playerOverrides[new String(wRefId + ".DefaultPlaylist")] = { videoQuery: { videoFilter: { type: 'Uuid', uuids: [uuid]}} };

            if (width != null && width != "") {
                playerOverrides[new String(wRefId + ".Width")] = width;
            }

            if (defaultFlash) {
                playerOverrides[new String(wRefId + ".msnPlayerLeadsWith")] = "Flash";
            } else {
                playerOverrides[new String(wRefId + ".msnPlayerLeadsWith")] = "Silverlight";
            }

            if (autoPlay) {
                playerOverrides[new String(wRefId + ".AutoPlayVideo")] = "true";
            } else {
                playerOverrides[new String(wRefId + ".AutoPlayVideo")] = "false";
            }

            if (typeof (s_account) != "undefined") {
                var player_fr = "IV2_" + s_account.split(',')[0] + "-" + LanguageCode.toLowerCase() + "-" + CountryCode.toLowerCase() + "_msadvertising";
                playerOverrides[new String(wRefId + ".PlayerChannel")] = player_fr;
                playerOverrides[new String(wRefId + ".PlayerLocation")] = player_fr;
                playerOverrides[new String(wRefId + ".MsnPlayerReportingType")] = "advertising";
            }

            playerOverrides[new String(wRefId + ".PlaylistLocation")] = "Hidden";
            playerOverrides[new String(wRefId + ".ContinuousPlayEnabled")] = "false";
            playerOverrides[new String(wRefId + ".DisplayAdBanner")] = "false";
            playerOverrides[new String(wRefId + ".DisplayTitle")] = "false";
            playerOverrides[new String(wRefId + ".DisplayMetadata")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerLink")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplayShareEmail")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplayShareEmbed")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplayShareLink")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplayInfoButton")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplayMoreVideos")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerFlashInitialPanel")] = "None";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplayShareBar")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerDisplaySharePane")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerEndslateDisplayRV")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerEndslateDisplayAd")] = "false";
            playerOverrides[new String(wRefId + ".MsnPlayerBrand")] = "msn video";
            playerOverrides[new String(wRefId + ".DisplayControlBar")] = "false";
            playerOverrides[new String(wRefId + ".ShowFacebookLike")] = "false";
            playerOverrides[new String(wRefId + ".ShowFacebookSend")] = "false";

            MsnVideoUx.render(configName, playerid + "_Container", playerOverrides, defaultDomain);
        }
    });

        VideoPlayer_ClearThumbnailClass(null, playerid);
        VideoPlayer_SetThumbnailClass(playerid + '_Thumbnail_' + uuid, 'on');
        VideoPlayer_UpdateContent(playerid + '_ThumbnailDescriptionLong_' + uuid, playerid + '_DescriptionLong_Container');
}

