var SeatHandler = Class.create({
	initialize: function() {
	
	}
});

SeatHandler.holdSeats = function(eventCode,strSeats)
{
	new Ajax.Request('/checkout/ajax/holdSeatsAjax.php' ,{
		method:'post',
		parameters:'?eventCode='+eventCode+"&seats="+strSeats,
		onSuccess:function(message){
			var responseJSON = message.responseText.evalJSON();
			
			if(responseJSON.errors.length>0)
				SeatHandler.handleErrors(responseJSON.errors);
			else
			{
				$('popup-overlay').hide();
				$('seatmapPopup').hide();
				window.seatmap.stopRefreshAvailability();
				var response = responseJSON.message[0];
				SeatView.showSeatsForTwoStepPackage(response.eventCode,response);
				SeatHandler.addSeatsHeld(response.eventCode);
			}
		},
		onFailure:function(response) {SeatHandler.handleErrors();}
	});
}

SeatHandler.releaseSeats = function(eventCode)
{
	new Ajax.Request('/checkout/ajax/releaseSeat.php' ,{
		method:'post',
		asynchronous:false,
		parameters:'?eventCode='+eventCode,
		onSuccess:function(message){
			var responseJSON = message.responseText.evalJSON();
			var response =  responseJSON.message[0];
			SeatHandler.removeSeatsHeld(response.eventCode[0]);
			SeatView.restoreBestAvailableDropDowns(response.eventCode[0]);
		}
		});
};

SeatHandler.handleErrors = function(errors)
{
	// TODO: review error handling
	// FIXME: some errors like XMRSession could not be found on server should note make it possible to search again
	$('cart_checkout_button').disabled = false;
	
	if (errors)
		window.seatmap.displayStartupErrorMessage(parseInt(errors[0].code,10), errors[0].message);
	else
		window.seatmap.displayStartupErrorMessage(100);
}

SeatHandler.addSeatsHeld=function(eventId)
{
	//check if the hash exists
	if(SeatHandler.seatsHeld == undefined)
		SeatHandler.seatsHeld = new Hash();
	SeatHandler.seatsHeld.set(eventId,true);
}


SeatHandler.removeSeatsHeld=function(eventId)
{
	SeatHandler.seatsHeld.unset(eventId);
}

SeatHandler.hasHeldSeats=function(eventId)
{
	if(SeatHandler.seatsHeld == undefined)
		SeatHandler.seatsHeld = new Hash();
	
	if(SeatHandler.seatsHeld.get(eventId) == true)
		return true;
	else
		return false;
	
}




