
// Localization for FormAssembly.com
// Suomi - February 20, 2012, 3:03 pm
if(typeof wFORMS.behaviors.validation.messages === 'undefined'){
    wFORMS.behaviors.validation.messages = {};
}

(function(){
    var key, tmp;
    for(key in (tmp = {
        oneRequired 	: "Tämä osio on pakollinen",
        isRequired 		: "Tämä kenttä on pakollinen.",
        isAlpha 		: "Voit lisätä vain kirjaimia (a-z, A-Z). Numerot eivät käy.",
        isEmail 		: "Virheellinen email osoite.",
        isInteger 		: "Voit lisätä vain numeroita (ilman disimaaleja).",
        isFloat 		: "Voit lisätä vain numeroita (esim. 1.9).",
        isAlphanum 		: "Voit lisätä vain kirjain-numeroita [a-z 0-9]",
        isDate 			: "Virheellinen päiväys.",
        isDateTime		: "This does not appear to be a valid date/time.",
        isTime	    	: "This does not appear to be a valid time.",
        isPhone			: "Laita oikea puhelin numero.",
        isCustom		: "Tapahtui virhe.",
        notification_0	: "%% virhe(ttä) löytynyt. Lomake ei ole vielä lähetetty. Tarkista lisäyksesi.",
        notification	: "%% virhe(ttä) löytynyt. Lomake ei ole vielä lähetetty. Tarkista lisäyksesi.",
        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: "Please choose a more secure password. Passwords must contain 4 or more characters, with at least 1 letter (a to z) and 1 number (0 to 9).",
        isPasswordWeak  : "Your password cannot be empty.",
        isPasswordConfirmed : "Your password and confirmation field did not match.",
        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 	: "Lisää toinen vastaus",
	ADD_TITLE 		: "Tekee duplikaatin kysymyksestä tai osiosta.",
	REMOVE_CAPTION 	: "Poista",
	REMOVE_TITLE 	: "Poistaa tämän kysymyksen tai osion"
}

wFORMS.behaviors.paging.MESSAGES = {
	CAPTION_NEXT 	 : 'Seuraava',
	CAPTION_PREVIOUS : 'Takaisin',
	CAPTION_UNLOAD	 : 'Kaikki tiedot mitä laitat tämän lomakkeen sivustoille poistetaan'
}


// 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 				= 'Valitse päivä';
cfg.START_WEEKDAY 		= 1;
cfg.MONTHS_LONG			= [	'Tammikuu',
							'Helmikuu',
							'Maaliskuu',
							'Huhtikuu',
							'Toukokuu',
							'Kesäkuu',
							'Heinäkuu',
							'Elokuu',
							'Syyskuu',
							'Lokakuu',
							'Marraskuu',
							'Joulukuu'
							];
cfg.WEEKDAYS_SHORT		= [ 'Su',
							'Ma',
							'Ti',
							'Ke',
							'To',
							'Pe',
							'La'
							];
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;
   }
}

