function SGPBSubscription()
{this.expiryTime=365;this.submissionPopupId=0;this.newWindow=null;this.init();}
SGPBSubscription.cookieName='SGPBSubscription';SGPBSubscription.prototype.init=function()
{if(typeof SGPBFormBuilder!=='undefined'){return false;}
this.livePreview();this.formSubmission();};SGPBSubscription.prototype.formSubmission=function()
{var that=this;if(typeof sgAddEvent==='undefined'){return false;}
sgAddEvent(window,'sgpbDidOpen',function(e){var popupArgs=e.detail;var popupId=popupArgs.popupId;var popupOptions=SGPBPopup.getPopupOptionsById(popupId);var additionalPopupParams={};var subscriptionForm=jQuery('#sgpb-popup-dialog-main-div .sgpb-subs-form-'+popupId+' form');var submitButton=subscriptionForm.find('.js-subs-submit-btn');var sgpbSubsValidateObj={};try{sgpbSubsValidateObj=eval('sgpbSubsValidateObj'+popupId);}
catch(err){}
if(typeof sgpbSubsValidateObj!=='object'){return false;}
jQuery.validator.setDefaults({errorPlacement:function(error,element){var errorWrapperClassName=jQuery(element).attr('data-error-message-class');jQuery('.sgpb-subs-form-'+popupId+' .'+errorWrapperClassName).html(error);}});sgpbSubsValidateObj.submitHandler=function()
{var formData=subscriptionForm.serialize();var ajaxData={action:'sgpb_subscription_submission',nonce:SGPB_JS_PARAMS.nonce,beforeSend:function(){submitButton.val(submitButton.attr('data-progress-title'));if(popupOptions['sgpb-subs-success-behavior']==='redirectToURL'&&popupOptions['sgpb-subs-success-redirect-new-tab']){that.newWindow=window.open(popupOptions['sgpb-subs-success-redirect-URL']);}},formData:formData,popupPostId:popupId};jQuery.post(SGPB_JS_PARAMS.ajaxUrl,ajaxData,function(res){that.submissionPopupId=popupId;jQuery('.sgpb-subs-form-'+popupId+' .sgpb-alert').addClass('sg-hide-element');submitButton.val(submitButton.attr('data-title'));additionalPopupParams['res']=res;that.showMessages(additionalPopupParams);that.processAfterSuccessfulSubmission(ajaxData);});};subscriptionForm.validate(sgpbSubsValidateObj);});jQuery(window).on('sgpbDidClose',function(e){var popupArgs=e.detail;var popupId=popupArgs.popupId;jQuery('.sgpb-subs-form-'+popupId+' form label.error').hide();});};SGPBSubscription.prototype.processAfterSuccessfulSubmission=function(ajaxData)
{if(jQuery.isEmptyObject(ajaxData)){return false;}
ajaxData.action='sgpb_process_after_submission';jQuery.post(SGPB_JS_PARAMS.ajaxUrl,ajaxData,function(res){});};SGPBSubscription.prototype.showMessages=function(res)
{var that=this;if(res['res']==1){this.subscriptionSuccessBehavior();}
else{if(that.newWindow!==null){that.newWindow.close();}
this.showErrorMessage();}
window.dispatchEvent(new Event('resize'));return true;};SGPBSubscription.prototype.showErrorMessage=function()
{var popupId=parseInt(this.submissionPopupId);jQuery('.sgpb-subs-form-'+popupId+' .sgpb-alert-danger').removeClass('sg-hide-element');};SGPBSubscription.prototype.subscriptionSuccessBehavior=function()
{var settings={popupId:this.submissionPopupId,eventName:'sgpbSubscriptionSuccess'};jQuery(window).trigger('sgpbFormSuccess',settings);var popupId=parseInt(this.submissionPopupId);var popupOptions=SGPBPopup.getPopupOptionsById(popupId);var behavior='showMessage';jQuery('.sgpb-subs-form-'+popupId+' form').remove();if(typeof popupOptions['sgpb-subs-hide-subs-users']!=='undefined'){this.setSubscriptionCookie(popupId);}
if(typeof popupOptions['sgpb-subs-success-behavior']!=='undefined'){behavior=popupOptions['sgpb-subs-success-behavior'];}
this.resetFieldsValues();switch(behavior){case'showMessage':jQuery('.sgpb-subs-form-'+popupId+' .sgpb-alert-success').removeClass('sg-hide-element');break;case'redirectToURL':this.redirectToURL(popupOptions);break;case'openPopup':this.openSuccessPopup(popupOptions);break;case'hidePopup':SGPBPopup.closePopupById(this.submissionPopupId);break;}};SGPBSubscription.prototype.openSuccessPopup=function(popupOptions)
{var that=this;setTimeout(function(){SGPBPopup.closePopupById(that.submissionPopupId);},0);if(typeof popupOptions['sgpb-subs-success-popup']!=='undefined'){sgAddEvent(window,'sgpbDidClose',this.openPopup(popupOptions));}};SGPBSubscription.prototype.openPopup=function(popupOptions)
{if(typeof popupOptions['sgpb-subs-success-popup']==='undefined'){return false;}
var subPopupId=parseInt(popupOptions['sgpb-subs-success-popup']);var subPopupOptions=SGPBPopup.getPopupOptionsById(subPopupId);var popupObj=new SGPBPopup();popupObj.setPopupId(subPopupId);popupObj.setPopupData(subPopupOptions);setTimeout(function(){popupObj.prepareOpen();},500);};SGPBSubscription.prototype.setSubscriptionCookie=function(popupId)
{var currentUrl=window.location.href;var cookieName=SGPBSubscription.cookieName+popupId;var expiryTime=this.expiryTime;if(SGPopup.getCookie(cookieName)===''){var cookieObject=[currentUrl];SGPBPopup.setCookie(cookieName,JSON.stringify(cookieObject),expiryTime);}};SGPBSubscription.prototype.redirectToURL=function(popupOptions)
{var redirectURL=popupOptions['sgpb-subs-success-redirect-URL'];var redirectToNewTab=popupOptions['sgpb-subs-success-redirect-new-tab'];SGPBPopup.closePopupById(this.submissionPopupId);if(redirectToNewTab){return true;}
window.location.href=redirectURL;};SGPBSubscription.prototype.resetFieldsValues=function()
{if(!jQuery('.js-subs-text-inputs').length){return false;}
jQuery('.js-subs-text-inputs').each(function(){jQuery(this).val('');});};SGPBSubscription.prototype.livePreview=function()
{this.binding();this.changeLabels();this.changeButtonTitle();this.changeColor();this.changeOpacity();this.changePadding();this.changeDimension();this.preventDefaultSubmission();if(typeof SGPBBackend==='function'){SGPBBackend.makeContactAndSubscriptionFieldsRequired();}};SGPBSubscription.prototype.preventDefaultSubmission=function()
{var formSubmitButton=jQuery('.sgpb-subscription-admin-wrapper input[type="submit"]');if(!formSubmitButton.length){return false;}
formSubmitButton.bind('click',function(e){e.preventDefault();});};SGPBSubscription.prototype.changeDimension=function()
{var that=this;jQuery('.js-subs-dimension').change(function(){var element=jQuery(this);var dimension=that.changeDimensionMode(element.val());var styleType=element.attr('data-style-type');var fieldtype=element.attr('data-field-type');var selector=element.attr('data-subs-rel');if(fieldtype==='input'){jQuery('.sgpb-gdpr-label-wrapper').css('width',dimension);jQuery('.sgpb-gdpr-info').css('width',dimension);}
var styleObj={};styleObj[styleType]=dimension;jQuery('.'+selector).css(styleObj);});};SGPBSubscription.prototype.changePadding=function()
{jQuery('.js-sgpb-form-padding').on('change keydown keyup',function(){var padding=jQuery(this).val();jQuery('.sgpb-subscription-admin-wrapper').css('padding',padding+'px');});};SGPBSubscription.prototype.changeColor=function()
{var that=this;if(typeof jQuery.wp==='undefined'||typeof jQuery.wp.wpColorPicker!=='function'){return false;}
jQuery('.js-subs-color-picker').each(function(){var currentColorPicker=jQuery(this);currentColorPicker.wpColorPicker({change:function(){that.colorPickerChange(jQuery(this));}});});jQuery('.wp-picker-holder').mouseover(function(){var selectedInput=jQuery(this).prev().find('.js-subs-color-picker');that.colorPickerChange(selectedInput);});jQuery('.wp-picker-holder').bind('click',function(){var selectedInput=jQuery(this).prev().find('.js-subs-color-picker');that.colorPickerChange(selectedInput);});};SGPBSubscription.prototype.changeOpacity=function()
{var that=this;jQuery('.js-subs-bg-opacity').next().find('.range-handle').on('change mousemove',function(){that.colorPickerChange(jQuery('input[name=sgpb-subs-form-bg-color]'));});};SGPBSubscription.prototype.setupPlaceholderColor=function(element,color)
{jQuery('.'+element).each(function(){jQuery('#sgpb-placeholder-style').remove();var styleContent='.'+element+'::-webkit-input-placeholder {color: '+color+' !important;}';styleContent+='.'+element+'::-moz-placeholder {color: '+color+' !important;}';styleContent+='.'+element+'::-ms-placeholder {color: '+color+' !important;}';var styleBlock='<style id="sgpb-placeholder-style">'+styleContent+'</style>';jQuery('head').append(styleBlock);});};SGPBSubscription.prototype.colorPickerChange=function(colorPicker)
{var that=this;var opacity=jQuery('input[name=sgpb-subs-form-bg-opacity]').val();var colorValue=colorPicker.val();if(typeof colorValue==='undefined'){return false;}
colorValue=SGPBBackend.hexToRgba(colorValue,opacity);var styleType=colorPicker.attr('data-style-type');var selector=colorPicker.attr('data-subs-rel');if('placeholder'===styleType){that.setupPlaceholderColor(selector,colorValue);return false;}
var styleObj={};styleObj[styleType]=colorValue;jQuery('.'+selector).each(function(){jQuery(this).css(styleObj);});};SGPBSubscription.prototype.changeButtonTitle=function()
{jQuery('.js-subs-btn-title').bind('input',function(){var className=jQuery(this).attr('data-subs-rel');var val=jQuery(this).val();jQuery('.'+className).val(val);});};SGPBSubscription.prototype.changeLabels=function()
{jQuery('#sgpb-subs-gdpr-text').on('change',function(){var text=jQuery(this).val();jQuery(this).text('');jQuery(this).text(text);jQuery('.sgpb-gdpr-text-js').html(text);});jQuery('.js-subs-field-placeholder').each(function(){jQuery(this).bind('input',function(){var className=jQuery(this).attr('data-subs-rel');var placeholderText=jQuery(this).val();if(className==='js-subs-gdpr-label'){jQuery('.'+className).next().text(placeholderText);}
else{jQuery('.'+className).attr('placeholder',placeholderText);}});});};SGPBSubscription.prototype.binding=function()
{var that=this;jQuery('.js-checkbox-field-status').bind('click',function(){var isChecked=jQuery(this).is(':checked');var elementClassName=jQuery(this).attr('data-subs-field-wrapper');var element=jQuery('.'+elementClassName);that.toggleVisible(element,isChecked);});jQuery('.js-checkbox-acordion').each(function(){var isChecked=jQuery(this).is(':checked');var elementClassName=jQuery(this).attr('data-subs-rel');var element=jQuery('.'+elementClassName);that.toggleVisible(element,isChecked);});};SGPBSubscription.prototype.toggleVisible=function(toggleElement,elementStatus)
{if(elementStatus){toggleElement.css({'display':'block'});}
else{toggleElement.css({'display':'none'});}};SGPBSubscription.prototype.changeDimensionMode=function(dimension)
{var size;size=parseInt(dimension)+'px';if(dimension.indexOf('%')!==-1||dimension.indexOf('px')!==-1){size=dimension;}
return size;};SGPBSubscription.prototype.allowToOpen=function(popupId)
{var allowStatus=true;var cookieName=SGPBSubscription.cookieName+popupId;if(SGPopup.getCookie(cookieName)!=''){allowStatus=false;}
return allowStatus;};jQuery(document).ready(function(){new SGPBSubscription();});