var vidPlayer = null;
var unreadyPlayer = null;
var videos = ['W8PRzL7Aq6E', '6pEPhr6iZfU', '9MUY9fqilsw', 'jQIA31N-jqc'];
var currentVideo = -1;
var initPlayer = null;

function vidPlayerReset() {
    vidPlayer = null;
    unreadyPlayer = null;
    currentVideo = -1;
    initPlayer = function () {
        //console.log("initPlayer");
        playVideo();
    }
}
vidPlayerReset();

function pStateChange(newState) {
    //Possible values are unstarted (-1), ended (0), playing (1), paused (2), buffering (3), video cued (5).
    //When the SWF is first loaded it will broadcast an unstarted (-1) event.
    //When the video is cued and ready to play it will broadcast a video cued event (5).

    //console.log("Player's new state = " + newState);

    switch (newState) {
        case -1: //ended
            //console.log(initPlayer);
            if (null !== initPlayer) {
                initPlayer();
            }
            break;
        case 0: //ended
            if (null !== vidPlayer) {
                //console.log("stopVideo");
                vidPlayer.pauseVideo();
                $(".video-container").css("top", -9999);
            }
            break;
    }
}

function playVideo() {
    if (null !== vidPlayer) {
        if (-1 !== currentVideo) {
            initPlayer = null;
            vidPlayer.AllowFullScreen = "true";
            vidPlayer.loadVideoById(videos[currentVideo]);
        }
    }
}
function myStateChange(newState) {
    pStateChange(newState)
}

function onYouTubePlayerReady(playerId) {
//console.log("Player '" + playerId + "' is ready.");
    vidPlayer = document.getElementById("my" + playerId);
    vidPlayer.addEventListener("onStateChange", "myStateChange", false);
}

// Load YouTube Frame API
(function () { //Closure, to not leak to the scope
    var s = document.createElement("script");
    s.src = "http://www.youtube.com/player_api"; /* Load Player API*/
    var before = document.getElementsByTagName("script")[0];
    before.parentNode.insertBefore(s, before);
})();


/* */

function getFrameID(id) {
    var elem = document.getElementById(id);
    if (elem) {
        if (/^iframe$/i.test(elem.tagName)) return id; //Frame, OK
        // else: Look for frame
        var elems = elem.getElementsByTagName("iframe");
        if (!elems.length) return null; //No iframe found, FAILURE
        for (var i = 0; i < elems.length; i++) {
            if (/^https?:\/\/(?:www\.)?youtube(?:-nocookie)?\.com(\/|$)/i.test(elems[i].src)) break;
        }
        elem = elems[i]; //The only, or the best iFrame
        if (elem.id) return elem.id; //Existing ID, return it
        // else: Create a new ID
        do { //Keep postfixing `-frame` until the ID is unique
            id += "-frame";
        } while (document.getElementById(id));
        elem.id = id;
        return id;
    }
    // If no element, return null.
    return null;
}

// Define YT_ready function.
var YT_ready = (function () {
    var onReady_funcs = [], api_isReady = false;
    /* @param func function     Function to execute on ready
    * @param func Boolean      If true, all qeued functions are executed
    * @param b_before Boolean  If true, the func will added to the first
    position in the queue*/
    return function (func, b_before) {
        if (func === true) {
            api_isReady = true;
            for (var i = 0; i < onReady_funcs.length; i++) {
                // Removes the first func from the array, and execute func
                onReady_funcs.shift()();
            }
        }
        else if (typeof func == "function") {
            if (api_isReady) func();
            else onReady_funcs[b_before ? "unshift" : "push"](func);
        }
    }
})();

// This function will be called when the API is fully loaded
function onYouTubePlayerAPIReady() { YT_ready(true) }

// Load YouTube Frame API
(function () { //Closure, to not leak to the scope
    var s = document.createElement("script");
    s.src = "http://www.youtube.com/player_api"; /* Load Player API*/
    var before = document.getElementsByTagName("script")[0];
    before.parentNode.insertBefore(s, before);
})();

//var player;

YT_ready(function () {
    var frameID = getFrameID("myfp1");
    if (frameID) { //If the frame exists
        unreadyPlayer = new YT.Player(frameID, {
            events: {
                "onStateChange": function (event) {
                    myStateChange(event.data);
                },
                "onReady": function () {
                    vidPlayer = unreadyPlayer;
                    myStateChange(-1);
                }
            }
        });
    }
});
		


