﻿
var fb_app_id;
var isFBCAuthenticated;    //comment page needs it to be global
var facebookDisabled = false; //can be reset via server generated code
var dvrButtonDivId = "";
//need facebook to be a root domain, i.e. tvguide.com
lowerDomain();
function lowerDomain() {
    var domParts = document.domain.split('.');
    if (domParts.length > 1)
        document.domain = domParts[domParts.length - 2] + '.' + domParts[domParts.length - 1];
}

function HandleCommentLoginArea() {
    if (typeof (toggleCommentLoginArea) == 'function') {
        toggleCommentLoginArea();
    }
}

function HandleCheckinSharePopupClose() {
    if (typeof (shareCheckIn) == 'function') {
        shareCheckIn(0, 0);
    }
}

function HandleWatchlistPopupClose() { // LOGGED IN THROUGH FACEBOOK FOR WATCHLIST
    if (typeof (dvrLogin) != "undefined") {
            $(document).unbind("click.facebox");
            $(document).trigger('close.facebox');
   }
}

function RefreshJSVarsAfterLogin() {
    if (isLoggedInX == true) {
        $.ajax({
            url: "/FBC/HTTPHandler/RefreshJSVarsAfterLogin.ashx",
            type: "GET",
            cache: false,
            //error: function () { alert("An error occurred during login"); },
            error: function() { },
            success: function(results) {
                eval(results);
                if (typeof (dvrLogin) != "undefined") {
                    //CALL THE DVR ADD Function HERE
                    if (dvrLogin >0) {
                        if (isFBCAuthenticated)
                            HandleWatchlistPopupClose();

                        if (dvrLogin == 1)
                            AddToDVR(dvrAddTvobjectId, dvrAddTvobjectName);
                        else if (dvrLogin == 2)
                            getFaveStatus2(dvrAddTvobjectId, dvrAddTvobjectName);
                        else if (dvrLogin == 3)
                            getDVRButtonStatus(dvrAddTvobjectId, dvrAddTvobjectName, dvrButtonDivId);
                        else if (dvrLogin == 4)
                            getListingsDVRButtonStatus(dvrAddTvobjectId, dvrAddTvobjectName, dvrButtonDivId);
                        else if (dvrLogin == 5)
                            getSpecialsDVRButtonStatus(dvrAddTvobjectId, dvrAddTvobjectName, dvrButtonDivId);  
                        dvrLogin = 0;
                    }
                }
                if (typeof (hlAjaxCalls) != "undefined") {
                    if (hlAjaxCalls != 'undefined') {
                        loadHPHotListContainers();
                    }
                }
            }
        });

    }
}


function toggleLogin(wucIndex, displayType) {
    switch (displayType) {
        case 0: // Login Needed
            $("#mls_login_" + wucIndex).show();
            $("#mls_logout_" + wucIndex).hide();
            $("#mls_reg_" + wucIndex).show();
            $("#mls_profile_" + wucIndex).hide();
            break;

        case 1: // Logout Needed
            $("#mls_login_" + wucIndex).hide();
            $("#mls_logout_" + wucIndex).show();
            $("#mls_reg_" + wucIndex).hide();
            $("#mls_profile_" + wucIndex).show();
            break;

        default:    // nothing needed
            $("#mls_login_" + wucIndex).hide();
            $("#mls_logout_" + wucIndex).hide();
            $("#mls_reg_" + wucIndex).hide();
            $("#mls_profile_" + wucIndex).hide();
            break;
    }
}

