bootstrap
4 years ago
admin.js
2 years ago
chosen.jquery.min.js
9 years ago
index.php
11 years ago
mailin-front.js
2 years ago
mailin-front.js
321 lines
| 1 | var captchaRes = ''; |
| 2 | var sibErrMsg; |
| 3 | var gCaptchaSibWidget; |
| 4 | var ajax_sib_front_object; |
| 5 | var sibVerifyCallback = function (response) { |
| 6 | captchaRes = response; |
| 7 | var formIdInvisible = sessionStorage.getItem("formIdRecapcha"); |
| 8 | if (captchaRes) { |
| 9 | var validationErr = 0; |
| 10 | jQuery.each(jQuery(formIdInvisible).find('input[required=required]'), function () { |
| 11 | if (jQuery(this).val().trim() == '' || (jQuery(this).attr('type') == "checkbox" && jQuery(this).prop("checked") == false)) { |
| 12 | validationErr++; |
| 13 | var form = jQuery(this).closest('form'); |
| 14 | var requiredField = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val(); |
| 15 | if (requiredField !== undefined) { |
| 16 | sibErrMsg.requiredField = requiredField; |
| 17 | } |
| 18 | form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show(); |
| 19 | return; |
| 20 | } |
| 21 | }); |
| 22 | } |
| 23 | if (validationErr == 0) { |
| 24 | jQuery(formIdInvisible).trigger('submit'); |
| 25 | } |
| 26 | }; |
| 27 | |
| 28 | jQuery(document).ready(function(){ |
| 29 | jQuery('.sib_signup_form').find('input[required=required]').on("invalid", function () { |
| 30 | if(jQuery(this).val().trim() == '') |
| 31 | { |
| 32 | var alert_msg = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val(); |
| 33 | this.setCustomValidity(alert_msg); |
| 34 | } |
| 35 | else { |
| 36 | this.setCustomValidity(''); |
| 37 | } |
| 38 | }); |
| 39 | // run MA script identify() when submit on any forms with email field |
| 40 | jQuery(document).on('submit', 'form', function(e){ |
| 41 | var invalidEmail = jQuery(this).closest('form').find('input[name="sib_form_invalid_email_notice"]').val(); |
| 42 | var requiredField = jQuery(this).closest('form').find('input[name="sib_form_alert_notice"]').val(); |
| 43 | if (invalidEmail !== undefined) { |
| 44 | sibErrMsg.invalidMail = invalidEmail; |
| 45 | } |
| 46 | if (requiredField !== undefined) { |
| 47 | sibErrMsg.requiredField = requiredField; |
| 48 | } |
| 49 | |
| 50 | if(!jQuery(this).hasClass('sib_signup_form')) { |
| 51 | var email = jQuery(this).find('input[type=email]').val(); |
| 52 | var emailPattern = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; |
| 53 | if (typeof sendinblue != 'undefined' && email != null && emailPattern.test(email)) { |
| 54 | var postData = jQuery('input[type!=password]',this).serializeObject(); |
| 55 | sendinblue.identify(email, postData); |
| 56 | } |
| 57 | } |
| 58 | else |
| 59 | { |
| 60 | e.preventDefault(); |
| 61 | var form = jQuery(this).closest('form'); |
| 62 | // for sms field |
| 63 | jQuery.each(form.find('.sib-sms'), function () { |
| 64 | var sms = jQuery(this).val(); |
| 65 | var sms_prefix = jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val(); |
| 66 | if ( sms == sms_prefix && !jQuery(this).prop('required')) { |
| 67 | jQuery(this).val(''); |
| 68 | } |
| 69 | }); |
| 70 | |
| 71 | /** |
| 72 | * For safari |
| 73 | * Not support required attribute |
| 74 | */ |
| 75 | |
| 76 | var required_fileds = []; |
| 77 | var err_index = 0; |
| 78 | |
| 79 | var multi_lists = form.find(jQuery('.sib-multi-lists')); |
| 80 | if( multi_lists != undefined && multi_lists.data('require') == 'required' ) |
| 81 | { |
| 82 | if ( multi_lists.find('input:checked').length == 0 ) |
| 83 | { |
| 84 | err_index++; |
| 85 | multi_lists.addClass('sib_error'); |
| 86 | } |
| 87 | } |
| 88 | if(err_index > 0) |
| 89 | { |
| 90 | form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.requiredField + '</p>').show(); |
| 91 | return; |
| 92 | } |
| 93 | err_index=0; |
| 94 | jQuery.each(form.find('input[type="email"]'), function(){ |
| 95 | var Email = /^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/i; |
| 96 | if (!Email.test(jQuery(this).val())) |
| 97 | { |
| 98 | err_index++; |
| 99 | } |
| 100 | }); |
| 101 | if(err_index > 0) |
| 102 | { |
| 103 | form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidMail + '</p>').show(); |
| 104 | return; |
| 105 | } |
| 106 | |
| 107 | // Check sms validation |
| 108 | err_index = 0; |
| 109 | jQuery.each(form.find('.sib-sms'), function () { |
| 110 | var sms = jQuery(this).val(); |
| 111 | if ( is_valid_sms(sms) == false && sms != '' ) { |
| 112 | err_index ++; |
| 113 | } |
| 114 | }); |
| 115 | if(err_index > 0) |
| 116 | { |
| 117 | form.find('.sib_msg_disp').html('<p class="sib-alert-message sib-alert-message-warning ">' + sibErrMsg.invalidSMSFormat + '</p>').show(); |
| 118 | return; |
| 119 | } |
| 120 | form.find('.sib_loader').show(); |
| 121 | jQuery('.sib_msg_disp').hide(); |
| 122 | var postData = form.serializeArray(); |
| 123 | if( captchaRes != '' ) |
| 124 | { |
| 125 | postData.push({"name": "g-recaptcha-response", "value": captchaRes}); |
| 126 | } |
| 127 | captchaRes = ''; |
| 128 | if( jQuery('.sib-multi-lists').length ) |
| 129 | { |
| 130 | var interesting_lists = []; |
| 131 | jQuery('.sib-interesting-lists').each(function () { |
| 132 | postData.push({"name":"interestingLists[]", "value": jQuery(this).val()}) |
| 133 | }); |
| 134 | } |
| 135 | var formURL = form.attr("action"); |
| 136 | form.addClass('sib_processing'); |
| 137 | |
| 138 | postData.push({ "name": "security", "value": ajax_sib_front_object.ajax_nonce }); |
| 139 | jQuery.ajax({ |
| 140 | url: formURL, |
| 141 | type: "POST", |
| 142 | dataType: "json", |
| 143 | data: postData, |
| 144 | success: function (data, textStatus, jqXHR) { |
| 145 | jQuery('.sib_loader').hide(); |
| 146 | if( jQuery('.sib-multi-lists').length ) |
| 147 | { |
| 148 | jQuery('.sib-multi-lists').removeClass('sib_error'); |
| 149 | } |
| 150 | if (data.status === 'success' || data.status === 'update') { |
| 151 | var cdata = '<p class="sib-alert-message sib-alert-message-success ">' + data.msg.successMsg + '</p>'; |
| 152 | form.find('.sib_msg_disp').html(cdata).show(); |
| 153 | } else if (data.status === 'failure') { |
| 154 | var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.errorMsg + '</p>'; |
| 155 | form.find('.sib_msg_disp').html(cdata).show(); |
| 156 | } else if (data.status === 'already_exist') { |
| 157 | var cdata = '<p class="sib-alert-message sib-alert-message-warning ">' + data.msg.existMsg + '</p>'; |
| 158 | form.find('.sib_msg_disp').html(cdata).show(); |
| 159 | } else if (data.status === 'invalid') { |
| 160 | var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg.invalidMsg + '</p>'; |
| 161 | form.find('.sib_msg_disp').html(cdata).show(); |
| 162 | } else if (data.status === 'gcaptchaEmpty') { |
| 163 | var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>'; |
| 164 | form.find('.sib_msg_disp').html(cdata).show(); |
| 165 | } else if (data.status === 'gcaptchaFail') { |
| 166 | var cdata = '<p class="sib-alert-message sib-alert-message-error ">' + data.msg + '</p>'; |
| 167 | form.find('.sib_msg_disp').html(cdata).show(); |
| 168 | } |
| 169 | form[0].reset(); |
| 170 | if (data.redirect && (data.status === 'success' || data.status === 'update')) { |
| 171 | window.location.href = data.redirect; |
| 172 | } |
| 173 | |
| 174 | //Render the cloudflare captcha again |
| 175 | if (typeof data.turnstileCaptcha !== 'undefined' && data.turnstileCaptcha) { |
| 176 | jQuery.each(form.find('.cf-turnstile'), function () { |
| 177 | var siteKey = jQuery(this).data("sitekey"); |
| 178 | var cfResponse = jQuery('input[name="cf-turnstile-response"]').val(); |
| 179 | if (cfResponse) { |
| 180 | var idToBeRendered = "#cf-turnstile-"+siteKey; |
| 181 | turnstile.render(idToBeRendered, { |
| 182 | sitekey: siteKey, |
| 183 | callback: function(token) { |
| 184 | console.log("Challenge Success"); |
| 185 | }, |
| 186 | }); |
| 187 | } |
| 188 | }); |
| 189 | } |
| 190 | var previous_code = form.find('.sib-cflags').data('dial-code'); |
| 191 | if ( previous_code ) |
| 192 | { |
| 193 | form.find('.sib-sms').val('+' + previous_code); |
| 194 | form.find('input[name="sib_SMS_prefix"]').val('+' + previous_code); |
| 195 | } |
| 196 | |
| 197 | // run MA script identify() when subscribe on SIB forms |
| 198 | if (typeof sendinblue != 'undefined') { |
| 199 | var email = form.find('input[name=email]').val(); |
| 200 | var postData = form.serializeObject(); |
| 201 | if (data.status === 'success' || data.status === 'update' || data.status === 'already_exist') { |
| 202 | sendinblue.identify(email, postData); |
| 203 | } |
| 204 | } |
| 205 | jQuery(".sib-alert-message").delay(2000).hide('slow'); |
| 206 | form.removeClass('sib_processing'); |
| 207 | if (typeof grecaptcha != 'undefined') |
| 208 | { |
| 209 | grecaptcha.reset(gCaptchaSibWidget); |
| 210 | } |
| 211 | }, |
| 212 | error: function (jqXHR, textStatus, errorThrown) { |
| 213 | form.find('.sib_msg_disp').html(jqXHR).show(); |
| 214 | if (typeof grecaptcha != 'undefined') |
| 215 | { |
| 216 | grecaptcha.reset(gCaptchaSibWidget); |
| 217 | } |
| 218 | } |
| 219 | }); |
| 220 | } |
| 221 | }); |
| 222 | jQuery('.sib-country-block').on('click', function () { |
| 223 | jQuery('.sib-country-list').toggle(); |
| 224 | }); |
| 225 | if (jQuery('.sib-country-list').length > 0) |
| 226 | { |
| 227 | jQuery('.sib-country-list').ready( function () { |
| 228 | var data = { |
| 229 | action : 'sib_get_country_prefix', |
| 230 | security: ajax_sib_front_object.ajax_nonce, |
| 231 | }; |
| 232 | jQuery.post( ajax_sib_front_object.ajax_url, data, function (respond) { |
| 233 | jQuery('.sib-country-list').html(respond); |
| 234 | }); |
| 235 | }); |
| 236 | } |
| 237 | |
| 238 | jQuery('body').on('click', function(e){ |
| 239 | if ( jQuery('.sib-sms-field .sib-country-list').length > 0 && !jQuery('.sib-sms-field .sib-country-list').is(e.target) && jQuery('.sib-sms-field .sib-country-list').has(e.target).length === 0 && jQuery('.sib-sms-field .sib-country-block').has(e.target).length === 0 ) { |
| 240 | jQuery('.sib-sms-field .sib-country-list').hide(); |
| 241 | } |
| 242 | }); |
| 243 | |
| 244 | jQuery('.sib-country-list').on( 'click', 'li' , function () { |
| 245 | var country_code = jQuery(this).data('country-code').toLowerCase(); |
| 246 | var dial_code = jQuery(this).data('dial-code'); |
| 247 | jQuery(this).closest('.sib-sms-field').find('.sib-sms').val('+' + dial_code ); |
| 248 | jQuery(this).closest('.sib-sms-field').find('input[name="sib_SMS_prefix"]').val('+' + dial_code ); |
| 249 | jQuery(this).closest('.sib-sms-field').find('.sib-cflags').css('background-image', 'url(' + ajax_sib_front_object.flag_url + country_code + '.png)'); |
| 250 | jQuery(this).closest('.sib-sms-field').find('.sib-cflags').data('dial-code', dial_code); |
| 251 | jQuery(this).closest('.sib-country-list').hide(); |
| 252 | }); |
| 253 | jQuery(".sib-sms").on('keypress', function (event){ |
| 254 | validateInteger(event, 'sms'); |
| 255 | }); |
| 256 | |
| 257 | // allow to input 0-9 and - only for date field |
| 258 | jQuery(".sib-date").on('keypress', function(event) { |
| 259 | validateInteger(event, 'date'); |
| 260 | }); |
| 261 | function is_valid_sms( sms ) { |
| 262 | sms = sms.replace(/\b(0(?!\b))+/g, ""); |
| 263 | |
| 264 | var tempSms = sms.replace(/( |\(|\)|\.|\-)/g, ''); |
| 265 | |
| 266 | if (tempSms.length > 19 || tempSms.length < 6 || tempSms.charAt(0) != '+'){ |
| 267 | return false; |
| 268 | } |
| 269 | return true; |
| 270 | } |
| 271 | function validateInteger(evt,type) { |
| 272 | var theEvent = evt || window.event; |
| 273 | var key = theEvent.charCode || theEvent.which; |
| 274 | |
| 275 | key = String.fromCharCode( key ); |
| 276 | // 0-9, +/-, space, brackets |
| 277 | var regex = /[ +0-9()-]/; |
| 278 | var smsLength = 0; |
| 279 | if( type == 'date' ) { |
| 280 | regex = /[ 0-9-/]/; |
| 281 | } |
| 282 | if( !regex.test(key)) { |
| 283 | theEvent.returnValue = false; |
| 284 | key = theEvent.keyCode; |
| 285 | // ignore input for del,tab, back, left, right, home amd end |
| 286 | if(theEvent.preventDefault && key != 9 && key != 8 ) theEvent.preventDefault(); |
| 287 | } |
| 288 | } |
| 289 | |
| 290 | |
| 291 | }); |
| 292 | // get serialized data form subscribe form |
| 293 | jQuery.fn.serializeObject = function() |
| 294 | { |
| 295 | var o = {}; |
| 296 | var a = this.serializeArray(); |
| 297 | jQuery.each(a, function() { |
| 298 | if(this.name == 'sib_form_action' || this.name == 'sib_form_id' || this.name == 'email') |
| 299 | return true; // continue |
| 300 | if (o[this.name] !== undefined) { |
| 301 | if (!o[this.name].push) { |
| 302 | o[this.name] = [o[this.name]]; |
| 303 | } |
| 304 | o[this.name].push(this.value || ''); |
| 305 | } else { |
| 306 | o[this.name] = this.value || ''; |
| 307 | } |
| 308 | }); |
| 309 | return o; |
| 310 | }; |
| 311 | // get form id |
| 312 | jQuery(document).ready(function () { |
| 313 | jQuery(".sib-default-btn").on("click", function () { |
| 314 | var row = jQuery(this).closest(".sib_signup_form"); |
| 315 | sessionStorage.setItem("formIdRecapcha", "#" + jQuery(row).attr('id')); |
| 316 | }) |
| 317 | }) |
| 318 | |
| 319 | function errorCallbackForTurnstileErrors(){ |
| 320 | } |
| 321 |