﻿var MobMediaPlayer;
var MobMediaPlayerPanel;
var MobPlayerMode = 1;
var PostInstallGuidance;
var myContent;
var miniPlayerPublished = true;
var useFlashPlayer = false;
var mousePositionAtClick;

var getSilverlightMethodCall =
            "javascript:Silverlight.getSilverlight(\"4.0.50401.0\");"
var installImageUrl =
            "http://go.microsoft.com/fwlink/?LinkId=161376";
var imageAltText = "Get Microsoft Silverlight";
var altHtml =
            "<a href='{1}' style='text-decoration: none;'>" +
            "<img src='{2}' alt='{3}' " +
            "style='border-style: none'/></a>";
altHtml = altHtml.replace('{1}', getSilverlightMethodCall);
altHtml = altHtml.replace('{2}', installImageUrl);
altHtml = altHtml.replace('{3}', imageAltText);



function initMobMediaPlayerVars() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;
    init();
    PostInstallGuidance = document.getElementById("PostInstallGuidance");
    if (null != PostInstallGuidance) {
        if (Silverlight.isBrowserRestartRequired) {
            PostInstallGuidance.innerHTML = " When installation is complete,<br />restart your browser to activate your Silverlight content.";
        }
        else {
            PostInstallGuidance.innerHTML = "";
        }
    }
}

(function() {
    /*@cc_on
    if (document.body) {
        try {
            document.createElement('div').doScroll('left');
            return initMobMediaPlayerVars();
        } catch (e) { }
    }
    /*@if (false) @*/
  if (/loaded|complete/.test(document.readyState)) return initMobMediaPlayerVars();
  /*@end
    @*/
    if (!initMobMediaPlayerVars.done) setTimeout(arguments.callee, 50);
})();
_prevOnload = window.onload;
window.onload = function() {
    if (typeof _prevOnload === 'function') _prevOnload();
    initMobMediaPlayerVars();
};
if (document.addEventListener) {
    document.addEventListener('DOMContentLoaded', initMobMediaPlayerVars, false);
}


function onSilverlightError(sender, args) {alert("An Error has occured and the media can not be played");}

function setMode(mode) {
    if (isContentAvailible()) {
        switch (mode) {
            case "0":
                //mini mode
                MobMediaPlayer.style.width = 224;
                MobMediaPlayer.style.height = 129;
                MobMediaPlayerPanel.style.width = 224; ;
                MobMediaPlayerPanel.style.height = 129;
                break;
            case "1":
                //normal
                MobMediaPlayer.style.width = 434;
                MobMediaPlayer.style.height = 346;
                MobMediaPlayerPanel.style.width = 434;
                MobMediaPlayerPanel.style.height = 346;
                break;
            case "2":
                //docked to bottom
                alert("This mode is not supported");
                break;
            case "3":
                //docked to bottom
                alert("This mode is not supported");
                break;
            case "4":
                //Full Screen
                alert("This mode is not supported");
                break;
            case "5":
                MobMediaPlayerPanel.style.width = 1;
                MobMediaPlayerPanel.style.height = 1;
                MobMediaPlayer.style.width = 1;
                MobMediaPlayer.style.height = 1;
                break;
        }
        myContent.Player.SwitchMode(mode);

    }
    if (mode != 5) {
        MobPlayerMode = mode;
    }
}
var mnf = "Media player not found.";
function PlaySong(mediaID, player, fileID) {
    if (Silverlight.isInstalled("2.0")) {
        if (isContentAvailible()) {
            setMode(MobPlayerMode);
            if (mediaID == -1) {
                myContent.PlayerControls.PlayUnpublishedSong(fileID);
            }
            else {
                myContent.PlayerControls.PlaySong(mediaID);
            }
        }
        else {
            alert(mnf);
        }
    }
    else {
        fetchMediaInfo(publishedMediaId, true);
    }
}

function PlayTopSongs() {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayTopSongs();
    }
    else {
        alert(mnf);
    }
}
function PlayAllSongs() {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayAllSongs(1);
    }
    else {
        alert(mnf);
    }
}
function PlayStaffPicks() {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayStaffPicks(1);
    }
    else {
        alert(mnf);
    }
}
function PlayFavorites() {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayFavorites();
    }
    else {
        alert(mnf);
    }
}
function PlayTopRated() {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayTopRated(1);
    }
    else {
        alert(mnf);
    }
}
function PlayNewSongs() {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayNewSongs(1);
    }
    else {
        alert(mnf);
    }
}
function PlayArtistSongs(atristID) {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.PlayArtistSongs(atristID);
    }
    else {
        alert(mnf);
    }
}
function CloseMiniPlayer() {
    var miniPlayer = document.getElementById('SilverlightPlugInHost');
    var h = document.getElementById('MiniPlayerDragHandel');
    if (miniPlayer) {
        jQuery(MobMediaPlayerPanel).animate({
            left: '+=800', top: '+=500', opacity: 0.05
        }, 500, function () {
            miniPlayer.innerHTML = ""; h.style.display = "none"; jQuery(MobMediaPlayerPanel).css("opacity", "1"); 
            
        });
    }
    if (MobMediaPlayerPanel && useFlashPlayer) {
        jQuery(MobMediaPlayerPanel).animate({ left: '+=200', top: '+=500'}, 200, function () { MobMediaPlayerPanel.innerHTML = ""; });
    } 
    
}
function Close() {
    CloseMiniPlayer();
}
function AddToPlayList(mediaID,playlistname) {
    if (isContentAvailible()) {
        setMode(MobPlayerMode);
        myContent.PlayerControls.AddSongToPlayList(mediaID, playlistname);
    }
}
function isContentAvailible() {
    var availible = false;
    if ((MobMediaPlayer != undefined) && (myContent != undefined)) {
        availible = true;
    }
    return availible;
}
function fetchMediaInfo(mediaId, isPublished) {
    var service = CilibertiEnterprises.MyOnlineBand.Web.Services.MediaPlayerService;
    MobMediaPlayerPanel.innerHTML = "<div class='oddbox'>Loading Music</div>";
    if (isPublished) {
        service.GetSingleSong(mediaId, onMediaInfoSuccess, null, null);
    }
    else {
        service.GetUnPublishedSong(mediaId, onMediaInfoSuccess, null, null);
    }
}