function updateControls(wucIndex, results) {
    var fbc_button = document.getElementById("fbclogin_multi_login_" + wucIndex);
    var multi_login_username = document.getElementById("multi_login_username_" + wucIndex);
    var multi_login_info = document.getElementById("multi_login_info_" + wucIndex); ;
    //var multi_login_status = document.getElementById("multi_login_status_" + wucIndex);
    //var LOGIN_HTML = "<a href='/FAP/LoginDialog.htm' rel='facebox'>Login</a> <a href='/FAP/RegistrationDialog.aspx' rel='facebox'>New User Signup</a>";
    //var LOGOUT_HTML = "<a href='javascript:loginOut(1);'>Logout</a> <a href='javascript:update();'>My Settings</a>";
    var FBC_BUTTON_HEADING = "<div class='connect-fb-text'>Connecting with Facebook allows you to bring your Facebook friends and favorites to TVGuide.com and easily share your TVGuide activity on Facebook! You can also link your Facebook and TVGuide.com accounts.</div>";
    if (results == "") {
        switch (wucIndex) {
            case 0:
                toggleLogin(wucIndex, 0);
                $(multi_login_info).hide();
                break;
            case 1:
                toggleLogin(wucIndex, 2);
                $(multi_login_info).html(FBC_BUTTON_HEADING);
                break;
            case 2:
                toggleLogin(wucIndex, 2);
                $(multi_login_info).hide();
                break;
            default:
        }
        $(multi_login_username).hide();
        if (!facebookDisabled) {
            //$(".ghead-userlinks-welcome").hide();
            fbc_button.style.display = "inline";
        }
        else {
            fbc_button.style.display = "none";
        }
    }
    else {
        var parts = results.split("|");
        switch (parts[0]) {
            case "0":    //anonymous
                break; //should already be dealt with above
            case "1":    //FBC authenticated but it is first time and linked to implicitly created MAP account: show facebook blue background color
                // get and set the login cookie
                tvgDisplayName = parts[1];
                tvgUserName = parts[2];
                isLoggedInX = true;

                //setCookie("MAPCookie", parts[3], 0);    
                switch (wucIndex) {
                    case 0:
                        toggleLogin(wucIndex, 0);
                        $(multi_login_username).html("Welcome,&nbsp;" + parts[1]);
                        $(multi_login_username).attr("class", "ghead-userlinks-welcome-facebook");
                        $(multi_login_username).show();
                        //$(".ghead-userlinks-welcome").show();
                        break;
                    case 1:
                    case 2:
                        toggleLogin(wucIndex, 2);
                        $(multi_login_username).hide();
                        break;
                    default:
                }
                fbc_button.style.display = "none";
                $(multi_login_info).hide();

                HandleCommentLoginArea();

                //suggest linking, but only once if multiple instances exist
                if (wucIndex == 0)
                    showFacebox(WWWBaseUrl + "/FBC/LinkAccountDialog.aspx");
                break;

            case "2":    //FBC authenticated and MAP-linked: show facebook blue background color
                tvgDisplayName = parts[1];
                tvgUserName = parts[2];
                isLoggedInX = true;

                // get and set the login cookie
                //setCookie("MAPCookie", parts[3], 0);

                switch (wucIndex) {
                    case 0:
                        toggleLogin(wucIndex, 1);
                        $(multi_login_username).html("Welcome,&nbsp;" + parts[1]);
                        $(multi_login_username).attr("class", "ghead-userlinks-welcome-facebook");
                        $(multi_login_username).show();
                        //$(".ghead-userlinks-welcome").show();
                        break;
                    case 1:
                    case 2:
                        toggleLogin(wucIndex, 2);
                        $(multi_login_username).hide();
                        break;
                    default:
                }
                fbc_button.style.display = "none";
                $(multi_login_info).hide();


                HandleCommentLoginArea();

                break;

            case "3":    //Only MAP authenticated and linked: show TVG red background color
                switch (wucIndex) {
                    case 0:
                        toggleLogin(wucIndex, 1);
                        $(multi_login_username).html("Welcome,&nbsp;" + parts[1]);
                        $(multi_login_username).attr("class", "ghead-userlinks-welcome-map");
                        $(multi_login_username).show().css("display", "inline");
                        //$(".ghead-userlinks-welcome").show();
                        fbc_button.style.display = "none";
                        break;
                    case 1:
                    case 2:
                        toggleLogin(wucIndex, 2);
                        $(multi_login_username).hide();
                        if (!facebookDisabled) {
                            fbc_button.style.display = "inline";
                            //$(".ghead-userlinks-welcome").hide();
                        }
                        else {
                            fbc_button.style.display = "none";
                        }
                        break;
                    default:
                }
                $(multi_login_info).hide();
                HandleCommentLoginArea();
                break;
            case "4":     //Only MAP authenticated but NOT linked: show TVG red background color
                switch (wucIndex) {
                    case 0:
                        toggleLogin(wucIndex, 1);
                        $(multi_login_username).html("Welcome,&nbsp;" + parts[1]);
                        $(multi_login_username).attr("class", "ghead-userlinks-welcome-map");
                        $(multi_login_username).show().css("display", "inline");
                        //$(".ghead-userlinks-welcome").show();
                        $(multi_login_info).hide();
                        HandleCommentLoginArea();
                        fbc_button.style.display = "none";
                        break;
                    case 1:
                        multi_login_info.innerHTML = FBC_BUTTON_HEADING; ;
                        $(multi_login_username).hide();
                        if (!facebookDisabled) {
                            fbc_button.style.display = "inline";
                            //$(".ghead-userlinks-welcome").hide();
                        }
                        else {
                            fbc_button.style.display = "none";
                        }
                        break;
                    case 2:
                        toggleLogin(wucIndex, 2);
                        $(multi_login_username).hide();
                        $(multi_login_info).hide();
                        if (!facebookDisabled) {
                            fbc_button.style.display = "inline";
                            //$(".ghead-userlinks-welcome").hide();
                        }
                        else {
                            fbc_button.style.display = "none";
                        }
                        break;
                    default:
                }
                break;
            default:
        }

    }
}

