
	/**
	 * Central Message Depot
	 * 
	 */

	var UserMessages = {
		"Errors" : {
			"Login" : {
				"Empty" : "Bitte geben Sie einen Benutzernamen und ein Passwort",
				"NoPassword": "Bitte geben Sie Ihr Passwort ein.",
				"Invalid" : "Der Benutzername und das Passwort passen nicht zusammen. Bitte versuchen Sie es noch einmal.",
				"Verify" : "Ihr Zugang wurde noch nicht aktiviert. Bitte &uuml;berpr&uuml;fen Sie Ihr E-Mail Postfach, und bestätigen Sie Ihre Registrierung."
			},
			"UserName" : {
				"TooShort" : "Ihr Benutzername ist zu kurz.",
				"Taken" : "Der Benutzername wird bereits verwendet.",
				"Invalid" : "Ihr Benutzername ist nicht g&uuml;ltig.",
				"Empty"	: "Bitte geben Sie einen Benutzernamen"
			},
			"Email" : {
				"Taken" : "Diese E-Mail-Adresse wird schon verwendet.",
				"Invalid" : "Ihre E-Mail-Adresse ist nicht g&uuml;ltig."
			},
			"Password" : {
				'Empty' : "Bitte geben Sie Ihr Passwort ein.",
				'Empty_register' : "Bitte geben Sie ein Passwort ein.",
				'NotMatch' : "Die Passw&ouml;rter stimmen nicht &uuml;berein. Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe.",
				'CharCount' : 'Passwort muss 6 oder mehr Zeichen haben.'
			},
			"DOB" : {
				'OutOfRange' : "Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe und geben Sie das Datum als \"tt.mm.jjjj\" ein."
			},
			"General" : {
				"MalformedResponse" : "I couldn't understand that response.",
				"Required" : "Bitte füllen Sie die erforderlichen Felder aus.",
				"CheckData" : "Bitte &uuml;berpr&uuml;fen Sie Ihre Daten.",
				"CheckInput" : "Bitte überprüfen Sie Ihre Eingabe."
			},
			"Upload" : {
				"PhotoSize" : "Bitte verwenden Sie für das Profil-Foto nur Bilder mit einer maximalen Größe von 2MB.",
				"FileSize" : "Bitte verwenden Sie für das -- FILE -- nur Bilder mit einer maximalen Größe von 1GB."
			}
		},
		"Messages" : {
			"Email" : {
				"OK" : "E-Mail Adresse akzeptiert."
			},
			"UserName" : {
				"OK" : "Benutzername akzeptiert."
			},
			"File" : {
				"Received" : "Datei hochgeladen",
				"ReceivedPlural" : "Dateien hochgeladen"
			},
			"Profile" : {
				"PwdChanged" : "Ihr Passwort wurde erfolgreich ge&auml;ndert.",
				"ProfileChanged" : "Ihre &Auml;nderungen wurden gespeichert.",
				"PwdSent" : "Das Passwort ist auf dem Weg zu Ihnen."
			}
		}
	};

	$.fn.showMessage = function(text) {
		var target = $(this);
		
		var message = $("<p/>")
			.addClass("formMessage")
			.append(text)
			.insertAfter(target)
			.fadeOut(
				3500,
				function(){
					$(message).remove();
				}
			);

		return $(this);
	}

	$.fn.gentleError = function(text) {
		var target = $(this);
		var message = $("<p/>")
			.addClass("formError")
			.append(text)
			.appendTo(target);
		return $(this);
	}

	$.fn.showError = function(text,placement) {
		var target = $(this);
		var errorColor = '#f00';
		
		// reset
		target.siblings(".formError").remove();

		if ($(this).is(":checkbox")) {
			if ($(this).parent().is("label")) {
				target = $(this).parent();
			}
			var targetProperty = "color";
		} else if ($(this).is("select")) {
			var targetProperty = "color";
		} else {
			var targetProperty = "border-color";
		}

		var lastColor = $(this).css(targetProperty);
		$(target).css(targetProperty,errorColor);

		if (placement == "prepend") {
			var message = $("<p/>")
				.addClass("formError")
				.append(text)
				.insertAfter(target);
		} else {
			var message = $("<p/>")
				.addClass("formError")
				.append(text)
				.insertBefore(target);
		}

		// Remove our message and bindings when the user interacts with the form.
		target.bind(
			"keyup",
			function(){
				$(this).unbind("click").unbind("keyup").css(targetProperty,lastColor);
				$(message).remove();
			}
		)
		.bind(
			"click",
			function(){
				$(this).unbind("click").unbind("keyup").css(targetProperty,lastColor);
				$(message).remove();
			}
		);

		return $(this);
	}
