(function ($) {
	$(function () {
		var $optInTrigger	= $('.email-opt-in');
		var $optInDialog	= $('#optInDialog').dialog({
			 autoOpen	: false
			,modal		: true
			,width		: '450px'
			,zIndex		: 99999
		});
		
		$optInTrigger.bind('click', function (e) {
			e.preventDefault();
			var ajaxTarget = $('a', $optInTrigger).attr('href');			
			$optInDialog.dialog('open');
			$.get(ajaxTarget, { modal: 1 }, function(response) {
				$optInDialog.html(response);
				$('#NewsletterSignupForm', $optInDialog).bind('submit', function() {
					var okay = true;
					
					if ($.trim($('#NewsletterSignupForm_FirstName').val()).length == 0) {
						$('#NewsletterSignupForm_FirstNameField').addClass('error');
						okay = false;
					} else {
						$('#NewsletterSignupForm_FirstNameField').removeClass('error');
					}
					
					if ($.trim($('#NewsletterSignupForm_LastName').val()).length == 0) {
						$('#NewsletterSignupForm_LastNameField').addClass('error');
						okay = false;
					} else {
						$('#NewsletterSignupForm_LastNameField').removeClass('error');
					}
					
					var email = $.trim($('#NewsletterSignupForm_Email').val());
					if (email.length == 0 || email.match(/^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$/) == null) {
						$('#NewsletterSignupForm_EmailField').addClass('error');
						okay = false;
					} else {
						$('#NewsletterSignupForm_EmailField').removeClass('error');
					}

					if (okay) {
						$.post(ajaxTarget, $(this).serialize() + "&modal=1&Save=Save", function(response) {
							$optInDialog.html(response);
						}, 'html');
					}
					
					return false;
				});
			}, 'html');
			
			return false;
		});
	});
})(jQuery);