/* Formular global validieren */

function TC_processForm() {
	var custForm = dijit.byId("save");
	var firstInvalidWidget = null;

	dojo.every(custForm.getDescendants(), function(widget) {
		firstInvalidWidget = widget;
		return !widget.isValid || widget.isValid();
	});

	if (firstInvalidWidget != null) {
		firstInvalidWidget.focus();
	} else {
		custForm.submit();
	}
}

/* Benutzerdaten erfassen/bearbeiten */

// Validierung des Benutzernamens

function benutzernameOnChange() {
	var benutzername = dijit.byId("benutzer___benutzername").getValue();
	if (benutzername == "") {
		return;
	}

	dojo.xhrGet( {
		url: "/validate_benutzername.json?benutzername=" + benutzername,
		handleAs: "json",
		handle: benutzernameValidationHandler
	} );
}

function benutzernameValidationHandler(response) {
	dijit.byId("benutzer___benutzername").displayMessage();

	if (!response.valid) {
		var errorMessage = "Der Benutzername wird bereits verwendet.";
		dijit.byId("benutzer___benutzername").displayMessage(errorMessage);
	}
}

// Validierung des Benutzernamens vor dem Speichern

function benutzerOnSave() {
	var benutzername = dijit.byId("benutzer___benutzername").getValue();
	if (benutzername == "") {
		console.log("benutzername ist leer");
		return;
	}

	dojo.xhrGet( {
		url: "/validate_benutzername.json?benutzername=" + benutzername,
		handleAs: "json",
		handle: benutzerSaveHandler,
		sync: true
	} );
}

function benutzerSaveHandler(response) {
	dijit.byId("benutzer___benutzername").displayMessage();
	if (response.valid) {
		TC_processForm();
	} else {
		var errorMessage = "Der Benutzername wird bereits verwendet.";
		dijit.byId("benutzer___benutzername").focus();
		dijit.byId("benutzer___benutzername").displayMessage(errorMessage);
	}
}