(function() {
  jQuery(window).load(function() {
    var disableRating, enableRating, form, jgrowDefaults, onCaptchaFilled, onVoteFailed, onVoteRequested, onVoteSuccess, sendVote, setupVoting;
    form = jQuery("form.rating");
    jgrowDefaults = {
      animateOpen: {
        height: 'show'
      },
      position: 'top-left'
    };
    enableRating = function() {
      setupVoting();
      return $.jGrowl("Você já poderá votar", jgrowDefaults);
    };
    disableRating = function() {
      jQuery('img.vote-up,img.vote-down', form).css("opacity", 0.4);
      return jQuery('img.vote-up,img.vote-down', form).click((function(e) {
        e.preventDefault();
        $.jGrowl("Olá! Para votar, é necessário assistir ao filme!", jgrowDefaults);
        return false;
      }));
    };
    onVoteRequested = function(likes) {
      var panel, self;
      if (isLoggedIn()) {
        return sendVote(likes, false);
      } else {
        self = this;
        panel = new window.CaptchaPanel(function() {
          return onCaptchaFilled();
        }, "/captcha/show/", $(form).attr("action"), {
          likes: likes
        }, "Votar!");
        panel.show();
        return false;
      }
    };
    onCaptchaFilled = function(res) {
      return onVoteSuccess();
    };
    setupVoting = function() {
      jQuery('img.vote-up,img.vote-down', form).css("opacity", 1).unbind("click");
      jQuery('img.vote-up', form).click((function(e) {
        e.preventDefault();
        onVoteRequested(true);
        return false;
      }));
      return jQuery('img.vote-down', form).click((function(e) {
        e.preventDefault();
        onVoteRequested(false);
        return false;
      }));
    };
    onVoteSuccess = function() {
      jQuery('form.rating').html('<p>Voto registrado</p>');
      return $.jGrowl("Seu voto foi registrado, muito obrigado!");
    };
    onVoteFailed = function() {
      return console.log("bad vote");
    };
    sendVote = function(likes, isCaptchaForm) {
      var data;
      if (isCaptchaForm == null) {
        isCaptchaForm = false;
      }
      data = {
        likes: likes
      };
      if (isCaptchaForm) {
        data.recaptcha_challenge_field = $("recaptcha_challenge_field", anonimousVoteForm).val();
        data.recaptcha_response_field = $("recaptcha_response_field", anonimousVoteForm).val();
      }
      return jQuery.ajax({
        type: "POST",
        dataType: 'json',
        url: jQuery('form.rating').attr('action'),
        data: {
          likes: likes
        },
        success: function(res) {
          if (res.success) {
            return onVoteSuccess();
          } else {
            return onVoteFailed();
          }
        }
      });
    };
    window.enableRating = enableRating;
    return disableRating();
  });
}).call(this);

