$(function() {
	$('#opt-in-noscript').css('display','none');
	$('#opt-in-form').css('display','block');
	$('#subscription_request').removeAttr('disabled');

	$('#opt-in-form').validate({
		onfocusout: false,
			onkeyup: false,
		rules: {
			EMAIL_ADDRESS: {
				required: true,
				email: true
			}
		},
		messages: {
			EMAIL_ADDRESS: {
				required: 'Oops, it looks you forgot to enter your email address.',
				email: 'Oops, it looks like the email address you entered is invalid.'
			}
		},
		errorPlacement: function(error, element) {
			$('#opt-in label.error[generated="true"]').remove();
			error.insertBefore('#opt-in-form');
		}
	});

	$('#opt-in-form input').keydown(function(e) {
		if (e.keyCode == 13) return validateForm();
	});

	$('#subscription_request').click(function() {
		validateForm();
		return false;
	});
});

function validateForm() {
	var formIsValid = $('#opt-in-form').valid();
	if(formIsValid) return subscribe();
}

function subscribe()
{
	$('#opt-in label.error[generated="true"]').remove();
	$('#subscription_request').addClass('disabled');
	$('#subscription_request').attr('disabled','disabled');
	var postProxy = window.location.protocol + '//' + window.location.hostname + '/cgi-bin/' + window.location.pathname.split('/', 3)[2] + '/jsp/responsys/OptInProxy.jsp';
	$.post(postProxy, $('#opt-in-form').serialize(), function(statusCode, errorLevel) {
		if($.trim(statusCode) == '200')
		{
			$('#opt-in-form').css('display','none');
			$('#opt-in-attract').css('display','none');
			$('#opt-in-thankyou').css('display','block');
		}
		else
		{
			$('#opt-in-error').css('display','block');
			$('#subscription_request').removeAttr('disabled');
			$('#subscription_request').removeClass('disabled');
		}
	}, 'text');

	return false;
}
