﻿/*----------------------------------------------------
Globals
*/
var videoID = "SKGCarKuIrI";
//var playlistID = "048A40FD5653D20A";
var playlistID = "048A40FD5653D20A";
var youtubeObj = {};
var currentVid = {};
var activePlaylist = {};
var totalInPlaylist = 0;

/*----------------------------------------------------
Load Playlists
*/

function getPlaylists() {
    $.post("/Categories/GetPlayList", {}, function (data) {
        loadPlaylists(data);
        $("#categorySelectWrapper .loader").remove();
    }, "json");
}

function loadPlaylists(data) {
    var list = $("#categorySelectOverlay ul");
    var isActive = 0;
    $.each(data, function (i, item) {
        var cat = "";
        if (item.IsActive) {
            activePlaylist = item;
            isActive = 1;
            setCategoryFields(activePlaylist);
            cat = $("<li><a class=\"active\" href=\"" + item.Url + "/\"><strong>" + item.Title + "</strong> " + item.Body + "</a></li>");
        } else {
            cat = $("<li><a href=\"" + item.Url + "/\"><strong>" + item.Title + "</strong> " + item.Body + "</a></li>");
        }

        list.append(cat);
    });

    if (!isActive) {
        activePlaylist = data[0];
        setCategoryFields(activePlaylist);
        $("#categorySelectOverlay ul li").eq(0).find("a").addClass("active");
    }

    $("#categorySelectOverlay ul li:odd").addClass("alt");
};

/*----------------------------------------------------
Set Category
*/

function setCategoryFields(data) {
    $("#videoOpportunity").html(data.Title).show();
    $("#videoSelectionTitle").html(data.Title).show();
    $("#videoSelectionDesc").html(data.Body).show();
}

/*----------------------------------------------------
Load Playlist Data
*/

function getPlaylistData() {
    //var loader = $("<div class='loader'>Loading...</div>");
    //$("#videoWrapper .inner").prepend(loader);
    //$("#categorySelectOverlay").prepend(loader);

    $.post("/Categories/GetPlaylistData", {}, function (data) {
        youtubeObj = eval(data);
        currentVid = youtubeObj[0];

        if ($.address.value().length < 2) {
            $.address.value(youtubeObj[0].VideoId);
        } else {
            $.address.value($.address.value());
        }
        totalInPlaylist = youtubeObj.length;
        listVideos();
        getPlaylists();
        $("#videoWrapper .inner .loader").remove();
        loadPlayer();
    }, "json");
}

/*----------------------------------------------------
Populate Video Thumbnails
*/
function listVideos() {

    $("#videoThumbs").html("");
    $.each(youtubeObj, function (i, item) {
        var build = "";
        build += "<a href=\"#/" + item.VideoId + "\" title=\"" + item.Title + "\"><img class=\"corner-all\" src=\"" + item.Thumbnail + "\" alt=\"" + item.Title + "\" width=\"120\" height=\"90\" /></a>";
        var vid = $(build);

        vid.data("info", { videoData: item });
        $("#videoThumbs").append(vid);
    });

    //$("#videoThumbs").jcarousel({
    //    auto: 5,
    //    scroll: 5
    //});

    setThumbnailActions();
    setThumbnailTip();
    setThumbnailPagination();
}

/*----------------------------------------------------
Set Thumbnail Actions
*/

function setThumbnailActions() {
    $("#videoThumbs a").livequery("click", function () {
        setPage($(this).data("info"));
        $.address.value($(this).data("info").videoData.VideoId);
        try {
            _gaq.push(['_trackPageview', '/videoId/' + $(this).data("info").videoData.VideoId]);
        } catch (err) { }
        clearThumbTip();
        setSocialVideoLinks($(this).data("info").videoData);
        return false;
    });
};

function setThumbnailTip() {
    var config = {};

    $.each($("#videoThumbs a"), function () {
        config = {
            over: function () { launchThumbTip($(this)) },
            timeout: 100,
            out: clearThumbTip
        };

        $(this).attr("title", "");
    });

    $("#videoThumbs a").hoverIntent(config);
};

function launchThumbTip(obj) {
    if (!obj.find("img").hasClass("active")) {
        var title = obj.data("info").videoData.Title;
        var desc = obj.data("info").videoData.Description;

        $("#playlistTip p").html("<strong>" + title + "</strong>" + $.truncate(desc, 85));

        $("#playlistTip")
        .css({
            top: -($("#playlistTip").height() + 30),
            left: obj.offset().left
        })

        $("#playlistTip").fadeIn(100);
    }
};

function clearThumbTip() {
    $("#playlistTip").hide();
};

/*----------------------------------------------------
Set Pagination
*/

function setPagination() {
    var total = youtubeObj.length;
    var maxVisible = 5;

    if (total > maxVisible) {
        buildPagination(total);
    }
};

