function updateTopRight(fromLogin) {
	$.ajax({
		type: 'POST', 
		url: 'tickets/engine/services/loginOutButton.php',
		data: [{}], 
		success: function(transport) {
			$('#globalLoginLogoutButton').html(transport);
			
			if (fromLogin != undefined && fromLogin) {
				if ($('#loginTask').val() == 'logout' && $('#checkoutTask').val() != 'checkout') {
					$.ajax({
						url: 'tickets/engine/services/loginSuccess.php',
						type: 'POST',
						success: function(transport) {
							$('#loginBoxContents').html(transport);
							showLogin();
						}
					});
				} else if ($('#checkoutTask').val() == 'checkout') {
					$.ajax({
						url: 'tickets/engine/services/autoFillCheckout.php',
						type: 'POST',
						success: function(transport) {
							hideLogin();
							$('#loginBoxContents').html(transport);
						}
					});
				}
			}
		}
	});
}

function addToCart(id) {
	postNewContent('addToCart', [{ name: 'id', value: id }] );
}

function postNewContent(target, parameters) {
	parameters[parameters.length] = { name: 'topic', value: target };
	$('#mutableContentContainer').fadeOut('fast', function() {
			$('#mutableContentContainerLoader').css({ display: 'block' });
			$.ajax({
				url: 'tickets/engine/pages/events.php',
				type: 'POST',
				data: parameters,
				success: function(transport) {
					showNewResults(transport);
					isConfirming = false;
					isPaying = false;
					finishPageLoad();
				}
			});
		}
	);
}

function gotoEventTickets(eventId) {
	gotoEvent(eventId, 1);
}

function gotoEventPhotos(eventId) {
	gotoEvent(eventId, 0, 1);
}

function updateTimer() {
	$.ajax({
		url: 'tickets/engine/services/ticketTimer.php',
		type: 'post',
		data: [{}],
		success: function(transport) {
			$('#ticketTimerText').html(transport);
		}
	});
}

function finishPageLoad() {
	updateTopRight();
	try { reinitFacebook(); } catch(caught) {} 
	$("a.fancyBox").each(function(index) {
		$(this).fancybox();
	});
	$("a.noFancyScale").each(function(index) {
		$(this).fancybox({ autoScale: false });
	});
}

function getCheckout() {
	$('#mutableContentContainerLoader').css({ display: 'block' });
	$('#mutableContentContainer').html('');
	$.ajax({
		url: 'tickets/engine/pages/events.php', 
		type: 'POST',
		data: [{ name: 'topic', value: 'checkout' }],
		success: function(transport) {
			$('#mutableContentContainerLoader').css({ display: 'none' });
			$('#mutableContentContainer').css({ display: 'block' });
			$('#mutableContentContainer').html(transport);
			finishPageLoad();
		}
	});
}

function getNewContent(target) {
	if (target == "checkout") {
		reQuantifyTicketsQuietly();
		getCheckout();
	} else {		
		$('#mutableContentContainer').fadeOut('fast', function() {
			$('#mutableContentContainerLoader').css({ display: 'block' });
			$.ajax({
				url: 'tickets/engine/pages/events.php', 
				type: 'POST',
				data: [{ name: 'topic', value: target }],
				success: function(transport) {
					showNewResults(transport);
					finishPageLoad();
				}
			});		
		});
	}
}

function getQueryContent(parameters) {
	$('#mutableContentContainer').fadeOut('fast', function() {
			$('#mutableContentContainerLoader').css({ display: 'block' });
			$.ajax({
				url: 'tickets/engine/pages/events.php', 
				type: 'POST',
				data: parameters,
				success: function(transport) {
					showNewResults(transport);
				finishPageLoad();
				}
			});
		}
	);
}

function gotoEvent(eventId, startOnTickets, startOnPhotos) {
	if (startOnTickets == undefined)
		startOnTickets = 0;
	if (startOnPhotos == undefined)
		startOnPhotos = 0;
	$('#mutableContentContainer').fadeOut('fast', function() {
			$('#mutableContentContainerLoader').css({ display: 'block' });
			$.ajax({
				url: 'tickets/engine/pages/events.php', 
				type: 'POST',
				data: [{ name: 'id', value: eventId }, { name: 'startOnTickets', value: startOnTickets }, { name: 'startOnPhotos', value: startOnPhotos }],
				success: function(transport) {
					showNewResults(transport);
					finishPageLoad();
				}
			});
		}
	);
}

function showAllEvents() {
	gotoEvent('-1');
}

function showNewResults(transport) {
	$('#mutableContentContainer').html(transport);
	$('#mutableContentContainerLoader').css({ display: 'none' });
	$('#mutableContentContainer').fadeIn('fast');
}

function buyTicketsFor(id) {
	$.ajax({
		url: 'tickets/engine/pages/cart.php',
		type: 'POST',
		data: [{ name: 'action', value: 'buy' }, { name: 'eventId', value: id }],
		success: function(transport) {
			$('#shoppingCartContents').html(transport);
			showCart();
		}
	});
}

