function initFormValidation (options) {

	$.validator.addMethod("notClass", function(value, element, arg){
	  return !($(element).hasClass(arg) || $(element).val() == '');
	 }, "Value must not equal arg.");

	 var errorMsg = $('<div class="error-message"><span class="asterisk">* </span><span class="text">'+options.errorMessage+'</span></div>').appendTo(options.errorPlacement).hide();

	$(options.form).validate({
		'rules' : options.rules,
		'errorPlacement' : function(error, element) {
	     // Hiding errors
	   },
	   highlight: function(element, errorClass, validClass) {

		   	if ($(element).is('input[type=file]')) {
	   			var errorTxt = $('#uploader').next('.file-error');
	   			if (errorTxt.length) {
	   				errorTxt.show();
	   			}
	   			else {
	   				$('<p class="file-error">'+options.noFileErrorMessage+'</p>').insertAfter('#uploader');
	   			}
	   		}
	   		else {
		   		var asterisk = $(element).closest('p').next('.error');
		   		if (asterisk.length) {
		   			asterisk.show();
		   		}
		   		else {
		   			$('<span class="error">*</span>').insertAfter($(element).closest('p'));
		   		}
	   		}
	   },
	   unhighlight: function(element, errorClass, validClass) {

	   			if ($(element).is('input[type=file]')) {
			   		$('#uploader').next('.file-error').hide();
			   	}
			   	else {
		   			$(element).closest('p').next('.error').hide();
		   		}

	   },
	   invalidHandler: function(form, validator) {

	   		errorMsg.show();

	   },
	   submitHandler : function(form) {
	   		var jForm = $(form);
			var container = jForm.closest('.col');
			container.css({'min-height' : container.height()})
			jForm.find('.confirmation').fadeOut();
		   	$('.error-message').hide();

		   	$.ajax({
		   		data : jForm.serialize(),
				type : 'POST',
		   		url : jForm.attr('action'),
		   		success : function(data) {
		   			jForm.fadeOut(100, function(){

		   				var jConfirmationBox;
		   				
		   				if ($('.box-confirmation').length) {
		   					jConfirmationBox = $('.box-confirmation');
		   				}
		   				else {
		   					jConfirmationBox = $(data).insertBefore(form).hide();
		   				}

		   				jConfirmationBox.fadeIn(200).find('.button').click(function(e){
		   					e.preventDefault();
		   					jConfirmationBox.fadeOut(100, function(){
		   						form.reset();
		   						var filesList = $('.qq-upload-list');
		   						if (filesList.length) {
		   							filesList.html('');
		   						}
		   						jForm.fadeIn(200);
		   					})
		   				});
		   			});
		   		} 
			});
	   }
	});
}
