SeasonBuybox.hasPurchased = false;
SeasonBuybox.isCustomerRecognized = false;

function SeasonBuybox() {}

SeasonBuybox.Initialize = function(isCustomerRecognized) {
	SeasonBuybox.isCustomerRecognized = isCustomerRecognized;

	var purchaseButton = getElem("season_button");
	if (purchaseButton) { addHandler(purchaseButton, "click", createClosure(null, SeasonBuybox.StartSeasonPurchase)); }

	var continueButton = getElem("season_continue");
	if (continueButton) { addHandler(continueButton, "click", createClosure(null, SeasonBuybox.SubmitSeasonPurchase)); }

	var cancelButton = getElem("season_cancel");
	if (cancelButton) { addHandler(cancelButton, "click", createClosure(null, SeasonBuybox.CancelSeasonPurchase)); }

	var confirmDialog = getElem("confirm_season_dialog");
	if (confirmDialog) { addHandler(confirmDialog, "click", createClosure(null, SeasonBuybox.ShowClientSelector)); }

	var cancelDialog = getElem("cancel_season_dialog");
	if (cancelDialog) { addHandler(cancelDialog, "click", createClosure(null, SeasonBuybox.HideSeasonDialog)); }

	var downloadSelector = getElem("download_to_selector_season");
	if (downloadSelector) { downloadSelector.style.display = "inline"; }
}

SeasonBuybox.StartSeasonPurchase = function() {
	if (SeasonBuybox.hasPurchased) { return; }

	if (episodeBuybox && episodeBuybox.isAnyEpisodeSelected()) {
		var button = getElem("season_button");
		
		if (button) {
			var offsetContainer = getElem("season_offset_container");
			var position = findPos(button);
			var offset = findPos(offsetContainer);

			var confirmDialog = getElem("season_confirm_container");

			confirmDialog.style.display = "block";
			confirmDialog.style.left = position[0] - offset[0] + (button.offsetWidth / 2) - confirmDialog.offsetWidth;
			confirmDialog.style.top = position[1] - offset[1] + (button.offsetHeight / 2);
		}
	} else {
		SeasonBuybox.ShowClientSelector();
	}
}

SeasonBuybox.HideSeasonDialog = function() {
	var confirmDialog = getElem("season_confirm_container");
	confirmDialog.style.display = "none";
}

SeasonBuybox.ShowClientSelector = function() {
	SeasonBuybox.HideSeasonDialog();

	SeasonBuybox.hasPurchased = true;

	if (SeasonBuybox.isCustomerRecognized) {
		var button = getElem("season_button");

		var offsetContainer = getElem("season_offset_container");
		var position = findPos(button);
		var offset = findPos(offsetContainer);

		var selector = getElem("season_selector_container");

		if (selector) {
			selector.style.display = "block";
			selector.style.left = position[0] - offset[0] + (button.offsetWidth / 2) - selector.offsetWidth;
			selector.style.top = position[1] - offset[1] + (button.offsetHeight / 2);
		} else {
			SeasonBuybox.SubmitSeasonPurchase();
		}
	} else {
		SeasonBuybox.SubmitSeasonPurchase();
	}
}

SeasonBuybox.SubmitSeasonPurchase = function() {
	var form = getElem("season_form");

	var clientSelect = getElem("client.atv.clientid.season");

	if (clientSelect) {
		form['ref.atv.clientid'].value = clientSelect.value
		form['forceUnrec'].value = 0;
	}

	form.submit();
}

SeasonBuybox.CancelSeasonPurchase = function() {
	SeasonBuybox.hasPurchased = false;
	getElem("season_selector_container").style.display = "none";
}
