function comparePasswords() {
	$('checkPassword2').update("");
	userDataValidationPassword2 = true;
	if (document.userForm.password.value != document.userForm.password2.value) {
		$('checkPassword2').update("<span class='check_error'>Das Passwort wurde nicht richtig wiederholt.</span>");
		userDataValidationPassword2 = false;
	}
	checkUserData();
}


function checkPassword() {
	if (!skipPasswordTest) {
		$('checkPassword').update("");
		userDataValidationPassword = true;
		if (document.userForm.password.value == "") {
			$('checkPassword').update("<span class='check_error'>Bitte gib ein Passwort ein.</span>");
			userDataValidationPassword = false;
		}
	}
	comparePasswords();
}


function checkMail() {
	$('checkMail').update("");
	userDataValidationMail = true;
	if (document.userForm.mail.value == "" || !document.userForm.mail.value.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) {
		$('checkMail').update("<span class='check_error'>Bitte gib eine gültige E-Mail-Adresse ein.</span>");
		userDataValidationMail = false;
	}
	checkUserData();
}


function checkAgb() {
	$('checkAgb').update("");
	userDataValidationAgb = true;
	if (!document.userForm.agb.checked) {
		$('checkAgb').update("<span class='check_error'>Bitte akzeptiere die AGBs.</span>");
		userDataValidationAgb = false;
	}
	checkUserData();
}


var checkLoginTimeouts;
function checkLogin() {
	if(checkLoginTimeouts != null) {
		clearTimeout(checkLoginTimeouts); 
		checkLoginTimeouts=window.setTimeout("_checkLogin()", 300);
	} else {
		checkLoginTimeouts=window.setTimeout("_checkLogin()", 0);
	}
}

function _checkLogin() {
	var search = document.userForm.login.value;
	if (login != null && login==search) {
		$('checkLogin').update("<span class='check_ok'>OK. Dieser Benutzername steht noch zur Verfügung.</span>");
    	userDataValidationLogin = true;
    	checkUserData();
    	return;
	}
	$('checkLogin').update("<img src='html/img/ajax-loader.gif' alt='' style='vertical-align: middle;'/> Zugangsdaten werden getestet...");
	
	if (search.length > 0) {
		if (!search.match(/^[a-zA-Z_\d]+$/g)) {
			$('checkLogin').update("<span class='check_error'>Der Benutzername darf nur aus Buchstaben, Zahlen und dem Unterstrich bestehen. Umlaute sind nicht möglich.</span>");
			userDataValidationLogin = false;
		} else { 
			var url = "http://twick.it/interfaces/api/find_user.json&limit=1&exact=1&search=" + search;
			new Ajax.Request(url, {
				method: 'get',
				asynchronous: false,
			  	onSuccess: function(transport) {
			    	var suggests = transport.responseText.evalJSON(true);
			    	if (suggests.users.length > 0) {
			    		$('checkLogin').update("<span class='check_error'>Leider ist der Benutzername bereits vergeben.</span>");
			    		userDataValidationLogin = false;
			    		checkUserData();
			    	} else {
			    		$('checkLogin').update("<span class='check_ok'>OK. Dieser Benutzername steht noch zur Verfügung.</span>");
			    		userDataValidationLogin = true;
			    		checkUserData();
			    	}
			  	}	
			});
		}
	}  else {
		$('checkLogin').update("<span class='check_error'>Bitte gib einen Benutzernamen ein.</span>");
		userDataValidationLogin = false;
	}
	checkUserData();		
}


var skipPasswordTest = false;
var userDataValidationLogin = false;
var userDataValidationPassword = false;
var userDataValidationPassword2 = false;
var userDataValidationMail = false;
var userDataValidationAgb = false;
var login = null;
function checkUserData() {
	var ok = userDataValidationLogin && userDataValidationPassword2 && userDataValidationPassword && userDataValidationMail && userDataValidationAgb;
	changeSaveButtonState(ok);
}


function changeSaveButtonState(inOn) {
	if(inOn) {
		$('createLink').className = "";
		$('createLink').onclick = function() { $("twickit-blase").submit(); };
	} else {
		$('createLink').className = "disabled";
		$('createLink').onclick = function() { doPopup('Es wurden nicht alle Felder korrekt ausgefüllt.') };
	}
}