function onMediaInfoSuccess(result) {
    if (result.SongURL == "404") {
        alert("This song is no longer availible. It may have been removed by the artist.");
        useFlashPlayer = true;
        Close();
    }
    else {
        var supported = doesBrowserSupportCodec(result.FileType);
        if (supported) {
            PlayUsingAudioTag(result.SongURL + "&a208=x509" + result.StreamingToken);
        }
        else if (result.FileType == ".mp3") {
            FallbacktoEvilFlash(result);
        }
        else {
            miniPayerSilverlightInstall(result.SongImageURL, result.SongURL);
        }
    }
}
function miniPayerSilverlightInstall(image, url) {
    if (Silverlight.supportedUserAgent("4.0")) {
        alert("The Microsoft Silverlight plug-in is required to play this content");
        MobMediaPlayerPanel.innerHTML = altHtml;
    }
    else {
        alert("Sorry, your device does not support playback of this content.");
    }
}
function PlayUsingAudioTag(url) {
    MobMediaPlayerPanel.innerHTML = "<div class='oddbox'><div class='fpClose'><a href='JavaScript:Close()'><img src='/Images/CloseWindow.png' alt='Close player' /></a></div><audio id='audio' autoplay='autoplay' src='" + url + "' class='shadow' controls='controls'></audio></div>";
    useFlashPlayer = true;
}

function doesBrowserSupportCodec(codecName) {
    if (codecName == '.mp3') {
        return (Modernizr.audio && Modernizr.audio.mp3);
    }
    else if (codecName == '.ogg') {
        return (Modernizr.audio &&Modernizr.audio.ogg);
    }
    else if (codecName == '.wav') {
        return (Modernizr.audio && Modernizr.audio.wav);
    }
    else if (codecName == '.m4a' || codecName == '.mp4') {
        return (Modernizr.audio && Modernizr.audio.m4a);
    }
    return false;

}


function FallbacktoEvilFlash(media) {
    var songUrl = encodeURIComponent(media.SongURL + "&a208=x509" + media.StreamingToken);
    var flashObject = "<div class='oddbox'><div class='fpClose'><a href='JavaScript:Close()'><img src='/Images/CloseWindow.png' alt='Close player' /></a></div><br><object id='myId' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='470' height='24'> " +
        "<param name='movie' value='/FlashPlayer/player.swf' /> " +
        "<param name='flashvars' value='file=" + songUrl + "&autostart=true&provider=sound' /> " +
        "<object type='application/x-shockwave-flash' data='/FlashPlayer/player.swf' width='320' height='24'> " +
        "<param name='flashvars' value='file=" + songUrl + "&autostart=true&provider=sound' /> " +
          "<p>The content cannot be loaded</p></object></object><br><a href='" + getSilverlightMethodCall + "'>For a better experience on this site install Microsoft Silverlight</a></div> ";
    MobMediaPlayerPanel.innerHTML = flashObject;
    useFlashPlayer = true;
}
function prep() {
    if(mousePositionAtClick)
        jQuery(MobMediaPlayerPanel).css({ "height": 129, "width": 224, "left": mousePositionAtClick.left + "px", "top": mousePositionAtClick.top + "px", "position": "absolute", "z-index": 1000 });

    var h = document.getElementById('MiniPlayerDragHandel');
    if (h) {
        h.style.display = "block";
    }
}
function Play(publishedMediaId) {
    prep();
    if (Silverlight.isInstalled("2.0")) {
        createSilverlight(publishedMediaId, 0);
    }
    else {
        fetchMediaInfo(publishedMediaId, miniPlayerPublished);
    }
     
}

function uPlay(publishedMediaId) {
    prep();
    if (Silverlight.isInstalled("2.0")) {
        createSilverlight2(publishedMediaId);
    }
    else {
        fetchMediaInfo(publishedMediaId, false);
    }
}
jQuery(document).ready(function () { jQuery(".MediaPlayerLink").click(function () { mousePositionAtClick = jQuery(this).offset(); }); });

