﻿//General ////////////////////////////////////////////////////////////////
function trim(s){
    return s.replace(/^\s+|\s+$/g, '');
}
//Current program ////////////////////////////////////////////////////////

$(function() {
    var episodeIDVisible = 'groupEpisodes' + $(".episodeSelect option:selected").val();
    var selectorVisible = "div[id='" + episodeIDVisible + "']";
    $(selectorVisible).fadeIn('slow');
    $(".episodeSelect").change(function() {
        $(".episodeGroup div[id^='groupEpisodes']:visible").fadeOut(0.3);
        var episodeID = 'groupEpisodes' + $(".episodeSelect option:selected").val();
        var selector = "div[id='" + episodeID + "']";
        $(selector).fadeIn(1000);
    });
});
//////////////////////////////////////////////////////////////////////////

//Program thumbs /////////////////////////////////////////////////////////
$(function() {
    //Fix IE flicker problem
    if (jQuery.browser.msie) {
        try {
            document.execCommand("BackgroundImageCache", false, true);
        } catch (err) { }
    }

    $('.programThumb').mouseover(function() {
        $(this).children('.programDetails').stop().animate({ 'top': '-42' }, 'fast');
    });

    $('.programThumb').mouseout(function() {
        $(this).children('.programDetails').stop().animate({ 'top': '42' }, 'slow');
    });

});

//Program thumbs /////////////////////////////////////////////////////////

// Favourite and sharing /////////////////////////////////////////////////
var favUpdateURL = "/channel/UpdateFavourite.aspx";
var shareUpdateURL = "/channel/UpdateFriendShare.aspx";
$(function() {
    var favs_click = function() {
        var t = (this);
        $(t).unbind();
        var v = $(this).attr('vars');
        $.post(favUpdateURL, { vars: v }, function(data) {
            data = data.replace(/^\s+|\s+$/g, '');
            if (data != '') {
                alert(data);
                $('.addToFavs').click(favs_click);
            }
            else {
                $(t).hide();
            }
        });
    }

    $('.addToFavs').click(favs_click);   

    $("#btnSubmitFriendShare").click(function() {        
        var data = $("#txtFriendEMail").val();
        data = trim(data);
        if (data == "" || validateEmail(data) == false) {
            alert("Please enter your friend's valid e-mail address.");
            $("#txtFriendEMail").focus();
            return;
        }
        SaveFriendShare();
    });
});

function SaveFriendShare() {
    var v = $('#btnSubmitFriendShare').attr('vars');
    var femail = $("#txtFriendEMail").val();
    $("#txtFriendEMail").attr('disabled', 'disabled');
    $("#btnSubmitFriendShare").attr('disabled', 'disabled');
    $.post(shareUpdateURL, { vars: v, FriendName: 'none', FriendEMail: femail }, function(data) {
    $("#txtFriendEMail").removeAttr('disabled');
    $("#btnSubmitFriendShare").removeAttr('disabled');
        data = trim(data);
        if (data != '') {
            alert(data);
        }
        else {
            $("#txtFriendEMail").val('').focus();
        }
    });
}

function validateEmail(email) {
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email)) {
        return false;
    }
    else return true;
}

// Favourite and sharing /////////////////////////////////////////////////

//Rating /////////////////////////////////////////////////////////////////
var ratingStarWidth = 20;
var rateUpdateURL = "/channel/UpdateEpisodeRating.aspx";
var rateNumberURL = "/channel/GetEpisodeRatingCount.aspx";

var rating_mousemove = function(e) {
    var rate = Math.round((e.pageX - this.offsetLeft + 1) / ratingStarWidth);
    $(this).attr('class', 'rating_' + rate);
};

var rating_mouseout = function(e) {
    $(this).attr('class', 'rating_0');
};

var rating_click = function (e) {
    $(this).unbind();
    var therate = Math.round((e.pageX - this.offsetLeft + 1) / ratingStarWidth);
    var v = $(this).attr("vars");
    $(this).attr('class', 'rating_' + therate);
    var t = $(this);
    $.post(rateUpdateURL, { rating: therate, vars: v }, function (data) {
        data = trim(data);
        if (data != '') {
            $(t).attr('class', 'rating_0');
            alert(data);
            bindRatingEvents(t);
        }
        else {
            $('.numberOfRatings').load(rateNumberURL, { vars: v });
            updateAverageRating();
        }
    });
};

