﻿var hasFlash = !((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)));
hasFlash = !supports_h264_baseline_video();
$(document).ready(function () {
    //hasFlash = false;
    var currentVideo = getVideoToPlay() || 0;
    //Fetch XML Script
    clips = new Array;
    if (typeof (xmlLocation) != 'undefined') {
        $.ajax({
            url: xmlLocation,
            type: "GET",
            contentType: "application/xml; charset=utf-8",
            success: function (playlist, textStatus, XMLHttpRequest) {
                buildClipsList(playlist);
                if (hasFLV()) { hasFlash = true; }
                //Prepare flash backgrounds
                if (isFlash) {
                    hasFlash = true;
                    if (flashLocation != '') {
                        canvasbackground = 'url(' + flashLocation + ') no-repeat';
                    }
                    var canvas = { background: canvasbackground };
                    var screen = {
                        top: playerY,
                        left: playerX,
                        width: playerWidth,
                        height: playerHeight
                    };
                    var canvasWidth = templateWidth;
                    var canvasHeight = templateHeight;
                    var controlsPlugin = {
                            controls: {
                                top: (playerY + playerHeight - 14) + "px",  //Not sure why, but the controls are 14px lower than they should be.
                                left: playerX + "px",
                                width: playerWidth
                            }
                        };
                }
                //Prepare image templates
                else {
                    $("#playerposition").css({
                        width: playerWidth + 'px'
                    });
                    $("#player").css({
                        position: 'absolute',
                        top: playerY,
                        left: playerX
                    });

                    var canvas = { background: '#000000' };
                    var screen = null;
                    var canvasWidth = playerWidth;
                    var canvasHeight = playerHeight;
                    var controlsPlugin = null;
                }
                if (hasFlash) {
                    //Initialize the player
                    var player = flowplayer('player', {
                        src: 'flowplayer.commercial-3.1.5.swf',
                        wmode: 'transparent',
                        width: canvasWidth,
                        height: canvasHeight
                    },
                    {
                        key: '#@4f04ae8696d44d41f1d',
                        autoPlay: autoPlay,
                        clip: { autoPlay: autoPlay, scaling: 'fit' },
                        playlist: clips,
                        canvas: canvas,
                        screen: screen,
                        plugins: controlsPlugin
                    });

                }
                else {
                    $("#player").css({
                        backgroundColor: '#000000',
                        color: '#FFFFFFF',
                        fontSize: 'xx-large',
                        width: playerWidth + 'px',
                        height: playerHeight + 'px'
                    });
                    if (autoPlay) {
                        $("#player").append('<video id="htmlPlayer" autoplay controls width="' + playerWidth + '" height="' + playerHeight + '" poster="' + getThumb(clips[currentVideo]) + '" src="' + clips[currentVideo].url + '"/>');
                    } else {
                        $("#player").append('<video id="htmlPlayer" controls width="' + playerWidth + '" height="' + playerHeight + '" poster="' + getThumb(clips[currentVideo]) + '" src="' + clips[currentVideo].url + '"/>');
                    }
                    if (DetectAndroid()) {
                        $("#player video").click(function () {
                            this.play();
                        });
                    }
                    $("#htmlPlayer").bind('ended', function () {
                        if (currentVideo + 1 < clips.length) {
                            currentVideo++;
                            $("#player video").attr("src", clips[currentVideo].url);
                            $("#player video").attr("poster", getThumb(clips[currentVideo]));
                            $("#player video").attr("autoplay", true);
                            this.load();
                            this.play();
                        }
                        else {
                            currentVideo = 0;
                            $("#player video").attr("src", clips[currentVideo].url);
                            $("#player video").attr("poster", getThumb(clips[currentVideo]));
                            $("#player video").attr("autoplay", false);
                            this.load();
                        }
                    });

                }
                if (typeof (infoWidth) != "undefined") {
                    var border = null;
                    if ($.trim(infoBackColor) != "" && $.trim(infoBackColor) != "null") {
                        $("#infoBox").css({
                            borderStyle: 'solid',
                            borderSize: '1px',
                            borderColor: 'black',
                            backgroundColor: infoBackColor
                        });
                    }
                    else {
                        $("#infoBox").css({
                            "background-color": 'transparent'
                        });
                    }
                    if ($.trim(infoForeColor) != "" && $.trim(infoForeColor) != "null") {
                        $("#infoBox").css({
                            color: infoForeColor
                        });
                    }
                    $("#infoBox").css({
                        width: infoWidth + 'px',
                        height: infoHeight + 'px',
                        top: infoTop + 'px',
                        left: infoLeft + 'px'
                    });
                }
            },
            error: function (request, textStatus, errorThrown) {
                alert("Unable to display the video.  Please try again later.");
            }
        });
    }
});

function getThumb(clip) {
    return clip.url.replace(".mp4", "_thumb.jpg");
};
function buildClipsList(playlist) {
    //Gather playlist from XML file
    if (flashdelay > 0 && isFlash && autoPlay) {
        clips.push({ url: 'Images/1x1.png', duration: flashdelay, scaling: 'orig', autoplay: true });
    }
    var count = 0;
    $(playlist).find('video').each(function () {
        url = $(this).attr("url");
        if (url != "") {
            clips.push({ url: url, scaling: 'orig', autoPlay: (autoPlay | count > 0) });
            count++;
        }
    });
}

function hasFLV() {
    var ret = false;
    for(var i=0;i<clips.length;i++){
        if (clips[i].url.split('.').pop() == "flv") { ret = true; }
    }
    return ret;
}
function setVideoToPlay(playlistNum) {
    $.cookie("videoToPlay", playlistNum);
}

function getVideoToPlay(){
    return $.cookie("videoToPlay");
}


function getFlashVersion() {
    // ie
    try {
        try {
            // avoid fp6 minor version lookup issues
            // see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
            var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
            try { axo.AllowScriptAccess = 'always'; }
            catch (e) { return '6,0,0'; }
        } catch (e) { }
        return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
        // other browsers
    } catch (e) {
        try {
            if (navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
                return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
            }
        } catch (e) { }
    }
    return '0,0,0';
}

function supports_h264_baseline_video() {
    if (!supports_video()) { return false; }
    var v = document.createElement("video");
    return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
}
function supports_video() {
    return !!document.createElement('video').canPlayType;
}

var uagent = navigator.userAgent.toLowerCase();
var deviceAndroid = "android";

//**************************
// Detects if the current device is an Android OS-based device.
function DetectAndroid() {
    if (uagent.search(deviceAndroid) > -1)
        return true;
    else
        return false;
}