jQuery.fn.absolutize = function() {
	return this.each(function() {
		var element = jQuery(this);
		if (element.css('position') == 'absolute')
			return element;
		
		var offsets = element.offset();
		var top = offsets.top;
		var left = offsets.left;
		
		element.css("top", top + 'px');
		element.css("left", left + 'px');
		element.css("position", "absolute");
		return element;
	});
}

function goModal() {
	if (!$('#modalCoverup').length)
		$('#mainBody').append('<div id="modalCoverup" style="display: none; position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; background: url(tickets/images/trans/white75.png) top left;">&nbsp;</div>');
	
	$('#modalCoverup').fadeIn('fast');
}

function endModal() {
	$('#modalCoverup').fadeOut('fast');
}

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' && $('#isOnCheckout').val() != 'yes') {
					$.ajax({
						url: 'tickets/engine/services/loginSuccess.php',
						type: 'POST',
						success: function(transport) {
							$('#loginBoxContents').html(transport);
						}
					});
				} else if ($('#checkoutTask').val() == 'checkout' || $('#isOnCheckout').val() == 'yes') {
					$.ajax({
						url: 'tickets/engine/services/isLoggedIn.php',
						type: 'post',
						success: function(transport) {
							if (parseInt(transport) > 0)								
								$.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 { doFBInit(); } catch(caught) { alert(caught); } 
	$("a.fancyBox").each(function(index) {
		$(this).fancybox();
	});
	$("a.noFancyScale").each(function(index) {
		$(this).fancybox({ autoScale: false });
	});
	$('input[placeholder], textarea[placeholder]').enablePlaceholder();
	$.scrollTo('#mutableContentContainer', 750);
}

function getCheckoutPage() {
	$('#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 getCheckout() {
	var usingSmallCart = ($('#usingSmallCart').val() == '1' ? true : false);
	if ($('#promoCodeEnterBox').val() != '') {
		$.ajax({
			url: (usingSmallCart ? 'tickets/engine/checkout/smallCart.php' : 'tickets/engine/pages/cart.php'),
			type: 'post',
			data: [{ name: 'cartTask', value: 'applyCode'}, { name: 'codeToApply', value: $('#promoCodeEnterBox').val() }],
			success: function(transport) {
				getCheckoutPage();
				adjustSponsors();
			}
		});
	} else
		getCheckoutPage();
}

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');
	
	//$("input, textarea, select, button").uniform();
}

function buyTicketsFor(id) {
	var usingSmallCart = ($('#usingSmallCart').val() == '1' ? true : false);
	$.ajax({
		url: (usingSmallCart ? 'tickets/engine/checkout/smallCart.php' : 'tickets/engine/pages/cart.php'),
		type: 'POST',
		data: [{ name: 'action', value: 'buy' }, { name: 'eventId', value: id }],
		success: function(transport) {
			$('#shoppingCartContents').html(transport);
			showCart();
			adjustSponsors();
		}
	});
}

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) {
			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);
			$.ajax({
				url: 'tickets/engine/services/isLoggedIn.php',
				type: 'post',
				success: function(transport) {
					if (parseInt(transport) > 0)
						updateTopRight(true);
				}
			});
		}
	});
}

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 showInlineLogin() {
	$('#inlineLoginHider').slideUp('slow');
	$('#inlineLoginLoginForm').slideDown('slow');
}

function showGroupCodeBox() {
	$('#groupCodeBox').slideUp('slow');
	$('#groupCodeHiddenBox').slideDown('slow');
}

function hideGroupCodeBox() {
	$('#groupCodeHiddenBox').slideUp('slow');
	$('#groupCodeBox').slideDown('slow');
}

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() {
	var usingSmallCart = ($('#usingSmallCart').val() == '1' ? true : false);
	$.ajax({
		url: (usingSmallCart ? 'tickets/engine/checkout/smallCart.php' : 'tickets/engine/pages/cart.php'),
		type: 'POST',
		data: [{ }],
		success: function(transport) {
			$('#shoppingCartContents').html(transport);
			showCart();
			adjustSponsors();
		}
	});
}