//wucIndex: 0 - header, 1 - comment page, 2 - myTVG pages
function getAuthentication() {
    if (isFBCAuthenticated == 0 && !isLoggedInX) {
        updateControls(0, "");
        if (document.getElementById("fbclogin_multi_login_1"))
            updateControls(1, "");
        if (document.getElementById("fbclogin_multi_login_2"))
            updateControls(2, "");
    }
    else {
        $.ajax({
            url: "/FBC/HTTPHandler/HNDMultiLogin.ashx?type=1&fbc=" + isFBCAuthenticated,
            type: "GET",
            cache: false,
            error: function() { /*alert("An error occurred during login");*/ },
            success: function(results) {
                updateControls(0, results);
                if (document.getElementById("fbclogin_multi_login_1"))
                    updateControls(1, results);

                if (document.getElementById("fbclogin_multi_login_2"))
                    updateControls(2, results);

                if (document.getElementById("fbclogin_multi_login_3"))
                    HandleCheckinSharePopupClose(); // Used only for checkin and we do not update any controls in popup

                if (document.getElementById("fbclogin_multi_login_5")) // Used only for watchlist and we do not update any controls in popup
                {
                    RefreshJSVarsAfterLogin();
                }

            }
        });
    }
}

//MAP login and FBC/MAP logout
function loginOut(inOut) {
    switch (inOut) {
        case 0:  //log into MAP only, FBC login is via FBC button
            document.location = WWWBaseUrl + "/FAP/Login.aspx?ReturnUrl=" + escape(document.location.href);
            break;
        case 1:  //logout facebook, then MAP
            if (isFBCAuthenticated == 1) {
                FB.logout(
                function() {
                    document.location = WWWBaseUrl + '/FAP/MAPAction.aspx?returnUrl=' + document.location.href;
                });
            }
            else {
                document.location = WWWBaseUrl + '/FAP/MAPAction.aspx?returnUrl=' + document.location.href;
            }
            break;
    }
}

//new user MAP registration link
function register() { document.location = WWWBaseUrl + "/FAP/Registration.aspx"; }

//update MAP profile link
function update() { document.location = WWWBaseUrl + "/FAP/ProfileUpdate.aspx"; }

//manage favorite page link
function manageFavorites() { document.location = WWWBaseUrl + "/FBC/MyFavorite.aspx"; }

