﻿function HFcreateErrorLabel(name, message)
{
	if ($('#' + name + ' ~ label[generated=true]').length) {
		$('#' + name + ' ~ label[generated=true]').show().html(message);
	} else {
		$('#' + name + '').parent().append('<label generated="true" class="error" for="' + name + '">' + message + '</label>');
	}
}

function HFisValid(rule, value, arg)
{
	switch (rule) {
		case 'expression':	return value;
		case 'equal':		return value == arg;
		case 'filled':		return value != arg && value.length > 0;
		case 'notfilled':	return value == arg || value.length == 0;
		case 'numeric':		return value.match(/^(-)?(\d*)(\.?)(\d*)$/);
		case 'email':		return value.match(/^[^@]+@[^@]+\.[a-z]{2,6}$/i);
		case 'url':			return value.match(/^.+\.[a-z]{2,6}(\\\/.*)?$/i);
		case 'minlength':	return value.length >= parseInt(arg);
		case 'maxlength':	return value.length <= parseInt(arg);
		case 'length':		return value.length == parseInt(arg);
		case 'inarray':		return jQuery.inArray(value, arg) >= 0;
		case 'notinarray':	return jQuery.inArray(value, arg) == -1;
		default:			return value.match(arg);
	}
}