jQuery.ajaxSetup({ 
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
})

$(document).ajaxSend(function(event, request, settings) {
  if (typeof(AUTH_TOKEN) == "undefined") return;
  // settings.data is a serialized string like "foo=bar&baz=boink" (or null)
  settings.data = settings.data || "";
  settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
});

function form_alert (el, msg) {
    if ( msg == null || msg.length == 0 )
    msg = 'Are you sure?';
  ($.prompt(msg,
           { buttons: { Ok: true, Cancel: false },
            callback: function(v, m){if (v) {el.form.submit()};},
          }))
}

function prompt_alert (url, el, method, forgery_token, auth_token, msg) {
    if ( msg == null || msg.length == 0 )
    msg = 'Are you sure?';
    else
    msg = msg;
    if ( el == null || method == null || forgery_token == null || auth_token == null ||
         el.length == 0 || method.length == 0 || forgery_token.length == 0 || auth_token.length == 0 ) {
         
    method = 'get';
    }
  ($.prompt(msg,
           { buttons: { Ok: true, Cancel: false },
            callback: function(v, m){if (v) {js_redirect(url, el, method, forgery_token, auth_token)};},
          }))
}

function js_redirect (url, el, method, forgery_token, auth_token) {
    if ( method == 'get' )
      window.location.href = url;
    else {
      var f = document.createElement('form');
      f.style.display = 'none';
      el.parentNode.appendChild(f);
      f.method = 'POST'; f.action = url;
      var m = document.createElement('input');
      m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', method);
      f.appendChild(m);
      var s = document.createElement('input');
      s.setAttribute('type', 'hidden'); s.setAttribute('name', forgery_token); s.setAttribute('value', auth_token);
      f.appendChild(s);f.submit(); return false;
    }
}

jQuery.fn.fadeToggle = function(speed, easing, callback) {
   return this.animate({opacity: 'toggle'}, speed, easing, callback);

};

