
var loginCheck=0;
var emailCheck=0;
var passwordCheck=0;

var lastUsername=null;
var lastPassword=null;
var lastPassword2=null;
var lastEmail=null;

var ajaxLoader = '/images/ajax-loader.gif';

function do_stepCheck() {
	var debugTxt = "loginCheck=("+ loginCheck +"), emailCheck=("+ emailCheck +"), passwordCheck=("+ passwordCheck +")";
	$("#debugInfo").text(debugTxt);
	
	$("#registerButton").attr('disabled','disabled');
	if((loginCheck + emailCheck + passwordCheck) == 4) {
		//enable the submit button so they can complete registration.
		$("#registerButton").removeAttr('disabled');
	}
}

function ajax_checkUsername() {
	var curUserVal = $("#requestedUsername").val();
	if(curUserVal.length && curUserVal != lastUsername) {
		var imgAlt = "Checking username availability...";
		$("#usernameCheckImg").attr('alt',imgAlt);
		$("#usernameCheckImg").attr('title',imgAlt);
		
		$("#usernameCheckImg").attr('src','/images/ajax-loader.gif');
		lastUsername = curUserVal;
		$.post(
			'/ajax/register/checkUsername',
			{
				'username'	: curUserVal
			},
			function (returnedXml) {
				var xmlObj = parseXML(returnedXml);
				
				var usernameAvailable = $(xmlObj).find('result').text();
				var imgAlt = $(xmlObj).find('info').text();
				var imgSrc = null;

				if(usernameAvailable == 1) {
					
					imgSrc = '/images/status/available.gif';
					loginCheck=1;
				}
				else {
					imgSrc = '/images/status/unavailable.gif';
					loginCheck=0;
				}
				
				changeImage($('#usernameCheckImg'), imgSrc, imgAlt);
				do_stepCheck();
			}
		);
	}
}

function ajax_checkEmail() {
	var curEmail = $("#emailAddress").val();
	if(curEmail.length && curEmail != lastEmail) {
		//$("#emailAddressCheckImg").attr('src',ajaxLoader);
		changeImage($('#emailAddressCheckImg'), ajaxLoader, 'Checking email...');
		lastEmail = curEmail;
		
		$.post(
			'/ajax/register/checkEmail',
			{
				'emailAddress'	: $("#emailAddress").val()
			},
			function(returnXml) {
				var imgAlt = "Invalid email address";
				var imgSrc = "/images/status/unavailable.gif";
				
				var xmlObj = parseXML(returnXml);
				
				var emailValidity = $(xmlObj).find('result').text();
				imgAlt = $(xmlObj).find('info').text();
				
				if(emailValidity == 1) {
					imgSrc = "/images/status/available.gif";
					emailCheck=1;
				}
				else {
					emailCheck=0;
				}
				
				changeImage($('#emailAddressCheckImg'), imgSrc, imgAlt);
				
				do_stepCheck();
			}
		);
	}
}

function changeImage(pObj, pUrl, pText) {
	$(pObj).attr("alt", pText);
	$(pObj).attr("title", pText);
	$(pObj).attr("src", pUrl);
}

function ajax_checkPassword() {
	var curPassword = $("#checkPassword").val();
	if(curPassword.length && (curPassword != lastPassword || lastPassword2 != $("#checkPassword2").val())) {
		var imgAlt = "Checking passwords...";
		changeImage($("tr.checkPassword img"), ajaxLoader, imgAlt);
		lastPassword=curPassword;
		lastPassword2 = $("#checkPassword2").val();
		
		$.post(
			'/ajax/register/checkPassword',
			{
				'checkPassword'		: $("#checkPassword").val(),
				'checkPassword2'	: $("#checkPassword2").val()
			},
			function(returnXml) {
				passwordCheck = 0;
				var xmlObj = parseXML(returnXml);
				
				var passwordValidity = $(xmlObj).find('result').text();
				var checkPassValid = $(xmlObj).find('passcheck').text();
				imgAlt = $(xmlObj).find('info').text();
				
				imgSrc = '/images/status/unavailable.gif';
				if(passwordValidity == 1) {
					imgSrc = '/images/status/available.gif';
					passwordCheck++;
					$("#checkPasswordDetails").hide(500);
				}
				else {
					$("#checkPasswordDetails").text(imgAlt);
					$("#checkPasswordDetails").show(500);
				}
				
				var pass2ImgSrc = '/images/status/unavailable.gif';
				var pass2ImgAlt = "Passwords don't match";
				if(checkPassValid == 1) {
					pass2ImgSrc = '/images/status/available.gif';
					pass2ImgAlt = "Passwords match";
					passwordCheck++;
				}
				
					
				
				changeImage($('#passwordCheckImg'), imgSrc, imgAlt);
				changeImage($('#password2CheckImg'), pass2ImgSrc, imgAlt);
				
				do_stepCheck();
			}
		);
	}
}

function showPasswordError(pMessage) {
	changeImage($("tr.passwordCheck img"), '/images/status/unavailable.gif', pMessage);

}


function ajax_doRegistration() {
	globalRegStatus = 0;
	if($("#requestedUsername").val().length && $("#emailAddress") && $("#checkPassword") && $("#checkPassword2")) {
		$("#registerButtonDiv").hide();
		$("#registrationProgress").show();
		
		$.post(
			'/ajax/register/doRegistration',
			{
				'username'		: $("#requestedUsername").val(),
				'email'			: $("#emailAddress").val(),
				'password'		: $("#checkPassword").val(),
				'checkPassword': $("#checkPassword2").val()
			},
			function (returnXml) {

				var xmlObj = parseXML(returnXml);
				
				var registrationResult = $(xmlObj).find('result').text();
				var registrationInfo = $(xmlObj).find('info').text();
				
				if(registrationResult == 1) {
					showStepTwo();
				}
				else {
					$("#registerButtonDiv").show();
					$("#registrationProgress").hide();
				}
			}
		);
	}
	else {
		alert("Required information missing... please check that you've filled out all of the fields and each has a green checkmark.");
	}
}

function showStepTwo() {
	$("#stepOne").hide();
	$("#stepTwo").show();
}


$(document).ready(function() {
	$("#requestedUsername").blur(function() {
		ajax_checkUsername();
	});
	
	$("#emailAddress").blur(function() {
		ajax_checkEmail();
	});
	
	$("tr.checkPassword input").keyup(function(event) {
		if($("#checkPassword2").val().length == $("#checkPassword").val().length) {
			ajax_checkPassword();
		}
	});
	$("#checkPassword2").blur(function() {
		ajax_checkPassword();
	});
	
	$("#registerButton").click(function() {
		ajax_doRegistration();
	});
	
	if(contentData.step == 'activate') {
		showStepTwo();
	}
});

