/*
    window_review_recipe.js Popup for member recipe to review
    Dependencies : Prototype JavaScript framework 1.6
                   utilities.js
*/

var SOSCuisine = SOSCuisine || {};
SOSCuisine.WindowRecipeReview = Class.create(SOSCuisine.BaseWindow,
{
    options: {},
    args: null,

    initialize: function($super)
    {
        $super("window_recipe_review");
    },

    loadContents: function(args)
    {
        this.container.style.width = "600px";
        this.container.style.height = "300px";
        this.args = args;

        SOSCuisine.recipeReview.recipeId = this.args.recipeId;
        SOSCuisine.recipeReview.mode = "popup";
        SOSCuisine.recipeReview.recipeSaveEnabledCallback = this.recipeSaveEnabledCallback;

        this.load("recipe_review_popup.php", { recipe_id: this.args.recipeId, force_rating_selection: args.forceRatingSelection })
    },

    showMyReviewTab: function(obj)
    {
        var recipeReviewPopupMyReview = $('recipeReviewPopupMyReview');
        var recipeReviewPopupMyReviewTab = $('recipeReviewPopupMyReviewTab');
        var recipeReviewPopupMyNotes = $('recipeReviewPopupMyNotes');
        var recipeReviewPopupMyNotesTab = $('recipeReviewPopupMyNotesTab');

        if (!recipeReviewPopupMyReviewTab.hasClassName("selected"))
        {
            recipeReviewPopupMyNotesTab.removeClassName("selected");
            recipeReviewPopupMyNotes.hide();

            recipeReviewPopupMyReviewTab.addClassName("selected");
            recipeReviewPopupMyReview.show();
        }
    },

    onLoadingCompleted: function()
    {
        this.container.addClassName("loading-complete");
    },

    hide: function($super)
    {
        this.container.removeClassName("loading-complete");
        $super();
    },

    showMyNotesTab: function(obj)
    {
        var recipeReviewPopupMyReview = $('recipeReviewPopupMyReview');
        var recipeReviewPopupMyReviewTab = $('recipeReviewPopupMyReviewTab');
        var recipeReviewPopupMyNotes = $('recipeReviewPopupMyNotes');
        var recipeReviewPopupMyNotesTab = $('recipeReviewPopupMyNotesTab');

        if (!recipeReviewPopupMyNotesTab.hasClassName("selected"))
        {
            recipeReviewPopupMyReviewTab.removeClassName("selected");
            recipeReviewPopupMyReview.hide();

            recipeReviewPopupMyNotesTab.addClassName("selected");
            recipeReviewPopupMyNotes.show();
        }
    },

    recipeSaveEnabledCallback: function()
    {
        $('recipeReviewPopupSaveButton').disabled = false;
    },

    onSubmitClick: function()
    {
        $('recipe_rating_save_button').disabled = false;
        SOSCuisine.recipeReview.saveRecipeRating();
        SOSCuisine.recipeReview.saveRecipeNotes();

        if (this.args.callback && this.args.callback.success)
        {
            this.args.callback.success(this.args);
        }

        this.hide();
    },

    onCancelClick: function($super)
    {
        if (this.args.callback && this.args.callback.cancel)
        {
            this.args.callback.cancel(this.args);
        }
        this.hide();
    }
});

SOSCuisine.common.addLoadEvent(function() { SOSCuisine.windowRecipeReview = new SOSCuisine.WindowRecipeReview() });
