$(function(){
	var valid = '<img src="/images/accepted_48.png" height="24" width="24" />';
	var invalid = '<img src="/images/cancel_48.png" height="24" width="24" />';
	var loader = '<img src="/images/contact-ajax-loader.gif" height="24" width="24" />';
	var emailError = 0;
	var pwError = 0;
	var confirmError = 0;
	var langNatError = 0;
	var pwResetError = 0;
	
	$forgot_pw = $('#pw_email');
	$forgot_pw.keyup(function(){
		var email = $('#pw_email').val();
		var emailTest = /^[^@\s<&>]+@([-a-z0-9]+\.)+[a-z]{2,}$/i;
		if(!emailTest.test(email)){
			$('#pw_reset_icon').html(invalid);
			$('#pw_reset_feedback').html('This is not a valid email address.');
			}	else	{
				var form_data = {
					email: email
					}							
				$.ajax({
					type: "POST",
					url: "/login/check_email",
					data: form_data,
	 				success: function(msg){ 
						$('#pw_reset_icon').html(valid);
						$('#pw_reset_feedback').html('');						
						if(msg === ''){
						$('#pw_reset_icon').html(invalid);
						$('#pw_reset_feedback').html('This email address is not registered');
							};
						}	
					});
			}
		});
	
	$('#forgot_submit').click(function(){
			$('#pw_reset_icon').html(loader);
			var email = $('#pw_email').val();
			var emailTest = /^[^@\s<&>]+@([-a-z0-9]+\.)+[a-z]{2,}$/i;
			if(!emailTest.test(email)){
			$('#pw_reset_icon').html(invalid);
			$('#pw_reset_feedback').html('This is not a valid email address.');
			}	else	{
				var form_data = {
					email: email
					}
				$.ajax({
					type: "POST",
					url: "/login/check_email",
					data: form_data,
	 				success: function(msg){ 
						if(msg === ''){
							$('#pw_reset_icon').html(invalid);
							$('#pw_reset_feedback').html('This email address is not registered');
						}	else	{
							$('#pw_reset_feedback').html('');
							var form_data ={ email: email }
							$.ajax({
								type: "POST",
								url:'/members/check_confirmed',
								data: form_data,
								success: function(msg){
									if(msg === ''){
										$('#pw_reset_icon').html(invalid);
										$('#pw_reset_feedback').html('This email address has not been confirmed. Please <a href="mailto:support@polyglotproject.com">contact support</a> from this email address for assistance.');
										}	else	{
											var form_data ={ email: email }
											$.ajax({
												type: "POST",
												url: '/login/send_pw_reset',
												data: form_data,
												success: function(msg){
													$('#pw_reset_icon').html(valid);
													$('#pw_reset_feedback').html('Your password reset email has been sent');}
											
											});
										}
									}
							});
						}	
					}	
				});
			}
		return false;
	});
		
			
				
		
	
	$emailSignup = $('#emailSignup');
	$emailSignup.keyup(validateEmail);
	$emailSignup.blur(validateEmail);
		
	function validateEmail(){
		var email = $('#emailSignup').val();		
		var emailTest = /^[^@\s<&>]+@([-a-z0-9]+\.)+[a-z]{2,}$/i;
		if(!emailTest.test(email)){
			$('tr.email td.response').html(invalid);
			$('td.email.error').html('Please enter a valid email address.');
			emailError = 1;
			}	else	{
				var form_data = {
					email: email
					}
				$.ajax({
					type: "POST",
					url: "/login/check_email",
					data: form_data,
	 				success: function(msg){ 
						$('td.email.error').html(msg);						
						$('tr.email td.response').html(invalid);
						emailError = 1;
						if(msg == ''){
						$('tr.email td.response').html(valid);
						emailError = 0;
							};
						}	
					});
				};
			}
		
	$passwordSignup = $('#pwSignup');
	$passwordSignup.keyup(function(){
		var password = $('#pwSignup').val();
		var pwlength = password.length;
		if(pwlength < 6){
			$('tr.password td.response').html(invalid);
			pwError = 1;
		} else {
			$('tr.password td.response').html(valid);
			$('td.password.error').html('');
			pwError = 0;
			}
		});

	$confirmSignup = $('#pwConfirm');
	$confirmSignup.keyup(function(){
		var pw = $('#pwSignup').val();
		var confirm = $('#pwConfirm').val();
		if(confirm == '' || pw != confirm ){
			$('tr.confirm td.response').html(invalid);
			confirmError = 1;
			}	else	{
			$('tr.confirm td.response').html(valid);
			$('td.confirm.error').html('');
			confirmError = 0;
			}
		});
	
	$langNatSignup = $('#langNatSignup');
	$langNatSignup.change(function(){
		var langNat = $langNatSignup.val();
		if(langNat == ''){
			$('tr.langNat td.response').html(invalid);
			langNatError = 1;
			}	else	{
			$('tr.langNat td.response').html(valid);
			$('td.langNat.error').html('');
			langNatError = 0;
			}
		});
	
	$('#signup input[type=submit], #signupForm input[type=submit]').click(function(){
		
		var email = $('#emailSignup').val();
		var emailTest = /^[^@\s<&>]+@([-a-z0-9]+\.)+[a-z]{2,}$/i;
		if(!emailTest.test(email)){
			$('tr.email td.response').html(invalid);
			$('td.email.error').html('Please enter a valid email address.');
			emailError = 1;
			}	else	{
				var form_data = {
					email: email
					}
				$.ajax({
					type: "POST",
					url: "/login/check_email",
					data: form_data,
	 				success: function(msg){ 
						$('td.email.error').html(msg);						
						$('tr.email td.response').html(invalid);
						emailError = 1;
						if(msg == ''){
						$('tr.email td.response').html(valid);
						emailError = 0;
							};
					}	
				});
			};
		
		var password = $('#pwSignup').val();
		var pwlength = password.length;
		if(pwlength < 6){
			$('tr.password td.response').html(invalid);
			$('td.password.error').html('Passwords must be at least 6 characters.')
			pwError = 1;
		} else {
			$('tr.password td.response').html(valid);
			$('td.password.error').html('');
			$('#errors').html('');
			pwError = 0;
			}
		
		var pw = $('#pwSignup').val();
		var confirm = $('#pwConfirm').val();
		if(confirm == '' || pw != confirm ){
			$('tr.confirm td.response').html(invalid);
			$('td.confirm.error').html('Passwords do not match');
			confirmError = 1;
			}	else	{
			$('tr.confirm td.response').html(valid);
			$('#errors').html('');
			confirmError = 0;
			}
			
		var langNat = $langNatSignup.val();
		if(langNat == ''){
			$('tr.langNat td.response').html(invalid);
			$('td.langNat.error').html('Please select your native language');
			langNatError = 1;
			}	else	{
			$('tr.langNat td.response').html(valid);
			$('#errors').html('');
			langNatError = 0;
			}
		$totalErrors = emailError + pwError + confirmError + langNatError;
		if($totalErrors > 0){
			$('#errors').html('<h3 class="error">Please fix any errors and try again.</h3>');
			return false;
			}
		});
});
