/*
 * Init and setup FlowPlayer.  This example file shows 'advanced' features like
 * playlists and configuring with JavaScript. FlowPlayer.html is a simpler example.
 *
 * NOTE: This file has been tested to work on FireFox only. It has some problems on IE.
 */

var flowPlayer1;
function init() {
    if (document.getElementById) {
        flowPlayer1 = document.getElementById("FlowPlayer");
    //flowPlayer1.playClip(clips[1]);
    }
}

// wait for the page to fully load before initializing
window.onload = init;

function setInitialConfig() {
    fpConf.playList = clips;
    fpConf.autoPlay = false;
    fpConf.autoBuffering = false;
    flowPlayer1.setConfig(fpConf);
}

var clickToPlayUrl = '';
var vdo1 = 'vdo/djuice_kkb.flv';
var vdo2 = 'vdo/hbl_mr_been.flv';
var vdo3 = 'vdo/hbl_shahid.flv';
var vdo4 = 'vdo/hbl_wc11.flv';
var vdo5 = 'vdo/hbl_younus.flv';
var vdo6 = 'vdo/mobilink_jazz_sj_wc11_.flv';
var vdo7 = 'vdo/omore_ice_cream.flv';
var vdo8 = 'vdo/pepsi_wc11.flv';
var vdo9 = 'vdo/surf_excel_1min_wash.flv';
var vdo10 = 'vdo/tuc_biscuit.flv';
var vdo11 = 'vdo/warid_glow.flv';
var vdo12 = 'vdo/warid_m9.flv';
var clips = [
{
    overlayId: 'play',
    name: 'ClickToPlay',
    url: clickToPlayUrl
},
{
    name: 'World Cup 2011',
    url: vdo1
},
{
    name: 'World Cup 2011',
    url: vdo2
},
{
    name: 'World Cup 2011',
    url: vdo3
},
{
    name: 'World Cup 2011',
    url: vdo4
},
{
    name: 'World Cup 2011',
    url: vdo5
},
{
    name: 'World Cup 2011',
    url: vdo6
},
{
    name: 'World Cup 2011',
    url: vdo7
},
{
    name: 'World Cup 2011',
    url: vdo8
},
{
    name: 'World Cup 2011',
    url: vdo9
},
{
    name: 'World Cup 2011',
    url: vdo10
},
{
    name: 'World Cup 2011',
    url: vdo11
},
{
    name: 'World Cup 2011',
    url: vdo12
}
];

var fpConf = {
    showPlayList: false,
    bufferLength: 20,
    loop: false,
    hideControls: false,
    showPlayListButtons: true,
    progressBarColor1: 0xFF0000,
    progressBarColor2: 0xFF0000,
    bufferBarColor1: 0x00FF00,
    bufferBarColor2: 0x00FF00,
    progressBarBorderColor1: 0xAAAAAA,
    progressBarBorderColor2: 0xAAAAAA
}
/*
 * JavaScript event hanlders:
 */
function clipSelected(clipIndex) {
    flowPlayer1.ToClip(clipIndex);
}

function play() {
    flowPlayer1.DoPlay();
    updateIsPlaying();
}

function pause() {
    flowPlayer1.Pause();
    updateIsPlaying();
}

function stop() {
    flowPlayer1.DoStop();
    updateIsPlaying();
}

function updateIsPlaying() {
    var field = document.getElementById("playing");
    field.value = "Playing: " + flowPlayer1.getIsPlaying() + ", paused : " + flowPlayer1.getIsPaused();
}

function seek() {
    var seekTimeField = document.getElementById("seekTime");
    flowPlayer1.Seek(seekTimeField.value);
}

function getTime() {
    var time = flowPlayer1.getTime();
    var timeField = document.getElementById("time");
    timeField.value = time;
}

function getDuration() {
    var value = flowPlayer1.getDuration();
    var field = document.getElementById("duration");
    field.value = value;
}

function getPercentLoaded() {
    var value = flowPlayer1.getPercentLoaded();
    var field = document.getElementById("loaded");
    field.value = value;
}

function replaceConfig() {
    // replace the playlist in our configuration
    fpConf.playList = [
    {
        name: 'Honda accord',
        url: 'honda_accord.flv'
    } ];
    fpConf.autoBuffering = true;
    fpConf.autoPlay = true;
    flowPlayer1.setConfig(fpConf);
}

function setCuePoints() {
    flowPlayer1.addCuePoints([ {
        time: 2,
        name: "cue1",
        parameters: {
            foo: 1,
            bar: "foobar"
        }
    }, {
        time: 5,
        name: "cue2",
        parameters: {
            foo: 2,
            bar: "foobar2"
        }
    } ]);
}

/*
 * Flash callback handlers. The player calls these on specific events:
 */

function onClipDone(clip) {
    addClipEvent("clip done : " + describeClip(clip));
}

function onClipChanged(clip) {
    addClipEvent("changed to clip : " + clip.name);
}

function onLoadBegin(clip) {
//addClipEvent("started loading : " + clip.name);
}

function onStartBuffering(clip) {
    addClipEvent("started buffering : " + clip.name);
}

function onBufferFull(clip) {
    addClipEvent("buffer full for : " + clip.name);
}

function onBufferFlush(clip) {
    addClipEvent("buffer flush for : " + clip.name);
}

function onMetaData(obj) {
    addClipEvent("metadata received : duration " + obj.duration + ", video data rate " + obj.videodatarate + ", audio data rate " + obj.audiodatarate + ", creation date " + obj.creationdate);
}

function onStreamNotFound(clip) {
    addClipEvent("stream not found: " + describeClip(clip));
}

function onPlay(clip) {
    addClipEvent("play: " + clip.name);
}

function onStop(clip) {
    addClipEvent("stop: " + clip.name);
}

function onPause(clip) {
    addClipEvent("paused: " + clip.name);
}

function onResume(clip) {
    addClipEvent("resumed: " + clip.name);
}

function onCuePoint(cuePoint) {
    addClipEvent("cue point received, time: " + cuePoint.time + ", type '" + cuePoint.type + "', name: '" + cuePoint.name + "'" + "', thumb: " + cuePoint.thumb + ", parameters: " + cuePoint.parameters);
}

/*
 * Helpers:
 */

function addClipEvent(desc) {
    var events = document.getElementById("events");
    events.appendChild(document.createTextNode(desc));
    events.appendChild(document.createElement("br"));
}

function describeClip(clip) {
    return "Name: " + clip.name + ", baseUrl: " + clip.baseUrl + ", fileName: " + clip.fileName +
    ", start: " + clip.start + ", end: " + clip.end + ", protected: " + clip.protected +
    ", linkUrl: " + clip.linkUrl + ", linkWindow: " + clip.linkWindow + ", controlEnabled: " +
    clip.controlEnabled;
}