$(function() {
    var t = $('.rater');
    bindRatingEvents(t);
});

function bindRatingEvents(t) {
    $(t).mousemove(rating_mousemove);
    $(t).mouseout(rating_mouseout);
    $(t).click(rating_click);
}

//Rating /////////////////////////////////////////////////////////////////

//Episode comment ////////////////////////////////////////////////////////
var commentEpisodeUpdateURL = "/channel/UpdateEpisodeComment.aspx";

$(function() {
    $('#txtEpisodeComment').keydown(function(event) {
        var count = trim($(this).val()).length;
        if (count > 0)
            $('#btnSubmitComment').removeAttr('disabled');
        else
            $('#btnSubmitComment').attr('disabled', 'disabled');
    });

    $('#txtEpisodeComment').keyup(function(event) {
        var count = trim($(this).val()).length;
        if (count > 0)
            $('#btnSubmitComment').removeAttr('disabled');
        else
            $('#btnSubmitComment').attr('disabled', 'disabled');
    });

    $('#btnSubmitComment').click(function() {
        $(this).attr('disabled', 'disabled');
        $('#txtEpisodeComment').attr('disabled', 'disabled');
        var v = $(this).attr('vars');

        var cmnt = trim($('#txtEpisodeComment').val());
        $.post(commentEpisodeUpdateURL, { comment: cmnt, vars: v }, function(data) {
            $('#txtEpisodeComment').removeAttr('disabled');
            data = trim(data);
            if (data != '') {
                alert(data);
            }
            else {
                $('#txtEpisodeComment').val('');
                var url = '/channel/EpisodeCommentsHistory.aspx?t=' + new Date().getTime();
                $('#txtEpisodeCommentsHistory').load(url, { vars: v }, function(resp) {
                    
                });

            }
        });

    });
});
//Episode comment ////////////////////////////////////////////////////////

//Average rating /////////////////////////////////////////////////////////
$(function() {
    updateAverageRating();
});

function updateAverageRating() {
    var avgRatingURL = "/channel/GetEpisodeAvgRating.aspx";
    $('.episodeAVGRatingContainer').load(avgRatingURL);
}
//Average rating /////////////////////////////////////////////////////////

//Channel Search/////////////////////////////////////////////////////////
$(function() {
    $("#btnSearch").click(function() {
        window.location = "ChannelSearchResult.aspx?term=" + trim($("#txtChannelSearch").val());
    });

    $("#txtChannelSearch").keyup(function() {
        if (trim($(this).val()) != "")
            $("#btnSearch").removeAttr("disabled");
        else
            $("#btnSearch").attr("disabled", true);
    });
});

/////////////////////////////////////////////////////////////////////////

//Scolling programs
/////////////////////////////////
$(function() {
    setupCarousel();
});

function setupCarousel() {
    var showcount = 3.5;
    if ($(".showMorePrograms").size() > 0) showcount = 5;
    $(".carousel").jCarouselLite({
        btnNext: ".carouselnext",
        btnPrev: ".carouselprev",
        visible: showcount
    });
}
/////////////////////////////////

//Setup RSA verification
////////////////////////////////////////////////////////
$(function() {
    if ($("#rsaHiddenConfirm").size() == 0) {
        $("#rsaConfirm").jqm({ modal: true });
        $("#rsaConfirmCheck").click(function() {
            if ($(this).is(":checked"))
                $("input[id*=btnRSASubmit]").attr("disabled",false);
            else
                $("input[id*=btnRSASubmit]").attr("disabled", true);
        });
        $("a[href*=wsop]").click(function() {
            $("input[hdnURL=1]").val($(this).attr("href"));
            $("#rsaConfirm").jqmShow();
            return false;
        });
        $("#rsaCancel").click(function() {
            $("#rsaConfirm").jqmHide();
        });
    }
});
