// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

$.fn.submitWithAjax = function() {
  this.submit(function() {
    $.post($(this).attr("action"), $(this).serialize(), null, "script");
    return false;
  })
};

$(function() {
  // All A tags with class 'get', 'post', 'put' or 'delete' will perform an ajax call
  $('a.ajaxget').livequery('click', function() {
    var link = $(this);
    $.get(link.attr('href'), function(data) {
      if (link.attr('ajaxtarget'))
        $(link.attr('ajaxtarget')).html(data);
    }, null, "script");
    return false;
  }).attr("rel", "nofollow");
 
  $('a.ajaxpost').livequery('click', function() {
    var link = $(this);
    $.post($(this).attr('href'), "_method=post", function(data) {
      if (link.attr('ajaxtarget'))
        $(link.attr('ajaxtarget')).html(data);
    }, null, "script");
    return false;
  }).attr("rel", "nofollow");
 
  $('a.ajaxput').livequery('click', function() {
    var link = $(this);
    $.post($(this).attr('href'), "_method=put", function(data) {
      if (link.attr('ajaxtarget'))
        $(link.attr('ajaxtarget')).html(data);
    }, null, "script");
    return false;
  }).attr("rel", "nofollow");
 
  $('a.ajaxdelete').livequery('click', function() {
    var link = $(this);
    $.post($(this).attr('href'), "_method=delete", function(data) {
      if (link.attr('ajaxtarget'))
        $(link.attr('ajaxtarget')).html(data);
    }, null, "script");
    return false;
  }).attr("rel", "nofollow");
 
  $('a.get, a.post, a.put, a.delete').removeAttr('onclick');
  
});

// Login form expansion
$(function() {
  $('#login_link').livequery('click', function() {
    $("#login_form").slideToggle('slow');
    return false;
  }).attr("rel", "nofollow");
});

// Loading notification on mix submission
$(function() {
  $(".new_mix, .edit_mix").submit(function() {
    $(".loading").slideToggle('slow');
  })
});

// Loading notification on ajax requests
$(function() {
  $('.loading')
    .ajaxStart(function() {
        $(this).slideToggle('slow')
    })
    .ajaxStop(function() {
        $(this).slideToggle('slow');
    })
  ;
});
