/**
 * Form widget to add additional form functionality
 * 
 * @singleton
 */
nmdgf.widgets.Form = {
		
	initialize : function() {
		this.inputFocus();
		this.inputErrors();
		this.summaryTableHover();
	},
	
	inputFocus : function(){ 
		var textboxes = nmdgf.query('.textbox');
		nmdgf.addListener(textboxes, 'focus', function(e) {
			var el = nmdgf.byEvent(e);
			nmdgf.addClass(el, 'input-focus')
		});
		nmdgf.addListener(textboxes, 'blur', function(e) {
			var el = nmdgf.byEvent(e);
			nmdgf.removeClass(el, 'input-focus')
		});
	},
	
	inputErrors : function() {
		var errors = nmdgf.query('.input-error');
		nmdgf.addListener(errors, 'change', function(e) {
			var el = nmdgf.byEvent(e);
			var inputSpan = nmdgf.byId(el.id+'-cell');
			nmdgf.removeClass(inputSpan, 'label-error');
			nmdgf.removeClass(el, 'input-error');
		});
	},
	
	summaryTableHover : function() {
		var rows = nmdgf.query('.listing-row');
		nmdgf.addListener(rows, 'mouseover', function(e) {
			nmdgf.addClass(this.id, 'listing-row-hover');
		});
		nmdgf.addListener(rows, 'mouseout', function(e) {
			nmdgf.removeClass(this.id, 'listing-row-hover');
		});
	}
			
};
nmdgf.addOnLoad(nmdgf.widgets.Form.initialize, nmdgf.widgets.Form);
