/* CLASS REQUEST TRANSACTIONS MANAGER
***************************************************************************************************/
var RequestTransactionsManager = Class.create({
	initialize: function(element)
	{
		this.element = element;
		this.openTransactionsCount = 0;
		this.hasActive = false;
	},

	_complete: function()
	{
//		try {
			this.element.fire('RequestTransactionsManager:transactionsComplete');
//		} catch (exc) {
//			e('RequestTransactionsManager:transactionsComplete');
//		}
	},

	add: function()
	{
		this.openTransactionsCount++;
		this.hasActive = true;
//		try {
			this.element.fire('RequestTransactionsManager:startTransaction');
//		} catch (exc) {
//			e('RequestTransactionsManager:startTransaction');
//		}
	},

	remove: function()
	{
		this.openTransactionsCount--;
//		try {
			this.element.fire('RequestTransactionsManager:finishTransaction');
//		} catch (exc) {
//			e('RequestTransactionsManager:finishTransaction');
//		}

		if(this.openTransactionsCount <= 0){
			this.openTransactionsCount = 0;
			this.hasActive = false;
			this._complete();
		}
	},

	changeElement: function(element)
	{
		this.element = $(element.id);
	}
});
