

jQuery(document).ready(function($){



  // @todo: use $.on in future versions (needs jQuery 1.7+)

  $(document).delegate('.ratings:not(.rated) a', 'click', function(event){



    event.preventDefault();



    var control = $(this).parents('.ratings');



    $.ajax({

      url: (typeof atom_config !== 'undefined') ? atom_config.blog_url :  post_ratings.blog_url,

      type: 'GET',

      dataType: 'json',

      context: this,



      data: ({

        post_id: control.data('post'),

        rate: $(this).parents('li').index(),

      }),



      beforeSend: function(){

        control.removeClass('error').addClass('loading');

      },



      error: function(){

        control.addClass('error');

      },



      success: function(response){



        // we have an error, display it

        if(response.error){

          control.addClass('error').find('.meta').html(response.error);

          $('a', control).remove();

          return;

        }



        // no error, replace the control html with the new one

        control.replaceWith($(response.html));



        // other plugins can hook into this event.

        // (the response object contains more info than we used here)

        control.trigger('rated_post', response);

      }

    });



    return true;



  });



});

