$(function() {
  $('.send-to-a-friend').each(function() {
    $(this).find('a.send-to-friend-button, a.cancel').click(function() {
      $(this).closest('.send-to-a-friend').find('.form').toggle().find('input.text, textarea').val('');
      return false;
    });
    
    $(this).find('form').submit(function() {
      errors = false;
      var sender_name = '', sender_address = '', recipient_address = '', message = '';
      if ((sender_name = $(this).find('.your-name input').val().replace(/\s+/, '')) == '') {
        errors = true;
        $(this).find('.your-name input').after('<p class="errors">Please enter your name</p>')
      } else {
        $(this).find('.your-name input .errors').remove();
      }
      if ((sender_address = $(this).find('.your-email input').val().replace(/\s+/, '')) == '') {
        errors = true;
        $(this).find('.your-email input').after('<p class="errors">Please enter your email address</p>')
      } else {
        $(this).find('.your-email input .errors').remove();
      }
      if ((recipient_address = $(this).find('.friend-email input').val().replace(/\s+/, '')) == '') {
        errors = true;
        $(this).find('.friend-email input').after('<p class="errors">Please enter your friend\'s email address</p>')
      } else {
        $(this).find('.friend-email input .errors').remove();
      }
      
      if (!errors) {
        var $form = $(this);
        $(this).fadeOut().siblings('.sending').fadeIn();
        $.ajax({
          url:$(this).attr('action'),
          type:'post',
          data:{
            'referral[sender][name]': sender_name,
            'referral[sender][email]': sender_address,
            'referral[recipients]': recipient_address,
            'referral[message]': $(this).find('textarea').val(),
            'referral[title]':$('title').text(),
            'referral[widget_id]': $form.find('#referral_widget_id').val()
          },
          success:function() {
            $form.siblings('.sending').fadeOut();
            $form.siblings('.thanks').fadeIn().find('strong.email').text(recipient_address);
          }
        });
      }
      return false;
    });
  });
});
