define("contactForm",["lodash","santaProps","utils","formCommon","reactDOM","experiment"],function(a,b,c,d,e,f){"use strict";var g=["name","subject","message","phone","email","address"];function h(b){return a.map(b,function(a){return"label_"+a})}function i(a){return a+"FieldLabel"}function j(a){return"hidden_"+i(a)}function k(a){return"required_"+i(a)}function l(a,b,c,d){return{name:a,value:b.value,className:this.classSet(b),placeholder:a,onChange:c,onClick:d}}function m(a){return{notifications:{className:this.classSet({error:a.error,success:!a.error}),children:[a.message]}}}function n(a,b,c){var d=i(a);var e=!c[j(a)];return{className:this.classSet({hidden:e}),children:[b[d]]}}function o(b,d,e){var f=c.validationUtils;if(!b.hidden&&b.required){return d==="email"?f.isValidEmail(e):!a.isEmpty(e)}return true}function p(a,b,c,d,e){if(e){return r(a,c,d)}return s(c,a[c],b.errorMessage,b.validationErrorMessage)}function q(b){return a.reduce(a.keys(b),function(a,b){return b==="notification"?a:a&&b},true)}function r(b,c,d){var e={};var f=b[c];if(f&&f.error){e[c]={error:true};if(q(b)){e.notifications={error:false,message:""}}}e[c]=a.assign(e[c]||{},{hidden:f.hidden,required:f.required,value:d});return e}function s(a,b,c,d){var e={};e[a]={error:true,hidden:b.hidden,required:b.required,value:b.value};e.notifications={message:a==="email"?c:d,error:true};return e}function t(b){var c=b.target.id.replace(this.props.id,"").replace("Field","").toLowerCase();this.setState(a.assign(this.state[c],{error:false}))}function u(b){var c=b.target.id.replace(this.props.id,"").replace("Field","").toLowerCase();this.setState(a.assign(this.state[c],{value:b.target.value}))}var v=["nameFieldLabel","emailFieldLabel","phoneFieldLabel","addressFieldLabel","subjectFieldLabel","messageFieldLabel","errorMessage","successMessage","validationErrorMessage"];function w(){return a.merge(a.pick(this.translatedKeys,v),{textDirection:"left"})}function x(){return{hidden_emailFieldLabel:true,hidden_nameFieldLabel:true,hidden_phoneFieldLabel:false,hidden_addressFieldLabel:false,hidden_subjectFieldLabel:true,hidden_messageFieldLabel:true,required_emailFieldLabel:true,required_nameFieldLabel:true,required_phoneFieldLabel:false,required_addressFieldLabel:false,required_subjectFieldLabel:false,required_messageFieldLabel:false}}function y(){return a.defaults(a.clone(this.props.compData),w.call(this))}function z(){return a.isEmpty(this.props.compProp)?x():this.props.compProp}function A(b){return a.isEmpty(b.compProp)?x():b.compProp}function B(b){return a.reduce(g,function(a,c){var d=!b[j(c)];a["$"+c]=d?c+"Hidden":"";return a},{})}return{displayName:"ContactForm",mixins:[d.formMixin],propTypes:{compData:b.Types.Component.compData.isRequired,compProp:b.Types.Component.compProp.isRequired},statics:{useSantaTypes:true},componentWillReceiveProps:function(b){var c=z.call(this);var d=A(b);var e=B(c);var f=B(d);if(!a.isEqual(e,f)){this.setState(f)}},getFormInitialState:function(){var b=z.call(this);var c={mailSent:false};a.forEach(g.concat("notifications"),function(a){c[a]={error:false,hidden:!b[j(a)],required:!!b[k(a)]}});c.notifications.message="";var d=B(b);return a.merge(c,d)},getFormInputs:function(){return g},getActivityName:function(){return"ContactFormActivity"},getFormFields:function(b,c){return a.reduce(g,function(a,d){var e=z.call(this);var f=y.call(this);var g=e[j(d)];if(g){if(b&&this.state[d].value||!b){a[c?d:f[d+"FieldLabel"]]=this.state[d].value||""}}return a},{},this)},getFieldsForActivityReporting:function(){return this.getFormFields(false,true)},getFieldLabels:function(){var b=y.call(this);return a.reduce(g,function(a,c){a[c]=b[c+"FieldLabel"];return a},{})},isFormValid:function(){var b=this.state;var c=y.call(this);var d=a.clone(b);var f=this.state.email.value;var h=o(b.email,"email",f);d=p(b,c,"email",f,h);var i;if(h){i=a.reduce(g,function(f,g){var h=e.findDOMNode(this.refs[g+"Field"]).value;var i=o(b[g],g.toLowerCase(),h);d=a.assign(d,p(b,c,g,h,i));return f&&i},true,this)}this.setState(d);return i},getInputName:function(){if(f.isOpen("sendContactFormEmailsViaPong")){return this.state.name.value||null}return this.state.name.value||"n/a"},getLangKeys:function(a){return c.translations.contactFormTranslations[a]},getFormSkinProperties:function(){var b={},c=y.call(this),d=z.call(this);a.assign(b,a.zipObject(a.map(g,function(a){return a+"Field"}),a.map(g,function(b){var e=c[i(b)];var f=this.state[b];var g={required:!!d[k(b)],hidden:!d[j(b)]};a.merge(f,g);return l.call(this,e,f,a.bind(u,this),a.bind(t,this))},this)));a.assign(b,a.zipObject(h(g),a.map(g,function(a){return n.call(this,a,c,z.call(this))},this)));a.assign(b,m.call(this,this.state.notifications));return b}}});