


/**
 * Handles receipt of form submission and populates error messages in form
 * or redirects to given page if success
 **/
function handleErrors(submitResult)
{
	if (submitResult['valid'] == 'false') {   		
		 var errors = submitResult['errors'];
		 try {
		 	clearFormErrors();
		 	for (var field in errors) {		
		 		showFieldError(field, errors[field]); 	
//		 		if (errorDiv = $(field + 'Error')) {
//		 			errorDiv.innerHTML = errors[field];
//		 			addClass(errorDiv, 'errorMessage');
//				}
		 	}
		 } catch(e) {alert('Exception: '+e.message)}
	}
}


function showFieldError(fieldname, errorMsg)
{
	if (errorDiv = $(fieldname + 'Error')) {
		errorDiv.innerHTML = errorMsg;
		addClass(errorDiv, 'errorMessage');
	}
}


function doHighlight(element)
{
	if (window.MooTools) {
		return;
	} else {	// else assume Scriptaculous
		new Effect.Highlight(element);
	}
}


function testHandler()
{
	alert('AJAX handler test');
}

function handleSubmitResponse(responseText, callBack, errorCallBack)
{
	try {
		responseArray = toJsonObj(responseText);
		if (responseArray['valid'] == 'false') {  
			handleErrors(responseArray);
			if (typeof(errorCallBack) != 'undefined') {
				eval(errorCallBack+'(responseArray);');
			} 			
		} else {			
			if (typeof(callBack) != 'undefined') {
				eval(callBack+'(responseArray);');
			} 
		}
	} catch (e) {
		alert('Exception: '.e.message);
	}
}


function toJsonObj(string)
{
	var result = null;
	if (window.MooTools) {
		result = Json.evaluate(string);
	} else {	// else assume Scriptaculous
		result = string.evalJSON();
	}
	return result;
}


function clearFormErrors()
{
	$$("div.errorMessage").each(function(element){
		element.innerHTML = '';
		removeClass(element,'errorMessage');		
	});
}

function addClass(element, classname)
{
	if (window.MooTools) {
		$(element).addClass(classname);
	} else {
		$(element).addClassName(classname);
	}
}


function removeClass(element, classname)
{
	if (window.MooTools) {
		$(element).removeClass(classname);
	} else {
		$(element).removeClassName(classname);
	}
}


function clearForm(formId)
{
	$(formId).reset();
	clearFormErrors();
}


function showFail(response)
{
	alert(response);
}