
// Localization for FormAssembly.com
// Deutsch - February 20, 2012, 2:56 pm
if(typeof wFORMS.behaviors.validation.messages === 'undefined'){
    wFORMS.behaviors.validation.messages = {};
}

(function(){
    var key, tmp;
    for(key in (tmp = {
        oneRequired 	: "Dieser Abschnitt wird benötigt.",
        isRequired 		: "Dies ist ein Pflichtfeld.",
        isAlpha 		: "Der Text muss aus alphabetischen Zeichen (a-z, A-Z) bestehen. Nummern sind nicht erlaubt.",
        isEmail 		: "Dies darf nicht als gültige eMailadresse erscheinen.",
        isInteger 		: "Bitte geben Sie eine Nummer ein (ohne Dezimalstelle).",
        isFloat 		: "Bitte geben Sie eine Nummer ein (z.B. 1.9).",
        isAlphanum 		: "Bitte nur alphanumerische Zeichen benutzen (a-z, 0-9).",
        isDate 			: "Dies scheint kein gültiges Datum zu sein.",
        isDateTime		: "This does not appear to be a valid date/time.",
        isTime	    	: "This does not appear to be a valid time.",
        isPhone			: "Bitte eine gültige Telefonnummer eingeben.",
        isCustom		: "Bitte geben sie gültige Werte ein.",
        notification_0	: "%% Fehler entdeckt. Ihr Formular wurde bisher nicht eingereicht. Bitte prüfen Sie die Eingaben.",
        notification	: "%% Fehler entdeckt. Ihr Formular wurde bisher nicht eingereicht. Bitte prüfen Sie die Eingaben.",
        isPasswordStrong: "Please choose a more secure password. Passwords must contain 8 or more characters, with at least 1 letter (a to z), 1 number (0 to 9), and 1 symbol (like \'%\', \'$\' or \'!\').",
        isPasswordMedium: "Bitte erhöhen Sie die Passwortsicherheit. Das Passwort muss nicht weniger als 4 Zeichen sein und muss am mindesten einen Buchstabe (a bis z) und eine Nummer (0 bis 9) enthalten.",
        isPasswordWeak  : "Ihr Passwort darf nicht leer sein.",
        isPasswordConfirmed : "Die eingegebenen Passwörte stimmen nicht überein.",
        rangeNumber    : {
            max: "The value must be smaller than the upper bound %1.",
            min: "The value must be greater than the lower bound %1."
        }
    })){
        wFORMS.behaviors.validation.messages[key] = tmp[key];
    }
})();

wFORMS.behaviors.repeat.MESSAGES = {
	ADD_CAPTION 	: "Eine andere Antwort hinzufügen",
	ADD_TITLE 		: "Diese Frage oder dieser Abschnitt wird dupliziert werden",
	REMOVE_CAPTION 	: "Entfernen",
	REMOVE_TITLE 	: "Diese Frage oder dieser Abschnitt wird entfernt werden"
}

wFORMS.behaviors.paging.MESSAGES = {
	CAPTION_NEXT 	 : 'Nächste Seite',
	CAPTION_PREVIOUS : 'Vorherige Seite',
	CAPTION_UNLOAD	 : 'Alle Eingaben in ALLEN FELDERN dieses Formulars werden verloren gehen'
}


// Alpha Input Validation:
wFORMS.behaviors.validation.instance.prototype.validateAlpha = function(element, value) {
	var reg =  /^[a-zA-Z\s\u00C0-\u00FF]+$/;
	return this.isEmpty(value) || reg.test(value);
}
// Alphanumeric Input Validation:
wFORMS.behaviors.validation.instance.prototype.validateAlphanum = function(element, value) {
	var reg =  /^[\u0030-\u0039a-zA-Z\s\u00C0-\u00FF]+$/;
	return this.isEmpty(value) || reg.test(value);
}

// Calendar
if(!wFORMS.helpers.calendar) {
	wFORMS.helpers.calendar = {};
}
if(!wFORMS.helpers.calendar.locale) {
	wFORMS.helpers.calendar.locale = {};
}
var cfg = wFORMS.helpers.calendar.locale;

cfg.TITLE 				= 'Datum aussuchen';
cfg.START_WEEKDAY 		= 1;
cfg.MONTHS_LONG			= [	'Januar',
							'Februar',
							'März',
							'April',
							'Mai',
							'Juni',
							'Juli',
							'August',
							'September',
							'Oktober',
							'November',
							'Dezember'
							];
cfg.WEEKDAYS_SHORT		= [ 'So',
							'Mo',
							'Di',
							'Mi',
							'Do',
							'Fr',
							'Sa'
							];
cfg.MDY_DAY_POSITION 		= 1;
cfg.MDY_MONTH_POSITION 		= 2;
cfg.MDY_YEAR_POSITION		= 3;
cfg.DATE_FIELD_DELIMITER	= '/';


wFORMS.behaviors.validation.instance.prototype.validateDate = function(element, value) {
   if(this.isEmpty(value)){
       return true;
   }
 
   var cfg = wFORMS.helpers.calendar.locale;
   
   var re = /^(\d{1,2})[\/\.\-](\d{1,2})[\/\.\-](\d{2,4})$/
   if (re.test(value)) {
      var dArr = value.split(/[\/\.\-]/);
      
      var yr = dArr[cfg.MDY_YEAR_POSITION-1]; 
      if(yr.length==2) yr = (yr>50) ? '19'+yr : '20'+yr;
      var mo = parseInt(dArr[cfg.MDY_MONTH_POSITION-1],10); 
      var dy = parseInt(dArr[cfg.MDY_DAY_POSITION-1],10);
      var d = new Date(yr,mo-1,dy);
      return (d.getMonth() + 1 == mo && 
    		  d.getDate() == dy && 
    		  d.getFullYear() == yr);
   }
   else {
	  return false;
   }
}

