/***
* ar_error_display.js : function used to display form errors unobtrusively
*                       in the form area.
* Author : Simon Dupuis Howard
* Created : 08/11/08 | Last modification : 08/11/08
*/

/***
* ShowFormErrors() : Show the errors that the PHP validator class has cought
* Returns : void.
* Parameters :  $p_errors(object array) | The errors the PHP validator class has cought
*/
var Y_Dom = YAHOO.util.Dom;
var Y_Event = YAHOO.util.Event;

function ShowFormErrors(p_errors) {
	for (var index in p_errors) {
		var displayAreas = Y_Dom.getElementsByClassName('err_'+index);
		
		for (var i=0; i != displayAreas.length; ++i) {
			var displayArea = displayAreas[i];
			
			var initialColor = displayArea.style.color;
			Y_Dom.setStyle(displayArea, 'color', 'red');
	
			switch (displayArea.tagName) 
			{
				case 'INPUT' :
					displayArea.value = p_errors[index];
					eval("Y_Event.addListener('err_"+index+"', 'click', function() {Y_Dom.setStyle('err_"+index+"', 'color', initialColor); Y_Dom.get('err_"+index+"').value = ''; Y_Event.removeListener('err_"+index+"', 'click'); });");
					break;
				case 'SELECT' :
					if (p_errors[index].length > 0) {
						// TODO
					}
					else {
						eval("Y_Event.addListener('err_"+index+"', 'click', function() {Y_Dom.setStyle('err_"+index+"', 'color', initialColor); Y_Event.removeListener('err_"+index+"', 'click'); });");
					}
					break;
				case 'TEXTAREA' :
					displayArea.value = p_errors[index];
					eval("Y_Event.addListener('err_"+index+"', 'click', function() {Y_Dom.setStyle('err_"+index+"', 'color', initialColor); Y_Dom.get('err_"+index+"').value = ''; Y_Event.removeListener('err_"+index+"', 'click'); });");
					break;
			}
		}
	}
}