﻿var createVideoPlayer = function (targetID, flashvars, params, attributes, width, height) {
    swfobject.embedSWF("http://sitekick.s3.amazonaws.com/flash/jw5.3/player.swf", targetID, width, height, "9", false, flashvars, params, attributes);
};
var videoPlayer = function () {
    this.getBitrateName = function (rate) {
        if (rate == 60) {
            return "Dial-up (50 Kbps)";
        }
        else if (rate == 400) {
            return "Low (400 Kbps)";
        }
        else if (rate == 700) {
            return "SD (700 Kbps)";
        }
        else if (rate == 1500) {
            return "HD (1.5 Mbps)";
        }
    }
};
var vPlayer = new videoPlayer();
var createPlayer55 = function (attributes, selectedBitrate) {
    var flashUrl = "http://sitekick.s3.amazonaws.com/flash/jw5.5/player.swf";
    var skinUrl = "http://sitekick.s3.amazonaws.com/flash/stylish_slim.swf";
    var flashReference = null;
    var deviceAgent = navigator.userAgent.toLowerCase();
    var html5UserAgents = /(iphone|ipod|ipad|appletv|android|silk)/;
    var androidUserAgents = /(android|silk)/;
    var iOSUserAgents = /(iphone|ipod|ipad|appletv)/;

    var html5 = deviceAgent.match(html5UserAgents);

    if (attributes.provider == 'sound') { //SOUND
        if (html5 == null) {    //FLASH
            var flashvars = {
                width: attributes.width,
                height: attributes.height,
                autostart: attributes.autostart,
                skin: skinUrl,
                file: attributes.file,
                provider: "sound"
            };
            var params = { wmode: 'opaque' };
            var attr = { id: attributes.id, name: attributes.id };

            swfobject.embedSWF(flashUrl, attributes.id, attributes.width, attributes.height, "9.0.115", false, flashvars, params, attr);
        }
        else {  //HTML5
            var autoplay = "";
            if (attributes.autostart == "True") {
                autoplay = "autoplay ";
            }

            var audioPlayer = '';
            var android = deviceAgent.match(androidUserAgents);
            if (android != null) {
                audioPlayer += '<a class="audio_file" href="' + attributes.file + '">Audio</a>';
            }
            else {
                audioPlayer += '<audio src="' + attributes.file + '" controls preload="none" ' + autoplay + 'height="' + attributes.height + '" width="' + attributes.width + '"></audio>';
            }
            $('#' + attributes.id).html(audioPlayer);
        }
    }
    else { //VIDEO
        if (html5 == null) { //Use Flash player
            var flashvars = {
                width: attributes.width,
                height: attributes.height,
                autostart: attributes.autostart,
                image: attributes.image,
                skin: skinUrl,
                controlbar: 'over'
            };
            if (attributes.streamingVideoFile != null) {
                flashvars["file"] = attributes.streamingVideoFile.file;
                if (selectedBitrate != null) {
                    $.each(attributes.bitrates, function (index, value) {
                        if (selectedBitrate != null && value.rate == selectedBitrate) {
                            flashvars["file"] = value.file;
                        }
                    });
                }
                flashvars["provider"] = "rtmp";
                flashvars["streamer"] = attributes.streamingVideoFile.streamer;
                //Handle Bitrate selection
                if (attributes.bitrates != null) {
                    var ddl = 'Video Quality <select id="ddl_' + attributes.bitrateid + '">';
                    $.each(attributes.bitrates, function (index, value) {
                        if (selectedBitrate != null && value.rate == selectedBitrate) {
                            ddl += '<option selected value="' + value.rate + '">' + vPlayer.getBitrateName(value.rate) + '</option>';
                        }
                        else if (selectedBitrate == null && value.rate == 700) {
                            ddl += '<option selected value="' + value.rate + '">' + vPlayer.getBitrateName(value.rate) + '</option>';
                        }
                        else {
                            ddl += '<option value="' + value.rate + '">' + vPlayer.getBitrateName(value.rate) + '</option>';
                        }
                    });
                    ddl += '</select>';
                    $("#" + attributes.bitrateid).html(ddl);
                    $('#ddl_' + attributes.bitrateid).change(function () {
                        attributes.autostart = 'True';
                        createPlayer55(attributes, $(this).val());
                    });
                }
            }
            else if (attributes.progressiveVideoFile != null) {
                flashvars["file"] = attributes.progressiveVideoFile;
                flashvars["provider"] = "video";
            }
            var params = { allowfullscreen: 'true',
                allowscriptaccess: 'always',
                menu: 'false',
                wmode: 'opaque'
            };
            var attr = { id: attributes.id, name: attributes.id };

            swfobject.embedSWF(flashUrl, attributes.id, attributes.width, attributes.height, "9.0.115", false, flashvars, params, attr,
                                function (e) { flashReference = (e.ref); });
        }
        else { //HTML5
            var autoplay = "";
            var poster = "";
            if (attributes.autostart == "True") {
                autoplay = "autoplay ";
            }
            if (!attributes.image != null) {
                poster = 'poster="' + attributes.image + '"';
            }

            var videoPlayer = '<video id="h5' + attributes.id + '" controls preload="none" ' + autoplay + 'height="' + attributes.height + '" width="' + attributes.width + '" ' + poster + '>';

            videoPlayer += '<source src="' + attributes.mp4400 + '" /></video>';
            $('#' + attributes.id).html(videoPlayer);

            var android = deviceAgent.match(androidUserAgents);
            if (android != null) {
                $('#h5' + attributes.id).live('click', function () {
                    this.play();
                    return false;
                });
            }
        }
    }
}
var videoPlayerStats = function () {
    this.videoPlayerStatsArr = [];
    this.videoPlayerPositionArr = [];
};
var vPlayerStats = new videoPlayerStats();

//Add listener for state changes after player is ready
function playerReady(obj) {
    var player = document.getElementById(obj.id);
    player.addModelListener("STATE", "stateChange");
    //player.addModelListener('TIME', 'videoTimeMonitor');
}

//Track the video play button
function stateChange(obj) {
    if (obj.newstate == "PLAYING") {
        var mediaLibraryID = obj.id;
        mediaLibraryID = mediaLibraryID.split('_')[1];
        //Track only first play click
        if (!isNaN(mediaLibraryID)) {
            var exists = false;
            for (var i = 0; i < vPlayerStats.videoPlayerStatsArr.length; i++) {
                if (vPlayerStats.videoPlayerStatsArr[i] == mediaLibraryID) {
                    exists = true;
                }
            }
            if (!exists) {
                $.get('/mediacenter/player/stattracking.aspx?m=' + mediaLibraryID + '&c=1');
                vPlayerStats.videoPlayerStatsArr[vPlayerStats.videoPlayerStatsArr.length] = mediaLibraryID;
                return;
            }
        }
    }
}

function videoTimeMonitor(obj) {
//    console.log(obj.position);
//    var exists = false;
//    for (var i = 0; i < vPlayerStats.videoPlayerPositionArr.length; i++) {
//        if (vPlayerStats.videoPlayerPositionArr[i].id = obj.id)
//            vPlayerStats.videoPlayerPositionArr[i] = obj.position;
//            return;
//        }
//    }
}
