InterviewAjax = {};
InterviewAjax._queue = {};
InterviewAjax._queuePosition = 0;
InterviewAjax.loading = false;


InterviewAjax.makeAjaxCall = function (p_sUrl, p_xArgs, p_xCallback) {
	InterviewAjax.loading = true;
	
	l_xCall = {};
	l_xCall.url = p_sUrl;
	l_xCall.args = p_xArgs;
	l_xCall.callback = p_xCallback;

	InterviewAjax._queue[InterviewAjax._queuePosition] = l_xCall;
	InterviewAjax.doAjax(InterviewAjax._queuePosition);

	InterviewAjax._queuePosition++;
}


InterviewAjax.doAjax = function (p_nQueuePosition) {
	l_xCall = InterviewAjax._queue[p_nQueuePosition];

	if (l_xCall.args.overlayTarget) {
		InterviewAjax.setOverlay(l_xCall.args.overlayTarget);
	}

	$.ajax({
		type:	"POST",
		url:		l_xCall.url,
		data:	l_xCall.args.data,
		success:	function (p_sMsg) {
			InterviewAjax.onAjaxCallReturned(p_nQueuePosition, p_sMsg);
		}
	});
}


InterviewAjax.onAjaxCallReturned = function (p_nQueuePosition, p_sMsg) {
	l_xCall = InterviewAjax._queue[p_nQueuePosition];

	if (l_xCall.callback) {
		l_xCall.callback(p_sMsg);
	}

	InterviewAjax._queue[p_nQueuePosition] = null;
	
	InterviewAjax.loading = false;
}


InterviewAjax.setOverlay = function (p_sTarget) {
	alert("set overlay for ["+ p_sTarget +"]");
}