function index_interface(_url) {
	this.d_url = _url;
	this.d_queue = new Array();
	this.d_data = false;
	this.d_active = false;
}
index_interface.prototype.query = II_query;
index_interface.prototype.create = II_create_query;
index_interface.prototype.cycle = II_cycle_queue;
index_interface.prototype.check = II_ajax_check;

function II_query(_agent, _data, _callback) {
	with (this) {
		this.d_queue.push(this.create(_agent, _data, _callback));
		cycle();
	}	
}

function II_create_query(_agent, _query, _callback) {
	with(this) {
		var o_query = new Object();
		o_query.agent = _agent;
		o_query.query = _query;
		o_query.callback = _callback;
		return o_query;
	}
}

function II_cycle_queue() {
	with(this) {
		if(!this.d_active&&this.d_queue.length>0) {
			var t_active = this.d_queue.shift();
			this.d_active = t_active;
			$.ajax({
				type: 'POST',
				datatype: 'json',
				url: d_url,
				data: ({
					agent: t_active.agent,
					arguments: t_active.query['data']
				}),
				success: function(myreturn) {
				myreturn = check(myreturn);
					d_active = false;
					if(myreturn) {
						t_active.callback(myreturn);
					}
					cycle();
				}
			});
			
		}
	}
}

function II_ajax_check(_data) {
	var _alpha = trim(_data);
	try{
		var ret = $.parseJSON(_data);
		return ret;
	}catch(error) {
		alert('SCRIPT EXCEPTION - ERRORCODE: '+error);
	}
}
