﻿//var recipePopupShowing = false;
var thumbNumNowShowing = -1;
var thumbsCollection;

var StretchTheBodyToFillScreen = function () {
    var addThis = 0;
    if ($.browser.msie) {
        addThis = 17;
    }
    if ($(document).height() <= ($(window).height() + addThis)) {
        $('#ft').css({'position': 'fixed',
                      'bottom': 0,
                      'width': '100%'});
    }
    else {
        $('#ft').css('position', 'relative');
    }
    return false;
};
$(window).resize(function () {
    AdjustBodyHeight();
    resultsPerPage = CalculateResultsPerPage();

    if ($(window).width() < 1010) {
        HideRightColumn();
    }
});

function FacebookLoginButtonClickedForAnalytics(where) {
    var localView = $("#viewTabs").data('view');
    _gaq.push(['_trackEvent', 'facebook signin button clicked on ' + where, 'facebook signin button clicked on ' + localView]);
}

function CalculateResultsPerPage() {
    if ($(".grid-element").length <= 0) { //no grid on page
        return 10;
    }
    var pxRegex = /px/i;
    var outerWidthOfLeftColumn = $("#left-column").outerWidth(true);
    var widthOfMain = $("#main").width();

    var widthOfSearchResults = widthOfMain - outerWidthOfLeftColumn;   //$("#search-results").width();
   
    var outerWidthOfGridElement = $(".grid-element").outerWidth(true);


    var numberInEachRow = Math.floor(widthOfSearchResults / outerWidthOfGridElement);

    numberInEachRow = Math.max(1, numberInEachRow);

    var positionOfTopOfLeftColumn = $("#left-column").css("top"); //65px

    positionOfTopOfLeftColumn = positionOfTopOfLeftColumn.replace(pxRegex, "");
    var outerHeightOfFooter = $("#ft").outerHeight(true);
    var outerHeightOfNav = $("#nav").outerHeight(true);
    var maxHeightOfSearchResults = $(window).height() - positionOfTopOfLeftColumn - outerHeightOfFooter - outerHeightOfNav;
    var outerHeightOfGridElement = $(".grid-element").outerHeight(true);
    var numberInEachColumn = Math.floor(maxHeightOfSearchResults / outerHeightOfGridElement);

    numberInEachColumn = Math.max(1, numberInEachColumn);
    
    return numberInEachRow * numberInEachColumn;
}

function AdjustBodyHeight() {
    $("#bd").css("height", "auto");
    StretchTheBodyToFillScreen();
}

function SetFocus(element) {
    $(element).focus();
}

function GetCurrentPagePath() {
    var redirectPage;

    if (UserSettingIsDefault(CurrentUserSetting)) {
        var firstRecipeId = Number($(".save-container").attr("uniqueid"));
        var localView = $("#viewTabs").data('view');
        var currentResultsPerPage = localView === "grid" ? resultsPerPage : 10;
        redirectPage = "/Home/GetSpecificRandomHomePage?FirstRecipeId=" + firstRecipeId + "&ViewToReturn=" + localView + "&ResultsPerPage=" + currentResultsPerPage;
    }
    else {
        redirectPage = window.location.pathname;
    }

    return redirectPage;
}