function doLogout() {
	var parameters = $('#logoutForm').serializeArray();
	$('#loginBoxContents').html('<center><br /><br /><br /><br /><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
	$.ajax({
		url: 'tickets/engine/pages/login.php', 
		type: 'POST',
		data: parameters,
		success: function(transport) {
			try {
				if (FB.getSession())
					FB.logout(function(response) { window.location = 'index.php'; });
				else
					window.location = 'index.php';
			} catch (caught) {
				alert(caught);
				window.location = 'index.php';
			}
		}
	});
}

function doLogin() {
	var parameters = $('#loginForm').serializeArray();
	$('#loginBoxContents').html('<center><br /><br /><br /><br /><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
	$.ajax({
		url: 'tickets/engine/pages/login.php',
		type: 'POST',
		data: parameters,
		success: function(transport) {
			$('#loginBoxContents').html(transport);
			updateTopRight(true);
			if ($('#checkoutTask').val() != '')
				showLogin();
		}
	});
}

function doQuietLogin() {
	var parameters = $('#loginForm').serializeArray();
	$('#loginBoxContents').html('<center><br /><br /><br /><br /><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
	$.ajax({
		url: 'tickets/engine/pages/login.php',
		type: 'POST',
		data: parameters,
		success: function(transport) {
			$('#loginBoxContents').html(transport);
			hideLogin();
			updateTopRight();
		}
	});
}

function doInlineLogin() {
	var parameters = [ { name: 'loginTask', value: 'login' }, { name: 'login_username', value: $('#inlineLogin_username').val() }, { name: 'login_password', value: $('#inlineLogin_password').val() }];
	$('#inlineLoginBlock').html('<center><br /><img src="tickets/images/loader-circle.gif" /><br /></center>');
	$.ajax({
		url: 'tickets/engine/pages/inlineLogin.php',
		type: 'POST',
		data: parameters,
		success: function(transport) {
			$('#inlineLoginBlock').html(transport);
		}
	});
}

function updateAndShowCart() {
	$.ajax({
		url: 'tickets/engine/pages/cart.php',
		type: 'POST',
		data: [{ }],
		success: function(transport) {
			$('#shoppingCartContents').html(transport);
			showCart();
		}
	});
}

function postToCart(theQuery, gotoCheckout) {
	try {
		$('#inlineCartContents').html('<center><br /><br /><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
		$('#shoppingCartContents').html('<center><br /><br /><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
	} catch (caught) {
		$('#shoppingCartContents').html('<center><br /><br /><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
	}
	
	if (!gotoCheckout || gotoCheckout == undefined)
		showCart();
	
	try {
		if ($('redrawAfterCartUpdate').val() > 0)
			getNewContent('events');
	} catch (caught) {}
	
	$.ajax({
		url: 'tickets/engine/pages/cart.php',
		type: 'POST',
		data: theQuery,
		success: function(transport) {		
			try {
				$('#inlineCartContents').html(transport);
				try{ $('#shoppingCartContents').html(transport); } catch(caught) {}
			} catch(caught) {
				$('#shoppingCartContents').html(transport);
				if (!gotoCheckout)
					showCart();
			}
			
			try {
				var ticketCount = $('#icketCount').val();
				if ($('#partyMemberBoxes').is(':visible')) {
					var partyMemberBoxes = $('#partyMemberBoxes div');
					if (partyMemberBoxes.length > ticketCount) {
						for (var i = partyMemberBoxes.length - 1; i >= 0; i--) {
							if (i >= ticketCount)
								partyMemberBoxes[i].remove();
						}
					} else if (partyMemberBoxes.length < ticketCount) {
						for (var i = 0; i < ticketCount; i++) {
							if (i >= partyMemberBoxes.length)
								$('#partyMemberBoxes').insert('<div class="singleBox"><label for="partyMember_' + String(i) + '">Party Member ' + String(i + 1) +': </label><input type="text" class="textInput" value="" name="partyMembers[' + String(i) + ']" id="partyMembers_' + String(i) + '" /></div>');
						}
					}
				}
			} catch (caught) { alert(caught); }
			
			if (gotoCheckout != undefined && gotoCheckout) {
				getNewContent('checkout');
			} else {
				try { refreshTicketList(); } catch(caught) {}
			}
			
			$('#shoppingCart').css({
				left: 	String(($(window).width() - $('#shoppingCart').width()) / 2) + "px",
				top: 	String(150) + 'px'
			});
		}
	});
}

function deleteProductFromCart(addTime, productId) {
	var baseQuery = [
		{ name: 'productId', value: productId }, 
		{ name: 'addTime', value: addTime  },
		{ name: 'cartTask', value: 'delete' },
		{ name: 'eventType', value: 'product' }
	];
	
	postToCart(baseQuery);
}

function deleteStadiumTicketFromCart(eventId, showTimeId, seatId) {
	var baseQuery = [
		{ name: 'eventId', value: eventId }, 
		{ name: 'seatId', value: seatId  }, 
		{ name: 'showTimeId', value: showTimeId  },
		{ name: 'cartTask', value: 'delete' },
		{ name: 'eventType', value: 'stadiumTickets' }
	];
	$('#stadiumPoint_' + String(seatId)).removeClass('inMyCart');
	
	postToCart(baseQuery);
}

function showCart() {
	if (!($('#shoppingCart').is(':visible'))) {
		$('#shoppingCart').css({
			left: 	String(($(window).width() - $('#shoppingCart').width()) / 2) + "px",
			top: 	String(150) + 'px'
		});
		
		$('#shoppingCart').fadeIn('fast');
	} else {
	}
}

function hideCart(forceItHidden) {
	if ($('#shoppingCart').is(':visible') && (!$('#shoppingCartContents').hasClass('embedded') || forceItHidden))
		$('#shoppingCart').fadeOut('fast');
	if ($('#loginBox').is(':visible'))
		$('#loginBox').fadeOut('fast');
}

function clearCart() {
	$('#shoppingCartContents').html('');
	$('#shoppingCart').css({ display: 'none' });
}

function showLogin() {
	if (!($('#loginBox').is(':visible'))) {
		$('#loginBox').css({
			left: 	String(($(window).width() - $('#loginBox').width()) / 2) + "px",
			top: 	String(150) + 'px'
		});
		
		$('#loginBox').fadeIn('fast');
	}
}

function hideLogin() {
	if (($('#loginBox').is(':visible')))
		$('#loginBox').fadeOut('fast');	
}

function checkInput(inputItem) {
	if ($(inputItem).hasClass('email')) {
		var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(inputItem.val())) {
			$(inputItem).removeClass('okay');
			$(inputItem).addClass('error');
			return false;
		} else {
			$(inputItem).removeClass('error');
			$(inputItem).addClass('okay');
		}
	} else if ($(inputItem).hasClass('creditNumber')) {
		if ($(inputItem).val().length != 15 && $(inputItem).val().length != 16) {
			$(inputItem).removeClass('okay');
			$(inputItem).addClass('error');
			return false;
		} else {
			$(inputItem).removeClass('error');
			$(inputItem).addClass('okay');
		}
	} else {
		if ($(inputItem).val() == '') {
			$(inputItem).removeClass('okay');
			$(inputItem).addClass('error');
			return false;
		} else {
			$(inputItem).removeClass('error');
			$(inputItem).addClass('okay');
		}
	}
	return true;
}

function checkInputLength(inputItem, theLength, inputName) {
	if ($(inputItem).val().length >= theLength) {
		$(inputItem).removeClass('errorHere');
		return true;
	} else {
		$(inputItem).addClass('errorHere');
		alert(inputName + ' must be at least ' + String(theLength) + ' characters long.');
		return false;
	}
}

function checkRadio(radioInputs, radioLabels) {
	isChecked = false
	for (var i = 0; i < radioInputs.length && !isChecked; i++)
		if ($(radioInputs[i]).attr('checked'))
			isChecked = true;
			
	if (!isChecked)
		for (var i = 0; i < radioInputs.length; i++)
			$(radioLabels[i]).addClass('errorHere');
	else
		for (var i = 0; i < radioInputs.length; i++)
			$(radioLabels[i]).removeClass('errorHere');
		
	return isChecked;
}

function checkRegisterForm() {
	isGood = true;
	
	isGood = (checkInput('#firstName') ? isGood : false);
	isGood = (checkInput('#lastName') ? isGood : false);
	isGood = (checkInput('#emailAddress') ? isGood : false);
	
	isGood = (checkInput('#billing_firstName') ? isGood : false);
	isGood = (checkInput('#billing_lastName') ? isGood : false);
	isGood = (checkInput('#billing_address') ? isGood : false);
	isGood = (checkInput('#billing_city') ? isGood : false);
	isGood = (checkInput('#billing_state') ? isGood : false);
	isGood = (checkInput('#billing_zip') ? isGood : false);
	
	isGood = (checkInput('#address') ? isGood : false);
	isGood = (checkInput('#city') ? isGood : false);
	isGood = (checkInput('#state') ? isGood : false);
	isGood = (checkInput('#zip') ? isGood : false);
		
	isGood = (checkInputLength('#password', 5, 'Password') ? isGood : false);
	
	if ($('#terms').is(':visible') && (!$('#terms').attr('checked') || $('#termsName').val() == '')) {
		if ($('#termsName').val() == '')
			$('#termsName').addClass('errorHere');
		else
			$('#termsName').removeClass('errorHere');
			
		alert('You must accept the terms and conditions to continue.');
		isGood = false;
	}
	
	if ($('#signatureData').html() == '' || $('#signatureData').html() == '[]') {
		alert('Please draw your signature in the box.');
		isGood = false;
	}
	
	return isGood;
}

function doRegister(continueToCheckout) {
	if (checkRegisterForm()) {
		var queryValues = $('#registerForm').serializeArray();
		if (continueToCheckout != undefined)
			queryValues.continueToCheckout = 1;
		postNewContent('register', queryValues);
	}
}

function doFamilyRegister() {
	if ($('#terms').is(':visible') && (!$('#terms').attr('checked') || $('#termsName').val() == ''))
		alert('You must accept the terms and conditions to continue.');
	else {
		var required = $('.familyRequired');
		isGood = true;
		for (var i = 0; i < required.length; i++)
			isGood = (checkInput(required[i]) ? isGood : false);
		
		var radioContainers = $('.requiredRadioContainer');
		var theseInputs = new Array();
		for (var i = 0; i < radioContainers.length; i++) {
			theseInputs = $('#' + radioContainers[i].id + ' input');
			theseLabels = $('#' + radioContainers[i].id + ' label');
			if (theseInputs.length > 0)
				isGood = (checkRadio(theseInputs, theseLabels) ? isGood : false);
		}
	
		if (isGood) {
			var queryValues = $('#registerForm').serializeArray();
			postNewContent('register', queryValues);
		}
	}
}

function doFamilyUpdate() {
	var required = $('.familyRequired');
	isGood = true;
	for (var i = 0; i < required.length; i++)
		isGood = (checkInput(required[i]) ? isGood : false);
	
	var radioContainers = $('.requiredRadioContainer');
	var theseInputs = new Array();
	for (var i = 0; i < radioContainers.length; i++) {
		theseInputs = $('#' + radioContainers[i].id + ' input');
		theseLabels = $('#' + radioContainers[i].id + ' label');
		if (theseInputs.length > 0)
			isGood = (checkRadio(theseInputs, theseLabels) ? isGood : false);
	}

	if (isGood) {
		var queryValues = $('#updateForm').serializeArray();
		postNewContent('update', queryValues);
	}
}

function checkUpdateForm() {
	isGood = true;
	
	isGood = (checkInput('firstName') ? isGood : false);
	isGood = (checkInput('lastName') ? isGood : false);
	isGood = (checkInput('emailAddress') ? isGood : false);
	
	isGood = (checkInput('billing_firstName') ? isGood : false);
	isGood = (checkInput('billing_lastName') ? isGood : false);
	isGood = (checkInput('billing_address') ? isGood : false);
	isGood = (checkInput('billing_city') ? isGood : false);
	isGood = (checkInput('billing_state') ? isGood : false);
	isGood = (checkInput('billing_zip') ? isGood : false);
	
	isGood = (checkInput('address') ? isGood : false);
	isGood = (checkInput('city') ? isGood : false);
	isGood = (checkInput('state') ? isGood : false);
	isGood = (checkInput('zip') ? isGood : false);
		
	isGood = ($('#password').val().length == 0 || checkInputLength('password', 5, 'Password') ? isGood : false);
	
	return isGood;
}

function doUpdate() {
	if (checkUpdateForm()) {
		var queryValues = $('#updateForm').serializeArray();
		postNewContent('update', queryValues);
	}
}

function getForgot() {
	hideCart();
	getNewContent('forgot');
}

function doForgot() {
	var queryValues = $('#forgotForm').serializeArray();
	postNewContent('forgot', queryValues);
}

function toggleShippingInternationalAddresses() {
	if ($('#internationalBoxShipping').is(':visible')) {
		$('#internationalBoxShipping').fadeOut('fast', function() {
			$('#usBoxShipping').fadeIn('fast', function() { 
				$('#addressTogglerShipping').html('I have an international address.');
				$('#useInternationalShippingAddress').val('0');
			});
		});
	} else {
		$('#usBoxShipping').fadeOut('fast', function() {
				$('#internationalBoxShipping').fadeIn('fast', function() { $('#addressTogglerShipping').html('I have a US address.');
				$('#useInternationalShippingAddress').val('1');
			});
		});
	}
}

function toggleBillingInternationalAddresses() {
	if ($('#internationalBoxBilling').is(':visible')) {
		$('#internationalBoxBilling').fadeOut('fast', function() {
				$('#usBoxBilling').fadeIn('fast', function() { $('#addressTogglerBilling').html('I have an international address.');
				$('#useInternationalBillingAddress').val('0');
			});
		});
	} else {
		$('#usBoxBilling').fadeOut('fast', function() {
				$('#internationalBoxBilling').fadeIn('fast', function() { $('#addressTogglerBilling').html('I have a US address.');
				$('#useInternationalBillingAddress').val('1');
			});
		});
	}
}

function doCheckout() {
	if ($('#terms').is(':visible') && (!$('#terms').attr('checked') || $('#termsName').val() == '')) {
		if ($('#termsName').val() == '')
			$('#termsName').addClass('errorHere');
		else
			$('#termsName').removeClass('errorHere');
			
		alert('You must accept the terms and conditions to continue.');
	} else if ($('#signatureData').html() == '' || $('#signatureData').html() == '[]') {
		alert('Please draw your signature in the box.');
	} else if ($('#password').is(':visible') && $('#password').val() == '') {
		$('#password').addClass('errorHere');
		alert('Please choose a password for future purchases.');
	} else if ($('#emailAddress').is(':visible') && $('#emailAddress').val() == '') {
		$('#password').removeClass('errorHere');
		$('#emailAddress').addClass('errorHere');
		alert('Please enter a valid email address.');
	} else {
		var queryValues = $('#checkoutForm').serializeArray();
		$('#emailAddress').removeClass('errorHere');
		queryValues[queryValues.length] = { name: 'signatureData', value: $('#signatureData').html() };
		
		var goodToGo = true;
		$('.requiredCheckout').each(function(index) {
			if ($(this).val() == '' && $(this).is(':visible')) {
				$(this).addClass('errorHere');
				goodToGo = false;
			} else
				$(this).removeClass('errorHere');
		});
		
		if (goodToGo)
			postNewContent('confirm', queryValues);
		else
			alert('Please review for errors.');
	}
}

function checkoutBack() {
	var queryValues = $('#checkoutForm').serializeArray();
	queryValues[queryValues.length] = { name: 'wentBack', value: 'yes' };
	postNewContent('checkout', queryValues);
}

var isConfirming = false;
function doConfirm() {
	if (!isConfirming) {
		isConfirming = true;
		var queryValues = $('#checkoutForm').serializeArray();
		postNewContent('order', queryValues);
	} else {
	}
}

function toggleEventChecked(id) {
	if ($(id).attr('checked'))
		$(id).attr('checked', false);
	else
		$(id).attr('checked', true);
}

function setUsernameToEmail() {

}

function setShippingToBilling() {
	$('#address').value = $('billing_address').val();
	$('#city').value = $('billing_city').val();
	$('#state').value = $('billing_state').val();
	$('#zip').value = $('billing_zip').val();
	
	$('#address').highlight();
	$('#city').highlight();
	$('#state').highlight();
	$('#zip').highlight();
}

function doSearch() {
	var queryValues = { text: $('searchText').val() };
	postNewContent('events', queryValues);
}

function copyCheckoutShipping() {
	$('#billing_firstName').value 	= $('firstName').val();
	$('#billing_lastName').value 	= $('lastName').val();
	
	$('#billing_address').value = $('address').val();
	$('#billing_city').value 	= $('city').val();
	$('#billing_state').value 	= $('state').val();
	$('#billing_zip').value 	= $('zip').val();
	
	$('#billing_phone').value 	= $('phone').val();
	$('#billing_email').value 	= $('email').val();
}

function addProductTickets(sendingForm, continueToCheckout) {
	var baseQuery = $(sendingForm).serializeArray();
	
	baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
	baseQuery[baseQuery.length] = { name: 'eventType', value: 'product' };
	
	postToCart(baseQuery, continueToCheckout);
}

function addTypedTickets(sendingForm, continueToCheckout) {
	var baseQuery = $(sendingForm).serializeArray();
	
	baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
	baseQuery[baseQuery.length] = { name: 'eventType', value: 'typedTickets' };
	
	postToCart(baseQuery, continueToCheckout);
}

function addAppointmentTickets(sendingForm, continueToCheckout) {
	var baseQuery = $(sendingForm).serializeArray();
	
	baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
	baseQuery[baseQuery.length] = { name: 'eventType', value: 'appointments' };
	
	postToCart(baseQuery, continueToCheckout);
}

function deleteFromCart(type, event, seat, hours, startHour) {
	var baseQuery = [{ name: 'eventType', value: type }, { name: 'eventId', value: event }, { name: 'cartTask', value: 'delete' }];
	
	if (seat != undefined && seat != null)
		baseQuery[baseQuery.length] = { name: 'seatId', value: seat };
	if (hours != undefined && hours != null)
		baseQuery[baseQuery.length] = { name: 'hours', value: hours };
	if (startHour != undefined && startHour != null)
		baseQuery[baseQuery.length] = { name: 'startHour', value: startHour };
	postToCart(baseQuery);
}

function deleteMappedFromCart(mappedId) {
	var baseQuery = [{ name: 'eventType', value: 'mapped' }, { name: 'mappedId', value: mappedId }, { name: 'cartTask', value: 'delete' }];
	
	postToCart(baseQuery);
}

function deleteHotelFromCart(eventId, roomId, checkin, checkout) {
	var baseQuery = [{ name: 'eventType', value: 'hotel' }, 
		{ name: 'eventId', value: eventId }, 
		{ name: 'cartTask', value: 'delete' }, 
		{ name: 'roomId', value: roomId }, 
		{ name: 'checkin', value: checkin }, 
		{ name: 'checkout', value: checkout }
	];
	postToCart(baseQuery);
}

function doAppointmentDaySearch() {
	var date = $('#appointmentTime').val();
	$('#appointmentTimeBlock').html('<br /><br /><center><img src="/tickets/images/loader-circle.gif" /></center><br /><br />');
	$.ajax({
		url: 'tickets/engine/lists/appointmentTimeBlock.php', 
		type: 'post',
		data: $('#appointmentDayForm').serializeArray(),
		success: function(transport) {
			$('#appointmentTimeBlock').html(transport);
		}
	});
}

function reQuantifyTickets() {
	parameters = $('#cartQuantityForm').serializeArray();
	parameters[parameters.length] = { name: 'cartTask', value: 'update' };
	postToCart(parameters);
}

function reQuantifyTicketsQuietly() {
	parameters = $('#cartQuantityForm').serializeArray();
	parameters[parameters.length] = { name: 'cartTask', value: 'update' };
	$.ajax({
		url: 'tickets/engine/pages/cart.php',
		type: 'POST',
		data: parameters,
		success: function(transport) {
			$('#shoppingCartContents').html(transport);
		}
	});
}

function setBillingToCustomer() {
	if (!$('#billingInfoContainer').is(':visible')) {
		$('#billing_firstName').val($('#firstName').val());
		$('#billing_lastName').val($('#lastName').val());
		$('#billing_address').val($('#address').val());
		$('#billing_city').val($('#city').val());
		$('#billing_state').val($('#state').val());
		$('#billing_zip').val($('#zip').val());
		$('#billing_phone').val($('#phone').val());
		$('#billing_email').val($('#emailAddress').val());
	}
}

function toggleBillingVisibility() {
	if ($('#billingInfoContainer').is(':visible')) {
		$('#billingInfoContainer').fadeOut('fast', function() {
				$('#billingButton').html('Enter Different Billing Address');
				setBillingToCustomer();
			}
		);
	} else {
		$('#billingInfoContainer').fadeIn('fast', function() {
				$('#billingButton').html('My Billing Information is The Same');
			}
		);
	}
}

function checkoutLoginFacebook() {
	try {
		FB.login(function(response) {
			if (response.session) {
				getNewContent('checkout');
			} else {
				// user cancelled login
			}
		});
	} catch (caught) {}
}

function checkoutLoginStandard() {
	$('#checkoutLoginSelector').fadeOut('fast', function() {
			$('#checkoutFormBox').fadeIn('fast');
		}
	);
}

function switchCreditCash(to) {
	if (to == "credit" && !$('#creditPaymentBox').is(':visible')) {
		$('#laterPaymentBox').css({display: 'none'});
		$('#creditPaymentBox').css({display: 'block'});
	} else if (to == "later" && !$('#laterPaymentBox').is(':visible')) {
		$('#creditPaymentBox').css({display: 'none'});
		$('#laterPaymentBox').css({display: 'block'});
	}
	$('#paymentMethod').val(to);
}

function prepareTermsCheckbox() { 
	var check = $('#terms');
	
	$(check).attr('disabled', true);
	$('#termsAndConditionsBox').attr('scrollTop', 0);
	
	// work out the scroll offset by subtracting the height of the 'terms_inner' div from the height of 'terms' div
	var offset = $('#termsAndConditionsBoxInner').height() - $('#termsAndConditionsBox').height();
	// run this function everytime the user mouses over the terms div
	// if the value of scrollTop is greater than or equal to the required offset (its scrolled right to the bottom) then enable the checkbox
	
	$('#termsAndConditionsBox').bind('scroll', function() {
		if($('#termsAndConditionsBox').attr('scrollTop') >= offset) {
			$(check).attr('disabled', false);
		}
	});
}

function showTextPopup(content) {	
	$.ajax({
		url: 'tickets/engine/services/textPopup.php', 
		data: [{ name: 'content', value: content }], 
		type: 'POST',
		success: function(transport) {
			$('#textPopupContents').html(transport);
			$('#textPopup').css({
				left: 	String(($(window).width() - $('#textPopup').width()) / 2) + "px",
				top: 	String(75) + 'px'
			});
			
			if (!($('#textPopup').is(':visible')))
				$('#textPopup').fadeIn('fast');
		}
	});
}

function hideTextPopup() {
	if ($('#textPopup').is(':visible'))
		$('#textPopup').fadeOut('fast');
}



/* Newer stuff below Here */
function recommendTicketType(ticketId) {	
	$.ajax({
		url: 'tickets/engine/services/recommendTickets.php', 
		data: [{ name: 'ticketId', value: ticketId }], 
		type: 'POST',
		success: function(transport) {
			$('#textPopupContents').html(transport);
			$('#textPopup').css({
				left: 	String(($(window).width() - $('#textPopup').width()) / 2) + "px",
				top: 	String(150) + 'px'
			});
			
			if (!($('#textPopup').is(':visible')))
				$('#textPopup').fadeIn('fast');
		}
	});
}

function wroteWall(yeaOrNay, id) {
	if (yeaOrNay) {
		alert('Message successfully posted!');
		$.ajax({
			url: 'tickets/engine/services/wroteWall.php', 
			data: [{ name: 'id', value: id }], 
			type: 'POST',
			success: function(transport) {
			}
		});
	}
}

function switchTeamAction(to) {
	if (to == "create") {
		if (!$('#teamBlock_create').is(':visible')) {
			if ($('#teamBlock_join').is(':visible'))
				$('#teamBlock_join').css({ display: 'none' });
			if ($('#teamBlock_freeAgent').is(':visible'))
				$('#teamBlock_freeAgent').css({ display: 'none' });
				
			$('#teamBlock_create').fadeIn('fast');
		}
	} else if (to == "join") {
		if (!$('#teamBlock_join').is(':visible')) {
			if ($('#teamBlock_create').is(':visible'))
				$('#teamBlock_create').css({ display: 'none' });
			if ($('#teamBlock_freeAgent').is(':visible'))
				$('#teamBlock_freeAgent').css({ display: 'none' });
				
			$('#teamBlock_join').fadeIn('fast');
		}
	} else if (to == "freeAgent") {
		if (!$('#teamBlock_freeAgent').is(':visible')) {
			if ($('#teamBlock_join').is(':visible'))
				$('#teamBlock_join').css({ display: 'none' });
			if ($('#teamBlock_create').is(':visible'))
				$('#teamBlock_create').css({ display: 'none' });
				
			$('#teamBlock_freeAgent').fadeIn('fast');
		}
	}
}

function addBulkTicketsToCart(gotoCheckout) {
	if (gotoCheckout == undefined)
		gotoCheckout = false;

	var allTickets = $('.ticketAddCheckbox');
	var baseQuery = $('#addTicketsForm').serializeArray();
	baseQuery[baseQuery.length] = { name: 'cartTask', value: 'bulkAdd' };
	
	var ticketString = '';
	var ticketValue = Array();
	allTickets.each(function(index) {
		if ($(this).is(':checked')) {
			ticketValue = $(this).val().split('_');
			ticketString  += String(ticketValue[0]) + ':' + String(ticketValue[1]) + '|';
		}
	});
	baseQuery[baseQuery.length] = { name: 'ticketString', value: ticketString };
	
	postToCart(baseQuery, gotoCheckout);
}

function addBulkTicketsToCartAndCheckout() {
	addBulkTicketsToCart(true);
}

function addTicketToCart(id, priceId) {
	var baseQuery = $('#addTicketsForm').serializeArray();
	
	if ($('#add_eventType').val() == "charted") {
		baseQuery[baseQuery.length] = { name: 'seatId', value: id };
		baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
		baseQuery[baseQuery.length] = { name: 'priceId', value: priceId };
		
		postToCart(baseQuery);
	}
}

function addStadiumTicketToCart(seatId, eventId, showTimeId, priceId) {
	baseQuery = new Array;
	baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
	baseQuery[baseQuery.length] = { name: 'eventType', value: 'stadiumTickets' };
	baseQuery[baseQuery.length] = { name: 'eventId', value: eventId };
	baseQuery[baseQuery.length] = { name: 'showTimeId', value: showTimeId };
	baseQuery[baseQuery.length] = { name: 'seatId', value: seatId };
	baseQuery[baseQuery.length] = { name: 'priceId', value: priceId };
	
	//add in cart class
	$('#stadiumPoint_' + String(seatId)).addClass('inMyCart');
	
	postToCart(baseQuery);
}

function addMappedSeatToCart(mappedId) {
	var baseQuery = $('#addTicketsForm').serializeArray();
	
	if ($('#add_eventType').val() == "mapped") {
		baseQuery[baseQuery.length] = { name: 'mappedId', value: mappedId };
		baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
		
		postToCart(baseQuery);
	}
}

function refreshTicketList() {
	var parameters = $('#ticketFilterForm').serializeArray();
	$('#ticketGrid').css({
		height: String($('#ticketGrid').height()) + 'px'
	});
	
	$('#ticketGrid').html('<br /><br /><center><img src="tickets/images/loader-circle.gif" /><br /><br /></center>');
	$.ajax({
		url: 'tickets/engine/lists/addToCartList.php',
		type: 'POST', 
		data: parameters, 
		success: function(transport) {
			$('#ticketGrid').css({
				height: 'auto'
			});
			$('#ticketGrid').html(transport);
		}
	});
}

function gotoTicketOffset(offset) {
	$('#ticketOffset').val(offset);
	refreshTicketList();
}

function sortTicketList(newSort) {
	if ($('#primarySort').val() == newSort)
		toggleSortDirection(newSort);
	else {
		$('#primarySort').val(newSort);
		refreshTicketList();
	}
}

function toggleSortDirection() {
	if ($('#primarySortDirection') == 'asc')
		$('primarySortDirection').val('desc');
	else
		$('#primarySortDirection').value('asc');
	refreshTicketList();
}

function slidePicturesLeft() {
	$('#eventGalleryListInnerContainer').css({
		left: String($('#eventGalleryListInnerContainer').position().left + 100) + 'px'
	});
}

function slidePicturesRight() {
	$('#eventGalleryListInnerContainer').css({
		left: String($('#eventGalleryListInnerContainer').position().left - 100) + 'px'
	});
}

function doPayment() {
	if ($('#terms').is(':visible') && (!$('#terms').attr('checked') || $('#termsName').val() == '')) {
		if ($('#termsName').val() == '')
			$('#termsName').addClass('errorHere');
		else
			$('#termsName').removeClass('errorHere');
			
		alert('You must accept the terms and conditions to continue.');
	} else if ($('#signatureData').html() == '' || $('#signatureData').html() == '[]') {
		alert('Please draw your signature in the box.');
	} else if ($('#emailAddress').is(':visible') && $('#emailAddress').is(':visible') && $('emailAddress').val() == '') {
		$('#emailAddress').addClass('errorHere');
		alert('Please enter a valid email address.');
	} else {
		var queryValues = $('#payLaterForm').serializeArray();
		$('#emailAddress').removeClass('errorHere');
		
		var goodToGo = true;
		$('.requiredCheckout').each(function(index) {
			if ($(this).val() == '' && $(this).is(':visible')) {
				$(this).addClass('errorHere');
				goodToGo = false;
					alert($(this).attr('id'));
			} else
				$(this).removeClass('errorHere');
		});
		
		if (goodToGo)
			postNewContent('payLaterConfirm', queryValues);
		else
			alert('Please review for errors.');
	}
}

function paymentBack() {
	var queryValues = $('#payLaterForm').serializeArray();
	queryValues[queryValues.length] = { name: 'wentBack', value: 'yes' };
	postNewContent('payLater', queryValues);
}

var isPaying = false;
function doPaymentGo() {
	if (!isPaying) {
		isPaying = true;
		var queryValues = $('#payLaterForm').serializeArray();
		postNewContent('payLaterGo', queryValues);
	}
}

function addRoomTickets(roomId) {
	if ($('#addRoomTickets_' + String(roomId) + '_checkin').val() != '' && $('#addRoomTickets_' + String(roomId) + '_checkout').val() != '')
		postToCart($('#addTicketsTyped_' + String(roomId)).serializeArray());
	else if ($('#addRoomTickets_' + String(roomId) + '_checkin').val() == '')
		$('#addRoomTickets_' + String(roomId) + '_checkin').addClass('errorHere');
	else if ($('#addRoomTickets_' + String(roomId) + '_checkout').val() == '')
		$('#addRoomTickets_' + String(roomId) + '_checkout').addClass('errorHere');
}

function calculateRoomPrice(roomId) {
	if ($('#addRoomTickets_' + String(roomId) + '_checkin').val() != '')
		$('#addRoomTickets_' + String(roomId) + '_checkin').removeClass('errorHere');
	if ($('#addRoomTickets_' + String(roomId) + '_checkout').val() != '')
		$('#addRoomTickets_' + String(roomId) + '_checkout').removeClass('errorHere');
		
	if ($('#addRoomTickets_' + String(roomId) + '_checkin').val() != '' && $('#addRoomTickets_' + String(roomId) + '_checkout').val() != '')	
		$.ajax({
			url: 'tickets/engine/services/calculateRoomPrice.php',
			type: 'post',
			data: [ 
				{ name: 'checkin', value: $('#addRoomTickets_' + String(roomId) + '_checkin').val() }, 
				{ name: 'checkout', value: $('#addRoomTickets_' + String(roomId) + '_checkout').val() }, 
				{ name: 'roomId', value: roomId } 
			],
			success: function(transport) {
				$('#addRoomTickets_' + String(roomId) + '_price').html(transport);
			}
		});
}

function toggleQuestion(faqId) {
	if ($('#theAnswer_' + String(faqId)).is(':visible'))
		$('#theAnswer_' + String(faqId)).fadeOut('fast');
	else
		$('#theAnswer_' + String(faqId)).fadeIn('fast');
		
}

function updatePartyMember1() {
	try { $('#partyMembers_0').val($('#firstName').val() + ' ' + $('#lastName').val()); } catch (caught) {}
	
	try { $('#partyMembersEmail_0').val($('#emailAddress').val()); } catch (caught) {}
	
	try { $('#partyMemberBirthMonths_0').val($('#birthMonth').val()); } catch (caught) {}
	try { $('#partyMemberBirthDays_0').val($('#birthDay').val()); } catch (caught) {}
	try { $('#partyMemberBirthYears_0').val($('#birthYear').val()); } catch (caught) {}
}

function checkForAccount() {
	$.ajax({
		url: 'tickets/engine/services/checkForAccount.php',
		type: 'post',
		data: [ { name: 'emailAddress', value: $('#emailAddress').val() } ],
		success: function(transport) {
			if (parseInt(transport) > 0) {
				$.ajax({
					url: 'tickets/engine/pages/login.php',
					type: 'POST',
					data: [ { name: 'emailAddress', value: $('#emailAddress').val() } ],
					success: function(transport) {
						$('#loginBoxContents').html(transport);
						showLogin();
						$('#login_password').focus();
					}
				});
			}
		}
	});
}
