/home/hamzarou/www/wp-content/plugins/sms-alert/js/otp-sms.min.js
var sa_interval;
$sa =jQuery;
$sa(document).on(
"input", ".otp_input",function () {
var otp_length = $sa('#smsalert_customer_validation_otp_token').attr('data-max');
enableValidateBtn(this,otp_length);
}
);
$sa(document).on(
'keypress', '.otp_input,.otp-number', function (e) {
if (e.which == 13) { e.preventDefault();
}
var maxlength = $sa(this).attr("data-max");
if($sa(this).val().length==maxlength) {
if(event.which) {
event.preventDefault();
}
}
}
);
if((typeof sa_otp_settings != 'undefined' && sa_otp_settings['is_checkout'])
&& ((typeof sa_otp_settings != 'undefined' && sa_otp_settings['login_with_otp'])
|| (typeof sa_otp_settings != 'undefined' && sa_otp_settings['buyer_login_otp'])) && $sa(".showlogin").parents(".woocommerce").find(".cod-showlogin").length == 0
) {
$sa(".showlogin").parents(".woocommerce-form-login-toggle").hide();
var content = $sa(".showlogin").parents(".woocommerce-form-login-toggle").clone();
var child_div = $sa(".showlogin").parents(".woocommerce-form-login-toggle").after(content);
child_div.show();
child_div.find('.showlogin').addClass("sa-showlogin").removeClass("showlogin");
$sa(document).on(
"click",".sa-showlogin",function () {
if(sa_otp_settings['hide_default_login_form'] == 'on') {
$sa(".sa-lwo-form").first().toggle();
}
else
{
if($sa(this).hasClass("lwo-opened")) {
$sa(".sa-lwo-form").hide();
$sa(".woocommerce-form-login,.xoo-el-form-container.xoo-el-form-inline").hide();
$sa(".woocommerce-form-login").removeClass('nasa-active');
$sa(this).removeClass("lwo-opened");
}
else
{
$sa(".woocommerce-form-login,.xoo-el-form-container.xoo-el-form-inline,.black-window.hidden-tag").not('.sa-lwo-form').toggle();
$sa('.woocommerce-form-login .wrap-all').before('<a class="nasa-stclose woocommerce-form-login-close" href="javascript:void(0);" rel="nofollow"></a>');
$sa(".woocommerce-form-login").addClass('nasa-active');
$sa(this).addClass("lwo-opened");
}
}
}
);
}
$sa(document).on(
"click",".sa_default_login_form,.sa_default_signup_form",function () {
$sa('.black-window.hidden-tag').show();
var parent_cls = $sa(this).attr("data-parentform");
if($sa(this).parents('.smsalert-modal').length>0) {
var id = $sa(this).parents('.smsalert-modal').attr('id');
$sa("#"+id+" ."+parent_cls).fadeIn(1000,'linear');
}
else{
$sa("form."+parent_cls).fadeIn(1000,'linear');
}
$sa(this).parents("form").attr("style","display:none!important");
$sa(this).parents("form").find(".phone-valid").val("");
}
);
var loginelementCopy = '';
var signupelementCopy = '';
$sa(document).on(
"click", ".sa_myaccount_btn",function (e) {
$sa('.loginwithotp').removeAttr('inert');
var parentForm = $sa(this).parents("form");
if(parentForm.parents('.um-login').length > 0 || parentForm.parents('#login').length > 0 || parentForm.parents('#tab-customlogin').length > 0 || parentForm.parents('.xoo-el-section-login').length > 0 || parentForm.hasClass('xoo-el-form-login') || parentForm.hasClass('checkoutwc') || parentForm.find('#bp-login-widget-form').length > 0 || parentForm.parents('.thim-login').length > 0) {
parentForm.addClass('login');
}
if(parentForm.parents('#tab-customregister').length > 0 || parentForm.parents('.xoo-el-section-register').length > 0 || parentForm.hasClass('xoo-el-form-register') || parentForm.parents('.thim-register').length > 0) {
parentForm.addClass('register');
}
if(parentForm.hasClass('login')) {
$sa(".loginwithotp").parents("div").find('.sa_default_login_form').trigger("click");
if(loginelementCopy == '')
{
loginelementCopy = $sa(".loginwithotp").detach().clone();
}
parentForm.after(loginelementCopy);
parentForm.parents("div").find('.loginwithotp').not('.loginwithotp:first').remove();
}
if(parentForm.hasClass('register')) {
if(signupelementCopy == '')
{
signupelementCopy = $sa(".signupwithmobile").detach().clone();
}
parentForm.after(signupelementCopy);
}
initialiseCountrySelector();
parentForm.attr("style", "display: none !important");
parentForm.next().find(".sa-lwo-form").fadeIn(
200,'linear',function () {
var mob_field = $sa(this).find('.phone-valid');if(isInputVisibleToUser(mob_field)) {
$sa('html').animate(
{scrollTop: mob_field.offset().top-100}, 500, function () {
mob_field.focus();
}
);
}
}
);
parentForm.parent().find(".sa-lwo-form").addClass("lwo-opened");
$sa('.black-window.hidden-tag').hide();
}
);
function isInputVisibleToUser(inputField) {
return inputField.is(':visible') && inputField.parents().filter(function() {
return $sa(this).css('visibility') !== 'hidden';
}).length === inputField.parents().length;
}
$sa(document).on(
"click", ".close",function () {
hideOtpModal($sa(this));
}
);
$sa(document).on(
"click", ".back",function () {
hideOtpModal($sa(this));
}
);
function hideOtpModal(obj)
{
clearInterval(sa_interval);
var modal_style = obj.parents('.smsalertModal').attr('data-modal-close');
obj.parents('.smsalertModal').addClass(modal_style+'Out').removeClass(modal_style+'In');
var otp_in_popup = sa_otp_settings['otp_in_popup'];
if ("on" === otp_in_popup ) {
obj.parents(".smsalertModal").not('.smsalert-modal').hide('slow');
}
else{
obj.parents('.smsalertModal').next().addClass(modal_style+"Up").removeClass(modal_style+'Down');
if(modal_style != '' && modal_style != 'modal-slide')
{
obj.parents('.smsalertModal').parent().css('min-height',obj.parents('.smsalertModal').next().height());
}
obj.parents('.smsalertModal').next().show();
}
if(modal_style != '')
{
setTimeout(
function () {
$sa('.smsalertModal').removeClass(modal_style+'Out').addClass(modal_style+'In');
if ("on" !== otp_in_popup ) {
obj.parents(".smsalertModal").not('.smsalert-modal').hide();
}
}, 1000
);
}
else{
if ("on" !== otp_in_popup ) {
obj.parents(".smsalertModal").not('.smsalert-modal').hide();
}
}
}
let saGroup = function (ele) {
ele.value = ele.value.replace(/[^0-9]/g,'');
var cur_class = ele.className;
var maxlength = $sa('.'+cur_class).attr("data-max");
var next_input = ele.id.slice(6);
if(ele.value.length > maxlength) {
var cur_val = ele.value.slice(0, 1);
$sa("."+cur_class).val(cur_val);
}
}
let tabChange = function (val,modal_id) {
// var modal_form_class = modal_id.parentElement.parentElement.parentElement.parentElement.getAttributeNode("data-form-id").value;
var modal_form_class = $sa(modal_id).parents('[data-form-id]').attr('data-form-id');
let ele = '';
if(modal_form_class == "" ) {
ele = document.querySelectorAll('.digit-group input');
} else {
ele = document.querySelectorAll('.'+modal_form_class+' .digit-group input');
}
if(ele[val-1].value != '') {
ele[val].focus();
}else if(ele[val-1].value == '' && event.currentTarget.id != 'digit-1') {
ele[val-2].focus();
}
}
$sa(document).on(
"keyup",".smsalertModal .otp-number",function (e) {
var otp_length = $sa('#smsalert_customer_validation_otp_token').attr('data-max');
var txtData = [];
var parent = $sa(this).parents(".smsalertModal");
parent.find(".otp-number").each(
function () {
var otp_number = $sa(this).val();
txtData.push(otp_number);
}
);
parent.find(".otp_input").val(txtData.join(""));
enableValidateBtn(parent.find(".otp_input"),otp_length);
e.preventDefault();
if(e.key === "Delete" && e.target.selectionStart==0) {
var item = $sa(this);
item.val(item.next('.otp-number').val());
item.nextAll(".otp-number").each(
function () {
item[0].setSelectionRange(0,0);
$sa(this).val($sa(this).next('.otp-number').val());
}
);
e.preventDefault();
}
if(e.key === "ArrowLeft" || e.key === "Backspace") {
$sa(this).prev('.otp-number').focus();
}
if(e.key === "ArrowRight") {
$sa(this).next('.otp-number').focus();
}
}
);
$sa(window).ready(
function () {
$sa(".sa_myaccount_btn").closest("form").find('#rememberme').closest('label').each(
function () {
var form = $sa(this).closest('form');
form.find('.woocommerce-LostPassword').prepend($sa(this));
}
);
if((sa_otp_settings['hide_default_login_form'] == 'on' && !sa_otp_settings['is_wp_login']) || (sa_otp_settings['hide_default_admin_login_form'] == 'on' && sa_otp_settings['is_wp_login'])) {
if($sa(".sa_myaccount_btn[name=sa_myaccount_btn_login]").parents().find('.woocommerce-form-login-toggle').length==0) {
$sa(".sa_myaccount_btn[name=sa_myaccount_btn_login]").trigger("click");
}
else{
$sa(".woocommerce-form-login-toggle").next().find('.sa_myaccount_btn[name=sa_myaccount_btn_login]').trigger("click");
}
setTimeout(
function () {
$sa(".sa-showlogin").trigger("click")}, 10
);
$sa(".sa_default_login_form").hide();
$sa(".sa_loginwithotp-form").show();
var country_enable = sa_otp_settings['show_countrycode'];
if (country_enable === "on" && $sa('.ct-drawer-canvas').length > 0) {
const targetNode = document.querySelector('.ct-drawer-canvas');
const config = { childList: true, subtree: true, characterData: true };
const callback = function(mutationsList) {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
for (let node of mutation.addedNodes) {
if (node.id === 'account-modal') {
initialiseCountrySelector();
break;
}
}
}
}
};
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);
}
}
}
);
function pasteOtp(otp)
{
var maxlength = $sa(".otp_input").attr("data-max");
otp_field = $sa(".otp-number");
var sc = [...otp];
otp_field.val(i => sc[i]).eq(maxlength-1).focus();
$sa(".otp-number").trigger('keyup');
}
function getCountryByCode(code)
{
return window.intlTelInputGlobals.getCountryData().filter(
function (data) {
return (data.dialCode == code) ? data.iso2 : ''; }
);
}
function enableValidateBtn(obj,otp_length)
{
var pattern = new RegExp('^[0-9]{'+otp_length+'}$');
if (pattern.test($sa(obj).val())) {
$sa("#sa_verify_otp").removeAttr("style");
$sa("#sa_verify_otp").removeAttr("disabled");
var auto_validate = sa_otp_settings['auto_validate'];
if ("on" === auto_validate && !$sa("#sa_verify_otp").hasClass("button--loading") ) {
$sa("#sa_verify_otp").trigger("click");
}
}
else
{
$sa("#sa_verify_otp").css({"color":"grey","pointer-events":"none"});
}
}
function saResendOTP(obj)
{
$sa(".sa-otp-initiated .sa-otp-btn-init").trigger("click");
return false;
}
function sa_otp_timer(obj,otp_timer=15)
{
initialiseAutoFillOtp();
var timer = function (secs) {
var sec_num = parseInt(secs, 10)
var hours = Math.floor(sec_num / 3600) % 24
var minutes = Math.floor(sec_num / 60) % 60
var seconds = sec_num % 60
hours = hours < 10 ? "0" + hours : hours;
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
return [hours,minutes,seconds].join(":")
};
obj.find(".sa_timer").show();
obj.find(".satimer").html(timer(otp_timer));
obj.find(".sa_forgot").hide();
obj.find(".sa_resend_btn").addClass("anchordisabled");
var counter = otp_timer;
sa_interval = setInterval(
function () {
counter--;
var places = (counter < 10 ? "0" : "");
obj.find(".satimer").html(timer(counter));
if (counter == 0) {
counterRunning=false;
obj.find(".sa_timer").hide();
obj.find(".sa_forgot").show();
obj.find(".sa_resend_btn").removeClass("anchordisabled");
obj.find(".sa_resend_btn").css("cursor","pointer");
clearInterval(sa_interval);
}
}, 1000
);
}
function saInitOTPProcess(obj,action_url, data_obj,otp_resend_timer=15,success_cb=null,failure_cb=null,phone_selector=null,submit_selector=null)
{
var waiting_txt = (typeof sa_notices != 'undefined' && sa_notices['waiting_txt']) ? sa_notices['waiting_txt'] : "Please Wait...";
var cur_btn = $sa(obj);
var prev_btn_text = cur_btn.val();
var otp_in_popup = sa_otp_settings['otp_in_popup'];
if ("on" === otp_in_popup ) {
var currentModel = $sa(".modal.smsalertModal");
currentModel.find(".ring").removeClass('sa-hide');
currentModel.find(".modal-content").css('transform', 'scale(0)');
currentModel.show();
}
action_url = (typeof sa_otp_settings['lang'] != 'undefined' && sa_otp_settings['lang']!='') ? action_url+"&lang="+sa_otp_settings['lang'] : action_url;
if(cur_btn.is("input")) {
cur_btn.val(waiting_txt).attr("disabled",true);
}else{
cur_btn.addClass('button--loading').attr("disabled",true);
}
$sa('form').removeClass('sa-otp-initiated');
$sa.ajax(
{
url:action_url,
type:"POST",
data:data_obj,
cache: false,
crossDomain:!0,
dataType:"json",
success:function (o) {
if("failure"==o.result || false==o.success) {
showError(o,cur_btn,failure_cb,prev_btn_text);
return false;
}
showSAModal(o,cur_btn,phone_selector,submit_selector,prev_btn_text,success_cb,otp_resend_timer);
if (typeof wpcaptcha_captcha == 'function') {
wpcaptcha_captcha();
}
},
error:function (o,e,m) {
showError(o,cur_btn,failure_cb,prev_btn_text);
}
}
);
return false;
}
function showSAModal(o,cur_btn,phone_selector,submit_selector,prev_btn_text,success_cb,otp_resend_timer)
{
$sa('.smsalertModal .smsalert_validate_field,.smsalertModal .saeditphone,.smsalertModal .sa-message').show();
$sa('.saresubmit ').removeClass('button--loading').attr("disabled",false);
$sa('.smsalertModal .sa-edit-phone').hide();
$sa('[tabindex="-1"]').removeAttr('tabindex');
var currentModel = $sa(".modal.smsalertModal");
cur_btn.parents("form").addClass('sa-otp-initiated');
if(($sa('.sa-otp-initiated .phone-valid').val() == undefined) || (o.message == 'Oops!!! you do not have enough credits.') || (o.message == 'There was an error in sending the OTP to the given Phone Number. Please Try Again or contact site Admin. If you are the website admin, please browse here for steps to resolve this error.'))
{
$sa('.smsalertModal .edit-user-phone').hide();
}
else{
$sa('.smsalertModal .edit-user-phone').show();
}
var $woo = $sa("div.woocommerce");
("success"==o.result)?(
(cur_btn.is("input") ? cur_btn.val(prev_btn_text).attr("disabled",false) : cur_btn.removeClass('button--loading').attr("disabled",false)),
currentModel.find(".sa-message").empty().removeClass("woocommerce-error").append(o.message).addClass("woocommerce-message"),
currentModel.find(".otp_input,.otp-number").val(""),
currentModel.find(".otp_input,.otp-number:visible:first").focus(),
currentModel.find(".otp_input,.otp-number").off().on(
"keypress", function (event) {
if (event.which === 13) {
event.preventDefault();
validateOtp({data:{btn_class: submit_selector}});
}
}
),
$sa("#sa_verify_otp").off().on("click",{btn_class: submit_selector}, validateOtp),
currentModel.find(".smsalert_validate_field").show(),
sa_otp_timer(currentModel,otp_resend_timer),
((typeof success_cb == "function") ? success_cb(o) : "" )
):
(
currentModel.find(".smsalert_validate_field").hide(),
currentModel.find(".sa-message").empty().removeClass("woocommerce-message").append(o.message).addClass("woocommerce-error"),
($sa("div.woocommerce").length > 0) ? ($sa("div.woocommerce").removeClass("processing"),(typeof $woo.unblock === "function")?$woo.unblock():'') : '',
(cur_btn.is("input") ? cur_btn.val(prev_btn_text).attr("disabled",false) : cur_btn.removeClass('button--loading').attr("disabled",false))
);
$sa(".saeditphone").off().on("click",{phone_class: phone_selector}, saEditNumber);
var otp_in_popup = sa_otp_settings['otp_in_popup'];
if ("on" === otp_in_popup ) {
currentModel.find(".ring").addClass('sa-hide');
currentModel.find(".modal-content").css('transform', 'scale(1)');
}
else{
var parentForm = cur_btn.parents("form");
if(parentForm.parents('.sa-div').length == 0)
{
parentForm.wrap('<div class="sa-div"></div>');
}
parentForm.before(currentModel.detach());
var modal_style = currentModel.attr("data-modal-close");
if(modal_style != '')
{
parentForm.addClass(modal_style+"Down").removeClass(modal_style+"Up");
setTimeout(
function () {
if(modal_style != 'modal-slide')
{
parentForm.parent().animate({"min-height":currentModel.height()},200);
}
parentForm.hide();
}, 1000
);
}
else
{
parentForm.hide();
}
if(modal_style != '' && modal_style != 'modal-slide')
{
parentForm.parent().css('min-height',parentForm.height());
}
currentModel.show();
setTimeout(function(){
currentModel.removeClass(modal_style+"In");
}, 1000);
}
var otp_field = $sa(".otp-number");
otp_field.on(
'paste',function (ev) {
var clip = ev.originalEvent.clipboardData.getData('text').trim();
pasteOtp(clip);
return ev.preventDefault();
}
);
return false;
}
function showError(o,cur_btn,failure_cb,prev_btn_text)
{
var currentModel = $sa(".modal.smsalertModal");
cur_btn.val(prev_btn_text).attr("disabled",false);
cur_btn.removeClass('check').attr("disabled",false);
cur_btn.removeClass('button--loading').attr("disabled",false);
(typeof failure_cb == "function") ? failure_cb(o) : "" ;
currentModel.find(".ring").addClass('sa-hide');
currentModel.hide();
}
function sa_validateOTP(obj,action_url,data_obj,callback)
{
var current_btn = $sa('#sa_verify_otp');
var current_modal = $sa(".modal.smsalertModal");
var otp_in_popup = sa_otp_settings['otp_in_popup'];
if ("on" === otp_in_popup ) {
current_modal.find(".ring").removeClass('sa-hide');
current_modal.find(".modal-content").css('transform', 'scale(0)');
}
action_url = (typeof sa_otp_settings['lang'] != 'undefined' && sa_otp_settings['lang']!='') ? action_url+"&lang="+sa_otp_settings['lang'] : action_url;
$sa.ajax(
{
url:action_url,
type:"POST",
data:data_obj,
crossDomain:!0,
dataType:"json",
beforeSend: function ( xhr ) {
if ("on" === otp_in_popup ) {
current_modal.find(".sa-message").empty().addClass("woocommerce-message");
}
if(current_btn.is("input")) {
current_btn.attr("disabled",true);
}else{
current_btn.addClass('button--loading').attr("disabled",true);
}
},
success:function (o) {
otpSuceess(o,current_btn,callback);
},
error:function (o,e,m) {
alert("error found here");
}
}
);
}
function otpSuceess(o,current_btn,callback)
{
var current_modal = $sa(".modal.smsalertModal");
var otp_in_popup = sa_otp_settings['otp_in_popup'];
if ("on" === otp_in_popup ) {
current_modal.find(".ring").addClass('sa-hide');
current_modal.find('.modal-content').css({'transform': 'scale(1)','transition': 'all 0.5s'});
}
("success"==o.result && o.message==sa_otp_settings['valid_otp'])?
(
current_modal.find(".smsalert_validate_field").hide(),
current_btn.removeClass("button--loading"),
current_modal.find(".sa-message").show().empty().addClass("woocommerce-message").append(o.message).removeClass("woocommerce-error"),
current_modal.find(".saeditphone").hide(),
/* setTimeout(
function () {
hideOtpModal(current_btn);
}, 1500
), */
((typeof callback == "function") ? callback() : "" )
):
(
current_btn.attr("disabled",false),
current_btn.removeClass("button--loading"),
current_modal.find(".sa-message").show().empty().addClass("woocommerce-error").append(o.message).removeClass("woocommerce-message"),
current_modal.find(".otp_input").focus());
}
function add_smsalert_button(submit_selector,phone_selector,unique_id,button_text='')
{
if(!$sa(submit_selector).hasClass("sa-default-btn-hide") && ($sa(phone_selector).attr('type') !== 'hidden' || $sa(phone_selector).parents("form").hasClass('woocommerce-post-checkout-form'))) {
$sa(phone_selector).parents("form").addClass("sas-form");
var button = $sa(submit_selector);
if(!button.hasClass("cod-default-btn-hide"))
{
button.addClass("sa-default-btn-hide");
}
$sa(button.first().clone()).insertAfter(button.first()).addClass("sa-otp-btn-init smsalert_otp_btn_submit");
$sa(submit_selector+".sa-otp-btn-init").attr("id","sa_verify_"+unique_id).attr("name","sa_verify_"+unique_id).removeAttr('onclick').removeAttr('onkeypress');
$sa(".sa-otp-btn-init").removeClass("sa-default-btn-hide cod-default-btn-hide");
if($sa(phone_selector).prop('nodeName') === 'INPUT')
{
$sa(phone_selector).addClass("phone-valid");
}
if($sa(submit_selector).is("button")) {
var text = (button_text!='')?button_text:$sa(submit_selector+".sa-default-btn-hide").text();
$sa("#sa_verify_"+unique_id).html("<span class=button__text>"+ text+"</span>");
}
}
}
function send_otp(obj,submit_selector,phone_selector,username_selector,password_selector)
{
$sa(obj).parents(".smsalertModal").hide();
var country_enable = sa_otp_settings['show_countrycode'];
var site_url = sa_otp_settings['site_url'];
var otp_resend_timer = sa_otp_settings['otp_time'];
var verification_allowed = true;
if($sa(obj).parents("form").find(phone_selector).prop('nodeName') === 'INPUT')
{
if ("on" !== country_enable ) {
var e = $sa(obj).parents("form").find(phone_selector).val();
} else {
var e = $sa(obj).parents("form").find(phone_selector).intlTelInput("getNumber");
var allow_otp_verification = sa_otp_settings['allow_otp_verification'];
var allow_otp_countries = sa_otp_settings['allow_otp_countries'];
if("on" == allow_otp_verification && "" !== allow_otp_countries)
{
var country_code = $sa(phone_selector).intlTelInput("getSelectedCountryData").dialCode;
if($sa.inArray(country_code,allow_otp_countries)== -1) {
var verification_allowed = false;
}
}
}
}
else{
var e = $sa(obj).parents("form").find(phone_selector).text();
}
var u = $sa(obj).parents("form").find(username_selector).val();
var p = $sa(obj).parents("form").find(password_selector).val();
if(typeof u !== "undefined" && typeof p !== "undefined") {
var data = {username:u,password:p};
}
else
{
var data = $sa(obj).parents("form").serialize();
}
$sa(obj).parents("form").find("[aria-required=true], [required],.ff-el-is-required,.validate-required,.wpcf7-validates-as-required").not(".otp_input").each(
function () {
$sa(this).removeClass("sa_field_error");
if($sa(this).is(":hidden")) {
return true;
}
if(($sa(this).attr("aria-required") || $sa(this).attr("required")) && ($sa(this).val() === "") && $sa(this).attr("type") != 'file' && $sa(this).attr("type") != undefined){
$sa(this).addClass("sa_field_error");
}
if($sa(this).attr("type") === "radio" || $sa(this).attr("type") === "checkbox") {
if($sa(this).attr("name") != undefined && !$sa("[name='"+$sa(this).attr("name")+"']").is(":checked")) {
$sa(this).addClass("sa_field_error");
}
else if($sa(this).attr("id") != undefined && !$sa("#"+$sa(this).attr("id")).is(":checked") && $sa(this).attr("name") == undefined) {
$sa(this).addClass("sa_field_error");
}
}
if(($sa(this).find("input").attr("type") === "radio" || $sa(this).find("input").attr("type") === "checkbox")) {
if(!$sa("[name='"+$sa(this).find("input").attr("name")+"']").is(":checked")) {
$sa(this).addClass("sa_field_error");
}
}
if($sa(this).hasClass("ff-el-is-required") && ($sa(this).next().find("input").attr("type") === "radio" || $sa(this).next().find("input").attr("type") === "checkbox")) {
if(!$sa("[name='"+$sa(this).next().find("input").attr("name")+"']").is(":checked")) {
$sa(this).addClass("sa_field_error");
}
}
if($sa(this).hasClass("ff-el-is-required") && $sa(this).next().find("[name=fcal_booking]").length > 0 && $sa(this).next().find("[name=fcal_booking]").val().indexOf("start_time")==-1){
$sa(this).addClass("sa_field_error");
}
if($sa(this).prop("required") && $sa(this).next().find("input,select").val() === "") {
if($sa(this).next().find("input").attr("type") === "file") {
if($sa(this).next().find(".ff-uploaded-list").find(".ff-upload-preview[data-src]").length == 0) {
$sa(this).addClass("sa_field_error");
}
}
else
{
$sa(this).addClass("sa_field_error");
}
}
if($sa(this).hasClass("validate-required") && $sa(this).find("input,select").val() === "") {
$sa(this).addClass("sa_field_error");
}
if(!$sa(this).hasClass("sa_field_error") && $sa(this).attr("minlength")) {
var char_length = $sa(this).val().length;
if(char_length < $sa(this).attr("minlength")) {
$sa(this).addClass("sa_field_error");
}
}
if(!$sa(this).hasClass("sa_field_error") && $sa(this).attr("maxlength")) {
var char_length = $sa(this).val().length;
if(char_length > $sa(this).attr("maxlength")) {
$sa(this).addClass("sa_field_error");
}
}
}
);
if($sa(obj).parents("form").find(".sa_field_error").length === 0 && verification_allowed) {
if(username_selector !="" && password_selector !="") {
var action_url = site_url+"/?option=smsalert_ajax_login_popup";
if($sa(obj).parents(".nasa_login-form").length > 0)
{
data = data.replace(/nasa_/g, '');
}
}
else if($sa(obj).parents("form").hasClass("sa_loginwithotp-form")) {
action_url = site_url+"/?option=smsalert_ajax_login_with_otp";
}
else if($sa(obj).parents("form").hasClass("sa-signupwithotp-form")) {
action_url = site_url+"/?option=smsalert-registration-with-mobile";
}
else if($sa(obj).parents("form").hasClass("woocommerce-checkout")) {
var cartflow_param = '';
if(typeof cartflows != 'undefined') {
cartflow_param = '&wcf_checkout_id='+cartflows['control_step'];
}
data = data+"&checkout=Checkout";
action_url = site_url+"/?option=smsalert-woocommerce-checkout-process&wc-ajax=checkout"+cartflow_param;
}
else if($sa(obj).parents("form").hasClass("woocommerce-post-checkout-form")) {
data = {user_phone:e};
action_url = site_url+"/?option=smsalert-woocommerce-post-checkout";
}
else if($sa(obj).parents("form").hasClass("register") || $sa(obj).parents("form").hasClass("pie_register_reg_form") || $sa(obj).parents("form").hasClass("uwp-registration-form") || $sa(obj).parents().find(".wpte-register").length > 0 || $sa(obj).parents().find(".um-register").length > 0) {
data = data+"®ister=Register";
action_url = site_url+"/?option=smsalert_register_with_otp";
if($sa(obj).parents(".nasa_register-form").length > 0)
{
data = {
'action': 'nasa_process_register',
'data': $sa(obj).parents("form").serializeArray(),
'register': true
};
action_url = sa_otp_settings['ajax_url']+"?option=smsalert_register_with_otp";
}
}
else if($sa(obj).parents("form").hasClass("elementor-form")) {
data = data+"&action=elementor_pro_forms_send_form";
action_url = sa_otp_settings['ajax_url']+"?option=smsalert_elementor_form_otp";
}
else if($sa(obj).parents("form").hasClass("wpcf7-form")) {
action_url = site_url+"/?option=smsalert_wpcf7_form_otp";
}
else if($sa(obj).parents("form#wpas_form_registration").length > 0) {
action_url = site_url+"/?option=smsalert_wpas_form_otp";
}
else if($sa(obj).parents("form").hasClass("frm-show-form")) {
if ( $sa(".frm-show-form").attr( "data-token" ) && 0 === $sa(".frm-show-form [name='antispam_token']").length ) {
antispamInput = document.createElement( 'input' );
antispamInput.type = 'hidden';
antispamInput.name = 'antispam_token';
antispamInput.value = $sa(".frm-show-form").attr( 'data-token' );
$sa('.frm-show-form').append( antispamInput );
}
data = data+"&antispam_token="+$sa(".frm-show-form").attr( 'data-token' );
action_url = site_url+"/?option=smsalert_frm_show_form_otp";
}
else if($sa(obj).parents("form").hasClass("wpforms-form"))
{
var submitsAWpForm = function() {
if ($sa(".wpforms-form").attr('data-token') != undefined && $sa(".wpforms-form").attr('data-token').length > 0 ) {
$sa( '<input type="hidden" class="wpforms-token" name="wpforms[token]" />' ).val( $sa(".wpforms-form").attr('data-token') ).appendTo( $sa(".wpforms-form") );
data = data+"&wpforms[token]="+$sa(".wpforms-form").attr('data-token');
}
data = data+"&action=wpforms_submit";
action_url = sa_otp_settings['ajax_url']+"/?option=smsalert_wpforms_otp";
saInitOTPProcess(
obj,action_url, data,otp_resend_timer,function (resp){},function () {
$sa(obj).parents("form").find(".sa-default-btn-hide").not(".sa-otp-btn-init").trigger("click")},phone_selector,submit_selector
);
return false;
};
if ( typeof wpformsRecaptchaV3Execute === 'function' ) {
return wpformsRecaptchaV3Execute( submitsAWpForm );
}
else{
submitsAWpForm();
}
}
else{
data = {user_phone:e};
action_url = site_url+"/?option=smsalert-shortcode-ajax-verify";
}
if(!$sa(obj).parents("form").hasClass("wpforms-form")){
saInitOTPProcess(
obj,action_url, data,otp_resend_timer,function (resp){},function () {
$sa(obj).parents("form").find(".sa-default-btn-hide").not(".sa-otp-btn-init").trigger("click")},phone_selector,submit_selector
);
return false;
}
}
else
{
clickSaFormButton($sa(obj).parents("form").find(".sa-default-btn-hide").not(".sa-otp-btn-init")[0]);
setTimeout(
function () {
$sa(".wc-block-components-checkout-place-order-button").not(".sa-otp-btn-init").addClass("sa-default-btn-hide")}, 10
);
return false;
}
}
function clickSaFormButton(elem)
{
elem.classList.remove("sa-default-btn-hide");
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent(
"click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null
);
if (document.createEvent) {
elem.dispatchEvent(evt);
} else {
elem.fireEvent("on" + evt.eventType, evt); // support for IE crap
}
elem.classList.add("sa-default-btn-hide");
}
function validateOtp(event)
{
var site_url = sa_otp_settings['site_url'];
var submit_selector = event.data.btn_class;
var c_form = $sa(".sa-otp-initiated");
var otp = $sa("#smsalert_customer_validation_otp_token").val();
var action_url = site_url+"/?option=smsalert-validate-otp-form";
var data = '';
if(c_form.parents().find("#wp-travel-engine-new-checkout-form").length > 0 || c_form.parents().find("#wpas_form_registration").length > 0 || c_form.parents().find("#pie_regiser_form").length > 0 || c_form.parents().find("#piereg_login_form").length > 0)
{
data = "otp_type=phone&from_both=&smsalert_customer_validation_otp_token="+otp;
}
else{
data = c_form.serialize()+"&otp_type=phone&from_both=&smsalert_customer_validation_otp_token="+otp;
}
sa_validateOTP(
submit_selector,action_url,data,function () {
$sa("body").off("submit");
hideOtpModal($sa("#sa_verify_otp"));
$sa(submit_selector).hasClass("sa-default-btn-hide")?clickSaFormButton(c_form.find(".sa-default-btn-hide").not(".sa-otp-btn-init")[0]):$sa("#order_verify").val(otp);
}
);
}
function initialiseCountrySelector(phoneSelector='.phone-valid')
{
var country_enable = sa_otp_settings['show_countrycode'];
if ("on" !== country_enable ) {
return;
}
var default_cc = (typeof sa_country_settings !="undefined" && sa_country_settings["sa_default_countrycode"] && sa_country_settings["sa_default_countrycode"]!="") ? sa_country_settings["sa_default_countrycode"] : "";
var show_default_cc = "";
var mob_field = $sa(phoneSelector);
mob_field.addClass("phone-valid");
mob_field.intlTelInput("destroy");
var mob_field_name = mob_field.attr("name");
var object = $sa(this).saIntellinput({hiddenInput:false});
var iti = mob_field.intlTelInput(object);
mob_field.parents(".iti--separate-dial-code").append('<input type="hidden" name="'+mob_field_name+'">');
if(default_cc!="") {
var selected_cc = getCountryByCode(default_cc);
var show_default_cc = selected_cc[0].iso2.toUpperCase();
iti.intlTelInput("setCountry",show_default_cc);
}
$sa(phoneSelector).on(
"countrychange", function () {
var default_cc = $sa(this).intlTelInput("getSelectedCountryData");
var fullnumber = $sa(this).intlTelInput("getNumber");
var field_name = $sa(this).attr("name");
$sa(this).parents("form").find('[name="'+field_name+'"]:hidden').val(fullnumber);
}
);
}
if ('OTPCredential' in window) {
window.addEventListener(
'DOMContentLoaded', e => {
const input = document.querySelector('#smsalert_customer_validation_otp_token');
const ac = new AbortController();
setTimeout(
() => {
ac.abort();
}, 1 * 60 * 1000
);
if (!input) { return;
}
initialiseAutoFillOtp();
}
);
}
function initialiseAutoFillOtp()
{
try {
navigator.credentials.get(
{
otp: { transport:['sms'] }
}
).then(
otp => {
if($sa(".otp-number").hasClass('hide')) {
$sa("#smsalert_customer_validation_otp_token").val(otp.code);
}
else{
pasteOtp(otp.code);
}
$sa("#sa_verify_otp").trigger('click');
}
).catch(
err => {
//console.log(err);
}
);
}
catch(err) {
}
}
function saRecaptcha()
{
var recaptcha_div = $sa(".frm-show-form .frm_button_submit").parents("form").find("[data-sitekey]");
if(recaptcha_div.length>0 && recaptcha_div.attr("data-size") == "invisible")
{
recaptcha_div.removeClass("frm-g-recaptcha").addClass("g-recaptcha").attr("id","sa-grecaptcha").html("");
var site_key = recaptcha_div.attr("data-sitekey");
grecaptcha.ready(function() {
grecaptcha.render("sa-grecaptcha", {
"sitekey" : site_key
});
grecaptcha.execute();
});
}
}
function saEditNumber(event){
$sa(".sa-edit-phone form").html('');
var phone_selector = event.data.phone_class+'.phone-valid';
$sa('.smsalertModal .sa-message').attr("style", "display: none !important");
$sa('.saeditphone,.smsalertModal .smsalert_validate_field').hide();
var otp_in_popup = sa_otp_settings['otp_in_popup'];
var currentModel = $sa(".modal.smsalertModal");
if ("on" === otp_in_popup ) {
currentModel.find(".ring").removeClass('sa-hide');
currentModel.find(".modal-content").css('transform', 'scale(0)');
currentModel.show();
}
if($sa(".sa-edit-phone "+phone_selector).length == 0)
{
currentModel.find(".saeditmessage").removeClass('sa-hide'). addClass('woocommerce-message');
var name = $sa('.sa-otp-initiated '+phone_selector).attr('name');
var country_enable = sa_otp_settings['show_countrycode'];
if ("on" !== country_enable ) {
var phone = $sa(".sa-otp-initiated .phone-valid").val();
} else {
var phone = $sa(".sa-otp-initiated .phone-valid").intlTelInput("getNumber");
}
$sa(".sa-otp-initiated "+phone_selector).clone().appendTo(".sa-edit-phone form");
$sa(".sa-edit-phone input[name='"+name+"']").val(phone);
var type = $sa(".sa-edit-phone input[name='"+name+"']").attr('type');
if(type == 'hidden'){
$sa(".sa-edit-phone input[name='"+name+"']").attr("type", 'text');
}
initialiseCountrySelector(".sa-edit-phone input[name='"+name+"']");
$sa(".sa-edit-phone form").append("<button type='button' class='button saresubmit smsalert_otp_btn_submit' onclick='saReSubmit(this)'>Request Otp</button>");
}
if ("on" === otp_in_popup ) {
setTimeout(function(){
currentModel.find(".ring").addClass('sa-hide');
currentModel.find(".modal-content").css('transform', 'scale(1)');
}, 500);
}
else
{
var modal_style = currentModel.attr("data-modal-close");
$sa(".modal.smsalertModal").addClass(modal_style+"In");
var parentForm = $sa(".saeditphone").parent().closest('div');
if(modal_style != '')
{
parentForm.addClass(modal_style+"Down").removeClass(modal_style+"Up");
setTimeout(
function () {
parentForm.hide();
}, 1000
);
}
else
{
parentForm.hide();
}
}
$sa('.sa-edit-phone,.sa-edit-phone .smsalert_otp_btn_submit').show();
$sa(".sa-edit-phone input[name='"+name+"']").trigger('keyup');
}
function saReSubmit(obj){
clearInterval(sa_interval);
$sa(obj).addClass('button--loading').attr("disabled",true);
var name = $sa('.sa-otp-initiated .phone-valid').attr('name');
var country_enable = sa_otp_settings['show_countrycode'];
if ("on" !== country_enable ) {
var phone = $sa(".sa-edit-phone .phone-valid").val();
} else {
var phone = $sa(".sa-edit-phone .phone-valid").intlTelInput("getNumber");
}
$sa(".sa-otp-initiated .phone-valid,.sa-otp-initiated input[name='"+name+"']").val(phone);
$sa(".sa-otp-initiated .phone-valid").trigger('keyup');$sa('.sa-otp-initiated .sa-otp-btn-init').trigger('click');
}
$sa(document).on("keypress", ".sa-edit-phone input", function(e){
if (e.which === 13)
{
e.preventDefault();
var editform = $sa(this).parents(".sa-edit-phone");
editform.find(".saresubmit ").trigger("click");
}
});
$sa(window).ready(function() {
if($sa.magnificPopup != undefined)
{
$sa.magnificPopup.instance._onFocusIn = function(e) {
if( $sa(e.target).hasClass('otp_input') ) {
return true;
}
$sa.magnificPopup.proto._onFocusIn.call(this,e);
};
}
});