function checkUsername(usernameToCheck,usernameField){	
	if (usernameToCheck == '') return false;
	$.post("/validation/username/", {username: usernameToCheck},		
	function(data){
			if(data == "found"){		
				$("#formFeedbackusername").addClass("formFeedbackNegative")
				$("#usernameError").remove();
				if(!$(usernameField).hasClass("hasError")){
					$(usernameField).addClass("error hasError");
					$(usernameField).parent()
					.after("<li id='usernameError'><span class='errorMessage'>Deze gebruikersnaam bestaat al.</span></li>");						
				}
				return false;
			} else {
				$("#formFeedbackusername").addClass("formFeedbackPositive")
				$(usernameField).removeClass('error hasError');				
				$("#usernameError").remove();					
			}
		 	return true;
	});
}

function comparePasswords(passwordfield1,passwordfield2){
	var password1 = $(passwordfield1).val();	
	var password2 = $(passwordfield2).val();			
	if (password1 == '' || password2 == '') {
		return false;
	}

	if(password1 != password2){ // passwords are not the same		
		$("#formFeedbackpassword2").addClass("formFeedbackNegative")
		$(passwordfield2).removeClass("error hasError");	
		$("#passwordError").remove();
		$(passwordfield1).addClass('error');
		$(passwordfield2).addClass('error');
			if(!$(passwordfield2).hasClass("hasError")){
				$(passwordfield2).addClass("error hasError");
				$(passwordfield2).parent()
				.after("<li id='passwordError'><span class='errorMessage'>De wachtwoorden komen niet overeen.</span></li>");
			}
		return false;
	} else {
		$(passwordfield1).removeClass('error');
		$(passwordfield2).removeClass('error');
		$("#passwordError").remove();
		return true;
	}
}

function compareEmails(emailfield1,emailfield2){	
	var email1 = $(emailfield1).val();	
	var email2 = $(emailfield2).val();
	
	if (email1 == '' || email2 == '') {
		return false;
	}
	
	$(emailfield1).removeClass('error');
	$(emailfield2).removeClass('error hasError');
	$("#emailError").remove();
	$("#formFeedbackemail2").removeClass("formFeedbackNegative").addClass("formFeedbackPositive");
			
	if(email1 != email2){ // email-adresses are not the same
		$("#formFeedbackemail2").addClass("formFeedbackNegative")		
		$(emailfield1).addClass('error');
		$(emailfield2).addClass('error');
			if(!$(emailfield2).hasClass("hasError")){
				$(emailfield2).addClass("error hasError");
				$(emailfield2).parent()
				.after("<li id='emailError'><span class='errorMessage'>De email-adressen komen niet overeen.</span></li>");
			}
		return false;
	} else { // e-mail adresses are the same								
		$.post("/validation/email/", {email: email1},function(data){
			if(data == "found"){ // emailadres already in use
				$("#formFeedbackemail2")		
				.addClass("formFeedbackNegative");
				$(emailfield1).addClass("error");	
					if(!$(emailfield2).hasClass("hasError")){
						$(emailfield2).addClass("error hasError");
						$(emailfield2).parent()
						.after("<li id='emailError'><span class='errorMessage'>Dit e-mailadres is al in gebruik.</span></li>");
					}
				return false;
				} 
	    	});
	    	return true;		
	}
}

/**
 * Functions to initialize document ready
 */

function stap2validation(){
	// Compare emails		
	var emailfield1 = $("input[name='email']");
	var emailfield2 = $("input[name='email2']");
	var emailCheck = compareEmails(emailfield1,emailfield2);
					
	// Perform password-compare
	var passwordfield1 = $("input[name='password']");
	var passwordfield2 = $("input[name='password2']");
	var passwordCheck = comparePasswords(passwordfield1,passwordfield2);
			
	// Perform Usernamecheck
	var usernamefield = $("input[title='usernameCheck']");
	var usernameCheck = checkUsername($("input[title='usernameCheck']").val(),usernamefield);
			
	if(usernameCheck && passwordCheck && emailCheck){
		return true;
	}	
}

function stap3validation(){
	if($("input[name='disclaimer']:checked").length != 1){
		$("#disclaimer").parent().after("<li id='disclaimerError'><span class='errorMessage'>Je bent niet akkoord gegaan met de voorwaarden</span><div id='disclaimerError2' class='formFeedback formFeedbackNegative'></div></li>");
	} else {
		$("#disclaimerError").remove();
	}
}
