﻿var PStream = window.PStream || {};

var $j = jQuery.noConflict(); // use $j instead of $ to avoid other library conflicts

$j(document).ready(function(){
    PStream.Common().ready();
});

PStream.Common = function() {

    // ----- Private Methods -----
    function _setupPreviewStream() {
        var wrapers = $j("div.previewVideoWrapper").each(function() {
            var playerpage = $j(this).find("input[name='playerpage']").val();
            var vcode = $j(this).find("input[name='vcode']").val();
            $j(this).click(function() {
                window.location = playerpage + "?vcode=" + vcode;
            });
        });
    } // _setupPreviewStream

    function _setupPosterStream() {
        if ($j("#posterList li").length > 0) {

            $j($j("#posterList li").get(0)).addClass("current");
            $j($j("#thumbnailList li").get(0)).addClass("selected");

            $j("#thumbnailList li").click(_onStreamIconClick);

            $j("div#leftArrow").click(_onLeftArrowClick);
            $j("div#leftArrow").mouseover(function() {
                $j(this).addClass("mouseOver");
            }).mouseout(function() {
                $j(this).removeClass("mouseOver");
            });

            $j("div#rightArrow").click(_onRightArrowClick);
            $j("div#rightArrow").mouseover(function() {
                $j(this).addClass("mouseOver");
            }).mouseout(function() {
                $j(this).removeClass("mouseOver");
            });
        }
    } // _setupPosterStream

    function _onStreamIconClick() {
        if (!$j(this).hasClass("selected")) {
            var selectedIndex = $j(this).find("input").val();
            if (selectedIndex >= 0) {
                $j("#posterList li").removeClass("current");
                $j("#thumbnailList li").removeClass("selected");
                $j($j("#posterList li").get(selectedIndex)).addClass("current");
                $j($j("#thumbnailList li").get(selectedIndex)).addClass("selected");
            }
        }
    } // _onStreamIconClick

    function _onLeftArrowClick() {
        var currentIndex = $j("#posterList li.current input").val();
        var totalCount = $j("#posterList li").length;

        $j("#posterList li").removeClass("current");
        $j("#thumbnailList li").removeClass("selected");

        var newIndex = currentIndex * 1 - 1;
        if (newIndex < 0)
            newIndex = totalCount - 1;

        $j($j("#posterList li").get(newIndex)).addClass("current");
        $j($j("#thumbnailList li").get(newIndex)).addClass("selected");

    } // _onPosterDivLeftArrow_Click

    function _onRightArrowClick() {
        var currentIndex = $j("#posterList li.current input").val();
        var totalCount = $j("#posterList li").length;

        $j("#posterList li").removeClass("current");
        $j("#thumbnailList li").removeClass("selected");

        var newIndex = currentIndex * 1 + 1;
        if (newIndex >= totalCount)
            newIndex = 0;

        $j($j("#posterList li").get(newIndex)).addClass("current");
        $j($j("#thumbnailList li").get(newIndex)).addClass("selected");

    } // _onPosterDivRightArrowClick

    function _showDescription(eventObject) {
        var description = $j(eventObject).find("input.tgtDescription").get(0);

        $j(eventObject).parents("div.featuredVideoRowMid").find("div.featuredVideoRowHeader").each(function() {
            $j(this).find("h2").css("display", "none");
            $j(this).find("div.fvDescription").css("display", "block");
            $j(this).find("div.fvDescription").text($j(description).val());
        });
    } //_showDescription

    function _hideDescription(eventObject) {
        $j(eventObject).parents("div.featuredVideoRowMid").find("div.featuredVideoRowHeader").each(function() {
            $j(this).find("h2").css("display", "block");
            $j(this).find("div.fvDescription").css("display", "none");
            $j(this).find("div.fvDescription").text("");
        });
    } //_hideDescription

    function _setupFeaturedVideoListMouseOver() {
        $j("ul.featuredVideoList li")
            .mouseover(
            function() {
                $j(this).addClass("selected");
                $j(this).find("embed").each(function() { this.setVolume(1) });
                _showDescription(this);
            }).mouseout(
            function() {
                $j(this).removeClass("selected");
                $j(this).find("embed").each(function() { this.setVolume(0) });
                _hideDescription(this);
            }
            );
    } //_setupFeaturedVideoListMouseOver

    // ----- Public Methods -----
    var ready = function() {

        _setupPreviewStream();

        _setupPosterStream();

        _setupFeaturedVideoListMouseOver();

        $j(document).pngFix();

        JT_init();
    } // ready

    // ----- Public Interface ----- 
    return {
        ready: ready
} // return
    }

function receiveOoyalaEvent(playerId, eventName, e) {
    switch (eventName) {
        case 'loadComplete':
            if ($j("#" + playerId).get(0).setVolume)
                $j("#" + playerId).get(0).setVolume(0);
            return;
    }
}
