/******************************************
 * The Crumbs Form class
 ******************************************/
if (typeof crumbs == "undefined" || !crumbs) {
    var crumbs = {};
}

crumbs.Form = new Class.create(VarienForm, {
	loadClass: 'load-label',

	/**
	 * Constructor
	 *
	 * @param string formId
	 * @param boolean firstFieldFocus
	 */
	initialize: function ($super, formId, firstFieldFocus) {
		$super(formId, firstFieldFocus);
		this.validator.options.focusOnError = false;
		this.initLabels();
	},

	/**
	 * Blanks out the field value when focused.
	 */
    elementOnFocus: function(event){
		var eventEl = Event.element(event);
		if (eventEl.hasClassName(this.loadClass)) {
			eventEl.clear();
			eventEl.removeClassName(this.loadClass);
		}
    },

	/**
	 * Sets the field value to the title of the field.  This replaces a traditional <label>.
	 */
	initLabels: function () {
		var elements = Form.getElements(this.form);
		for (var row in elements) {
			var field = $(elements[row]);
			if (Object.isElement(field) && !field.getValue()) {
				field.addClassName(this.loadClass);
				field.value = field.title;
			}
		}
	}
});

// Add class checking to this validation type
Validation.add('required-entry','This is a required field.', function(v, elm) {
	if (elm.hasClassName('load-label'))
		return false;
	return !Validation.get('IsEmpty').test(v);
});
