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