
$(document).ready(function(){
	// *** Show Homepage Newsletter form when "Subscribe to Newsletter" button is clicked
	var $subscribeForm = $('#subscribe_to_newsletter form');
	var $subscribeButton = $('a#subscribe_btn');
	if ($subscribeButton) {
		$subscribeButton.click(function(event) {
			event.preventDefault();
			if ($subscribeForm.is(":hidden")) {
				$subscribeForm.fadeIn();
			} else {
				$subscribeForm.fadeOut();
			}
		});
	}
	
	// *** Use Label Text for Homepage Newsletter form Input Fields ***
	var $newsletterTextFields = $('div.home_footer #subscribe_to_newsletter input:text');
	if ($newsletterTextFields) {
		$newsletterTextFields.each(function(i) {
			var labelText = $(this).prev("label").hide().text();
			$(this).val(labelText);
			
			$(this).focus(function(e) {
				$(this).removeClass("error");
				
				if (labelText == $(this).val()) {
					$(this).val("");
				}
			}).blur(function(e) {
				if ($(this).val() == "") {
					$(this).val(labelText);
				}
			});
		});
	}
	
	// *** Submit Newsletter signup form via AJAX ***
	if ($subscribeForm) {
		var emailRegEx = new RegExp(/^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/);
		var formInvalid = false;
		var errorMessage = "";
		
		$subscribeForm.submit(function(event) {
			event.preventDefault();
			
			// Validate the email address
			var name = jQuery.trim($('input#newsletter_name').val());
			var email = jQuery.trim($('input#l1102-1102').val());
			if (name == "" || name == "Your Name") {
				errorMessage = "<li>Your name is required.</li>"
				$('input#newsletter_name').addClass("error");
				formInvalid = true;
			}
			if (email == "" || email.search(emailRegEx) == -1) {
				errorMessage += "<li>A valid email address is required.</li>";
				$('input#l1102-1102').addClass("error");
				formInvalid = true;
			}
			
			if (formInvalid) {
				// Alert user to form errors
				if ($('#error_message')) { $('#error_message').remove(); }
				$('#subscribe_to_newsletter').prepend("<div id='error_message' class='form-message' style='display:none;'><strong>Form Errors:</strong> <ul>"+errorMessage+"</ul> <small>(Click to close)</small></div>");
				$('#error_message').fadeIn().click(function() {
					$(this).fadeOut("fast", function() { $(this).remove(); });
				});
				errorMessage = "";
				formInvalid = false;
				return false;
			}
			
			var action = $subscribeForm.attr("action");
			var dataString = $subscribeForm.serialize();
			
			jQuery.ajax({
				url: action,
				type: "GET",
				data: dataString,
				complete: function(XMLHttpRequest, textStatus) {
					if ($('#error_message')) { $('#error_message').remove(); }
					if ($('#success_message')) { $('#success_message').remove(); }
					$('#subscribe_to_newsletter').prepend("<div id='success_message' class='form-message' style='display:none;'><strong>Thank You!</strong> <p>You have been added to the Design Commission Newsletter email list.</p> <small>(Click to close)</small></div>");
					$('#success_message').fadeIn().click(function() {
						$(this).fadeOut("fast", function() { $(this).remove(); });
					});
				}
			});
		});
	}
	
	// *** Loads employee bio via AJAX on the team page ***
	$div_profileWrap = $('div.team_profile_bxwrap');
	div_profile = $div_profileWrap.find('div#profile');
	
	$("ul.peeps a").click(function(e) {
		e.preventDefault();
		
		div_profile.load(this.href+'?ajax=1', {}, function() {
			centerTheProfile();
			
			// add close link functionality
			div_profile.find("a.close").click(function() {
				div_profile.fadeOut("fast");
			});
			
			// make the bio info fade-in
			div_profile.fadeIn("def");
		});
	});
	
	// Vertically center the profile
	$(window).resize(centerTheProfile);
});

function centerTheProfile() {
	var windowHeight = $(window).height();
	var profileHeight = div_profile.height();
	var newTop = Math.round((windowHeight-profileHeight)/2)-50; // subtract 50 to account for the bottom nav bar
	
	$div_profileWrap.css("top", newTop+"px");
}