//log into Facebook via FBC
function loginFacebook(wucIndex) {
    FB.login(function(response) {
        if (response.session) {
            updateUser();

            switch (wucIndex) {
                case 1:
                    //comment page: reload will lose comment user enters. Use AJAX way.
                    updateMultiLoginState();
                    break;
                case 3:
                    //Check in: reload will lose comment user enters. Use AJAX way.
                    updateMultiLoginState();
                    break;
                case 5:
                    //From Login POPUP(WatchList): reload will lose . Use AJAX way.
                    updateMultiLoginState();
                    break;    
                    
                default:
                    var retUrl = getQueryParameter("ReturnUrl");
                    var tvobjectid = getQueryParameter("tvobjectid");
                    var action = getQueryParameter("action");
                    if (action == "1" && retUrl.length > 0 && tvobjectid.length > 0) {
                        $.ajax({
                            url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
                            type: "GET",
                            cache: false,
                            success: function(results) { document.location.href = retUrl }
                        });
                    }
                    else {
                        document.location.href = window.location;
                    }
            }
            // user successfully logged in
        }
        else {
            // user cancelled login
        }
    }
    , { perms: 'publish_stream,email,user_birthday,user_interests,user_likes,read_friendlists,friends_interests,friends_likes,offline_access' });
}

//note: function is used in DVR.aspx as well
function getQueryParameter(strName) {
    var u, i;
    u = document.location.search + "";
    i = u.indexOf(strName + "=", 0);
    if (i >= 0) {
        i += strName.length + 1;
        var n = u.indexOf('&', i);
        if (n > i) {
            return unescape(u.substring(i, n));
        }
        else if (i < u.length) {
            return unescape(u.substring(i));
        }
    }
    return "";
}

//only used by facebook logout button
function logoutFacebook() {
    FB.logout(
      function() {
          document.location.href = window.location;
      }
   );
}

//This function can update multi-login control UI without a postback, as needed on comment page.
//However, more often we need postback since upon login, content needes to be replaced by personalized content, and upon logout, personalized content needs to be replaced by public content.
function updateMultiLoginState() {
    if (typeof (FB) === 'undefined')
        facebookDisabled = true;

    if (facebookDisabled) {
        isFBCAuthenticated = 0;
        getAuthentication();
    }
    else {
        FB.init({
            appId: fb_app_id, status: true,
            cookie: true, xfbml: true
        });
        var fbsession = FB.getSession();

        if (fbsession) {
            isFBCAuthenticated = 1;
            getAuthentication();
        }
        else {
            isFBCAuthenticated = 0;
            getAuthentication();
        }
    }
    //    isFBCAuthenticated = 0;
    //    FB.getLoginStatus(function(response) {
    //        if (response.session) {
    //            isFBCAuthenticated = 1;
    //            getAuthentication(wucIndex);
    //        }
    //        else {
    //            isFBCAuthenticated = 0;
    //            getAuthentication(wucIndex);
    //        }
    //    });
}

function updateUser() {
    $.ajax({
        url: "/FBC/HTTPHandler/HNDUserAction.ashx?actiontype=1",
        type: "GET",
        cache: false,
        success: function(results) { }
    });
}

function showFacebox(url) {
    jQuery(document).ready(function($) {
        jQuery.facebox({ ajax: url })
    })
}

var xmlHttpObjFacebook = null;

function xmlHttpObjLaunch(xmlHttpObj, strUrl) {
    if (xmlHttpObj != null) {
        xmlHttpObj.open("GET", strUrl, true);
        xmlHttpObj.send(null);
    }
}

function getTVOFacebookAJAX(strUrl, ElementID) {
    var callbackfunction = function() { UpdateElementHTML(ElementID) };

    xmlHttpObjFacebook = GetXmlHttpObject(callbackfunction);
    xmlHttpObjLaunch(xmlHttpObjFacebook, strUrl);
}

function UpdateElementHTML(ElementID) {
    if (xmlHttpObjFacebook.readyState == 4 || xmlHttpObjFacebook.readyState == "complete") {
        var elemFbook = document.getElementById(ElementID);
        var strText = xmlHttpObjFacebook.responseText;
        elemFbook.innerHTML = strText;
        elemFbook = document.getElementById(ElementID + "2");
        if (elemFbook) {
            elemFbook.innerHTML = strText.replace(/txtAreaNote/g, "txtAreaNote2").replace(/obj-fbook-friends-like/g, "obj-fbook-friends-like2");
        }
    }
}