function buildPagination(total) {
    var pag = $("#videoPages");
    var build = "";
    var pages = Math.ceil(total / 5);

    if (pages > 5) {
        var first = 0;

        for (i = 0; i < pages; i++) {
            if (first == 0) {
                build += "<a href=\"#\" class='active'>" + (i + 1) + "</a>";
            } else {
                build += "<a href=\"#\">" + (i + 1) + "</a>";
            }
            first = 1;
        }

        pag.append($(build));

        pag.show();
    }
};

$("#videoPages a").livequery("click", function () {
    var page = $(this).html();
    gotoPage(page);

    $("#videoPages a").removeClass("active");

    $(this).addClass("active");

    return false;
});

function gotoPage(num) {
    var thumbs = $("#videoThumbs");
    var w = 101;

    thumbs
    .stop()
    .animate({
        top: -(num * w - w)
    }, 200);
};

/*----------------------------------------------------
Set Thumbnail Pagination
*/
function setThumbnailPagination() {
    var list = $("#videoPages");
    if (totalInPlaylist > 5) {
        list.show();
    } else {
        list.hide();
    }
};

/*----------------------------------------------------
Set Page Content Per Video
*/
function setPage(vid) {
    var title = vid.videoData.Title;
    var desc = vid.videoData.Description;
    var id = vid.videoData.VideoId;
    if (ytplayer) {
        $("#videoTitle").html(title);
        $("#videoDescription").html(desc);
        ytplayer.loadVideoById(id);
        $("#videoThumbs a img").removeClass("active");
        $("#videoThumbs a img[alt='" + title + "']").addClass("active");
    }
};

/*----------------------------------------------------
Set Thumbnail Highlight
*/

/*----------------------------------------------------
Load Player On Load Callback
*/
function loadPlayer() {
    var params = { allowScriptAccess: "always", allowFullScreen: "true" };
    params.wmode = "transparent";
    var atts = { id: "ytPlayer" };

    var vidID = $.address.value().substring(1, $.address.value().length);

    swfobject.embedSWF("http://www.youtube.com/v/" + vidID + "&enablejsapi=1&playerapiid=player1&iv_load_policy=3&cc_load_policy=1&fs=1&showsearch=0&showinfo=0&color1=6E99D4&color2=6E99D4&rel=0", "videoDiv", "480", "295", "8", null, null, params, atts);

    try {
        _gaq.push(['_trackPageview', '/videoId/' + vidID]);
    } catch (err) { }

    var onSite = false;

    $.each(youtubeObj, function (i, item) {
        if (item.VideoId == vidID) {
            $("#videoTitle").html(item.Title);
            $("#videoDescription").html(item.Description);
            $("#videoThumbs a img[alt='" + item.Title + "']").addClass("active");
            onSite = true;
        }
    });

    if (!onSite) {
        var vidUrl = "http://gdata.youtube.com/feeds/api/videos?v=2&alt=jsonc&q=" + vidID;
        $.ajax({
            url: vidUrl,
            dataType: "json",
            success: function (data) {
                $("#videoTitle").html(data.data.items[0].title);
                $("#videoDescription").html(data.data.items[0].description);
            }
        });
    }
    setSocialVideoLinks(currentVid);
    setPagination();
    $(".socialLinks").show();
}

/*---------------------------------------------------------------*/
// Social Links
/*---------------------------------------------------------------*/

function setSocialVideoLinks(vid) {

    var vdata = vid;

    if (vid.videoData) {
        vdata = vid.videoData;
    }

    var title = vdata.Title;
    var desc = vdata.Description;
    var id = vdata.VideoID;
    var thumb = vdata.Thumbnail;

    document.title = $.g.siteTitle + " | " + title;
    $('meta[name=title]').attr("content", title);
    $('meta[name=description]').attr("content", desc);
    $('meta[rel=image_src]').attr("href", thumb);

    setVideoTwitter(title);
    setVideoFacebook(title);
};

function setVideoTwitter(title) {
    var turl = "http://twitter.com/share?url=" + escape(location.href) + "&text=" + title;
    $(".socialTwitter").attr("href", turl).popupWindow({
        height: 400,
        width: 600,
        centerBrowser: 1
    });
};

function setVideoFacebook(title) {
    var furl = "http://www.facebook.com/sharer.php?u=" + escape(location.href) + "&t=" + title;
    $(".socialFacebook").attr("href", furl).popupWindow({
        height: 400,
        width: 600,
        centerBrowser: 1
    });
};

/*----------------------------------------------------
Set Player ID
*/
function onYouTubePlayerReady(playerId) {
    ytplayer = document.getElementById("ytPlayer");
    ytplayer.addEventListener("onStateChange", "onPlayerChange");
}

getPlaylistData();

/*---------------------------------------------------------------*/
// On Doc Ready
/*---------------------------------------------------------------*/

$(document).ready(function () {
    $("#categorySelectWrapper").getOverlay($("#categorySelectOverlay"));
    $("#categorySelect").bind("click", function () { return false; });
});
