/**
 * Check a field against the given validation method
*/
function checkField(event, input, errors) {

	var element = document.activeElement || event.explicitOriginalTarget;
	
	var is_error = false;
	
	for (var i in errors) {
		
		switch (i) {
			case 'required' :
				is_error = checkField_required($(input).value);
				break;
			case 'valid_email' :
				is_error = checkField_validEmail($(input).value);
				break;
		}
		
		if (is_error) {
			$(input + 'Error').style.display = 'inline';
			$(input + 'ErrorMessage').innerHTML = errors[i];
			break;
		}
	}
	
	
	if (is_error == false) {
		$(input + 'Error').style.display = 'none';
	}

}

function clearField(input) {
	$(input + 'Error').style.display = 'none';
}


function checkField_required(value) {
	
	if (value == '') {
		return true;
	} else {
		return false;
	}
}

/**
 * Validate an email, only validate if not empty
 */
function checkField_validEmail(value) {
	
	if (value == '') {
		return false;
	}
	var filter = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i

	if(!filter.test(value)) {
		return true;
	} else {
		return false;
	}
}
