var markField = function(field, correct){
	if (correct==true){
		field.removeClass('error');	
	}
	else{
		field.addClass('error');
	}
}

var checkNotEmpty = function(value){
	return value!='';
}

var checkDate = function(value){
	var dateformat = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
	return dateformat.test(value) || !checkNotEmpty(value);
}

var checkEmail = function(value){
	var emailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/;
	return emailformat.test(value) || !checkNotEmpty(value);
}

var submitApplicationForm = function(form, fieldsCheck){
	var correctForm = true;
	
	for (var i=0; i<fieldsCheck.length; i++){
		var field = fieldsCheck[i];
		var fieldEl = $('#'+fieldsCheck[i].id);
		var correctField = true;
		if (field.required == true){
			correctField = correctField && checkNotEmpty(fieldEl.val());
		}
		if (field.fieldtype == 'email'){
			correctField = correctField && checkEmail(fieldEl.val());
		}
		if (field.fieldtype == 'date'){
			correctField = correctField && checkDate(fieldEl.val());
		}
		correctForm = correctForm && correctField;
		markField(fieldEl, correctField);
	}

	if (correctForm){
		form.submit();
	}
	else
		alert('Non sono stati inseriti correttamente tutti i campi richiesti');
}