﻿(function($){  
	$.fn.formvalidation = function(validator) {  

		var defaults = {  
			error_message: '',  
			error_header: 'Var vänlig komplettera formuläret:',
			error_required: 'är obligatorisk!',
			error_class: 'error_class' 
		};  
    
		var validator = $.extend(defaults, validator);  

		return this.submit( function () {

			validator.error_message = '';
			var is_valid = true;
			
			$(this).find(".required").filter("input, select, textarea").each(function(){
				
			$( $(this) ).bind (
				"click",
				function(){ $(this).removeClass(validator.error_class) }
				);
				
				if(required($(this)) == false)
				{
					is_valid = false;
				}
			});

			if(is_valid == false)
			{
				alert(validator.error_header + '\n\n' + validator.error_message);
				return false;
			}
			else
			{
				return true;
			}
 	
			function required(obj) 
			{
				if( ($(obj).is("input[@type=checkbox]") || $(obj).is('input[@type=radio]')) && $(obj).attr('checked') )
				{
					obj.removeClass(validator.error_class)
					return true;
				}
				else if( $(obj).is("input[@type=checkbox]") || $(obj).is('input[@type=radio]') )
				{
					validator.error_message += '-' + $(obj).attr("title") + ' ' + validator.error_required + '\n';
					$(obj).addClass(validator.error_class);
					return false;
				}
				
				if(($(obj).is("input") || $(obj).is("select") || $(obj).is("textarea")) && $.trim($(obj).val()) == '' )  
				{
					validator.error_message += '-' + $(obj).attr("title") + ' ' + validator.error_required + '\n';
					$(obj).addClass(validator.error_class);
					return false;
				}
				else
				{
					obj.removeClass(validator.error_class)
					return true;
				}
			}
		});
	};  
})(jQuery);  