/* Copyright 2007 Forte Interactive */
var contentId;if(typeof(contentId)=="undefined"){contentId="body";}
YAHOO.util.Event.onContentReady(contentId,initForms);function initForms(oBody){var aForms=YAHOO.util.Dom.getElementsByClassName("ajaxForm","form",oBody);for(var i=0;i<aForms.length;i++){YAHOO.util.Event.addListener(aForms[i],"submit",ajaxValidate);aForms[i]._isSubmitting=false;}}
function ajaxValidate(eFormSubmit){var oForm=this;YAHOO.util.Event.stopEvent(eFormSubmit);if(oForm._isSubmitting){return;}else{oForm._isSubmitting=true;}
var formCallback={success:function(oResponse){ajaxSuccess(oResponse,oForm);},failure:function(oResponse){oForm.submit();}};YAHOO.util.Connect.setForm(oForm);YAHOO.util.Connect.asyncRequest(oForm.method,oForm.action,formCallback,'ajaxCall=1');}
function ajaxSuccess(oResponse,oForm){var bFormValid=true,errorMsg="",key="";try{if(oResponse.responseText.length>0){var response=oResponse.responseText.parseJSON();for(var i=0;i<oForm.elements.length;i++){if(oForm.elements[i].type!==undefined){setFieldRequired(oForm.elements[i],false);removeError(oForm.elements[i],"change");}}
for(var i=0;i<response.names.length;i++){key=response.names[i];bFormValid=bFormValid&response.fields[key].valid;setFieldRequired(oForm[key],response.fields[key].required);if(!response.fields[key].valid){if(response.fields[key].errorMsg.length>0){errorMsg+="\n - "+response.fields[key].errorMsg;}
addError(oForm[key]);}}}}finally{oForm._isSubmitting=false;if(bFormValid){oForm.submit();}else{alert("Please correct the following errors:"+errorMsg);}}}
function addError(oField){YAHOO.util.Dom.addClass(getFieldContainer(oField),"error");YAHOO.util.Event.addListener(oField,"change",eRemoveError);}
function removeError(oField,eType){YAHOO.util.Dom.removeClass(getFieldContainer(oField),"error");YAHOO.util.Event.removeListener(oField,eType,eRemoveError);}
function eRemoveError(eField){removeError(YAHOO.util.Event.getTarget(eField),eField.type);}
function setFieldRequired(oField,isRequired){if(isRequired){YAHOO.util.Dom.addClass(getFieldContainer(oField),"required");}else{YAHOO.util.Dom.removeClass(getFieldContainer(oField),"required");}}
function getFieldContainer(oField){return YAHOO.util.Dom.getAncestorByClassName(oField,"fieldContainer");}