function SaveRecipe(RecipeId, Element, Title, Organization, Summary, UrlAtOrg, UrlAtYumDom) {
    var elementHtml = $(Element).html();
    if (elementHtml === "Saved" || elementHtml == "Removed") {
        return false;
    }
    if ($("#loginButton").html() === "Login") {
//        if (recipePopupShowing)
            fb.end();
        //alert("Please login or signup before saving any recipes. Thank you");

        $("#modalLoginDialog").data("saveRecipe", { RecipeId: RecipeId, Visited: false, Title: Title, Organization: Organization, Summary:Summary, UrlAtOrg: UrlAtOrg, UrlAtYumDom: UrlAtYumDom });
        $("#promptToLoginForm").dialog("open");
        return false;
    }
    
    $(Element).css({"background":"#E0E8B6",
                    "background-color": "#E0E8B6",
                    "border-color": "#E0E8B6",
                    "color":"black",
                    "cursor": "default",
                    "font-weight": "bold"});

    if (elementHtml === "Remove") {
        $(Element).html("Removed");
        $(Element).attr("title", "You have removed this recipe from your list of saved recipes.");
        $.get("/MyRecipes/RemoveRecipe/", { RecipeId: RecipeId, Visited: false});
        _gaq.push(['_trackEvent', "removed recipe from saved recipe", "removed recipe:" + Organization, 
        "removed recipe:" + RecipeId]); //good
    }
    else { //Save
        $(Element).html("Saved");
        $(Element).attr("title", "You have saved this recipe.");
        performSaveRecipe(RecipeId, Title, Organization, Summary, UrlAtOrg, UrlAtYumDom, null);
    }
}

function performSaveRecipe(saveId, saveTitle, saveOrganization, saveSummary, saveUrlAtOrg, saveUrlAtYumDom, redirectPage) {
    //    $.get("/MyRecipes/SaveRecipe2/", { RecipeId: saveId, Visited: false, Title: saveTitle, Organization: saveOrganization, UrlAtOrg: saveUrlAtOrg });
    $.ajax({ type: "GET",
        url: "/MyRecipes/SaveRecipe/",
        data: { RecipeId: saveId, Visited: false, Title: saveTitle, Organization: saveOrganization, Summary: saveSummary, UrlAtOrg: saveUrlAtOrg, UrlAtYumDom: saveUrlAtYumDom
        },
        success: function (data) {
            if (redirectPage != null) {                              
                window.location.href = redirectPage;
            }
        }
    });
//    $.get("/MyRecipes/SaveRecipe/", { RecipeId: saveId, Visited: false, Title: saveTitle, Organization: saveOrganization,
//        UrlAtOrg: saveUrlAtOrg, UrlAtYumDom: saveUrlAtYumDom
//    });  
    //    _gaq.push(['_trackEvent', "saved recipe", saveOrganization, saveId]);
    var viewLocal = $("#viewTabs").data('view');
    _gaq.push(['_trackEvent', "saved recipe in " + viewLocal + " view", "saved recipe:" + saveOrganization, "saved recipe:" + saveId]); //good
}

function ChangedPressedButtonsAppearance(element) {
    $(".top-menu-link").css({ "background-color": "#E0E8B6", 
                              "color": "#800000" });

    $(element).css({ "background-color": "#800000",
                      "color": "#E0E8B6"
    });

    $("a.top-menu-link:not(a" + element + ")").hover(
        function () {
            $(this).addClass("over").removeClass("out");
        },
        function () {
            $(this).removeClass("over").addClass("out");
        });
    $("a" + element).hover(
        function () {
            $("a" + element).addClass("out");
            $(this).data('title', $(this).attr('title'));
            $(this).removeAttr('title');
        },
        function () {
            $(this).attr('title', $(this).data('title'));
        });
    }
function HideLeftColumn() {
    $("#left-column").hide();
    $("#search-results").css("margin-left", 0);
    $("#search-and-left").css("text-align", "center");
    $("#left-column-arrow").show();
    resultsPerPage = CalculateResultsPerPage();
}

function ShowLeftColumn() {
    $("#search-results").css("margin-left", $("#left-column").outerWidth() + 15);
    $("#left-column").show();
    $("#search-and-left").css("text-align", "left");
    $("#left-column-arrow").hide();
    resultsPerPage = CalculateResultsPerPage();
}

