var login_attempts = [];

var CALLBACK_index = { 
	ajax_check_username: function(result) { 
		switch (result[0]) {
			case 2:
			case 1:
				$('FEEDBACK_step1').up('tr').hide();
				$('TD_emailaddress').update($$F('INPUT_emailaddress'));
				$('TD_username').update($$F('INPUT_emailaddress'));
				$('TD_emailaddress').up('tr').show();
				$('SPAN_status_step1').update(' - Confirmed');
			break;
			case 0:
				$('FEEDBACK_step1').update('The email address entered is not valid.');
				$('FEEDBACK_step1').up('tr').show();
				$('TBODY_step1a').show();
				$('TBODY_step1b').hide();
		break;
		}
		
		if (result[0] == 2) {
			$('INPUT_emailaddress').up('tr').hide();
			$('INPUT_check_username').up('tr').hide();
			$('TBODY_step1b').show();
			$('TBODY_step2_a').show();
			$('INPUT_password').focus();
		} else if (result[0] == 1) {
			$('TBODY_step1a').hide();
			$('TBODY_step1b').hide();
			$('TBODY_step2_b').show();
			$('INPUT_NewPassword').focus();
		}
	},
	ajax_check_password: function(result) {
		if (result[0]) {
			$('FEEDBACK_step2_a').up('tr').hide();
			window.location.href = WEBROOT_SITE;
			$('SPAN_status_step2_a').update(' - Confirmed');
		} else {
			$('FEEDBACK_step2_a').up('tr').show();
			if (login_attempts[$$F('INPUT_emailaddress')] < 5) {
				$('FEEDBACK_step2_a').update('Your password was incorrect. Please try again.');
			} else {
				$('FEEDBACK_step2_a').update('You have attempted a few times now... maybe you should <a href="javascript://" onclick="$(\'ACTION_reset_password\').onclick();">reset</a> your password?');	
			}
			$('INPUT_password').update();
			$('INPUT_password').focus();
			$('SPAN_status_step2_a').update(' - Incorrect password ('+login_attempts[$$F('INPUT_emailaddress')]+' times)');
		}
	},
	ajax_reset_password: function(result) {
		$('FEEDBACK_step2_a').up('tr').show();
		$('FEEDBACK_step2_a').update('Your password has been reset and emailed to <strong>'+$$F('INPUT_emailaddress')+'</strong>. <br />Please check this email account shortly for the new password for this user profile.<br />Remember to check your SPAM folder if you do not receive this email.');
		$('SPAN_status_step2_a').update(' - Your password has been reset.');
		$('INPUT_password').update();
		$('INPUT_password').focus();
	},
	ajax_create_profile: function(result) {
		if (result[0]) {
			$('TBODY_step2_b2').hide();
			$('TBODY_step2_b3').hide();
			$('FEEDBACK_step2_b').addClassName('GoodFeedback');
			$('FEEDBACK_step2_b').update('Profile created. Reloading website, please wait...');
			window.location.href = WEBROOT_SITE+'index.php?show=donation';
		} else {
			$('FEEDBACK_step2_b').addClassName('BadFeedback');
			$('FEEDBACK_step2_b').removeClassName('GoodFeedback');
			$('TBODY_step2_b2').show();
			$('TBODY_step2_b3').show();	
		}
	}
};

var REMOTE_index = new ajax_sitepublic(CALLBACK_index); 

function change_username() {
	login_attempts[$$F('INPUT_emailaddress')] = 0;
	$('TBODY_step1a').show();

	$('TBODY_step2_b').hide();
	$('TBODY_step2_a').hide();
	
	$('INPUT_emailaddress').up('tr').show();
	$('INPUT_check_username').up('tr').show();
	
	$('TD_emailaddress').update('&nbsp;');
	$('TD_emailaddress').up('tr').hide();
	$('SPAN_status_step1').update('');
	$('FEEDBACK_step2_a').update('&nbsp;');
	$('FEEDBACK_step2_a').up('tr').hide();
	$('INPUT_emailaddress').focus();
}

