

/**
 * iaf/public/js/form.js
 */
iaf.registerObject('form');var iaf_form={extendsFrom:'iaf_base',_formObject:{},_submitOptions:{},_initialize:function(formId,submitOptions){this._formObject=$(formId);if(this._formObject==null||this._formObject.tagName.toLowerCase()!='form'){if(iaf.inDevelopmentMode){alert(formId+' is not a valid form ID');}
return;}
if('string'==typeof(submitOptions)){this._submitOptions['action']=submitOptions;}else{this._submitOptions=submitOptions;}
this._formObject.observe('submit',this._onSubmit.bindAsEventListener(this));},_onSubmit:function(eventObject){eventObject.stop();this.submitForm();},submitForm:function(){this._formObject.disable();var submitOptions={callback:this._onResponse.bind(this)};var submitOptions=Object.extend(submitOptions,this._submitOptions);this._getModel().requestServer(this.getFormData(this._formObject),submitOptions);},_onResponse:function(serverResponse){if(serverResponse.success){this._onSuccess(serverResponse);}else{this._formObject.enable();this._onError(serverResponse);}},_onSuccess:function(serverResponse){if(Object.isString(serverResponse.redirectUri)){this.core.redirect(serverResponse.redirectUri);}else if(Object.isString(serverResponse.data.redirectUri)){this.core.redirect(serverResponse.data.redirectUri);}else if('undefined'!=typeof(serverResponse.message)){this._formObject.replace(serverResponse.message);}},_onError:function(serverResponse){this.showFieldErrors(serverResponse);},getFormData:function(formElement)
{var data={memo:{formId:formElement.id}};if(typeof(formElement.id)=='object'){if(this.core.inDevelopmentMode)alert('Field with name "id" encountered. This WILL break the js handler. Set addNameAttribute to false on the offending field.');}
var formPrefix=formElement.id+'-';if(typeof(tinyMCE)!='undefined')tinyMCE.triggerSave();var groupValues={};var allowNullFieldIds={};var formElements=Form.getElements(formElement);formElements.each(function(curEl){if(!curEl.id)return;if(curEl.hasClassName('nonData'))return;if(curEl.id.endsWith('-null')){allowNullFieldIds[curEl.id.replace('-null','')]=true;return;}
var fieldIdParts=curEl.id.replace(formPrefix,'').split('-');var value=null;var inputType=curEl.type.toLowerCase()
switch(inputType){case'text':case'hidden':case'password':value=$F(curEl).strip();break;case'button':case'submit':break;case'select-one':case'select-multiple':value=$F(curEl);break;case'textarea':if(curEl.hasClassName('cssEditor')){value=editAreaLoader.getValue(curEl.id);}else{value=$F(curEl).strip();}
break;case'checkbox':if(curEl.hasClassName('allowMultiple')){fieldIdParts.pop();var checkboxId=fieldIdParts.join('-');if(!keyExists(checkboxId,groupValues)){groupValues[checkboxId]=[];}
if(curEl.checked){groupValues[checkboxId].push($F(curEl));}
value=groupValues[checkboxId];}else{value=curEl.checked;}
break;case'radio':fieldIdParts.pop();value=(curEl.checked)?$F(curEl):iaf_util.getNestedValue(data,fieldIdParts);break;default:throw new Error('Unknown form field: '+inputType);}
if(keyExists(curEl.id,allowNullFieldIds)&&value=='')value=null;iaf_util.setObjectElement(data,fieldIdParts,value);});return data;},_setMessage:function(serverResponse){var formElement=$(serverResponse.memo.formId);var msg=formElement.down('.formMsg');if(!msg){msg=new Element('div',{'class':'formMsg'});formElement.insert({bottom:msg});}
if(!keyExists('success',serverResponse)){msg.removeClassName('msgError');}else if(serverResponse.success){msg.removeClassName('msgError');msg.highlight({queue:'end'});}else{msg.addClassName('msgError');}
msg.update(serverResponse.message);},showFieldErrors:function(serverResponse){this.hideFieldErrors(serverResponse);this._setMessage(serverResponse);var formPrefix=serverResponse.memo.formId+'-';var formObject=$(serverResponse.memo.formId);eachMember(serverResponse.errors,function(fieldId,error){var fieldElement=formObject.down('#'+formPrefix+fieldId);if(!fieldElement){fieldElement=formObject.down('#'+fieldId);}
if(fieldElement)fieldElement.addClassName('fieldError');var fieldMessageBaseId=fieldId+'-errorMsg';var fieldMessageId=formPrefix+fieldMessageBaseId;var errorMessageElement=formObject.down('#'+fieldMessageId);if(!errorMessageElement){var errorMessageElement=formObject.down('#'+fieldMessageBaseId);}
var fieldElementWrapper=fieldElement.up('.inputItem');if(!fieldElementWrapper){fieldElementWrapper=fieldElement;}
if(!errorMessageElement){var errorMessageElement=new Element('span',{id:fieldMessageId,'class':'fieldMsgError'});fieldElementWrapper.insert({after:errorMessageElement});}
errorMessageElement.update(error.message);errorMessageElement.show();});},hideFieldErrors:function(serverResponse)
{var elementId=(!Object.isUndefined(serverResponse.id))?serverResponse.id:serverResponse.memo.formId;var formElement=$(elementId);this._setMessage(serverResponse);formElement.select('.fieldError').each(function(fld){fld.removeClassName('fieldError');});formElement.select('.fieldMsgError').each(function(el){el.hide();});},showThanxMsg:function(serverResponse)
{return this._showSuccessMessage(serverResponse)},_showSuccessMessage:function(serverResponse,clearInputs)
{this._setMessage(serverResponse);if('undefined'!=typeof(clearInputs)&&clearInputs==true){Form.getElements($(serverResponse.memo.formId)).invoke('clear');}
this.refreshCaptcha();},hideFieldSets:function(serverResponse)
{var formElement=$(serverResponse.memo.formId);formElement.select('fieldset').each(function(el){el.hide();});},refreshCaptcha:function()
{if($('captcha'))
{new Ajax.Request(this._getModel().core.paths.urls.root+'txt/com/captcha/default/get_html'
+'/key='+$F('captcha-key'),{method:'get',onSuccess:function(transport)
{$('captcha').update(transport.responseText);}});}},onCaptchaLoaded:function(serverResponse)
{$('captcha').innerHTML=serverResponse.data.captcha.html;},setTarget:function(formElement,target)
{formElement.setAttribute('target',target);},createUploadIframe:function(callback)
{var iframeId='iframe'+iaf_util.getRandom(10000,99999);$$('body').first().insert(new Element('div').update('<iframe style="display:none" src="about:blank" id="'+iframeId+'" name="'+iframeId+'" onload="iaf.form.onUploaded(\''+iframeId+'\')"></iframe>'));var iframeElement=$(iframeId);iframeElement.onComplete=function(result)
{callback.scope[callback.completeMethod](result);}
return iframeId;},submitUpload:function(formElement,callback)
{this.setTarget(formElement,this.createUploadIframe(callback));return(callback&&typeof(callback.onStart)=='function')?callback.onStart():true;},onUploaded:function(iframeId)
{var iframeElement=$(iframeId);if(iframeElement.contentDocument)var document=iframeElement.contentDocument;else if(iframeElement.contentWindow)var document=iframeElement.contentWindow.document;else var document=window.frames[id].document;if(document.location.href=="about:blank")return;iframeElement.onComplete(document.body.innerHTML.stripTags().evalJSON());},tabInput:function(cid,nid,mc)
{if($(cid)&&$(nid)&&$F(cid).length==mc)$(nid).focus();},initSubmitHovers:function()
{$$('input[type="submit"]').each(function(el)
{if(el.className!='idle')
{el.onmouseover=function(){this.className="highlight";}
el.onmouseout=function(){this.className="idle";}}});},getForm:function(){return this._formObject;},getElement:function(name){var form=this.getForm();var id=form.id+'-'+name;return form.down('#'+id);}};

/**
 * iap/newsletter/public/js/blockNewsletter.js
 */
(function(core){var classObject={className:'iap_newsletter_blockNewsletter',extendsFrom:'iaf_form',onDomLoaded:function(){this._initialize('newsletterSubscribe','subscribe');}};core.addObject(classObject);})(iaf);
