// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

//---------------------------------------------------------------------
var AjaxQueue = {
	batchSize: 1,
	urlQueue: [],
	elementsQueue: [],
	optionsQueue: [],
	setBatchSize: function(bSize){
		this.batchSize = bSize;
	},
	push: function(url, options, elementID){
		this.urlQueue.push(url);
		this.optionsQueue.push(options);
		if(elementID!=null){
			this.elementsQueue.push(elementID);
		} else {
			this.elementsQueue.push("NOTSPECIFIED");
		}

		this.processNext();
	},
	processNext: function() {
		if(Ajax.activeRequestCount < AjaxQueue.batchSize)
		{	
			if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") {
				new Ajax.Request(AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
				var junk = AjaxQueue.elementsQueue.shift();
			} else {
				new Ajax.Updater(AjaxQueue.elementsQueue.shift(), AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
			}
		
		}
	}
};
Ajax.Responders.register({
  onComplete: AjaxQueue.processNext
});
