/**
 * An {Object} providing utility functions being used by demo layout ui.
 * 
 * @required jQuery javascript library
 * 
 * @required css/demo-layout.css
 * 
 * @type {Object}
 */
var Util = {

	/**
	 * Encapsulates utilits functions for form fields.
	 * 
	 * @type {Object}
	 */
	fields : {

		/**
		 * Used by site search field and login fileds. The following css-classes
		 * from css/demo-layout.css are required: 'input.editMode',
		 * 'input.displayMode'.
		 * 
		 * @input type="text" onfocus="Util.fields.focus(fieldEl, defaultValue)"
		 * 
		 * @see,
		 * @required Util.fields.blur(fieldEl, defaultValue)
		 * 
		 * @param {Element}
		 *            fieldEl
		 * @param {String}
		 *            defaultValue
		 */
		focus : function(fieldEl, defaultValue) {
			if (fieldEl.value == defaultValue && true !== fieldEl.edited) {
				fieldEl.value = '';
			}
			$(fieldEl).addClass('editMode');
		},

		/**
		 * Used by site search field and login fileds. The following css-classes
		 * from css/demo-layout.css are required: 'input.editMode',
		 * 'input.displayMode'.
		 * 
		 * @input type="text" onblur="Util.fields.blur(fieldEl, defaultValue)"
		 * 
		 * @see,
		 * @required Util.fields.focus(fieldEl, defaultValue)
		 * 
		 * @param {Element}
		 *            fieldEl
		 * @param {String}
		 *            defaultValue
		 */
		blur : function(fieldEl, defaultValue) {
			if (fieldEl.value != '') {
				fieldEl.edited = true;
				return;
			}
			if (fieldEl.value == '') {
				fieldEl.edited = false;
				fieldEl.value = defaultValue;
			}
			$(fieldEl).removeClass('editMode');
		}

	}

};