function ShowHideRecipeDetails() {
    var viewLocal = $("#viewTabs").data('view');
    if(viewLocal ===  'list') { //hide
        //$(".ingredient-container").css("display", "inline-block");  //Commented this out improves the list display with horizontal share buttons, but makes FireFox & IE look worse.
        $(".ingredient").css("display", "inline-block");
        $(".ing").css("display", "inline-block");
        $(".ing").css("margin-left", "0px");
        $(".methods").css("display", "none");
        $(".equipments").css("display", "none");
        $(".supplies").css("display", "none");
        $(".brands").css("display", "none");
    }
    else if(viewLocal ===  'detail') {
        $(".ingredient-container").css("display", "inherit");
        $(".ingredient").css("display", "inherit");
        $(".ing").css("display", "inherit");
        $(".ing").css("margin-left", "36px");
        $(".methods").css("display", "inherit");
        $(".equipments").css("display", "inherit");
        $(".supplies").css("display", "inherit");
        $(".brands").css("display", "inherit");
        //todo: update the server so we know the user likes detail view.
    }
}

function SetCurrentTab(name) {
    currentTab = name;
    if (currentTab === "search-tab" || currentTab === "my-recipes-link") {
    //    $("#search-results").css("display", "inline-block");
        $("#search-results").css("margin-left", $("#left-column").outerWidth() + 15);
        $("#search-results").css("width", "auto");
    }
    else {
  //      $("#search-results").css("display", "inline");
        $("#search-results").css("margin", "auto");
        $("#search-results").css("width", "40em");
    }
}

function UpdateUpperNavButton(isRandomSearch) {
    var lowerPrevHRef = $('#lowerPrevButton').attr('href');
    if (lowerPrevHRef == null) {
        HideUpperNavPreviousButton(); 
    }
    else {
        ShowUpperNavPreviousButton();
        $("#upperNavPrevButton").attr('href', lowerPrevHRef);
    }    

    var lowerNextHRef = $('#lowerNextButton').attr('href');
    if (lowerNextHRef == null) {
        HideUpperNavNextButton();
    }
    else {
        ShowUpperNavNextButton();
        $('#upperNavNextButton').attr('href', lowerNextHRef);
    }

    //    if (CurrentUserSetting === undefined || CurrentUserSetting.IsDefault == undefined || CurrentUserSetting.IsDefault === true) {
    if (isRandomSearch === true) {
        ShowUpperNavNextButton();
        //var url = "/Home/GetRandomHomePage/"; //$1_=" + jQuery.now();
        $('#upperNavNextButton').attr('href', "/Home/GetRandomHomePage/");
        if ($("#upperNavButtons").data('previous') >= 0) {
            ShowUpperNavPreviousButton();
        }
        else {
            HideUpperNavPreviousButton();
        }
    }
}

function ShowUpperNavPreviousButton() {
    $("#upperNavPrevButton").css("cursor", "pointer");
    $("#upperNavPrevButtonImage").attr("src", "../../Content/Images/PrevArrow.png");
}

function HideUpperNavPreviousButton() {
    $("#upperNavPrevButtonImage").attr("src", "../../Content/Images/PrevArrowDisabled.png");
    $("#upperNavPrevButton").css("cursor", "default");  
}

function ShowUpperNavNextButton() {
    $("#upperNavNextButton").css("cursor", "pointer");
    $("#upperNavNextButtonImage").attr("src", "../../Content/Images/NextArrow.png");
}

function HideUpperNavNextButton() {
    $("#upperNavNextButton").css("cursor", "default");
    $("#upperNavNextButtonImage").attr("src", "../../Content/Images/NextArrowDisabled.png");
}

function StackSocialSharingButtonVertically(targetButton) {
    targetButton.css({"display" : "block",
                      "float": "none",
                      "clear": "both",
                      "margin": "5px 0 0 0"});
}

function StackSocialSharingButtonHorizontally(targetButton, firstButton) {
    if (firstButton)
        targetButton.css("margin", "0 5px");
    else
        targetButton.css("margin", "0 5px 0 0");

    targetButton.css({ "display": "inline",
                       "float": "left",
                       "clear": "none"
    });
}

