$(document).ready(function($){
	$.extend({
		loadFromServer: function(options) {

			if(options.query_function === null) {
				console.log("No query function set");
				return false;
			} 

			options = $.extend({
				'container' : 'tbody',
				'script' : false,
				'js_callback' : false,
				'query_size' : 10,
				'size' : 0,
				'args' : false
			}, options);

			var args = {
				'action' : 'load_more_api',
				'query_function' : options.query_function,
				'query_size' : options.query_size,
				'size' : options.size,
				'args' : options.args,
			}

			$.ajax({
				type: 'POST',
			    url: 'app/includes/ajax.php',
			    data: args,
			}).done(function(data){
				try {

					data = JSON.parse(data);
					
					if(options.js_callback !== false && options.js_callback !== null && options.js_callback !== '') {
						try {
							eval('$.' +options.js_callback+ "(data)");
						}
						catch(err) {
							try {
								eval('$(document).' +options.js_callback+ "(data)");
							}
							catch(err) {
								console.log(err);
							}
							finally{}
						}
						finally{}
						return;
					}
				}
				catch(err) {
					console.log(err);
					console.log(data);
				}
				finally {
					// console.log(data);
				}
			}).fail(function() {
				$.loadFromServer(options);
			})
		},
	})
})