if (Object.isUndefined(Prototype)) {
	throw "CUPH Validation-Fields requires Prototype to be loaded.";
} else if (Object.isUndefined(CUPH.Validation)) {
	throw "CUPH Validation-Fields requires CUPH Validation to be loaded.";
} else if (Object.isUndefined(CUPH.Fields)) {
	throw "CUPH Validation-Fields requires CUPH Fields to be loaded.";
}

CUPH.Validation.Methods = {
	format: function(element, type, options) {
		element = $(element);

		var value = $F(element);

		if (!Object.isUndefined(value) && Object.isString(value)) {
			value = value.strip();

			if (value.length > 0 && element.field()) {
				if (CUPH.Validation[type]) {
					try {
						element.value = CUPH.Validation[type](value, options);
						element.field().removeAllErrors();
					} catch (e) {
						element.field().addError(e);
					}
				} else {
					throw "Unknown formatter.";
				}
			}
		}

		return element;
	}
}

Element.addMethods($w("input select textarea"), CUPH.Validation.Methods);