function StackSocialButtons() {
    var currentView = $("#viewTabs").data('view');
    //var currentStackOrientation = $("#viewTabs").data("SocialButtonsStack");

    if (currentView === "list") {
        //$("#viewTabs").data("SocialButtonsStack", "Horz");
        $("div.save-container").css("float", "left");
        $("div.share").css("margin-top", "0");
        $("div.share .addthis_button_email").css("display", "none");
        $('div.share a[href^="https://plus.google.com"]').css({ "display": "block", "float": "none", "clear":"none", "margin" : "0 5px 0 0" });
        //$("div.share").css("width","400px");
        StackSocialSharingButtonHorizontally($("div.share .pin-it-button"), true);
        //StackSocialSharingButtonHorizontally($('div.share a[href^="https://plus.google.com"]'), false);
        StackSocialSharingButtonHorizontally($("div.share .addthis_button_facebook"), false);
        StackSocialSharingButtonHorizontally($("div.share .addthis_button_twitter"), false);
        //StackSocialSharingButtonHorizontally($("div.share .addthis_button_email"), false);
        
    }
    else //if (currentView != "list") &&
             //currentStackOrientation == "Horz") {
    {
        //$("#viewTabs").data("SocialButtonsStack", "Vert");
        $("div.save-container").css("float", "none");
        $("div.share").css("margin-top", "7px");
        StackSocialSharingButtonVertically($("div.share .pin-it-button"));
        StackSocialSharingButtonVertically($('div.share a[href^="https://plus.google.com"]'));
        StackSocialSharingButtonVertically($("div.share .addthis_button_facebook"));
        StackSocialSharingButtonVertically($("div.share .addthis_button_twitter"));
        StackSocialSharingButtonVertically($("div.share .addthis_button_email"));                
    }
}

function HandleTabSelectionAppearance() {
    if (currentTab === "search-tab") {
        $("#searchTabMenuItem").addClass("tab-button-selected");
        $("#myRecipesTabMenuItem").removeClass("tab-button-selected");
    }
    else if (currentTab === "my-recipes-link") {
        $("#searchTabMenuItem").removeClass("tab-button-selected");
        $("#myRecipesTabMenuItem").addClass("tab-button-selected");
    }

    var lowerTabSelection = $("#viewTabs").data('view');
    if (lowerTabSelection === "grid") {
        $("#gridTab").addClass("tab-button-selected");
        $("#listTab").removeClass("tab-button-selected");
        $("#detailTab").removeClass("tab-button-selected");
    }
    else if (lowerTabSelection === "list") {
        $("#listTab").addClass("tab-button-selected");
        $("#gridTab").removeClass("tab-button-selected");
        $("#detailTab").removeClass("tab-button-selected");
    }
    else if (lowerTabSelection === "detail") {
        $("#detailTab").addClass("tab-button-selected");
        $("#gridTab").removeClass("tab-button-selected");
        $("#listTab").removeClass("tab-button-selected");
    }
}
function HideRightColumn() {
    $("#doc3").removeClass("yui-t5");
    $("#right-column").hide();
}

function ShowRightColumn() {
    if ($(window).width() > 1010) {
        $("#doc3").addClass("yui-t5");
        $("#right-column").show();
    }
}

function FlashThumbs() {
    thumbNumNowShowing = 0;    
}

function StartThumbAnimation() {
    if (thumbNumNowShowing >= 0) {

        if ($(window).width() < 1010) {
            thumbNumNowShowing = -1;
            return;
        }

        setTimeout("ShowThumb()", 200);
        UpdateThumbsCollection();
    }
}

function StopThumbAnimation() {
    thumbNumNowShowing = -1;
}

function UpdateThumbsCollection() {
    thumbsCollection = $("img.thumb:visible");
}

