﻿var ThisIsPlayer = false;
var playerOpen = false;
var playerSpeed = 1000;
var playerReady = false;
var playerDetached = false;
var playerStreaming = false;
var queuedStationID = 0;
var queuedSongID = 0;

function StopAndClose() {
    ClosePlayer();
    StopPlayer();    
}

function PlayerVolumeChanged(newVolume) {
    var newOptions = {
        //domain: '*.gotradio.com',
        expiresAt: new Date(2020, 1, 1)
    };
    $.cookies.set('playerVolume', newVolume, newOptions);
}

function StopPlayer() {
    $('#GotRadioPlayer').externalInterface({ method: 'stopStream' });
}

function DetachPlayer(obj) {
    playerDetached = window.open('/Player.mvc/station/' + obj.stationID, 'Win_DetachedPlayer', 'width=728,height=410,scrollbars=no,toolbar=no,status=no,menubar=no,copyhistory=no')
    ClosePlayer();
}

function PlayerAction_Stop() {
    playerStreaming = false;
}
function PlayerAction_Play() {
    playerStreaming = true;
}

function PlayStation(stationID) {
    OpenPlayer();
    SendToPlayer(0, stationID);    
    return false;
}

function PlayNow(songID, stationID) {
    OpenPlayer();
    SendToPlayer(songID, stationID);
    return false;
}


function UnloadWarning() {
    if (!playerDetached && playerStreaming) {
        return 'Thank you for listening to GotRadio.  To avoid stream interruption, simply detach your gotradio player or mimimize this page and launch a new browser session.';
    }
}

function SendToPlayer(songID, stationID) {
    if (playerReady) {
        if (songID > 0) {
            var obj = new Object();
            obj.stationID = stationID;
            obj.songID = songID;

            if (playerDetached != false) {
                try {
                    playerDetached.SendToPlayer(songID, stationID);
                }
                catch (err) {
                    playerDetached = false;
                    $('#GotRadioPlayer').externalInterface({ method: 'playSong',
                        args: obj
                    });
                    OpenPlayer();
                }
            } else {
                $('#GotRadioPlayer').externalInterface({ method: 'playSong',
                    args: obj
                });
                OpenPlayer();
            }
        } else {
            if (playerDetached != false) {
                try {
                    playerDetached.SendToPlayer(songID, stationID);
                }
                catch (err) {
                    playerDetached = false;
                    $('#GotRadioPlayer').externalInterface({ method: 'playStation',
                        args: stationID
                    });
                    OpenPlayer();
                }
            } else {
                $('#GotRadioPlayer').externalInterface({ method: 'playStation',
                    args: stationID
                });
                OpenPlayer();
            }
        }
    } else {
        queuedStationID = stationID;
        queuedSongID = songID;
    }
}


function OpenPlayer() {
    if ((!playerOpen) && (!playerDetached)) {
        $('#playerPulloutDirections').hide('fast', function() {
            $('#playerPullout').removeClass('pullOutOpen');
            $('#playerPullout').addClass('pullOutClose');
            $('#playerWrapper').animate({ left: '0' }, playerSpeed);
            playerOpen = true;
        });

        $('#playerPullout').unbind('click');
        $('#playerPullout').click(ClosePlayer);
    }
}

function ClosePlayer() {
    if (playerOpen) {
        $('#playerWrapper').animate({ left: '-700' }, playerSpeed, function() {
            $('#playerPulloutDirections').show('fast');
            $('#playerPullout').removeClass('pullOutClose');
            $('#playerPullout').addClass('pullOutOpen');
            playerOpen = false;
        });
        $('#playerPullout').unbind('click');
        $('#playerPullout').click(OpenPlayer);
    }
}

function ReadyPlayer() {
    playerReady = true;

    if (queuedSongID > 0 || queuedStationID > 0)
        SendToPlayer(queuedSongID, queuedStationID);

    queuedSongID = 0;
    queuedStationID = 0;


    RefreshBanners();

    return true;
}

