function formValidation(form){
	(function($){
		Locale.use('sv-SE');
		var formValidator = new Form.Validator($(form),{
			'stopOnFailure': true,
			'useTitles': true,
			'evaluateFieldsOnBlur': true,
			'evaluateFieldsOnChange' : true,
			'serial' : false,
			'onElementPass' : function(el){
				$('not-complete').setStyle('display', 'none');
				var id = el.getProperty('name') + '-check';
				$(id).addClass('valid');
			},
			'onElementFail' : function(el){
				var id = el.getProperty('name') + '-check';
				$(id).removeClass('valid');
			},
			'onFormValidate' : function(passed, form){
				if(!passed){
					var submitPos = $('do_check').getPosition($('do_check').getParent('fieldset'));
					$('not-complete').setStyles({
						top : submitPos.Y + 10,
						left : submitPos.X + 30,
						display : 'inline'
					});
					var inputs = $$('.required', '.validate-one-required');
					inputs.each(function(input){
						if(input.hasClass('validation-passed')){
							var id = input.getProperty('name') + '-check';
							$(id).addClass('valid');
						}
					});
				}
			}
		});
		
		var datePicker = new DatePicker($('fodd'), {
			pickerClass : 'datepicker_vista',
			format : '%Y-%m-%d',
			startView : 'years',
			onSelect : function(date){
				if(formValidator.validateField($('fodd'))){
					$('fodd-check').addClass('valid');
				}
			}
		});
		
		//autocomplete
		
		var descriptions = $$('.description');
		var questions = $$('.question');
		function showDescription(description, question){
			descriptions.each(function(item){
				item.setStyle('display', 'none');
			});
			pos = $(question).getPosition($(question).getParent('form'));
			$(description).setStyles({
				display : 'inline',
				top : pos.y - 10,
				left : pos.x + 15
			});
		};
		questions.each(function(item){
			item.addEvent('click', function(){
				question = item.getProperty('id');
				description = question.replace('question', 'description');
				showDescription(description, question);
			});
		});
		var hideDivs = $$('.hideMe');
		hideDivs.each(function(item){
			item.addEvent('click', function(){
				item.getParent('.description').setStyle('display', 'none');
			});
		});
		
	})(document.id);

}