function applyCodeToCart() {
	postToCart([{ name: 'cartTask', value: 'applyCode'}, { name: 'codeToApply', value: $('#promoCodeEnterBox').val() }]);
}

function doAutoPromoCode() {
	postToCart([{ name: 'cartTask', value: 'applyCode'}, { name: 'codeToApply', value: $('#hiddenAutoPromoCode').val() }]);
}

function removeCodeFromCart(code) {
	postToCart([{ name: 'cartTask', value: 'removeCode'}, { name: 'codeToRemove', value: code }]);
}

function applyCodesInCart() {
	postToCart([{ name: codeToApply, value: $('#promoCodeEnterBox') }]);
}

function postToCart(theQuery, gotoCheckout) {
	var usingSmallCart = ($('#usingSmallCart').val() == '1' ? true : false);

	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: (usingSmallCart ? 'tickets/engine/checkout/smallCart.php' : 'tickets/engine/pages/cart.php'),
		type: 'POST',
		data: theQuery,
		success: function(transport) {
			$('#inlineCartContents').html(transport);
			$('#shoppingCartContents').html(transport);
			
			adjustSponsors();
			
			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) + '">Participant ' + 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(50) + 'px'
			});
		
			$('#shoppingCart.embedded').each(function(index) {
				$.scrollTo(this, 'fast');
			});
		}
	});
}

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(50) + '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'))) {
		var leftOffset = ($(window).width() - $('#loginBox').width()) / 2;
		var topOffset = 150;
		if ($('#alignPopupsLeft').val() == '1') {
			buttonOffset = $('#loginButton').offset();
			leftOffset = buttonOffset.left;
			
			if ($('#buttonsRight').val() == '1')
				leftOffset = leftOffset - ($('#loginBox').width() + 10) + $('#loginButton').width();
			
			topOffset = buttonOffset.top + 30;
		}
	
		$('#loginBox').css({
			left: 	String(leftOffset) + "px",
			top: 	String(topOffset) + 'px'
		});
		
		$('#loginBox').fadeIn('fast');
	}
}

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

function checkInput(inputItem) {
	/*if (!$(inputItem).is(':visible')) {
		return true;
	}*/
	
	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('errorHere');
			return false;
		} else {
			$(inputItem).removeClass('errorHere');
			$(inputItem).addClass('okay');
		}
	} else if ($(inputItem).hasClass('creditNumber')) {
		if ($(inputItem).val().length != 15 && $(inputItem).val().length != 16) {
			$(inputItem).removeClass('okay');
			$(inputItem).addClass('errorHere');
			return false;
		} else {
			$(inputItem).removeClass('errorHere');
			$(inputItem).addClass('okay');
		}
	} else if ($(inputItem).hasClass('radio')) {
		//check all radios with same name
		if (undefined === $("input[name='" + String($(inputItem).attr('name')) + "']:checked").val()) {
			$(inputItem).removeClass('okay');
			$(inputItem).addClass('errorHere');
			$("label[for='" + String($(inputItem).attr('id')) + "']").removeClass('okay');
			$("label[for='" + String($(inputItem).attr('id')) + "']").addClass('errorHere');
			return false;
		} else {
			$(inputItem).removeClass('errorHere');
			$(inputItem).addClass('okay');
			$("label[for='" + String($(inputItem).attr('id')) + "']").removeClass('errorHere');
			$("label[for='" + String($(inputItem).attr('id')) + "']").addClass('okay');
		}
	} else {
		if ($(inputItem).val() == '') {
			$(inputItem).removeClass('okay');
			$(inputItem).addClass('errorHere');
			return false;
		} else {
			$(inputItem).removeClass('errorHere');
			$(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;
	}
	
	return isGood;
}

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

function updateFamilyRequired() {
	if ($('#internationalAddress').val() != '')
		$('.addressInput').removeClass('familyRequired');
	else
		$('.addressInput').addClass('familyRequired');
}

function doFamilyRegister() {
	updateFamilyRequired();
	
	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);
			
		if ($('.additionalParticipant').length == 0) {
			isGood = false;
			alert('You must register at least 1 participant.');
		}	
		
		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('events', queryValues);
		}
	}
}