function addFavorite(tvobjectid, tvobjectname) {
    if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
        ajaxRequest("/FBC/HTTPHandler/HNDObjectData.ashx?tvobjectid=" + tvobjectid + "&actiontype=2&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID, "ajax-favorite-status");
    }
}

function getFaveStatus(TVObjectID, TVObjectName) {
    var faveText = "";
    if (isLoggedInX) {
        if (faveTVObjectIDs.indexOf(TVObjectID) >= 0)
            faveText = "<a class=\"added\" href=\"" + WWWBaseUrl + "/Watchlist\">In Your Watchlist</a>";
        else
            faveText = "<a href=\"" + WWWBaseUrl + "/Watchlist\" onclick=\"addFavorite('" + TVObjectID + "', '" + TVObjectName.replace(/\'/g, '\\\'') + "'); return false;\">Add to Watchlist</a>";
    }
    else
        faveText = "<a href=\"#\"  onclick=\"getFaveStatus2('" + TVObjectID + "', '" + TVObjectName.replace(/\'/g, '\\\'') + "');\">Add to Watchlist</a>";

    document.getElementById("ajax-favorite-status").innerHTML = faveText;
    
}

//adding from list at bottom of page

function getFaveStatus2(tvobjectid, tvobjectname) {
    if (snapUserID == "") {
        dvrLogin = 2;
        dvrAddTvobjectId = tvobjectid;
        dvrAddTvobjectName = tvobjectname;
        $.facebox({ ajax: '/FAP/LoginDialog.aspx?displayfbconnect=true&index=5' }, 'facebox');
    }
    else {
        if (faveTVObjectIDs.indexOf(tvobjectid) >= 0) {
            alert("This show is already in your Watchlist");
            document.getElementById("ajax-favorite-status").innerHTML = "<a class=\"added\" href=\"" + WWWBaseUrl + "/Watchlist\">In Your Watchlist</a>";
            //document.location.href = WWWBaseUrl + "/watchlist"
            return;
        }

        if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
            dvrLogin = 0;
            $.ajax({
                url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
                type: "GET",
                cache: false,
                success: function(results) {
                    faveTVObjectIDs += tvobjectid + "|";
                    dvrTVObjectIDs += tvobjectid + "|";
                    document.getElementById("ajax-favorite-status").innerHTML = "<a class=\"added\" href=\"" + WWWBaseUrl + "/Watchlist\">In Your Watchlist</a>";
                }
            });
        }
    }
    return false;
}


function AddToDVR(tvobjectid, tvobjectname, div_id) {
    if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
        $.ajax({
            url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
            type: "GET",
            cache: false,
            success: function(results) { faveTVObjectIDs += tvobjectid + "|"; dvrTVObjectIDs += tvobjectid + "|"; document.getElementById(div_id).innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>"; }
        });
    }
    return false;
}

function AddToDVR2(tvobjectid, tvobjectname, myDiv) {
    if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
        $.ajax({
            url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
            type: "GET",
            cache: false,
            success: function(results) {
                faveTVObjectIDs += tvobjectid + "|";
                dvrTVObjectIDs += tvobjectid + "|";
                myDiv.innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
                myDiv.onclick = "javascript:void(0);";
                $(myDiv).addClass("l-addedtodvr").removeClass("l-addtodvr");
            }
        });
    }
    return false;
}

function getListingsDVRButtonStatus(tvobjectid, tvobjectname, divObj) {
    if (snapUserID == "") {
        dvrLogin = 4;
        dvrAddTvobjectId = tvobjectid;
        dvrAddTvobjectName = tvobjectname;
        dvrButtonDivId = divObj;
        $.facebox({ ajax: '/FAP/LoginDialog.aspx?displayfbconnect=true&index=5' }, 'facebox');
    }
    else {
        if (faveTVObjectIDs.indexOf(tvobjectid) >= 0) {
            alert("This show is already in your Watchlist");

            dvrButtonDivId.innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
            $(dvrButtonDivId).css("background-image", 'url("/images/dvr/heart_inlist.gif")');
            return;
        }

        if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
            dvrLogin = 0;
            $.ajax({
                url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
                type: "GET",
                cache: false,
                success: function(results) {
                    faveTVObjectIDs += tvobjectid + "|";
                    dvrTVObjectIDs += tvobjectid + "|";
                    dvrButtonDivId.innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
                    $(dvrButtonDivId).css("background-image", 'url("/images/dvr/heart_inlist.gif")');
                }
            });
        }
    }
    return false;
}

