$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
	// If url is present and isn't an absolute path, update it to point to 
	// bazooka's universal ajax action handler
	if((options.url !== null) && (options.url !== undefined) && !options.url.match(/^((http|https):)?\/\//)) {
		options.url = URL_CMSROOT + 'ajax/' + options.url;
	}
	
	// Handle calls that specifiy the _target parameter
	if (options.data !== null) {
		var queryString = options.data;
	} else {
		// if options.data is null we should look for a get string
		var queryString = $.param.querystring(options.url);
	}
	if (queryString) {
		var params = $.deparam(queryString);
		if((params._target !== null) && (params._target !== undefined)) {
			// Add success handler
			// NOTE: Other defined success handlers still get called,
			// eg. $.ajaxSuccess() or handler on $.ajax call
			jqXHR.success(function(data) {
				$('#'+params._target).html(data);
			});
		}
	}
});

jQuery.fn.extend({
	setupAjaxLinks: function() {
		$('a.ajax', this).click(function() {
			var target = this.target;

			$.post(this.href, {}, function (html) {
				$('#'+target).html(html).setupAjaxLinks();
				});
			return false;
		});
	}
});

$(document).ready(function() {
	$('body').setupAjaxLinks();
});

