define(["jquery","common/regexhelper/regexhelper","common/api/api.guid","libs/jquery/plugins/jquery.xDomainRequest"],function(e,s,i){function t(t,n,a,o,r){var l,u,m,c,d,h,f,p,v=this,b="form-button-disabled",g="form-value-invalid";this.cacheSelectors=function(){u=e("div#"+n),l=e("div#"+t),m=l.find('input[type="submit"]'),c=l.find('input[name="name"]'),d=l.find('input[name="email"]'),h=l.find('input[name="subject"]'),f=l.find('textarea[name="message"]'),p=l.find('input[name="opt-in"]')},this.isMobileView=function(){{var s="#mobile-site-view";e(s)}return e(s).length>0},this.hideSuccessMessage=function(){u.hide()},this.showSuccessMessage=function(){u.show(),u.parent().css("overflow","auto")},this.hideForm=function(){l.children(".form-body").hide()},this.showForm=function(){l.show()},this.wireUpClickEvent=function(){m.click(v.onSubmitClick)},this.removeInvalidCssFromInputs=function(){c.removeClass(g),d.removeClass(g),h.removeClass(g),f.removeClass(g)},this.addInvalidCssToInput=function(e){var s;switch(e){case"message":s=f;break;case"name":s=c;break;case"email":s=d;break;case"subject":s=h}s&&s.addClass(g)},this.getCurrentFormValues=function(){return{name:e.trim(c.val()),email:e.trim(d.val()),subject:e.trim(h.val()),message:e.trim(f.val()),optIn:p.is(":checked")}},this.validateFormValues=function(e){var i=!0;return 0===e.name.length&&(i=!1,v.addInvalidCssToInput("name")),0===e.email.length?(i=!1,v.addInvalidCssToInput("email")):s.validateEmailAddress(e.email)||(i=!1,v.addInvalidCssToInput("email")),0===e.subject.length&&(i=!1,v.addInvalidCssToInput("subject")),0===e.message.length&&(i=!1,v.addInvalidCssToInput("message")),i},this.isButtonDisabled=function(){return m.hasClass(b)},this.toPascalCase=function(e){return null!=e&&void 0!=e&&(e=e.replace(/\w\S*/g,function(e){return e[0].toUpperCase()+e.slice(1).toLowerCase()})),e},this.sendFormPost=function(s){var t=[],n={name:"input",email:"email",subject:"input",message:"paragraph",optIn:"checkbox"};e.each(s,function(e,s){null!=n[e]&&t.push({label:v.toPascalCase(e),value:s,type:n[e]})});var a={domainName:r.domainName,resellerId:r.resellerId,websiteId:r.websiteId,elementId:i.toLegacyIdString(r.elementId),subject:r.subject,formFields:t,hostPageUrl:encodeURIComponent(window.location.href)},o=r.mailerUrl,l={type:"POST",url:o,crossDomain:!0,data:JSON.stringify(a),dataType:"json"};if(r.gemSubmit&&1==r.resellerId&&s.optIn){var u=(s.name||"").split(" "),m=u[0],c=u.slice(1).join(" "),d={email:s.email,first_name:m,last_name:c,suppressed:!1},h=[r.gemSubmitUrl,r.orionId,r.domainName].join("/"),f={type:"POST",url:h,crossDomain:!0,data:d,dataType:"json"};e.when(e.ajax(l),e.ajax(f)).then(v.onSubmitSuccess).fail(v.onSubmitFailure)}else e.when(e.ajax(l)).then(v.onSubmitSuccess).fail(v.onSubmitFailure)},this.setWindowLocation=function(e){window.location=e},this.onLoad=function(){v.cacheSelectors(),v.hideSuccessMessage(),v.showForm(),v.wireUpClickEvent()},this.onSubmitClick=function(){v.removeInvalidCssFromInputs();var e=v.getCurrentFormValues();v.validateFormValues(e)&&(v.isButtonDisabled()||(m.addClass(b),v.sendFormPost(e)))},this.onSubmitSuccess=function(){0===a?(v.hideForm(),v.showSuccessMessage()):v.setWindowLocation(o)},this.onSubmitFailure=function(s){m.removeClass(b);var i=r.sendErrorMessage,t=r.errorTitle,n="error";429===s.status&&r.tooManyRequestsErrorMessage&&(i=r.tooManyRequestsErrorMessage,r.tooManyRequestsErrorTitle&&(t=r.tooManyRequestsErrorTitle),n="warning"),v.isMobileView()?alert(i):e("
").sfGrowl({title:t||"",content:i,icon:n,fadetime:3e3})},this.init=function(){e(document).ready(v.onLoad)}}return t}); //# sourceMappingURL=form.js.map