var BEHAVIOUR_index = {
	'#ACTION_check_username': function(el) {
		el.onsubmit = function() {
			if ($$F('INPUT_emailaddress') != '') {
				login_attempts[$$F('INPUT_emailaddress')] = 0;
				REMOTE_index.ajax_check_username($$F('INPUT_emailaddress'));
				$('SPAN_status_step1').update(' - Checking address');
			} else {
				$('FEEDBACK_step1').update('You have not entered an email address.');
				$('SPAN_status_step1').update(' - Invalid');
				$('FEEDBACK_step1').up('tr').show();
			}
			return false;
		}
	},
	'#ACTION_change_username_1': function(el) {
		el.onclick = function() {
			change_username();
		}
	},
	'#ACTION_change_username_2': function(el) {
		el.onclick = function() {
			change_username();
		}
	},
	'#ACTION_check_password': function(el) {
		el.onsubmit = function() {
			if ($$F('INPUT_password') != '') {
				login_attempts[$$F('INPUT_emailaddress')]++;
				REMOTE_index.ajax_check_password($$F('INPUT_emailaddress'),$$F('INPUT_password'));
				$('SPAN_status_step2_a').update(' - Logging in...');
			} else {
				$('FEEDBACK_step2_a').update('You have not entered a password.');
				$('SPAN_status_step2_a').update(' - Invalid');
				$('FEEDBACK_step2_a').up('tr').show();
			}
			return false;
		}
	},
	'#ACTION_reset_password': function(el) {
		el.onclick = function() {
			if ($$F('INPUT_emailaddress') != '') {
				REMOTE_index.ajax_reset_password($$F('INPUT_emailaddress'));
				$('SPAN_status_step2_a').update(' - Resetting password...');
			}
		}
	},
	'#INPUT_NewPassword2': function(el) {
		el.onclick = function() {
			if ($$F(el).length == 0) {
				$('FEEDBACK_step2_b').up('tr').show();
				$('FEEDBACK_step2_b').update('Please enter the password again to ensure it matches.');
				$('FEEDBACK_step2_b').removeClassName('PasswordMatch');
				$('FEEDBACK_step2_b').removeClassName('PasswordNotMatch');
			}
		}
		
		el.onkeyup = function() {
			$('FEEDBACK_step2_b').up('tr').show();
			if ($$F('INPUT_NewPassword') == $F('INPUT_NewPassword2')) {
				$('FEEDBACK_step2_b').update('Your passwords match. Please continue filling out your personal details to the right.');
				$('FEEDBACK_step2_b').addClassName('PasswordMatch');
				$('FEEDBACK_step2_b').removeClassName('PasswordNotMatch');
			} else if ($F('INPUT_NewPassword2').length == 0) {
				$('INPUT_NewPassword2').onclick();
			} else {
				$('FEEDBACK_step2_b').update('Your passwords do not match.');
				$('FEEDBACK_step2_b').addClassName('PasswordNotMatch');
				$('FEEDBACK_step2_b').removeClassName('PasswordMatch');
			}
		}
	},
	'#ACTION_create_profile': function(el) {
		el.onsubmit = function() {
			$('FEEDBACK_step2_b').up('tr').show();
			data = Bluora.FormDataSaver(['emailaddress','NewPassword','NewPassword2','MobilePhone','HomePhone','WorkPhone','FirstName','LastName','Line1','Line2','Suburb','Postcode'],'INPUT_');
			
			if (data.Ready) {
			
				if ($$F('INPUT_NewPassword') == $F('INPUT_NewPassword2')) {
					REMOTE_index.ajax_create_profile(data);
					$('FEEDBACK_step2_b').update('Creating user profile...');
					$('FEEDBACK_step2_b').removeClassName('PasswordMatch');
					$('FEEDBACK_step2_b').removeClassName('PasswordNotMatch');
					$('FEEDBACK_step2_b').addClassName('GoodFeedback');
					$('TBODY_step2_b2').hide();
					$('TBODY_step2_b3').hide();
				}
			
			} else {
				$('FEEDBACK_step2_b').update('Please complete highlighted fields before creating your profile.');
			}
			
			return false;
		}
	}
};