function digitLength(size) {
    return function(value, element, param){
        value = jQuery.trim(value.replace('-',''));
        $(element).val(value);
	    return this.optional(element) || value.length == size;
	}    
}

$.validator.addMethod("ssn", digitLength(10), "Kennitala er ekki rétt innslegin");  
$.validator.addMethod("phonenumber", digitLength(7), "Símanúmer er ekki rétt innslegið");  

$.extend(jQuery.validator.messages, {
	required: "Fylla þarf út reitinn",
	email: "Netfang er ekki rétt innslegið",
	digits: "Einungis tölustafi"
});  

$(document).ready(function(){
    $(".validate form, form.validate").each(function(){      
        var rules = {};
        $(this).find('.validate').each(function(){
            var self = $(this);
            var input = self.is('input, textarea') ? self : self.find('input, textarea');
            var key = input.attr('name');
            rules[key] = {
                required: self.hasClass('required'),
                email: self.hasClass('email'),
                ssn: self.hasClass('ssn'),
                phonenumber: self.hasClass('phonenumber'),
                digits: self.hasClass('digits') || self.hasClass('ssn') || self.hasClass('phonenumber')
            };             
        })
        
        $(this).validate({
            debug: false, 
            rules: rules,
            errorClass: 'req',
            errorElement: 'span',
			errorPlacement: function(error, element) {
			     error.appendTo( element.parents(".validate:eq(0)"));
			}            
        });
                       
    }).submit(function (e){
        var target = $(this).find('input[name=item_action]');
        if(target.length){
            var button = e.originalEvent.explicitOriginalTarget;
            if(button && $(button).is(':submit') && $(button).attr('name'))
                target.val($(button).attr('name'));
            else
                target.val('createAndActivate');                
        }
        return true;
    });
});