		var erroneous;
		function point_error(field, message){
			if(erroneous) { erroneous.style.color=''; erroneous.style.fontWeight=''; }
			erroneous=document.getElementById(field.name+"-title")
			if(erroneous){
				erroneous.style.color='red';
				erroneous.style.fontWeight='bold';
			}
			if(field.type != 'hidden'){
				field.focus();}
			alert(message);
		}
		function is_filled(name){
			field=document.getElementById(name);
			if(field.value==''){
				point_error(field,'Tämä kenttä on pakollinen. Ole hyvä ja täytä puuttuvat tiedot.');
				return false;
			}
			return true;
		}
		function is_present(name){
			field=document.getElementById(name);
			if(field.value==''){
				point_error(field,'Tämä kenttä on rastitettava jatkaaksesi.');
				return false;
			}
			return true;
		}
		function is_time(name){
			field=document.getElementById(name+'Time');
			if(field.value.search(/^(\d?\d([:\.]\d\d){0,2}|)\s*$/)==0){
				point_error(field,'Syötä kellonaika muodossa hh:mm.');
				return false;
			}
			return true;
		}
		function is_currency(name){
			field=document.getElementById(name);
			if(field.value.search(/^[+-]?\d+([,.]\d\d?)?$/)==0) {
				point_error(field,'Tämä kenttä saa sisältää vain numeroita.');
				return false;
			} else {
				field.value = field.value.replace(/,/, '.');
			}
			return true;
		}
		function is_integer(name){
			field=document.getElementById(name);
			if(field.value.search(/^-?\d*$/)==0){
				point_error(field,'Tämä kenttä saa sisältää vain numeroita (kokonaislukuja).');
				return false;
			}
			return true;
		}
		function is_less(name, param){
			field=document.getElementById(name);
			if(field.value>param){
				point_error(field,'Kentän arvon tulee olla enintään '+param);
				return false;
			}
			return true;
		}
		function is_greater(name, param){
			field=document.getElementById(name);
			if(field.value<param){
				point_error(field,'Kentän arvon tulee olla vähintään '+param);
				return false;
			}
			return true;
		}
		function is_shorter(name, param){
			field=document.getElementById(name);
			if(field.value.length>param){
				point_error(field,'Kentän arvon tulee olla enintään '+param+' merkkiä pitkä.');
				return false;
			}
			return true;
		}
		function is_longer(name, param){
			field=document.getElementById(name);
			if(field.value.length<param){
				point_error(field,'Kentän arvon tulee olla vähintään '+param+' merkkiä pitkä.');
				return false;
			}
			return true;
		}
		function regExp(name, regexp){
			field=document.getElementById(name);
			if(!regexp.test(field.value)){
				point_error(field,'Kentän arvo ei vastaa sille asetettuja vaatimuksia.');
				return false;
			}
			return true;
		}
		function date_validation(name, min, max){
			var date;
			field=document.getElementById(name);
			if(field.disabled) {
				return true;
			}
			date=field.value;
			if(date.search(/^(\d?\d\.\d?\d(\.?(\d\d\d\d)?))$|^(\d\d\d\d-\d\d-\d\d)$/)==0){
				if(date.search(/^(\d\d\d\d-\d\d-\d\d)$/)==-1){
					var tmp=date.split('.');
					for(var i=0; i<tmp.length; i++){
						if(tmp[i].length==1) 	tmp[i]='0'+tmp[i];
					}
					if(!tmp[2]) 	tmp[2]=(new Date()).getFullYear();
					date=tmp[2]+'-'+tmp[1]+'-'+tmp[0]
				}
				var isosplit=date.split('-');
				var valid_month_days=[31,28,31,30,31,30,31,31,30,31,30,31];
				if (((0 == (isosplit[0]%4)) && ( (0 != (isosplit[0]%100)) || (0 == (isosplit[0]%400)))))
					valid_month_days[1]=29;
				if(isosplit[1]<=12){
					if(isosplit[2]>valid_month_days[isosplit[1]-1]){
						point_error(field,'Virheellinen päivämäärä.');
						return false;
					}
				}
				else{
					point_error(field,'Virheellinen päivämäärä.');
					return false;
				}
				
				if(min){
					if(date<min){
						point_error(field,'Virheellinen päivämäärä.');
						return false;
					}
				}
				if(max){
					if(date>max){
						point_error(field,'Virheellinen päivämäärä.');
						return false;
					}
				}
				return true;
			}
			point_error(field,'Syötä päivämäärä muodossa pp.kk.vvvv, tai valitse päivämäärä kalenterista.');
			return false;
		}
		function time_validation(name){
			field=document.getElementById(name+'Time');
			if(field){
				if(field.value==''){
					return true;
				}
				if(field.value.search(/^(\d?\d([:\.]\d\d){0,2})$/)==-1){
					point_error(field,'Syötä kellonaika muodossa hh:mm.');
					return false;
				}
				else{
				var timesplit;
				if(field.value.search(/^(\d?\d([:]\d\d){0,2})$/)==0){
					timesplit=field.value.split(':');
				}
				else{
					timesplit=field.value.split('.');
				}
				if(timesplit[0]>23||timesplit[1]>59){
					point_error(field,'Virheellinen kellonaika.');
					return false;
				}
				if(timesplit[2]){
					if(timesplit[2]>59){
						point_error(field,'Virheellinen kellonaika.');
						return false;
					}
				}
				}
			}
			return true;
		}

