jQuery(document).ready( function() {

	function validateField(field) {
		var error = false;
		
		// required fields
		if (jQuery(field).attr("class").indexOf("required") != -1) {
			if (!jQuery(field).val().length)
				error = true;
		}
		// emails
		if (jQuery(field).attr("class").indexOf("email") != -1) {
			if (!/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/.test(jQuery(field).val()))
				error = true;
		}
		
		if (error) {
			jQuery(field).addClass("error");
			jQuery(field).parent().prev().addClass('validate_header_error');
			jQuery(field).parent().next().show();
			jQuery(field).parent().next().css({color:'red'});
		} else {
			jQuery(field).removeClass("error");
			jQuery(field).parent().prev().removeClass('validate_header_error');
            jQuery(field).parent().next().hide();
		}
		
		return !error;
	}
	
	jQuery("form").each( function() {
		// handle submissions without filling any field
		jQuery(this).submit(function () {
			var validationError = false;
            
           dt = new Date();
           jQuery("#LegalCheck").append('<input type="hidden" name="dt_na_kompie" value="'+dt+'">');
            
			// for each field test it
			jQuery("input, select, textarea", this).each( function() {
				if (jQuery(this).attr("class")) {
					if (!validateField(this))
						validationError = true;
				}
			});
            
            // handle changes on the fly
            jQuery("input, select, textarea", this).each( function() {
                if (jQuery(this).attr("class")) {
                    jQuery(this).keydown( function() { validateField(this) } );
                }
            });
            
            if ( validationError === false ){
                $(".submit").attr("disabled", "disabled");
            }
            
			return !validationError;
		});
	       
		
		
	});
});
