(function($){
	
	$.services = function(data, callback) {

		var serviceSuccess,
			serviceError;

		serviceSuccess = function(response, textStatus, xhr) {

			if(xhr.status)
			{
				if(typeof response.success == 'undefined' || response.success === false) 
				{
					alert('Service was unsuccessful\n\nReturned message:\n'+response.errormessage);
				}
				else 
				{
					if(typeof callback == 'function') 
					{
						callback(response.output);
					} 					
				}
			}
			else 
			{
				//Ajax call was aborted, do nothing
			}
		};
		
		serviceError = function(request, status, error) {
			alert(status+'\n\n'+error);
		};
	
		if(typeof data.input == 'object') { 
			data.input = $.makeArray(data.input)[0];
		}
		
		return $.ajax({
			type: 'POST',
			url: '/services.php',
			data: data,
			success: serviceSuccess,
			dataType: 'json',
			error: serviceError
		});
		
	};
	
})(jQuery);