function ShowThumb() {
    var maxThumbs = Math.min(20, thumbsCollection.length);
           
    if (thumbNumNowShowing >= 0 &&
        thumbNumNowShowing < maxThumbs) {
        var currentThumb = $(thumbsCollection[thumbNumNowShowing]);
        if (currentThumb.is(".yes-please")) {
            currentThumb.attr("src", "../../Content/Images/thumbsup_25x25.png");
        }
        else if (currentThumb.is(".no-thanks")) {
            currentThumb.attr("src", "../../Content/Images/thumbsdown_25x25.png");
        }
        

        setTimeout("HideThumb()", 300);
    }
    else
        thumbNumNowShowing = -1;
}

function HideThumb() {

    if (thumbNumNowShowing >= 0 &&
        thumbNumNowShowing < thumbsCollection.length) {
        $(thumbsCollection[thumbNumNowShowing++]).attr("src", "../../Content/Images/white2x2.gif");
    }

    setTimeout("ShowThumb()", 100);
}

function recipeToolTipShowing() {
    _gaq.push(['_trackEvent', "A recipe popup is now showing", "xxx"]);
    
    //Witnessed tooltip problems when navigating pages without a full index. This helped, but if it is not an issue with a full index, this is not worth doing.
    //recipePopupShowing = true;
    return true;
}
/*
function recipeToolTipDismissed() {
recipePopupShowing = false;
}
*/

function SearchViewTabChanged() {
    var localShowResetPreferencesButton = ShouldWeShowResetButton();

    if (UserSettingIsDefault(CurrentUserSetting)) {
        var firstRecipeIdOfNextPage = Number($(".save-container").attr("uniqueid"));
        var localView = $("#viewTabs").data('view');
        var currentResultsPerPage = localView === "grid" ? resultsPerPage : 10;

        $.get("/Home/GetSpecificRandomHomePage/", {
            FirstRecipeId: firstRecipeIdOfNextPage,
            ViewToReturn: localView,
            ResultsPerPage: currentResultsPerPage
        },
             function (reply) {
                 $("#search-results").html(reply);
                 RunAfterSearchResultsAreReturned(localShowResetPreferencesButton, "#SearchBox1");
             });
    }
    else {
        SubmitSearchForm(isDefault, "#reset-preferences", "switched to details view");
    }
}

function MyRecipesViewTabChanged() {
    var localView = $("#viewTabs").data('view');
    var currentResultsPerPage = localView === "grid" ? resultsPerPage : 10;
    $.get("/MyRecipes/GetMoreSavedRecipes", {
        page : 1,
        FieldToOrderAlphabeticallyBy : "full-title",
        viewToReturn: localView,
        requestedItemsPerPage: currentResultsPerPage
    },    
    function (reply) {
        $("#search-results").html(reply);

        StackSocialButtons();
        UpdateSaveButtonText();
        UpdateUpperNavButton(false);
    });

}

function ReloadAddThisWidget() {
    var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
    if (window.addthis) {
        window.addthis = null;
    }
    $.getScript(script);
}

function IsNameSafeForURLUse(nameToCheck) {
    var regexp = new RegExp("^[ \\w'()-]+$");
    
    if (regexp.test(nameToCheck)) {     
        return true;
    } else {
        return false;
    }
}

