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


jQuery.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} })
 
function _ajax_request(url, data, callback, type, method) {
    if (jQuery.isFunction(data)) {
        callback = data;
        data = {};
    }
    return jQuery.ajax({
        type: method,
        url: url,
        data: data,
        success: callback,
        dataType: type
        });
}
 
jQuery.extend({
    put: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'PUT');
    },
    delete_: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'DELETE');
    }
});
 
jQuery.fn.submitWithAjax = function() {
  this.unbind('submit', false);
  this.submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  })
 
  return this;
};
 
//Send data via get if JS enabled
jQuery.fn.getWithAjax = function() {
  this.unbind('click', false);
  this.click(function() {
    $.get($(this).attr("href"), $(this).serialize(), null, "script");
    return false;
  })
  return this;
};
 
//Send data via Post if JS enabled
jQuery.fn.postWithAjax = function() {
  this.unbind('click', false);
  this.click(function() {
    $.post($(this).attr("href"), $(this).serialize(), null, "script");
    return false;
  })
  return this;
};
 
 
jQuery.fn.putWithAjax = function() {
  this.unbind('click', false);
  this.click(function() {
    $.put($(this).attr("href"), $(this).serialize(), null, "script");
    return false;
  })
  return this;
};
 
 
 
jQuery.fn.deleteWithAjax = function() {
  this.removeAttr('onclick');
  this.unbind('click', false);
  this.click(function() {
    $.delete_($(this).attr("href"), $(this).serialize(), null, "script");
    return false;
  })
  return this;
};
 
 
//This will "ajaxify" the links
function ajaxLinks(){
    //$('.ajaxForm').submitWithAjax();
    //$('a.get').getWithAjax();
    //$('a.post').postWithAjax();
    //$('a.put').putWithAjax();
    //$('a.delete').deleteWithAjax();
	$('a#report-abuse').getWithAjax();
	
	// slides out the "buy the game" links on the home page and my world page
	$("a.show-buy-links").click(function(){
		//$("#buy-links").show();
		$("#buy-links").slideToggle("normal");

	});
}
 
$(document).ready(function() {
 
	// All non-GET requests will add the authenticity token
  	// if not already present in the data packet
 	$(document).ajaxSend(function(event, request, settings) {
		if (typeof(window.AUTH_TOKEN) == "undefined") return;
       	// IE6 fix for http://dev.jquery.com/ticket/3155
       	if (settings.type == 'GET' || settings.type == 'get') return;
 
       	settings.data = settings.data || "";
       	settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(window.AUTH_TOKEN);
	});
   
  	ajaxLinks();
	
	////////////////////////////////////////
	// Tooltips using JQuery QTip plugin! //
	////////////////////////////////////////
	
	$('.fb-tooltip').qtip({
   		content: 'NEW! Your Facebook friends will be able to take a look at your World and listen to your Jukebox, ' +  
			'even if they are not members of Club Treasure World!',
		position: {
	      	corner: {
	        	target: 'topMiddle',
	         	tooltip: 'bottomLeft'
	      	}
	   	},
		style: {
      		padding: 5,
	      	textAlign: 'center',
			fontWeight: 'bold',	
			fontSize: '14px',
      		tip: 'bottomLeft',
      		name: 'light' // Inherit the rest of the attributes from the preset style
   		},

   		show: 'mouseover',
   		hide: 'mouseout'
	})
});