var formstackAPISequenced=formstackAPISequenced||{};!function(i){formstackAPISequenced={activeField:0,formFieldClass:".c-formstack-api__field",formInputClass:".c-formstack-api__input",formstackForm:".c-formstack-api__form",typingTimer:"",lastFieldTyped:!1,init:function(){i(".c-formstack-api").hasClass("c-formstack-api--sequenced")&&(this.bindUIAction(),this.setInitialActiveState())},bindUIAction:function(){i(".c-formstack-api--sequenced .c-formstack-api__input").on("keydown change",i.proxy(this.inputKeyPress,this)),i(".c-formstack-api--sequenced .c-formstack-api__input").on("click",i.proxy(this.fieldClick,this))},setInitialActiveState:function(){var t=i(".c-formstack-api .c-formstack-api__field:first");t.addClass("active");var e=!1;i(this.formstackForm).find("input").each(function(){i(this).prop("required")&&"hidden"!=i(this).attr("type")&&(e=!0)}),e&&i(this.formstackForm).addClass("invalid")},addClassToForm:function(){i(".c-formstack-api").addClass("invalid")},wrapFormFields:function(t){i(t).is(":checkbox")||i(t).wrap("")},formatSelectBox:function(t){i(t).addClass("js-select-option default-option"),i(t).parent().addClass("js-select-wrapper c-formstack__select");var e=i("option:first",t);i(e).prop("disabled",!0)},selectOptionChosen:function(i){i.currentTarget;this.updateactiveField(this.activeField+1),this.addActiveClass()},inputKeyPress:function(t){if(t.keyCode||"change"===t.type){var e=i(t.currentTarget).closest(this.formFieldClass),a=i(this.formFieldClass).index(e);if(this.activeField=i(this.formFieldClass).index(e),i(e).hasClass("js-last-field")&&this.validateLastField(),this.lastFieldTyped&&this.validateLastField(),13==t.keyCode||9==t.keyCode){var s=(i(this.formFieldClass).eq(this.activeField),i(this.formFieldClass).eq(this.activeField+1));if(void 0!==s){if(13===t.keyCode&&t.preventDefault(),!this.validateInput())return void t.preventDefault();this.updateactiveField(),this.addActiveClass()}}else"change"==t.type?(this.updateactiveField(),this.addActiveClass()):(i(t.currentTarget).removeClass("error"),a>this.activeField&&(this.updateactiveField(),this.addActiveClass()))}},updateactiveField:function(i){i?this.activeField=i:this.activeField++},mobileFieldCenter:function(){if(i(window).width()<580){var t=i(this.formFieldClass).eq(this.activeField).offset().top,e=(i(document).scrollTop(),t-150);e>150&&i("html, body").animate({scrollTop:e},1e3)}},addActiveClass:function(){var t=i(this.formFieldClass).eq(this.activeField);i(t).addClass("active")},checkNextField:function(t){var e=i(this.formFieldClass,this.formstackForm).length;if(!(this.activeField>=e-1))for(var a=this.activeField;a0)||i(s).hasClass("active")){this.updateactiveField(),this.addActiveClass(),e==this.activeField+1&&this.validateLastField();break}this.updateactiveField(),this.addActiveClass(),e==this.activeField+1&&this.validateLastField()}},fieldClick:function(t){var e=i(t.currentTarget).closest(this.formFieldClass),a=i(this.formFieldClass).index(e);(a!==this.activeField||i(e).val())&&(this.updateactiveField(a),a>=this.activeField&&this.addActiveClass(),i(e).parent().prevAll().children(this.formFieldClass).addClass("active"))},validateInput:function(){var t=i(this.formFieldClass).eq(this.activeField).children(this.formInputClass);return!(t.length>0)||(i.validator.addMethod("phoneUK",function(i,t){return this.optional(t)||i.length>9&&i.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/)},"Please specify a valid phone number"),"tel"==i(t).attr("type")?i(t).rules("add",{phoneUK:!0}):i(t).rules("remove","phoneUK"),i(t).valid()||i(this.formstackForm).removeClass("valid"),i(t).valid())},validateLastField:function(){this.lastFieldTyped=!0;var t=this;clearTimeout(this.typingTimer),i(".c-formstack-api").hasClass("c-formstack-api--sequenced")?this.typingTimer=setTimeout(function(){t.checkFormIsValid("last")},750):this.typingTimer=setTimeout(function(){t.checkFormIsValid("last")},50)},checkFormIsValid:function(t){var e=i(this).parent().find("input").filter(function(){return""===this.value});if(0===e.length){if(i(this.formstackForm).valid())return i(".c-formstack-api").addClass("valid"),i(".c-formstack-api").hasClass("c-formstack-api--sequenced")&&(i(".c-formstack-api").removeClass("invalid"),i(".fsSubmitButton").addClass("active")),!0;i(".c-formstack-api").hasClass("c-formstack-api--sequenced")&&(i(".c-formstack-api").removeClass("valid"),i(".c-formstack-api").addClass("invalid"),i(".fsSubmitButton").removeClass("active"))}return!1},formstackSubmit:function(i){i.preventDefault(),this.checkFormIsValid()?this.submitToApi():i.preventDefault()}},i(".c-formstack-api").length>0&&formstackAPISequenced.init()}(jQuery);