HEX
Server: LiteSpeed
System: Linux linux31.centraldnserver.com 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: salamatk (1501)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/salamatk/www/wp-content/plugins/woodmart-plus/assets/js/w-plus.js
(function($){

    $(document).ready(function(){

        $('#avatar_image').on('change',function(e){
            e.preventDefault();
            var file_input = $(this);
            var file = this.files[0];
            var reader = new FileReader();
            reader.onload = function(e){
                var $avatar_image = file_input.parents('.dashboard_container').find('.avatar_image_account');
                $avatar_image.find('img').attr('src',e.target.result);
            };
            reader.readAsDataURL(file);
        });
    });
    
    $(document).ready(function(){

        $('.input_container').each(function(index,value){
            var $this = $(this),
                btn_clear = $this.find('.btn_clear'),
                input_form = $this.find('input');
                
            $(btn_clear).on('click',function(e){
                e.preventDefault();
                input_form.val("");
            });

        });
    });

    $(document).ready(function(){

        if( $('.swiper_homepage').length )
        {
            var swiperHomepage = new Swiper(".swiper_homepage", {
                slidesPerView: 1,
                loop: true,
                paginationClickable: true,
                navigation: {
                  nextEl: ".swiper-button-next",
                  prevEl: ".swiper-button-prev",
                },
                pagination: {
                  el: ".swiper-pagination",
                },
              });
        }
    });


  $(document).ready(function(){
    $('.add_ticket__form').on('submit',function(e){

        var $this = $(this);    
        var select = $this.find('.ticket_select_items');
        var hasError = false;
        select.each(function(index,element){
            if( $(element).attr('data-required') != 0 )
            {
                $(element).css({
                    'border' : '1px solid red'
                });
                hasError = true;
            }
        });

        if( hasError )
        {
            e.preventDefault();
        }else{
            $this.submit();
        }
    });

    $('.ticket_select_items').each(function(index,element){

        $(element).on('change',function(){
            var $nextThis = $(this);
            if( $nextThis.val() !== 'default' || $nextThis.val() !== 'departman_default' || $nextThis.val() !== 'priority_default' )
            {
                $(element).attr('data-required',0);
                $(element).css('border','');
            }
        });
    });
  });


  $(document).ready(function(){
        
      $('body').on('submit','form.aramis_login', function(e){

          e.preventDefault();
          var $this = $(this);
          var alert = $('body').find('.alert');
          var btn_sub = $(this).find('button');
          
          var $user_name = $(this).find('input[name="username"]').val();
          var $password = $(this).find('input[name="password"]').val();
          var $phone = $(this).find('input[name="phone_login"]').val();
          var $nonce = $(this).find('#nonce_login_register').val();
          var $checkRemember = $(this).find('#checkRemember').val();
          var verify_otp = $('body').find('.verify_otp_login');
          var $btn_form = $this.find('.aramis__login_btn');
              $btn_form.addClass('loading');
          var btn_text = $btn_form.html();

            $btn_form.empty();

          btn_sub.addClass('btn-loading');

          $.ajax({

              dataType:'json',type:'post',url : optionarray.woodplus_url,

              data:{
                  action:'process_login',
                  user_name : $user_name,
                  password : $password,
                  phone : $phone,
                  nonce : $nonce,
                  checkRemember : $checkRemember
              },
              success:function(response)
              {
                
                  $btn_form.html(btn_text);
                  $btn_form.removeClass('loading');
                  var resendTime      = parseInt( optionarray.wating_time_resend_otp );
                  var $timer          = verify_otp.find('.time_resend');
                  btn_sub.removeClass('btn-loading');
                  if( resendTime > 0 ) {
                      // $resendLink.addClass('disabled');
                      var resendTimer;
                      clearInterval( resendTimer );
                      
                      resendTimer = setInterval(function(){

                          $timer.html('('+resendTime+') ثانیه');

                          if( resendTime <= 0 ){
                              clearInterval( resendTimer );
                              $timer.empty().append('<a href="#" class="resend_otp_sms">ارسال مجدد</a>');
                              // $resendLink.removeClass('disabled');
                              $timer.html('');
                              $timer.append('<a href="javascript:void(0);" class="resend_otp_sms">ارسال مجدد</a>');
                          }
                          resendTime--;

                      },1000);
                    }

                  if(response.login_with_number)
                  {
                      $this.closest('.parrent_aramis_login').hide();

                      verify_otp.show();
                      verify_otp.find('.phone_number').attr('data-phone_number',$phone);
                      verify_otp.find('.msg_detail_number').append(response.message);
                      return;
                  }

                  alert.addClass('badge_green--border');
                  alert.children().find('p').append(response.message);
                  alert.show();
                  btn_sub.removeClass('btn-loading');

                  
                  window.location.href = optionarray.WcPage.myacc;
              },
              error:function(error)
              {
                    $btn_form.html(btn_text);
                    $btn_form.removeClass('loading');

                  alert.addClass('badge_danger--border');
                  alert.children().find('p').append(error.responseJSON.message);
                  alert.show();
                  btn_sub.removeClass('btn-loading');
                  
                  setTimeout(function(){
                      alert.removeClass('badge_danger--border');
                      alert.children().find('p').empty();
                      alert.hide();
                  },3000);
              } 
          

          });
  
      });
      
  
  });

  // register
  $(document).ready(function(){

      $('body').on('submit','.aramis_register_form', function(e){
          e.preventDefault();

          var $this = $(this);
          var detail_register = $('body').find('.detail_register');
          var alert = $('body').find('.alert');
          var $phone = $(this).find('input[name="phone"]').val();
          var $nonce = $(this).find('#nonce_woodplus_register').val();
          var verify_form = $('body').find('.verify_otp');
          var btn_sub = $(this).find('button');

          var $username = $(this).find('input[name="username"]').val();
          var $password = $(this).find('input[name="password"]').val();
          var $email = $(this).find('input[name="email"]').val();
          var action = 'register_with_phone';

          var $form_btn = $this.find('.aramis__register_btn');
          var $form_btn_text = $form_btn.html();

              $form_btn.addClass('loading');
              $form_btn.empty();

          if( $(this).find('input[name="email"]').length)
          {
              action = '_woocmmerce_register';    
          }
          
          
          btn_sub.addClass('btn-loading');
          

          $.ajax({

              type:'post', dataType:'json', url: optionarray.woodplus_url,
              data:{
                  action: action,
                  phone_number: $phone,
                  nonce_register: $nonce,
                  email : $email,
                  password : $password,
                  username : $username,
                  role: 'customer'
                  
              },
              success: function(response)
              {
                $form_btn.removeClass('loading');
                $form_btn.html( $form_btn_text );
                  if(response.register)
                  {
                    
                      alert.children().find('p').append(response.msg);
                      alert.addClass('badge_green--border');
                      alert.show();
                      
                      setTimeout(function(){
                          window.location.href = optionarray.WcPage.myacc;
                      },1000)

                      return;
                  }
                  $this.hide();
                  detail_register.hide();
                  verify_form.show();
                  verify_form.children().find('.msg_detail_number').append(response.msg);
                  verify_form.find('.phone_number').attr('data-phone_number',$phone);
                  btn_sub.removeClass('btn-loading');
                  var resendTime      = parseInt( optionarray.wating_time_resend_otp );
                  var $timer          = verify_form.find('.time_resend');
                  
                  if( resendTime > 0 ) {
                      // $resendLink.addClass('disabled');
                      var resendTimer;
                      clearInterval( resendTimer );
                      $timer.addClass('disable');
                      resendTimer = setInterval(function(){

                          $timer.html('('+resendTime+') ثانیه');

                          if( resendTime <= 0 ){
                              clearInterval( resendTimer );
                              
                              $timer.removeClass('disable');
                              // $resendLink.removeClass('disabled');
                              $timer.html('');
                              $timer.append('<a href="javascript:void(0);" class="resend_otp_sms">ارسال مجدد</a>');
                          }
                          resendTime--;

                      },1000);
                  }

              },
              error: function(error)
              {

                $form_btn.removeClass('loading');
                $form_btn.html( $form_btn_text );
                 
                  btn_sub.removeClass('btn-loading');

                  if(error.responseJSON.user_exists)
                  {
                      alert.children().find('p').append(error.responseJSON.msg + '<a href="'+optionarray.WcPage.myacc+'" > '+error.responseJSON.msg_login+' </a>');

                  }else{

                      alert.children().find('p').append(error.responseJSON.msg);
                  }

                  alert.addClass('badge_danger--border');
                  alert.show();

                  setTimeout(function(){
                      alert.removeClass('badge_danger--border');
                      alert.children().find('p').empty();
                      alert.hide();
                  },3000);
              }

          });

      })
  });

  // verify_otp register
  $(document).ready(function(){

      $('body').on('submit', '.verify_otp', function(e){
          e.preventDefault();
          var $this = $(this);
          var otp = '';
          var $nonce = $(this).find('#nonce_verify_otp').val();
          var $phone = $(this).find('.phone_number').data('phone_number');
          var alert = $('body').find('.alert');
          var btn_sub = $(this).find('button');
          btn_sub.addClass('btn-loading');
            
          $this.find('.phone_validate').each( function( index, input ){
            console.log( $(this).val() );
              otp += $(this).val();
          });

          $.ajax({
              dataType: 'json', type:'post', url: optionarray.woodplus_url,
              data:{
                  action: 'verify_otp',
                  otp_sended : otp,
                  phone : $phone,
                  nonce_verify_otp: $nonce
              },
              success:function(response)
              {
                  alert.addClass('badge_green--border');
                  alert.children().find('p').append(response.msg);
                  alert.show();
                  btn_sub.removeClass('btn-loading');

                  window.location.href = optionarray.WcPage.myacc;
              },

              error:function(error)
              {
                

                      alert.children().find('p').append(error.responseJSON.msg);

                  alert.addClass('badge_danger--border');
                  alert.show();
                  btn_sub.removeClass('btn-loading');
                  setTimeout(function(){
                      alert.removeClass('badge_danger--border');
                      alert.children().find('p').empty();
                      alert.hide();
                  },5000);
              }

          });
      });

  });

  // verify_otp login
  $(document).ready(function(){

      $('body').on('submit', '.verify_otp_login_form', function(e){
          e.preventDefault();
          var $this = $(this);
          var otp = '';
          var $nonce = $(this).find('#nonce_verify_otp_login').val();
          var $phone = $(this).find('.phone_number').data('phone_number');
          var alert = $('body').find('.alert');
          var btn_sub = $(this).find('button');
          btn_sub.addClass('btn-loading');
          $this.find('.phone_validate').each( function( index, input ){
              otp += $(this).val();
          });

          $.ajax({
              dataType: 'json', type:'post', url: optionarray.woodplus_url,
              data:{
                  action: 'verify_otp_login',
                  otp_sended : otp,
                  phone : $phone,
                  nonce_verify_otp: $nonce
              },
              success:function(response)
              {
                  alert.addClass('badge_green--border');
                  alert.children().find('p').append(response.msg);
                  alert.show();
                  btn_sub.removeClass('btn-loading');

                  window.location.href = optionarray.WcPage.myacc;
              },
              error:function(error)
              {
                  if(error.responseJSON.user_exists)
                  {
                      alert.children().find('p').append(error.responseJSON.msg + '<a href="'+optionarray.WcPage.myacc+'" > '+error.responseJSON.msg_login+' </a>');

                  }else{
                      alert.children().find('p').append(error.responseJSON.msg);
                  }

                  
                  alert.addClass('badge_danger--border');
                  alert.show();
                  btn_sub.removeClass('btn-loading');
                  
                  setTimeout(function(){
                      alert.removeClass('badge_danger--border');
                      alert.children().find('p').empty();
                      alert.hide();

                      if(error.responseJSON.redirect)
                      {
                          window.location.href = optionarray.WcPage.myacc;
                      }

                  },3000);

              }

          });
      });

  });

  //resend_otp_sms

  $(document).ready(function(){

      $('body').on('click','.resend_otp_sms',function(e){
          e.preventDefault();
          var $this = $(this);
          var parent = $this.parents('.form-box');
          var hashed = parent.find('.step_otp').attr('data-hashed');

          var verify_form = $('body').find('.verify_otp_all,.login_register_otp,.login_register_otp_email,.form-box');
       
          parent.addClass('loading-resend');
          $.ajax({
              dataType:'json',type:'post',url:optionarray.woodplus_url,
              data:{
                  action:'action_resend_otp',
                  nonce_resend: optionarray.aramis_script_nonce,
                  hashed : hashed
              },
              success:function(response)
              {
                
                timer_resend(verify_form);
                show_alert(parent,response.msg,'success');
                  
              },
              error:function(error)
              {
                show_alert(parent,error.responseJSON.msg,'error');
               
              }
              
          });

      });

  });

  // edit nummber section

  $(document).ready(function(){

      $('body').on('click','.edit_number', function(e){

          var parent = $(this).closest('.verify_otp_all');
          var detail_register = $('body').find('.detail_register');
          var register_form  = $('body').find('.aramis_register_form');
          var login_form = $('body').find('.parrent_aramis_login');
          var cod_for_phone = $('body').find('.msg_detail_number');

          var login_register_together = $(this).closest('.login_register_otp');

          var time_resend = login_register_together.find('.time_resend');

          var timerId = parseInt(time_resend.attr('data-timer_time'));
          
          clearInterval(timerId);
          
          cod_for_phone.empty();
          

          if( login_register_together.length )
          {
                login_register_together.hide();
                $('body').find('.form__login_register').show();
                return;
          }


          if(register_form.length)
          {
              register_form.css('display','flex');

              parent.css('display','none');

              detail_register.show();

              return;
          }

          if(login_form.length)
          {
              login_form.css('display','block');
              $('body').find('.verify_otp_login').css('display','none');
              return;
          }

      });

  });

  //login and register now

  $(document).ready(function(){

    
    $('body').on('submit','.form__login_register',function(e){
        e.preventDefault();
        var $this = $(this);
        var $value = $(this).find('input[name="username"]').val();
        var $nonce = $(this).find('#nonce_login_register').val();

        var captcha_val = false;
        
        var $captcha = $(this).find('textarea[name="g-recaptcha-response"]');

        if( optionarray.captcha_is_enable )
        {
            captcha_val = $captcha.val();
        }

        var $parents = $this.closest('.login_register__body,.login_register_smart');
        var btn = $this.find('.login_register__submitbtn');
            btn.addClass('loading');
        var text_btn = btn.html();
            btn.empty();
        
        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data:{
                action:'login_register_together',
                value : $value,
                captcha : captcha_val,
                nonce : $nonce
            },
            success: function(response)
            {
                $this.hide();
                btn.removeClass('loading');
                btn.html(text_btn);

                if( 'email_login' === response.status || 'account_login' === response.status )
                {
                    var $login_form = $parents.find('.form_login_email');
                    $login_form.find('.login_register__description').empty();
                    $login_form.find('.login_register__description').html( response.msg );
                    $login_form.show();
                    $login_form.append('<input name="username_sended" type="hidden" value="'+$value+'">');
                    
                }
                
                if( 'email_register' === response.status )
                {

                    var $register_otp_form = $parents.find('.login_register_otp_email');

                    $register_otp_form.find('.msg_detail_number').append(response.msg)
                    
                    var resendTime      = parseInt( optionarray.wating_time_resend_otp );
                    var $timer          = $register_otp_form.find('.time_resend');
                    
                    if( resendTime > 0 ) {
                        // $resendLink.addClass('disabled');
                        var resendTimer;
                        clearInterval( resendTimer );
                        
                        resendTimer = setInterval(function(){

                            $timer.html('('+resendTime+') ثانیه');
                            
                            if( resendTime <= 0 ){
                                clearInterval( resendTimer );
                                // $timer.empty().append('<a href="#" class="resend_otp_sms">ارسال مجدد</a>');
                                // $resendLink.removeClass('disabled');
                                $timer.html('');
                                $timer.append('<a href="javascript:void(0);" class="resend_otp_sms" data-type_value="email">ارسال مجدد</a>');
                            }
                            resendTime--;

                        },1000);
                        $timer.attr('data-timer_time',resendTimer);

                    }

                    $register_otp_form.show();
                    $register_otp_form.append('<input name="username_sended" type="hidden" value="'+$value+'">');
                }

                if( 'mobile' === response.status )
                {
                    var $form_otp = $parents.find('.login_register_otp');
                    $form_otp.find('.msg_detail_number').append(response.msg)
                    
                    var resendTime      = parseInt( optionarray.wating_time_resend_otp );
                    var $timer          = $form_otp.find('.time_resend');
                    
                    if( resendTime > 0 ) {
                        
                        var resendTimer;
                        clearInterval( resendTimer );
                        
                        resendTimer = setInterval(function(){

                            $timer.html('('+resendTime+') ثانیه');
                            
                            if( resendTime <= 0 ){
                                clearInterval( resendTimer );
                                // $timer.empty().append('<a href="#" class="resend_otp_sms">ارسال مجدد</a>');
                                // $resendLink.removeClass('disabled');
                                $timer.html('');
                                $timer.append('<a href="javascript:void(0);" class="resend_otp_sms" data-type_value="mobile" >ارسال مجدد</a>');
                            }
                            resendTime--;

                        },1000);
                        $timer.attr('data-timer_time',resendTimer);

                    }

                    $form_otp.show();
                    $form_otp.append('<input name="username_sended" type="hidden" value="'+$value+'">');
                }
            },
            error:function( error )
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                
                if( 'error' === error.responseJSON.status )
                {
                    $this.find('.login_register__description').after(show_alert_message( error.responseJSON.msg,error.responseJSON.status ));

                    setTimeout(function(e){
                        $('body').find('.alert_message').remove();
                    },3000);
                    
                    if ( optionarray.captcha_is_enable ) {
                        if (!window.grecaptcha) {
                        } else {
                            grecaptcha.reset();
                        }
                    }
                }
            }
        });
    });

    $('body').on('submit','.form_login_email',function(e){
        e.preventDefault();
        var $this = $(this);
        var $password = $this.find('input[name="password"]').val();
        var $nonce = $this.find('#nonce_login_email').val();
        var $value = $this.find('input[name="username_sended"]').val();

        var btn = $this.find('.login_register__submitbtn');
        btn.addClass('loading');
        var text_btn = btn.html();
        btn.empty();

        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data : {
                action : 'email_or_account_login',
                nonce : $nonce,
                value : $value,
                password : $password
            },
            success:function(response)
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                if( 'success' === response.status )
                {
                    $this.find('.login_register__description').after(show_alert_message( response.msg,response.status ));
                    window.location.href = optionarray.WcPage.myacc;
                }
            },
            error:function( error )
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                if( 'error' === error.responseJSON.status )
                {
                    $this.find('.login_register__description').after(show_alert_message( error.responseJSON.msg,error.responseJSON.status ));

                    setTimeout(function(e){
                        $('body').find('.alert_message').remove();
                    },3000);
                    
                }
            }
        });

    });

    $('body').on('submit','.form_register_email',function(e){
        e.preventDefault();
        var $this = $(this);
        var $password = $this.find('input[name="password"]').val();
        var $username = $this.find('input[name="username"]').val();
        var btn = $this.find('.login_register__submitbtn');
        btn.addClass('loading');
        var text_btn = btn.html();
        btn.empty();

        if( $password.length < 5 )
        {
            $this.find('.login_register__description').after(show_alert_message( 'رمزعبور نمی تواند کمتر از 6 حرف باشد','error' ));
            btn.removeClass('loading');
                btn.html(text_btn);
            setTimeout(function(e){
                $('body').find('.alert_message').remove();
            },2000);
            return;
        }
        
        var $email = $this.find('input[name="username_sended"]').val();
        var $nonce = $this.find('#nonce_register_email').val();
        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data : {
                action : 'email_register',
                nonce : $nonce,
                email : $email,
                password : $password,
                username : $username
            },
            success:function(response)
            {
                btn.removeClass('loading');
                btn.html(text_btn);

                if( 'success' === response.status )
                {
                    $this.find('.login_register__description').after(show_alert_message( response.msg,response.status ));
                    window.location.href = optionarray.WcPage.myacc;
                }
            },
            error:function( error )
            {
                btn.removeClass('loading');
                btn.html(text_btn);

                if( 'error' === error.responseJSON.status )
                {
                    $this.find('.login_register__description').after(show_alert_message( error.responseJSON.msg,error.responseJSON.status ));

                    setTimeout(function(e){
                        $('body').find('.alert_message').remove();
                    },3000);
                    
                }
            }
        });
    });

    $('body').on('submit','.login_register_otp',function(e){
        e.preventDefault();
        var $this = $(this);
        var $phone = $this.find('input[name="username_sended"]').val();
        var $nonce = $this.find('#nonce_verify_otp').val();
        var otp = '';
        var btn = $this.find('.login_register__submitbtn');
            btn.addClass('loading');
        var text_btn = btn.html();
            btn.empty();

        $this.find('.otp-input').each( function( index, input ){
            otp += $(this).val();
        });

        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data : {
                action : 'verify_otp_and_do_somting',
                nonce : $nonce,
                phone : $phone,
                otp   : otp 
            },
            success:function(response)
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                if( 'success' === response.status )
                {
                    $this.find('.login_register___text').after(show_alert_message( response.msg,response.status ));
                    window.location.href = optionarray.WcPage.myacc;
                }
            },
            error:function(error)
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                if( 'error' === error.responseJSON.status )
                {
                    $this.find('.login_register___text').after(show_alert_message( error.responseJSON.msg,error.responseJSON.status ));

                    setTimeout(function(e){
                        $('body').find('.alert_message').remove();
                    },3000);
                }
            }
        });
    });

    $('body').on('submit','.login_register_otp_email',function(e){

        e.preventDefault();
        var $this = $(this);
        var $parents = $this.closest('.login_register__body,.login_register_smart');
        var $email = $this.find('input[name="username_sended"]').val();
        var $nonce = $this.find('#nonce_verify_otp_email').val();
        var otp = '';
        var btn = $this.find('.login_register__submitbtn');
            btn.addClass('loading');
        var text_btn = btn.html();
            btn.empty();

        $this.find('.otp-input').each( function( index, input ){
            otp += $(this).val();
        });

        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data : {
                action : 'verify_otp_email_and_register',
                nonce : $nonce,
                email : $email,
                otp   : otp 
            },
            success:function(response)
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                $this.hide();
                if( 'success' === response.status )
                {
                     var $register_form = $parents.find('.form_register_email');
                    $register_form.show();
                    $register_form.append('<input name="username_sended" type="hidden" value="'+$email+'">');
                    // $this.find('.login_register___text').after(show_alert_message( response.msg,response.status ));
                    
                }
            },
            error:function(error)
            {
                btn.removeClass('loading');
                btn.html(text_btn);
                if( 'error' === error.responseJSON.status )
                {
                    $this.find('.login_register___text').after(show_alert_message( error.responseJSON.msg,error.responseJSON.status ));

                    setTimeout(function(e){
                        $('body').find('.alert_message').remove();
                    },3000);
                }
            }
        });

    });
  });

  function show_alert_message( $msg , $class )
  {
     return $('<div class="alert_message '+$class+'"> <i class="fa-light fa-square-exclamation"></i> '+$msg+' </div>');
  }

  async function copyToClipboard(text) {
    if (text === "") return;
    try {
      await navigator.clipboard.writeText(text);
    } catch (err) {
      console.error("Failed to copy: ", err);
    }
  }

  const btn_copy__codes = document.querySelectorAll(".btn_copy__code");

  const tabbar_buttons_container = document.querySelector(
    ".tabbar_container__buttons"
  );

  const tabbar_contents_container = document.querySelector(
    ".tabbar_container__contents"
  );

  const accordion_containers = document.querySelectorAll(".accordion_container");
  
  if (tabbar_buttons_container && tabbar_contents_container) {
    const tabbar_buttons = Array.from(tabbar_buttons_container.children);
    const tabbar_contents = Array.from(tabbar_contents_container.children);
    tabbar_buttons.forEach((button, index) => {
      const selectedTab = tabbar_contents[index];
      button.addEventListener("click", () => {
        tabbar_buttons.forEach((item) => item.classList.remove("show"));
        tabbar_contents.forEach((item) => item.classList.remove("show"));
        button.classList.add("show");
        selectedTab.classList.add("show");
      });
    });
  }

  if (accordion_containers.length > 0) {
    accordion_containers.forEach((menu) => {
      const btn_open = menu.querySelector(".accordion_button");
      btn_open.addEventListener("click", () => {
        menu.classList.toggle("opened");
      });
    });
  }
  
  if (btn_copy__codes.length > 0) {
    btn_copy__codes.forEach((button) => {
        const content = button.querySelector(".content");
        const status = button.querySelector('.status');
        button.addEventListener("click", () => {
        copyToClipboard(content.innerHTML)
        status.innerHTML = "کپی شد"
        button.classList.add('active');
        setTimeout(() => {
            status.innerHTML = "کپی کردن"
            button.classList.remove('active');
        }, 5000);
        });
    });
 }

 $('.dashboard_sidebar__container .btn_toggle__sidebar').click(function() {
    $('.dashboard_sidebar__container').toggleClass('opened');
    $('.dashboard_sidebar__container').find(".blob").toggleClass('d-none');
 });


  //new form login register
  $(document).ready(function(){

    $('.first_step').on('submit',function(e){
        e.preventDefault();
        var $this = $(this);
        var from_parent = $this.parents('.form-box');
        var $value = $this.find('#username').val();
        var $nonce = $(this).find('#nonce_login_register').val();

        var captcha_val = false;
        var $captcha = $(this).find('textarea[name="g-recaptcha-response"]');

        //otp form
        var form_otp = $('.step_otp');
        var parent_formotp = form_otp.parents('.form-box');

        if( optionarray.captcha_is_enable )
        {
            captcha_val = $captcha.val();
        }

        var passwod_form = $('.step_password');
        var password_from_parent = passwod_form.parents('.form-box');

        var register_form = $('.register_step');
        var parent_register_form = register_form.parents('.form-box');
        $this.find('.submit-btn').addClass('loading');
        $this.find('.submit-btn').attr('disabled',true);
        remove_show_password();
        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data:{
                action:'login_register_together',
                value : $value,
                captcha : captcha_val,
                nonce : $nonce
            },
            success:function(response){

                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                if( 'register_mobile' === response.status || 'register_email' === response.status || 'login' === response.status )
                {
                    if( 'login' === response.status )
                    {
                        show_password(parent_formotp);
                        password_from_parent.find('.title_password').html(response.msg);
                        
                    }

                    timer_resend(parent_formotp)
                    from_parent.hide();
                    parent_formotp.find('.title_otp').html(response.msg);
                    parent_formotp.show();
                    form_otp.attr('data-hashed',response.hashed);
                    back_to_start(parent_formotp,from_parent,response.back_to_start);
                    
                    return;
                }
                if( !response?.tooltip_text?.step )
                {
                    $('a.tooltip.go_to_otp_auth').remove();
                    $('a.tooltip.reset_pass').remove();
                }else{
                    $('a.tooltip.go_to_otp_auth').attr('data-tooltip',response.tooltip_text.send_otp);
                    $('a.tooltip.reset_pass').attr('data-tooltip',response.tooltip_text.reset_password);
                }
                
                from_parent.hide();
                password_from_parent.show();
                password_from_parent.find('.title_password').html(response.msg);
                passwod_form.find('.go_to_otp_auth').attr('data-hashed',response.hashed);
                show_alert(from_parent,response.msg,'success');
                back_to_start(password_from_parent,from_parent,response.back_to_start);
            },
            error : function(error){
                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);
                show_alert(from_parent,error.responseJSON.msg,'error');
            }
        });

    });

    $('.step_password').on('submit',function(e){
        e.preventDefault();
        var $this = $(this);
        var from_parent = $this.parents('.form-box');
        var $nonce = $this.find('#nonce_login_email').val();
        var $value = from_parent.find('.msg_strong').text();

        var $password = $this.find('#password').val();

        $this.find('.submit-btn').addClass('loading');
        $this.find('.submit-btn').attr('disabled',true);

        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data : {
                action : 'email_or_account_login',
                nonce : $nonce,
                value : $value,
                password : $password
            },
            success: function(response){

                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                show_alert(from_parent,response.msg,'success');
                
                if( $this.parents('.checkout_page_login_popup').length > 0 )
                {
                    return window.location.href = optionarray.WcPage.checkout;
                }

                setTimeout(() => {
                    window.location.href = optionarray.WcPage.myacc;    
                }, 1000);
            },
            error : function(error){
                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                show_alert(from_parent,error.responseJSON.msg,'error');
            }
        });

    });

    var ajax_start = false;
    $('.go_to_otp_auth').on('click',function(e){
        e.preventDefault();
        if( ajax_start )
        {
            return;
        }

        var $this = $(this);
        var from  = $this.parents('.step_password');
        var parents = from.parents('.form-box');
        var $nonce = from.find('#nonce_login_email').val();
        var form_otp = $('.step_otp');
        var parent_otp = form_otp.parents('.form-box');
        var hashed = $this.attr('data-hashed');

        from.find('.submit-btn').addClass('loading');
        from.find('.submit-btn').attr('disabled',true);
        $this.attr('disabled',true);
        ajax_start = true;
        $.ajax({
            type: 'POST',dataType :'json', url: optionarray.woodplus_url,
            data : {
                action : 'send_otp',
                nonce : $nonce,
                hashed_data : hashed
            },
            success : function(response)
            {
                from.find('.submit-btn').removeClass('loading');
                from.find('.submit-btn').attr('disabled',false);
                $this.attr('disabled',false);
                form_otp.attr('data-hashed',response.hashed);
                from.parents('.form-box').hide();
                parent_otp.show();
                timer_resend(parent_otp);
                parent_otp.find('.title_otp').html(response.msg);
                ajax_start = false;
                back_to_start(parent_otp,$('body .first_step'),response.back_to_start)
            },
            error : function(error){
                from.find('.submit-btn').removeClass('loading');
                from.find('.submit-btn').attr('disabled',false);
                $this.attr('disabled',false);
                show_alert(parents,error.responseJSON.msg,'error');
                ajax_start = false;
                back_to_start(parent_otp,$('body .first_step'))
            }
        });
        
        
    });

    $('.step_otp').on('submit',function(e){

        e.preventDefault();
        var $this = $(this);
        var parent_otp = $this.parents('.form-box');
        var hashed = $this.attr('data-hashed');
        var $nonce = $(this).find('#nonce_verify_otp').val();
        var otp = '';
        
        //register
        var register_form = $('.register_step');
        var parent_register_form = register_form.parents('.form-box');
        
        $this.find('.otp-input').each( function( index, input ){
            
            otp += $(this).val();
        });

        otp = toEnglishDigits(otp);
        
        $this.find('.submit-btn').addClass('loading');
        $this.find('.submit-btn').attr('disabled',true);
        $.ajax({
            dataType: 'json', type:'post', url: optionarray.woodplus_url,
              data:{
                  action: 'verify_otp',
                  otp_sended : otp,
                  hashed : hashed,
                  nonce_verify_otp: $nonce
              },
              success: function(response){

                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);
                 if('register' === response.step)
                 {
                    if( 'email' === response.register )
                    {
                        register_form.find('.email_here').empty();
                        $(`${'<input type="text" id="phone" name="phone" required autocomplete="off"><label for="phone">شماره موبایل</label><svg class="input-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 4H9L11 9L8.5 10.5C9.57096 12.6715 11.3285 14.429 13.5 15.5L15 13L20 15V19C20 19.5304 19.7893 20.0391 19.4142 20.4142C19.0391 20.7893 18.5304 21 18 21C14.0993 20.763 10.4202 19.1065 7.65683 16.3432C4.8935 13.5798 3.23705 9.90074 3 6C3 5.46957 3.21071 4.96086 3.58579 4.58579C3.96086 4.21071 4.46957 4 5 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg></div>'}`).appendTo('.email_here');
                    }
                    parent_otp.hide();
                    register_form.attr('data-hashed',response.hashed);
                    parent_register_form.show();
                    return;
                 }

                 if( 'rest_pass'=== response.step )
                 {
                    parent_otp.hide();
                    const from_rest_pass = $('.reset_password');
                    const parent_rest_pass = from_rest_pass.parents('.form-box');
                    from_rest_pass.attr('data-hashed',response.hashed);
                    parent_rest_pass.show();
                    return;
                 }
                 
                show_alert(parent_otp,response.msg,'success');
                
                if( $this.parents('.checkout_page_login_popup').length > 0 )
                {
                    return window.location.href = optionarray.WcPage.checkout;
                }

                setTimeout(() => {
                    window.location.href = optionarray.WcPage.myacc;
                }, 1000);

              },
              error : function(error){

                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                show_alert(parent_otp,error.responseJSON.msg,'error');
              },
        });
    });

    var isAjaxLoading = false;
    $('.reset_pass').on('click',function(e){
        e.preventDefault();

        if (isAjaxLoading) {
            return; 
        }
        var $this = $(this);
        var parent = $this.parents('.step_password');
        var parents = parent.parents('.form-box');
        var hashed = parent.find('.go_to_otp_auth').attr('data-hashed');

        var form_otp = $('.step_otp');
        var parent_otp = form_otp.parents('.form-box');
        
        parent.find('.submit-btn').addClass('loading');
        parent.find('.submit-btn').attr('disabled',true);

        isAjaxLoading = true;
        $.ajax({
            dataType: 'json', type:'post', url: optionarray.woodplus_url,
              data:{
                  action: 'lets_reset_password',
                  hashed : hashed,
                  nonce_lets_reset : optionarray.nonce
              },
              success: function(response){
              
                parent.find('.submit-btn').removeClass('loading');
                parent.find('.submit-btn').attr('disabled',false);
                
                form_otp.attr('data-hashed',response.hashed);
                parent.parents('.form-box').hide();
                parent_otp.show();
                timer_resend(parent_otp);
                parent_otp.find('.title_otp').html(response.msg);
                isAjaxLoading = false;
              },
              error : function(error){
                
                parent.find('.submit-btn').removeClass('loading');
                parent.find('.submit-btn').attr('disabled',false);

                show_alert(parents,error.responseJSON.msg,'error');
                isAjaxLoading = false;
              },
        });

    });

    $('.reset_password').on('submit',function(e){
        e.preventDefault();
        var $this = $(this);
        var newpassword = $this.find('#newpassword').val();
        var repatpassword = $this.find('#repeatpassword').val();
        var parent = $this.parents('.form-box');

        if( newpassword !== repatpassword )
        {
            return show_alert(parent,'رمزعبور یکسان نیست','error');
        }

        if(newpassword.length < 6) 
        {
            return show_alert(parent,'رمز عبور نمیتواند کوچک تر از 6 رقم باشد','error');
        }

        var nonce_reset_password = $this.find('#nonce_reset_password').val();
        var hashed = $this.attr('data-hashed');

        $this.find('.submit-btn').addClass('loading');
        $this.find('.submit-btn').attr('disabled',true);

        $.ajax({
            dataType: 'json', type:'post', url: optionarray.woodplus_url,
              data:{
                  action: 'reset_password',
                  hashed : hashed,
                  nonce_reset_password: nonce_reset_password,
                  newpassword : newpassword
              },
              success: function(response){

                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                show_alert(parent,response.msg,'success');

                if( $this.parents('.checkout_page_login_popup').length > 0 )
                {
                    return window.location.href = optionarray.WcPage.checkout;
                }

                setTimeout(() => {
                    window.location.href = optionarray.WcPage.myacc;    
                }, 1000);
              },
              error : function(error){
                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);
                show_alert(parent,error.responseJSON.msg,'error');
              },
        });
   });
   
   $('.register_step').on('submit',function(e){
        e.preventDefault();
        var $this = $(this);
        var parent = $this.parent('.form-box');
        var username = $this.find('#user_name').val();
        var email = $this.find('#email').val();
        var phone = $this.find('#phone').val();
        var birth_day = $this.find('#birth_day').val();
        var newpassword = $this.find('#new_password').val();
        var repatpassword = $this.find('#repate_password').val();
        var nonce_register_form = $this.find('#nonce_form_register').val();
        var hashed = $this.attr('data-hashed');

        var isValid = /^[a-zA-Z0-9_]+$/.test(username); 

        if( !isValid )
        {
            return show_alert(parent,optionarray.errors.latinUsername,'error');
        }

        if( newpassword !== repatpassword )
        {
            return show_alert(parent,optionarray.errors.passwordNotSame,'error');
        }
        
        if(newpassword.length < 6) 
        {
            return show_alert(parent,optionarray.errors.passwordLessThan,'error');
        }

        $this.find('.submit-btn').addClass('loading');
        $this.find('.submit-btn').attr('disabled',true);

        $.ajax({

            dataType: 'json', type:'post', url: optionarray.woodplus_url,
              data:{
                  action: 'register_form',
                  hashed : hashed,
                  nonce_register_form: nonce_register_form,
                  username : username,
                  email : email,
                  phone : phone,
                  password : newpassword,
                  birth_day : birth_day
              },
              success:function(response){

                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                show_alert(parent,response.msg,'success');

                if( $this.parents('.checkout_page_login_popup').length > 0 )
                {
                    return window.location.href = optionarray.WcPage.checkout;
                }
                
                setTimeout(() => {
                    window.location.href = optionarray.WcPage.myacc;
                }, 1000);
        
              },
              error : function(error){
                $this.find('.submit-btn').removeClass('loading');
                $this.find('.submit-btn').attr('disabled',false);

                show_alert(parent,error.responseJSON.msg,'error');
              }
        });
   });

   if( $('#birth_day').length )
    {
        $("#birth_day").on("change", function () {
                if ($(this).val().trim() !== "") {
                $(this).addClass("has-value");
            } else {
                $(this).removeClass("has-value");
            }
        });

        if ($("#birth_day").val().trim() !== "") {
            $("#birth_day").addClass("has-value");
        }
        kamaDatepicker('birth_day',
            {
                twodigit : false
            }
        );
    }
  });

  function toEnglishDigits(str) {
    return str
        .replace(/[۰-۹]/g, d => '۰۱۲۳۴۵۶۷۸۹'.indexOf(d))
        .replace(/[٠-٩]/g, d => '٠١٢٣٤٥٦٧٨٩'.indexOf(d));
 }

 function back_to_start($current,$back,$text)
 {
    $('body').find('.back_to_start').text($text);

    $('body').on('click','.back_to_start',function(){
        let $this = $(this);
        let current = $this.parents('.form-box');

        var alert =  $back.find('.alert');

        if( alert.length )
        {
            alert.hide();
        }
        current.hide();

        $back.show();
    });
 }

  function timer_resend( $form_otp )
  {
      var resendTime      = parseInt( optionarray.wating_time_resend_otp );
      var $timer          = $form_otp.find('.timer');
      
      if( resendTime > 0 ) {
          
          var resendTimer;

          clearInterval( resendTimer );
          
          resendTimer = setInterval(function(){

            if( !$timer.find('#countdown').length )
            {
                $timer.html(optionarray.resend_text+' <span id="countdown"></span>');
            }
              $timer.find('#countdown').html('('+resendTime+') ثانیه');
              
              if( resendTime <= 0 ){
                  clearInterval( resendTimer );
                  $timer.html('');
                  $timer.append('<a href="javascript:void(0);" class="resend_otp_sms" data-type_value="mobile" >ارسال مجدد</a>');
              }
              resendTime--;

          },1000);
          $timer.attr('data-timer_time',resendTimer);
      }
  }

  function show_alert( form,msg,type )
  {
    var alert =  form.find('.alert');
    var msg_box = alert.find('.alert_msg');

    if( type == 'error' )
    {
        msg_box.html(msg);    
        alert.addClass('alert-error');
        alert.show();

    }

    if( type === 'success' )
    {
        msg_box.html(msg);    
        alert.addClass('alert-success');
        alert.show();
    }
    setTimeout(function(){
        if( alert.hasClass('alert-error') ){
            alert.removeClass('alert-error');
        }
        if( alert.hasClass('alert-success') ){
            alert.removeClass('alert-success');
        }
        alert.hide();
    },3000);
      
  }

  function show_password($need_to_append)
  {
    console.log( $need_to_append.find('.extra-links') );
     $need_to_append.find('.extra-links').append('<a href="#" class="show_password" onclick="event.preventDefault();">'+optionarray.login_whit_password+'</a>');

     $('body').on('click','.show_password',function(){
        let password_step = $('.step_password').parent('.form-box');
        password_step.find('.go_to_otp_auth').remove();
        password_step.show();

        $(this).parents('.form-box').hide();
     });
  }
  function remove_show_password()
  {
    $('body').find('.extra-links .show_password').remove();
  }
  //checkout fixed
     let is_checkout = optionarray.WcPage.is_checkout;
     let is_checkout_login_enabled = optionarray.WcPage.enable_checkout_login;

     if( is_checkout && 'yes' === is_checkout_login_enabled )
     {
        let login_register_wd = $('.wd-dropdown-register');
        let login_register_wd_side = $('.login-form-side');
        let wd_button_login = $('.wd-header-my-account');

        if( login_register_wd.length || login_register_wd_side.length )
        {
            login_register_wd.remove();
            login_register_wd_side.remove();
            wd_button_login.removeClass('wd-with-overlay');
        }
     }
  
})( jQuery );

function onloadCallbackCaptcha()
{
   if( optionarray.captcha_is_enable )
   {
       if (!window.grecaptcha) {
       } else {
           setTimeout(function(){
               var recaptchas = document.getElementsByClassName("ga-recaptcha");
               for(var i=0; i<recaptchas.length; i++) {
                   var recaptcha = recaptchas[i];
                   var sitekey = recaptcha.dataset.sitekey;

                   grecaptcha.render(recaptcha, {
                       'sitekey' : sitekey
                   });
               }
           }, 500);
       }
   }
}


function myFunction() {
    document.getElementById("myDropdown").classList.toggle("show");
  }
  
  // Close the dropdown if the user clicks outside of it
window.onclick = function(event) {
    if (!event.target.matches('.dropbtn')) {
      var dropdowns = document.getElementsByClassName("dropdown-content");
      var i;
      for (i = 0; i < dropdowns.length; i++) {
        var openDropdown = dropdowns[i];
        if (openDropdown.classList.contains('show')) {
          openDropdown.classList.remove('show');
        }
      }
    }
}