function doFamilyUpdate() {
	updateFamilyRequired();

	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 ($('#loadFacebookCommentsPopup').val() == '1')
		loadFacebookCommentsPopup();
	else
		doCheckoutGo();
}

function doCheckoutGo() {
	if ($('#terms').is(':visible') && (!$('#terms').attr('checked'))) {
		alert('You must accept the terms and conditions to continue.');
	} else if ($('#password').is(':visible') && $('#password').val() == '') {
		$('#password').addClass('errorHere');
		alert('Please choose a password for future purchases.');
	} else if (!checkVerifyEmail()) {
		alert('Please confirm your email address.');
	} 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');
		
		var goodToGo = true;
		$('.requiredCheckout').each(function(index) {
			if ($(this).is(':visible'))
				goodToGo = checkInput(this) ? goodToGo : false;
			/*
			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) {
		$('#confirmButtonsBlock').html('<br /><div style="text-align: center;"><img src="tickets/images/loader-bar.gif" /></div><br />');
		$('#cartButtonsBlock').html('<br /><div style="text-align: center;"><img src="tickets/images/loader-bar.gif" /></div><br />');
		isConfirming = true;
		var queryValues = $('#checkoutForm').serializeArray();
		postNewContent('order', queryValues);
	}
}

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 addRecommendedTypedTickets(typeId, sendingForm, continueToCheckout) {
	if ($('#theRecommendQuantity_' + String(typeId)).val() == '') {
		$('#theRecommendQuantity_' + String(typeId)).addClass('errorHere');
	} else {
		$('#theRecommendQuantity_' + String(typeId)).removeClass('errorHere');
		var baseQuery = $(sendingForm).serializeArray();
		
		baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
		baseQuery[baseQuery.length] = { name: 'eventType', value: 'typedTickets' };
		
		postToCart(baseQuery, continueToCheckout);
		$('#recommendedTypeButton_' + String(typeId)).replaceWith('<strong style="float: right; margin-right: 10px; margin-top: 10px;">In Cart!</strong>');
	}
}

function addTypedTickets(typeId, sendingForm, continueToCheckout) {
	if ($('#theQuantity_' + String(typeId)).val() == '') {
		$('#theQuantity_' + String(typeId)).addClass('errorHere');
	} else {
		$('#theQuantity_' + String(typeId)).removeClass('errorHere');
		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 deletePackageFromCart(eventId, packageId) {
	var baseQuery = [{ name: 'eventType', value: 'ticketPackages' }, { name: 'eventId', value: eventId }, { name: 'packageId', value: packageId }, { name: 'cartTask', value: 'delete' }];
	
	postToCart(baseQuery);
}

function addPackageTickets(packageId, sendingForm, continueToCheckout) {
	if ($('#thePackageQuantity_' + String(packageId)).val() == '') {
		$('#thePackageQuantity_' + String(packageId)).addClass('errorHere');
	} else {
		$('#thePackageQuantity_' + String(packageId)).removeClass('errorHere');
		var baseQuery = $(sendingForm).serializeArray();
		
		baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
		baseQuery[baseQuery.length] = { name: 'eventType', value: 'ticketPackages' };
		
		postToCart(baseQuery, continueToCheckout);
	}
}

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' };
	var usingSmallCart = ($('#usingSmallCart').val() == '1' ? true : false);
	$.ajax({
		url: (usingSmallCart ? 'tickets/engine/checkout/smallCart.php' : 'tickets/engine/pages/cart.php'),
		type: 'POST',
		data: parameters,
		success: function(transport) {
			$('#shoppingCartContents').html(transport);
		}
	});
}

function reQuantifyTicketsReallyQuietly() {
	parameters = $('#cartQuantityForm').serializeArray();
	parameters[parameters.length] = { name: 'cartTask', value: 'update' };
	var usingSmallCart = ($('#usingSmallCart').val() == '1' ? true : false);
	$.ajax({
		url: (usingSmallCart ? 'tickets/engine/checkout/smallCart.php' : '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() {
}

function showTextPopup(content) {
	var leftOffset = ($(window).width() - $('#textPopup').width()) / 2;
	if ($('#alignPopupsLeft').val() == '1') {
		leftOffset = $('#leftColumnContainer').offset();
		leftOffset = leftOffset.left;
	}
	
	goModal();

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

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

/* Newer stuff below Here */
function recommendTicketType(ticketId) {
	var leftOffset = ($(window).width() - $('#textPopup').width()) / 2;
	if ($('#alignPopupsLeft').val() == '1') {
		leftOffset = $('#leftColumnContainer').offset();
		leftOffset = leftOffset.left;
	}

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

function showEventRegularTickets(eventId) {	
	var leftOffset = ($(window).width() - $('#textPopup').width()) / 2;
	if ($('#alignPopupsLeft').val() == '1') {
		leftOffset = $('#leftColumnContainer').offset();
		leftOffset = leftOffset.left;
	}
	
	$.ajax({
		url: 'tickets/engine/services/showEventRegularTickets.php', 
		data: [{ name: 'eventId', value: eventId }], 
		type: 'POST',
		success: function(transport) {
			$('#textPopupContents').html(transport);
			$('#textPopup').css({
				left: 	String(leftOffset) + "px",
				top: 	String(75) + '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 ($('#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 setRoomQuantities() {
	$('.hiddenQuantityInput').each(function(index) {
		$(this).val($('#theQuantity').val());
	});
}

function calculateRoomPrices() {
	if ($('#addRoomTickets_checkin').val() != '')
		$('#addRoomTickets_checkin').removeClass('errorHere');
	if ($('#addRoomTickets_checkout').val() != '')
		$('#addRoomTickets_checkout').removeClass('errorHere');
		
	$('.hiddenCheckinInput').each(function(index) {
		$(this).val($('#addRoomTickets_checkin').val());
	});
	$('.hiddenCheckoutInput').each(function(index) {
		$(this).val($('#addRoomTickets_checkout').val());
	});
		
	$('.roomIdInput').each(function(index) {
		calculateRoomPrice($(this).val());
	});
}

function calculateRoomPrice(roomId) {
	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()); } catch (caught) {}
	try { $('#partyMemberLastNames_0').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) {}
	
	try { $('#partyMembers_0_phone').val($('#phone').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();
					}
				});
			}
		}
	});
}

function addFamilyParticipant2() {
	var theCount = 0;
	theCount = $('.additionalParticipant').length;
	
	$.ajax({
		url: 'tickets/engine/services/addFamilyMember.php',
		type: 'post',
		data: [{ name: 'key', value: String(theCount + 1) }],
		success: function(transport) {
			$('#additionalParticipants').append(transport);
		}
	});
}

function addFamilyParticipantUpdate() {
	var count = $('.additionalParticipant').length;
	
	$.ajax({
		url: 'tickets/engine/services/addFamilyMemberUpdate.php',
		type: 'post',
		data: [{ name: 'key', value: String(count + 1) }],
		success: function(transport) {
			$('#additionalParticipants').append(transport);
		}
	});
}

function deleteAdditional(id) {
	$('#additionalParticipant_' + String(id)).fadeOut('fast',
		function() {
			$('#additionalParticipant_' + String(id)).remove();
		}
	);
}

function deleteAdditionalUpdate(additionalCount, userId) {
	if (confirm('Delete this participant? This can\'t be undone.')) {
		$.ajax({
			url: 'tickets/engine/services/deleteParticipant.php',
			type: 'post',
			data: [{ name: 'userId', value: userId }], 
			success: function(transport) {
				$('#additionalParticipant_' + String(additionalCount)).fadeOut('fast', function() {
					$('#additionalParticipant_' + String(additionalCount)).remove();
				});
			}
		});
	}
}

function checkAndShowPaymentInfo() {
	var donationTotal = 0;
	
	$('.donationInput').each(function(index) {
		donationTotal += parseFloat($(this).val());
	});
	
	if (donationTotal > 0 && !$('#paymentOuterBox').is(':visible'))
		$('#paymentOuterBox').fadeIn('fast');
	else if (parseFloat($('#cartTotalValue').val()) == 0)
		$('#paymentOuterBox').fadeOut('fast');
}

function adjustSponsors() {
	if ($('#adjustSponsors').val() == '1') {
		var cartOffset = $('#shoppingCartContainer').offset();
		$('#sponsorsContent').offset({ top: cartOffset.top + 5 + $('#shoppingCartContents').height() });
	}
}

function deactivateFamilyBlockGuts(theGuts) {
	$(theGuts).slideUp('slow', function() {
		$(theGuts).parent().removeClass('active');
	});
}

function activateFamilyBlockGuts(theGuts) {
	$(theGuts).slideDown('slow', function() {
		$(theGuts).parent().addClass('active');
	});
}

function deactivateFamilyParticipant(theButton) {
	if ($(theButton).parent().parent().hasClass('active')) {
		$('.familyEventListBlock.active .guts').each(function(index) {
			deactivateFamilyBlockGuts($(this));
		});
	}
}

function activateFamilyParticipant(theButton) {
	if (!$(theButton).parent().parent().hasClass('active')) {
		$('.familyEventListBlock.active .guts').each(function(index) {
			deactivateFamilyBlockGuts($(this));
		});
		activateFamilyBlockGuts($(theButton).parent().parent().children('.guts'));
	}
}

function checkVerifyEmail() {
	isValid = true;
	if ($('#emailAddress').val() != $('#verify_emailAddress').val()) {
		$('#verify_emailAddress').addClass('errorHere');
		isValid = false;
	} else
		$('#verify_emailAddress').removeClass('errorHere');
	return isValid;
}

function fbCreateEvent(start_time, end_time, name, location, updated_time, description) {
	FB.api('/me/events', 'post', 
		{ name: name, description: description, start_time: start_time, end_time: end_time }, 
		function(response) {
			if (!response || response.error) {
				alert('An error occurred: Please make sure you are logged into Facebook and connected with our site to create events.');
			} else {
				alert('Event successfully created!');
			}
		}
	);
}

function addDepositTicket(typeId, sendingForm) {
	if ($('#type_' + String(typeId) + '_depositAmount').val() == '' || $('#type_' + String(typeId) + '_depositAmount').val() < 1) {
		$('#type_' + String(typeId) + '_depositAmount').addClass('errorHere');
	} else {
		$('#type_' + String(typeId) + '_depositAmount').removeClass('errorHere');
		var baseQuery = $(sendingForm).serializeArray();
		
		baseQuery[baseQuery.length] = { name: 'cartTask', value: 'add' };
		baseQuery[baseQuery.length] = { name: 'eventType', value: 'ticketDeposits' };
		
		postToCart(baseQuery, false);
	}
}

function checkDepositMinMax(typeId, depositAmount) {
	$('#type_' + String(typeId) + '_addButton').attr('disabled', true);
	$('#type_' + String(typeId) + '_addButton').fadeTo(0, .5);
	$.ajax({
		url: 'tickets/engine/services/checkDepositMinMax.php',
		type: 'post',
		data: [{ name: 'typeId', value: typeId }, { name: 'depositAmount', value: depositAmount }],
		success: function(transport) {
			$('#type_' + String(typeId) + '_depositAmount').val(transport);
			$('#type_' + String(typeId) + '_addButton').attr('disabled', false);
			$('#type_' + String(typeId) + '_addButton').fadeTo(0, 1);
		}
	});
}

function hideVariablePopup() {
	$('#variablePopup').fadeOut('fast', function() { endModal(); });
}

function loadVariablePopup(content, height) {
	goModal();
	
	if (!$('#variablePopup').length)
		$('#mainBody').append('<div id="variablePopup" style="display: none;"><div id="variablePopupBorder"><span class="closeLink" onclick="hideVariablePopup();">[close]</span></div><div id="variablePopupContents">&nbsp;</div></div>');
	
	$('#variablePopup').css({
		left: 	String(($(window).width() - $('#variablePopup').width()) / 2) + "px",
		top: 	String(50) + 'px'
	});

	$('#variablePopupContents').height(height);
	$('#variablePopupContents').html(content);
	$('#variablePopup').fadeIn('fast');
}

function setDepositGroupKey(eventId, typeId) {
	$.ajax({
		url: 'tickets/engine/services/setDepositGroupKey.php',
		data: [{ name: 'eventId', value: eventId }, { name: 'typeId', value: typeId }],
		type: 'post',
		success: function(transport) {
			loadVariablePopup(transport, 200);
		}
	});
}

function setDepositGroupKeyGo() {
	if ($('#changeDepositGroupKey_input').val() == '') {
		$('#changeDepositGroupKey_input').addClass('errorHere');
	} else {
		$('#changeDepositGroupKey_input').removeClass('errorHere');
		parameters = $('#changeReservationCodeForm').serializeArray();
		parameters[parameters.length] = { name: 'cartTask', value: 'update' };
		postToCart(parameters);
		hideVariablePopup();
	}
}

function loadFacebookCommentsPopup() {
	$('#loadFacebookCommentsPopup').val('0');
	if ($('#fbCommentsLoaded').val() == '1')
		$('#variablePopup').fadeIn('fast');
	else
		$.ajax({
			url: 'tickets/engine/services/fbCommentsPopup.php',
			data: [],
			type: 'post',
			success: function(transport) {
				loadVariablePopup(transport, 350);
			}
		});
}

function loadFacebookImGoingPopup() {
	$('#loadFacebookCommentsPopup').val('0');
	if ($('#fbCommentsLoaded').val() == '1')
		$('#variablePopup').fadeIn('fast');
	else
		$.ajax({
			url: 'tickets/engine/services/fbImGoingPopup.php',
			data: [],
			type: 'post',
			success: function(transport) {
				loadVariablePopup(transport, 350);
			}
		});
}

function didDoFacebookComment() {
	$.ajax({
		url: 'tickets/engine/services/parseFbCommentResponse.php',
		type: 'post',
		dataType: 'script'
	});
}

function showInviteDepositFriends(orderId) {
	$.ajax({
		url: 'tickets/engine/services/inviteFriendsPrompt.php',
		type: 'post',
		data: [{ name: 'orderId', value: orderId }],
		success: function(transport) {
			loadVariablePopup(transport, 350);
		}
	});
}

function inviteDepositFriendsGo() {
	var parameters = $('#inviteFriendsForm').serializeArray();
	$('#inviteFriendsResults').html('<div style="padding: 10px; text-align: center;"><img src="tickets/images/loader-circle.gif" /></div>');
	$.ajax({
		url: 'tickets/engine/services/inviteFriendsGo.php',
		type: 'post',
		data: parameters,
		success: function(transport) {
			$('#inviteFriendsResults').html(transport);
		}
	});
}

function addAFriendToDepositInvite() {
	$('#inviteFriendsPrompt').append('<div class="oneFriendToInvite"><div class="oneFriendNumber">' + String($('.oneFriendNumber').length + 1) + '. </div><div class="oneFriendName">Name: <input type="text" placeholder="Friend\'s Name" name="oneFriendNames[]" value="" class="textInput" /></div><div class="oneFriendEmail">Name: <input type="text" placeholder="Friend\'s Name" name="oneFriendEmails[]" value="" class="textInput" /></div></div>');
}
