﻿function toggleDetail(object, display, img) {
    // Toggles More/Less view on selected card

    object.parent().parent().next(".detail").css("display", display);
    object.parent().parent().next().next().toggleClass("neighbour-of-active");
    /* do it twice incase there is a blurb row */
    object.parent().parent().next().next(".detail").css("display", display);
    object.parent().parent().next().next().next().toggleClass("neighbour-of-active");

    object.stop(true, true);
    object.fadeOut(50, function() {
        object.html("<img src=\"/moneycontent/content/images/credit-cards-form/pic_card-see-" + img + ".gif\" />");
    });
    object.fadeIn("fast");
    return false;
}

function compareCards(showLegacyCompareButtons) {
    var card_list = $("#card-list");
    var compare_button_top = $("#compare-top");
    var compare_button_bottom = $("#compare-bottom");
    var compare_buttons = $(".compare");
    var checked_cards = $("input:checked");

    if (showLegacyCompareButtons == true) {
        var compare_stop_top = "btn_stop-comparing_top";
        var compare_stop_bot = "btn_stop-comparing_bot";
        var compare_top = "btn_compare-now_top";
        var compare_bot = "btn_compare-now_bot";
    }

    if (showLegacyCompareButtons == false) {
        var compare_stop_top = "btn_stop-comparing_top";
        var compare_stop_bot = "btn_stop-comparing_bot";
        var compare_top = "btn_compare-now-long_top.gif";
        var compare_bot = "btn_compare-now-long_bot.gif";
    }

    // Only activate comparison when more than one card is checked
    if (checked_cards.size() > 1) {
        // Sets table to comparing state (where non-compared rows are hidden by default)
        // Tidies up any leftover comparison classes
        card_list
			.toggleClass("comparing")
			.children("tbody").children("tr").removeClass("comparing").removeClass("neighbour-of-comparing");
        ;
        $("#card-list tr").removeClass("comparing").removeClass("neighbour-of-comparing");

        compare_buttons.stop(true, true);
        compare_buttons.fadeOut(50, function() {
            if (card_list.attr("class") == "comparing") {
                compare_button_top.html("<img width=\"124\" height=\"42\" alt=\"Stop comparing\" src=\"images/credit-cards-form/" + compare_stop_top + ".gif\"/>");
                compare_button_bottom.html("<img width=\"124\" height=\"47\" alt=\"Stop comparing\" src=\"images/credit-cards-form/" + compare_stop_bot + ".gif\"/>");
            } else {
                compare_button_top.html("<img width=\"124\" height=\"42\" alt=\"Compare now\" src=\"images/credit-cards-form/" + compare_top + ".gif\"/>");
                compare_button_bottom.html("<img width=\"124\" height=\"47\" alt=\"Compare now\" src=\"images/credit-cards-form/" + compare_bot + ".gif\"/>");
            }
        });
        compare_buttons.fadeIn("fast");

        // Checked cards are shown (all others hidden while table has class "comparing")
        checked_cards
			.parent().parent().toggleClass("comparing")
			.next().next().toggleClass("neighbour-of-comparing")
		;
        checked_cards.parent().parent().parent().children(".comparing:first").toggleClass("first-compared");
    }
}

function FeaturedCardsFunctionality(check, showLegacyCompareButtons) {
    ThirdPartyTemplateFunctionality(check, showLegacyCompareButtons);
    SetNumberOfCardsLoadedValue();
    SetSelectedFeaturedTab();
}

function SetNumberOfCardsLoadedValue() {
    var numberOfCardsLoaded = $("#numberOfCardsShowing").val();
    $("strong#numberCards").html(numberOfCardsLoaded);
}

function SetSelectedFeaturedTab() {
    var searchOption = "1";
    searchOption = $("#CardSelectionCriteria").val();
    var id = "1";
    $("#find-best-fit li").each(function(i) {
        id = this.id; 
        if (id == searchOption) 
        $(this).addClass("active");
        else 
        $(this).removeClass("active");
        //x = x + 1;
    });
    //alert(searchOption);
}

function AllCardsClick() {
    $("#CardSelectionCriteria").val(0);
    document.forms.namedItem('QuickSearch').submit();
}

function ThirdPartyTemplateFunctionality(check, showLegacyCompareButtons) {
    var loaded = $("body.home-page.js").length;

    if (check == true) {
        if (loaded == 0) {
            DoThirdPartyFunc(showLegacyCompareButtons);
        }
    }
    else {
        DoThirdPartyFunc(showLegacyCompareButtons);
    }
}