function getSpecialsDVRButtonStatus(tvobjectid, tvobjectname, divid) {
    if (snapUserID == "") {
        dvrLogin = 5;
        dvrAddTvobjectId = tvobjectid;
        dvrAddTvobjectName = tvobjectname;
        dvrButtonDivId = divid;
        $.facebox({ ajax: '/FAP/LoginDialog.aspx?displayfbconnect=true&index=5' }, 'facebox');
    }
    else {
        if (faveTVObjectIDs.indexOf(tvobjectid) >= 0) {
            alert("This show is already in your Watchlist");

            document.getElementById(divid).innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
            $("#" + divid).css("background-image", 'url("images/checkmark.gif")');
            $("#" + divid).css("background-repeat", 'no-repeat');
            $("#" + divid).css("padding-left", '20px');
            return;
        }

        if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
            dvrLogin = 0;
            $.ajax({
                url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
                type: "GET",
                cache: false,
                success: function(results) {
                    
                    faveTVObjectIDs += tvobjectid + "|";
                    dvrTVObjectIDs += tvobjectid + "|";
                    document.getElementById(divid).innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
                    $("#" + divid).css("background-image", 'url("images/checkmark.gif")');
                    $("#" + divid).css("background-repeat", 'no-repeat');
                    $("#" + divid).css("padding-left", '20px');
                }
            });
        }
    }
    return false;
}

function getDVRButton(tvobjectid, tvobjectname, showloginlink,divid) {
    if (typeof (tvobjectid) != undefined && tvobjectid > 0) {
        if (isLoggedInX) {
            if (faveTVObjectIDs.indexOf(tvobjectid) >= 0) {
                //document.write("<a class=\"added\" href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>");
                document.getElementById(divid).innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
                $("#" + divid).css("background-image", 'url("/images/dvr/heart_inlist.gif")');
                $("#" + divid).css("padding-left", '20px');
            }
            else
                document.write("<span id=\"dvr-button-inner-" + tvobjectid + "\"><a onclick=\"return AddToDVR(" + tvobjectid + ", '" + tvobjectname.replace(/\'/g, '\\\'') + "', 'dvr-button-inner-" + tvobjectid + "')\" href='" + WWWBaseUrl + "/watchlist'>Add to Watchlist</a></span>");
        }
        else {
            if (showloginlink) {
                document.write("<a href=\"javascript:void(0);\"  onclick=\"getDVRButtonStatus('" + tvobjectid + "', '" + tvobjectname.replace(/\'/g, '\\\'') + "','" + divid + "');\">Add to Watchlist</a>");
            }

        }
    }
}

function getDVRButtonStatus(tvobjectid, tvobjectname,divid) {
    if (snapUserID == "") {
        dvrLogin = 3;
        dvrAddTvobjectId = tvobjectid;
        dvrAddTvobjectName = tvobjectname;
        dvrButtonDivId = divid;
        $.facebox({ ajax: '/FAP/LoginDialog.aspx?displayfbconnect=true&index=5' }, 'facebox');
        $(document).trigger('facebox_opened', ["#" + divid]); // Added event to track which object triggered facebox - TAT
    }
    else {
        if (faveTVObjectIDs.indexOf(tvobjectid) >= 0) {
            alert("This show is already in your Watchlist");
            document.getElementById(divid).innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
            $("#" + divid).css("background-image", 'url("/images/dvr/heart_inlist.gif")');
            $("#" + divid).css("padding-left", '20px');
            //document.location.href = WWWBaseUrl + "/watchlist"
            return;
        }

        if (window.confirm("Would you like to add " + tvobjectname + " to your Watchlist?")) {
            dvrLogin = 0;
            $.ajax({
                url: "/FBC/HTTPHandler/HNDDVR.ashx?tvobjectid=" + tvobjectid + "&actiontype=1&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID,
                type: "GET",
                cache: false,
                success: function(results) {
                    faveTVObjectIDs += tvobjectid + "|";
                    dvrTVObjectIDs += tvobjectid + "|";
                    document.getElementById(divid).innerHTML = "<a href='" + WWWBaseUrl + "/watchlist'>In your Watchlist</a>";
                    $("#" + divid).css("background-image", 'url("/images/dvr/heart_inlist.gif")');
                }
            });
        }
    }
    return false;
}