function GetInvalidCharFromName(nameToCheck) {
    return nameToCheck.match(/[^ \w\'()-]/g);
}

function CheckUserNameValid(userNameElement, errorMessageElement) {

    var userNameText = userNameElement.val();

    if (userNameText.length < 1) {
        errorMessageElement.text(" The user name is required").addClass("dialog-validation-error");
        return false;
    }

    if (!IsNameSafeForURLUse(userNameText)) {
        var result = GetInvalidCharFromName(userNameText);
        if (result != null) {
            if (result.length == 1)
                errorMessageElement.text("The user name is invalid. Please don't use a " + result[0] + " in your user name.").addClass("dialog-validation-error");  //only use letters, numbers, dashes, quotes, underscores, and opening and closing parenthesis")
            else {
                var invalidChars = "";
                for (var i = 0; i < result.length; i++) {
                    invalidChars += result[i];
                    invalidChars += " ";
                }
                errorMessageElement.text("The user name is invalid. Please don't use " + invalidChars + "in your user name").addClass("dialog-validation-error");
            }
        }

        return false;        
    }

    return true;
}

function CheckPasswordValid(passwordElement, errorMessageElement)
{
    if (passwordElement.val().length < 6) {
        errorMessageElement.text("Please use at least six characters").addClass("dialog-validation-error");
        return false;
    }  

    return true;
}

function SignUpValid() {
    var userNameElement = $("#modalRegisterUserName");
    var errorMessageElement = $("#registerModalValidationTips");
  
    if (!CheckUserNameValid(userNameElement, errorMessageElement) ) {
        return false;        
    }

    var passwordElement = $("#modalRegisterPassword");
    if (!CheckPasswordValid(passwordElement, errorMessageElement)) {
        return false;
    }
    
    var confirmPassword = $("#modalRegisterConfirmPassword").val();
    if ($("#modalRegisterPassword").val() !=
        $("#modalRegisterConfirmPassword").val()) {
        $("#registerModalValidationTips").text("The password and confirmation password do not match.").addClass("dialog-validation-error");
        return false;
    }

    return true;
}

function LoginValid() {
    var userNameElement = $("#modalLoginUserName");
    var errorMessageElement = $("#loginModalValidationTips");

    if (!CheckUserNameValid(userNameElement, errorMessageElement) ) {
        return false;
    }

    var passwordElement = $("#modalLoginPassword");

    if (!CheckPasswordValid(passwordElement, errorMessageElement) ) {
        return false;
    }

    return true;
}

$(function () {
    AdjustBodyHeight();
    //alert(window.location.pathname);
    if (CurrentUserSetting === undefined || CurrentUserSetting === null || $.isEmptyObject(CurrentUserSetting)) {
        var url = window.location.pathname;
        //alert(window.location.pathname);
        if (url === "/" ||
            url === "/MyRecipes/Index" ||
            url === "/Home/GetSpecificRandomHomePage") {
            $("#viewTabs").data('view', "grid");
            HideRightColumn();
        }
        else if (url.match(/[0-9]$/)) {
            //alert(window.location.pathname);
            $("#viewTabs").data('view', "detail");
        }
        else {
            //alert(window.location.pathname);
            $("#viewTabs").data('view', "list");
        }
    }
    else if (CurrentUserSetting.View === "list") {
        $("#viewTabs").data('view', "list");
        ShowRightColumn();
    }
    else if (CurrentUserSetting.View === "detail") {
        $("#viewTabs").data('view', "detail");
        ShowRightColumn();
    }
    else {
        $("#viewTabs").data('view', "grid");
        HideRightColumn();
    }
    
    if ($(window).width() < 1010) {
        $("#tag-line").html("advanced recipe search");
    }

    $("#tag-line").css("display", "block");
    //ShowOrHideShowRecipeDetailsButton();
    // AssignWidthOfLowerTabs();

    $("#promptToLoginForm").dialog({
        autoOpen: false,
        height: 225,
        width: 400,
        modal: true
    });
    $("#promptToLoginForm").attr("display", "block");

    $("#modalLoginDialog").dialog({
        autoOpen: false,
        height: 400,
        width: 400,
        modal: true,
        open: function () {
            $("loginModalValidationTips").text("");
        },
        buttons: {
            "Login": function () {
                //var saveRecipeData = $("#modalLoginDialog").data("saveRecipe");
                var redirectPage = GetCurrentPagePath();
                $("#modalLoginDialog").data("redirect", redirectPage);

                _gaq.push(['_trackEvent', "login link pressed in #modalLoginDialog", "xxx"]);  //good

                if (LoginValid()) {
                    $.post("/account/ModalLogon", $("#modalLoginForm").serialize())
                    .done(function (responseText) {
                        if (responseText != null &&
                            responseText.indexOf("Error-") == 0) {
                            $("#registerModalValidationTips").text(responseText).addClass("dialog-validation-error");
                        }
                        else {
                            $(this).dialog("close");
                            var saveRecipeData = $("#modalLoginDialog").data("saveRecipe");
                            var redirectPage = $("#modalLoginDialog").data("redirect");
                            if (saveRecipeData) {
                                performSaveRecipe(saveRecipeData.RecipeId, saveRecipeData.Title, saveRecipeData.Organization, saveRecipeData.Summary, saveRecipeData.UrlAtOrg, saveRecipeData.UrlAtYumDom, redirectPage);
                            }
                            else {
                                if (redirectPage != null) {
                                    window.location.href = redirectPage;
                                }
                            }
                        }
                    })
                    .fail(function (xhr) {

                    })
                    .always(function (responseText) {
                        $("#modalLoginDialog").data("saveRecipe", "");
                        $("#modalLoginDialog").data("redirect", "");

                        if (responseText != null &&
                            responseText.indexOf("Error-") == 0) {
                            $("#loginModalValidationTips").text(responseText).addClass("dialog-validation-error");
                        }
                    });
                }
            },
            Cancel: function () {
                $("#modalLoginDialog").data("saveRecipe", "");
                $("#modalLoginDialog").data("redirect", "");
                $(this).dialog("close");
            }
        },
        close: function (evt) {
            $("#loginModalValidationTips").removeClass("dialog-validation-error");
            $("#modalLoginUserName").attr("value", "");
            $("#modalLoginPassword").attr("value", "");
        }
    });
    $("#modalLoginDialog").attr("display", "block");

    $("#modalLoginLink").click(function (event) {
        event.preventDefault();

        $("#promptToLoginForm").dialog("close");
        $("#modalLoginDialog").dialog("open");
    });

    $("#modalRegisterDialog").dialog({
        autoOpen: false,
        height: 450,
        width: 450,
        modal: true,
        open: function () {
            $("#registerModalValidationTips").text("")
        },
        buttons: {
            "Sign up": function () {
                //var saveRecipeData = $("#modalLoginDialog").data("saveRecipe");
                var redirectPage = GetCurrentPagePath();
                $("#modalLoginDialog").data("redirect", redirectPage);

                _gaq.push(['_trackEvent', "sign up link pressed in #modalRegisterDialog", "xxx"]); //good

                if (SignUpValid()) {
                    $.post("/account/ModalRegister", $("#modalRegisterForm").serialize())
                    .done(function (responseText) {
                        if (responseText != null &&
                            responseText.indexOf("Error-") == 0) {
                            $("#registerModalValidationTips").text(responseText).addClass("dialog-validation-error");
                        }
                        else {
                            $(this).dialog("close");

                            var saveRecipeData = $("#modalLoginDialog").data("saveRecipe");
                            var redirectPage = $("#modalLoginDialog").data("redirect");
                            if (saveRecipeData) {
                                performSaveRecipe(saveRecipeData.RecipeId, saveRecipeData.Title, saveRecipeData.Organization, saveRecipeData.Summary, saveRecipeData.UrlAtOrg, saveRecipeData.UrlAtYumDom, redirectPage);
                            }
                            else {
                                if (redirectPage != null) {
                                    window.location.href = redirectPage;
                                }
                            }
                        }
                    })
                    .fail(function (xhr) {

                    })
                    .always(function (responseText) {
                        $("#modalLoginDialog").data("saveRecipe", "");
                        $("#modalLoginDialog").data("redirect", "");

                        if (responseText != null &&
                            responseText.indexOf("Error-") == 0) {
                            $("#registerModalValidationTips").text(responseText).addClass("dialog-validation-error");
                        }
                    });
                }

            },
            Cancel: function () {
                $("#modalLoginDialog").data("saveRecipe", "");
                $("#modalLoginDialog").data("redirect", "");

                $(this).dialog("close");
            }
        },
        close: function (evt) {
            $("registerModalValidationTips").removeClass("dialog-validation-error");
            $("#modalRegisterUserName").attr("value", "");
            $("#modalRegisterEmail").attr("value", "");
            $("#modalRegisterPassword").attr("value", "");
            $("#modalRegisterConfirmPassword").attr("value", "");
        }
    });
    $("#modalRegisterDialog").attr("display", "block");

    $("#modalRegisterLink").click(function (event) {
        event.preventDefault();

        $("#promptToLoginForm").dialog("close");
        $("#modalRegisterDialog").dialog("open");
    });

    $.ajaxSetup({
        // Disable caching of AJAX responses
        cache: false
    });

    $("#searchTabMenuItem").click(function (event) {
        event.preventDefault();
        if (currentTab === "search-tab") {
            return;
        }
        window.location.href = "/";

        _gaq.push(['_trackEvent', "#searchTabMenuItem clicked", 'xxx']); //good
    });

    $("#myRecipesTabMenuItem").click(function (event) {
        event.preventDefault();
        if (currentTab === "my-recipes-link") {
            return;
        }

        if ($("#loginButton").html() === "Login") {
            //alert("Please login or signup before saving any recipes. Thank you");       
            $("#promptToLoginForm").dialog("open");
            return;
        }
        var localView = $("#viewTabs").data('view');
        window.location.href = "/MyRecipes/Index?viewToReturn=grid&requestedItemsPerPage=" + resultsPerPage;
        _gaq.push(['_trackEvent', "#myRecipesTabMenuItem clicked", 'xxx']); //good
    });

    $("#gridTab").click(function (event) {
        $("#viewTabs").data('view', "grid");
        if (currentTab === "search-tab") {
            SearchViewTabChanged();
        }
        else if (currentTab === "my-recipes-link") {
            MyRecipesViewTabChanged();
        }
        
        HideRightColumn();

        $("#gridTab").addClass("tab-button-selected");
        $("#listTab").removeClass("tab-button-selected");
        $("#detailTab").removeClass("tab-button-selected");

        _gaq.push(['_trackEvent', "#gridTab clicked", 'xxx']); //good
    });

    $("#listTab").click(function (event) {
        var previousView = $("#viewTabs").data('view');
        $("#viewTabs").data('view', "list");

        if (previousView === "grid") {
            if (currentTab === "search-tab") {
                SearchViewTabChanged();
            }
            if (currentTab === "my-recipes-link") {
                MyRecipesViewTabChanged();
            }
            ShowRightColumn();
        }
        else {
            StackSocialButtons();
        }
        $("#listTab").addClass("tab-button-selected");
        $("#gridTab").removeClass("tab-button-selected");
        $("#detailTab").removeClass("tab-button-selected");

        ShowHideRecipeDetails();

        _gaq.push(['_trackEvent', "#listTab clicked", 'xxx']); //good
    });

    $("#detailTab").click(function (event) {
        var previousView = $("#viewTabs").data('view');
        $("#viewTabs").data('view', "detail");

        if (previousView === "grid") {
            if (currentTab === "search-tab") {
                SearchViewTabChanged();
            }
            if (currentTab === "my-recipes-link") {
                MyRecipesViewTabChanged();
            }
            ShowRightColumn();
        }
        else {
            StackSocialButtons();
        }
        _gaq.push(['_trackEvent', "#detailTab clicked", "xxx"]); //good
        $("#detailTab").addClass("tab-button-selected"); //        }
        $("#gridTab").removeClass("tab-button-selected");
        $("#listTab").removeClass("tab-button-selected");
        ShowHideRecipeDetails();
    });

    //$("#viewTabs").data("SocialButtonsStack", "Vert");
    //StackSocialButtons();

    $("#logo").click(function (event) {
        _gaq.push(['_trackEvent', "#logo clicked", 'xxx']); //good
    });

    fbPageOptions = { beforeItemStart: recipeToolTipShowing }; //, afterItemEnd: recipeToolTipDismissed };

    //FlashThumbs();
});                                                                                 //$(function ()