function DoThirdPartyFunc(showLegacyCompareButtons) {

    if ((showLegacyCompareButtons == true)||(showLegacyCompareButtons == "true")) {
        compare_now_top_off = "<img width=\"124\" height=\"42\" alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now-off_top.gif\"/>";
        compare_now_top_on = "<img width=\"124\" height=\"42\" alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now_top.gif\"/>";
        compare_now_bot_off = "<img width=\"124\" height=\"47\" alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now-off_bot.gif\"/>";
        compare_now_bot_on = "<img width=\"124\" height=\"47\" alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now_bot.gif\"/>";
    }

    if ((showLegacyCompareButtons == false)||(showLegacyCompareButtons == "false")) {
        compare_now_top_off = "<img alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now-long_top.gif\"/>";
        compare_now_top_on = "<img alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now-long_on_top.gif\"/>";
        compare_now_bot_off = "<img alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now-long_bot.gif\"/>";
        compare_now_bot_on = "<img alt=\"Compare now\" src=\"/moneycontent/content/images/credit-cards-form/btn_compare-now-long_on_bot.gif\"/>";
    }

    // Gives hook for JS-only CSS (primarily to show/hide card details by default)
    $("body").addClass("js");

    // Disable compare buttons if user left fewer than 2 checkboxes selected when they last visited the page
    if ($("#card-list input:checked").size() < 2) {
        $("#compare-top").html(compare_now_top_off);
        $("#compare-bottom").html(compare_now_bot_off);
    }

    // Add "More" button for JS-enabled browsers (non JS-enabled users will see all details by default)
    $("#card-list .apply").append("<a href=\"#\" class=\"see-more-less\"><img src=\"/moneycontent/content/images/credit-cards-form/pic_card-see-more.gif\" /></a>");

    $("#find-best-fit li a").click(function() {
        var new_heading = $(this).text();
        var card_list = $("#card-list");

        $("#best-fit-results h3 strong").fadeOut(100, function() {
            $(this).html(new_heading).fadeIn(100);
        });
        $(this)
			        .parent().children().removeClass("active")
			        .end().end().addClass("active")
		        ;

        $("#compare-top").html(compare_now_top_off);
        $("#compare-bottom").html(compare_now_bot_off);

        card_list.removeClass("comparing").children("tbody").children("tr").removeClass("comparing").removeClass("neighbour-of-comparing").removeClass("first-compared");
        $("#card-list tr.summary input:checkbox").attr("checked", false);

    });

    // IE needs a different display property for "More" details to work
    if ($.browser.msie) { supported_display = "block"; } else { supported_display = "table-row"; }

    // Toggles More/Less for card results
    $("#card-list .summary .see-more-less").toggle(
		        function() { toggleDetail($(this), supported_display, "less"); },
		        function() { toggleDetail($(this), "none", "more"); }
	        );

    $("#card-list input").livequery('click', function(event) {
        checked_cards = $("#card-list input:checked").size();

        if ($(this).parent().parent().parent().parent().attr("class") == "comparing") {

            // Currently comparing

            if (checked_cards < 2) {

                // Stop comparing if only one card remains in comparison list
                $("#card-list").removeClass("comparing").children("tbody").children("tr").removeClass("comparing").removeClass("neighbour-of-comparing").removeClass("first-compared");

                $("#compare-top").html(compare_now_top_off);
                $("#compare-bottom").html(compare_now_bot_off);

            } else {

                // Otherwise, just hide cards that are deselected during a comparison
                $(this).parent().parent().removeClass("comparing").removeClass("first-compared");
                $(this).parent().parent().next().next().removeClass("neighbour-of-comparing");
                $(this).parent().parent().parent().children(".comparing").removeClass("first-compared");
                $(this).parent().parent().parent().children(".comparing:first").addClass("first-compared");
            }

        } else {

            // Not currently comparing cards

            if (($(this).is(":checked") && checked_cards < 1) || ($(this).not(":checked") && checked_cards < 2)) {

                // Not enough cards are checked to compare yet
                $("#compare-top").html(compare_now_top_off);
                $("#compare-bottom").html(compare_now_bot_off);

            } else {

                // Enough cards are selected, enable compare buttons

                var compare_button_top = $("#compare-top");
                var compare_button_bottom = $("#compare-bottom");

                compare_button_top.html(compare_now_top_on);
                compare_button_bottom.html(compare_now_bot_on);
            }
        }
    });

    $("#compare-top, #compare-bottom").click(function() {

    });
}


function ViewAll(branch) {
    if (branch == undefined) {
        branch = "";
    }
    if ((branch != null) && (branch != "")) {
        branch = "?branch=" + branch;
    }
    document.forms.namedItem('QuickSearch').action = '/credit-cards/ViewAll' + branch;
    document.forms.namedItem('QuickSearch').submit();
}

function OpenCreditCardApplyWindow(applyWindowUrl) {
    var cookieValue = $.cookie('__utmx');
    if (cookieValue != null) {
        //applyWindowUrl = applyWindowUrl + '/' + cookieValue;
        applyWindowUrl = applyWindowUrl + '&gwoCookie=' + cookieValue;
     }    

    goToSpecifiedurl(applyWindowUrl);
}

function showCreditScoreSearch(serviceAvailable) {
    if (serviceAvailable == true) {
        $("#credit_score_service_unavailable").hide();
        $("#intro").show();
    } else {
        $("#credit_score_service_unavailable").show();
        $("#intro").hide();
    }
}

function checkCreditScoreServiceStatus() {
    $.get("/credit-cards/CheckCreditScoreSearchStatus", function(isOverloaded) {
    isOverloaded = isOverloaded.toLowerCase();
    var serviceAvailable = !(isOverloaded == 'true');
        showCreditScoreSearch(serviceAvailable);
    });
}

function MonitorCreditScoreService() {
    if ($("#credit_score_service_available").length > 0) {
        checkCreditScoreServiceStatus();
//        setInterval("checkCreditScoreServiceStatus()", 5000);
    }
 }