function GetDVRTombstone() {
    if (isLoggedInX) {
        if (faveTVObjectIDs.length > 0) {
            $.ajax({
            url: "/FBC/HTTPHandler/HNDDVR.ashx?actiontype=8&faves=" + faveTVObjectIDs + "&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID + "&freeonly=" + dvrFreeOnly,
                type: "GET",
                cache: false,
                success: function(results) { $("#dvr-bna-w").html(results); }
            });
        }
        else { $("#dvr-bna-w").html("<h1><a href=\"" + WWWBaseUrl + "/watchlist\">Watchlist: You don't have any shows in your Watchlist. Add shows ></a></h1>"); }
    }
    else { $("#dvr-bna-w").html("<h1><a href=\"" + WWWBaseUrl + "/watchlist\">Watch full episodes of your favorite shows with a Watchlist!</a></h1>"); }
    return false;
}

function GetDVRInfo() {
    var dvrText;
    if (isLoggedInX) {
        if (dvrTVObjectIDs.length > 0) {
            $.ajax({
            url: "/FBC/HTTPHandler/HNDDVR.ashx?actiontype=6&faves=" + faveTVObjectIDs + "&snapuserid=" + snapUserID + "&snapidentityproviderid=" + snapIdentityProviderID + "&freeonly=" + dvrFreeOnly,
                type: "GET",
                cache: false,
                success: function(results) {
                    if (results == "NONE") {
                        dvrText = "<h3>There are no new episodes of your shows at this time.</h3>";
                        dvrText += "<div class=\"h-video-heart\"><a href=\"" + WWWBaseUrl + "/watchlist#head-moretvshows\" onClick=\"ovgDvr_Container('Logged In: Add Shows');\">Add shows</a></div>";
                        dvrText += "<div class=\"h-video-play\"><a href=\"" + WWWBaseUrl + "/watchlist\" onClick=\"ovgDvr_Container('Logged In: Go to Watchlist');\">Go to Watchlist</a></div>";
                        $("#full-ep-featured").css('display', 'block');
                    }
                    else {
                        dvrText = results;
                    }
                    $("#div-dvr-content").html(dvrText);
                }
            });
        }
        else {
            $("#full-ep-featured").css('display', 'block');
            dvrText = "<h3>You are not subscribed to any shows.</h3>";
            dvrText += "<div class=\"h-video-heart\"><a href=\"" + WWWBaseUrl + "/watchlist#head-moretvshows\" onClick=\"ovgDvr_Container('Logged In: Add Shows');\">Add shows</a></div>";
            dvrText += "<div class=\"h-video-play\"><a href=\"" + WWWBaseUrl + "/watchlist\" onClick=\"ovgDvr_Container('Logged In: Go to Watchlist');\">Go to Watchlist</a></div>";
            $("#div-dvr-content").html(dvrText);
        }
    }
    else {
        $("#full-ep-featured").css('display', 'block');
        dvrText = "<h3>Get new full episodes of your favorite shows as soon as they're available.</h3>";
        dvrText += "<div class=\"h-video-createlogin\"><a href=\"/FAP/Registration.aspx\" onClick=\"ovgDvr_Container('Logged Out: Create Account');\">Create an account</a> or ";
        dvrText += "<a href=\"/FBC/Login.aspx?ReturnUrl=" + escape(window.location) + "\" onClick=\"ovgDvr_Container('Logged Out: Log In');\">log in</a></div>";
        $("#div-dvr-content").html(dvrText);
    }
    return false;
}
