﻿/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
/// Temporary fallback method uses old and new way, allowing for
/// override of sami URI and setting playReadyUrl.
/// NOTE: Set items to null to not use them.
/// NOTE: LaunchMediaPlayer parameters take precedence.
///       This means that mediaUrl should not be set as this would mean
///       a single media URL is used for all media types.
function CreateAndLaunchMediaPlayer(SessionId, Title, Language, SamiURL, MediaURL,
                            PlayReadyURL, AvailableBitrates, isDebug,
                            SiteCode, MediaId, Bitrate, isPreview,
                            isTrailer, isShowSubtitles, SubtitleLanguage) 
{
    var ip = GetLaunchInitParams(SessionId, Title, Language, SamiURL, MediaURL,
                            PlayReadyURL, AvailableBitrates, isDebug);

    ip += GetCreateMediaPlayerInitParams(SiteCode, MediaId, Bitrate, Language, isPreview,
                                    isTrailer, isShowSubtitles, SubtitleLanguage,
                                    AvailableBitrates, isDebug);

    OpenShadowBoxWithInitParameters(ip);
}


/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
// Documented API Functions
function LaunchMediaPlayer2(SessionId, 
                            VideoTitle, 
                            Language,
                            SamiURL,
                            HighMediaURL,
                            MidMediaURL,
                            LowMediaURL,
                            HDMediaURL,
                            PlayReadyURL,
                            Debug)
{
    var ip = GetLaunchInitParams2(SessionId, 
                            VideoTitle, 
                            Language,
                            SamiURL,
                            HighMediaURL,
                            MidMediaURL,
                            LowMediaURL,
                            HDMediaURL,
                            PlayReadyURL,
                            Debug);

    $('#CreateMediaPlayerParams').html(ip);

    OpenShadowBoxWithInitParameters(ip);
}

function LaunchMediaPlayer(SessionId, Title, Language, SamiURL, MediaURL,
                            PlayReadyURL, AvailableBitrates, isDebug) {
    var ip = GetLaunchInitParams(SessionId, Title, Language, SamiURL, MediaURL,
                            PlayReadyURL, AvailableBitrates, isDebug);

    $('#CreateMediaPlayerParams').html(ip);

    OpenShadowBoxWithInitParameters(ip);
}

function GetLaunchInitParams2(SessionId,
                            VideoTitle,
                            Language,
                            SamiURL,
                            HighMediaURL,
                            MidMediaURL,
                            LowMediaURL,
                            HDMediaURL,
                            PlayReadyURL,
                            Debug)
{
    var ip = "SessionId=" + SessionId;

    if (Language == null || Language == "none") 
        Language = "SV";

    ip += ",VideoTitle=" + VideoTitle;
    ip += ",Language=" + Language;
    ip += ",SamiURL=" + SamiURL;
    ip += ",HDMediaURL=" + HDMediaURL;  

    // URL in the comments for reference when debugging
    // http://mms-icanal-od.online.no/sfanytimepub/preview/BM_3656_1500_part.wmv     
    // If no high definition, load the other bitrates
    if (HDMediaURL == null || HDMediaURL == "none" || HDMediaURL == "") 
    {
        ip += ",LowMediaURL=" + LowMediaURL;   
        ip += ",MidMediaURL=" + MidMediaURL;   
        ip += ",HighMediaURL=" + HighMediaURL;   
    }
    ip += ",PlayReadyURL=" + PlayReadyURL;
    ip += ",Debug=" + Debug;

    return ip;
}

function GetLaunchInitParams(SessionId, Title, Language, SamiURL, MediaURL, 
                            PlayReadyURL, AvailableBitrates, isDebug)
{
    var ip = "SessionId=" + SessionId;

    if (Language == null || Language == "none")
        Language = "SV";

    ip += ",VideoTitle=" + Title;
    ip += ",Language=" + Language;
    ip += ",SamiURL=" + SamiURL;
    ip += ",MediaURL=" + MediaURL;   
    ip += ",PlayReadyURL=" + PlayReadyURL;
    
    // http://mms-icanal-od.online.no/sfanytimepub/preview/BM_3656_1500_part.wmv

    // Available Bitrates
    ip += ",AvailableBitrates=";
    $.each(AvailableBitrates,
                function () {
                    ip += this + "|";
                });
    // Remove the last pipe '|' character
    ip = ip.slice(0, -1);
    
    ip += ",Debug=" + isDebug;

    return ip;
}


// The actual create media player function
// currently uses init params.  TODO: Might change this so we can 
// have 2 scriptable methods in silverlight
// DEPRECATED 
function CreateMediaPlayer(SiteCode, MediaId, Bitrate, Language, isPreview,
                                    isTrailer, isShowSubtitles, SubtitleLanguage,
                                    AvailableBitrates, isDebug) {
    var ip = GetCreateMediaPlayerInitParams(SiteCode, MediaId, Bitrate, Language, isPreview,
                                    isTrailer, isShowSubtitles, SubtitleLanguage,
                                    AvailableBitrates, isDebug);
    $('#CreateMediaPlayerParams').html(ip);
    OpenShadowBoxWithInitParameters(ip);
}
// DEPRECATED 
function GetCreateMediaPlayerInitParams(SiteCode, MediaId, Bitrate, Language, isPreview,
                                    isTrailer, isShowSubtitles, SubtitleLanguage,
                                    AvailableBitrates, isDebug) {
    // SiteCode
    var ip = "SiteCode=" + SiteCode;

    // Media ID
    ip += ",MediaId=" + MediaId;

    // Default Bitrate
    ip += ",Bitrate=" + Bitrate;

    // Language
    if (Language != null && Language != "none") {
        ip += ",Language=" + Language;
    }

    // Preview
    if (isPreview) {
        ip += ",Preview=true";
    }

    // Trailer
    if (isTrailer) {
        ip += ",Trailer=true";
    }

    // ShowSubtitles
    if (isShowSubtitles) {
        ip += ",ShowSubtitles=true";
    }

    // Subtitle Language
    if (SubtitleLanguage != null && SubtitleLanguage != "none") {
        ip += ",SubtitleLanguage=" + SubtitleLanguage;
    }

    // Available Bitrates
    ip += ",AvailableBitrates=";
    $.each(AvailableBitrates,
                function () {
                    ip += this + "|";
                });
    // Remove the last pipe '|' character
    ip = ip.slice(0, -1);

    if (isDebug) {
        ip += ",Debug=true";
    }
    return ip;

}

/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
// Helper functions

// Opens the shadowbox with the init parameters passed in
function OpenShadowBoxWithInitParameters(initParameters) {
    var s = '<object id="SilverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="640" height="450" style="background-color:#00FFFFFF">'
                    + '<param name="source" value="/Templates/Storefront/ClientBin/MediaPlayer_v3.xap?verison=25112011"/>'
                    + '<param name="onError" value="onSilverlightError" />'
                    + '<param name="onload" value="onSilverlightLoaded" />'
                    + '<param name="enableHtmlAccess" value="true" />'
                    + '<param name="background" value="Transparent" />'
                    + '<param name="windowless" value="True" />'
                    + '<param name="minRuntimeVersion" value="4.0.50917" />'
            		+ '<param name="autoUpgrade" value="true" />'
                    + '<param name="initParams" value="'
                    + initParameters
                    + '" />'
            		+ '<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">'
             		+ '<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>'
            		+ '</a>'
            	    + '</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>';

    //var host = document.getElementById("silverlightControlHost");

    Shadowbox.open({ content: s, player: "html", width: 640, height: 450 });
}


