/* ===========================================================
 *
 *  Name:          selectordie.js
 *  Updated:       2014-10-11
 *  Version:       0.1.8
 *  Created by:    Per V @ Vst.mn
 *  What?:         The Select or Die JS
 *
 *  Copyright (c) 2014 Per Vestman
 *  Dual licensed under the MIT and GPL licenses.
 *
 *  To much comments in the code. Please, I know.
 *
 *  Oddny | Cogs 'n Kegs
 *
 * =========================================================== */

;
/**
 * Add a product in the wishlist.
 *
 * @param object el
 * @return void
 * @since 1.0.0
 */
function popupWindow(url, title, win, w, h) {
    const y = win.top.outerHeight / 2 + win.top.screenY - ( h / 2);
    const x = win.top.outerWidth / 2 + win.top.screenX - ( w / 2);
    return win.open(url, title, "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=" + w + ", height=" + h + ", top=" + y + ", left=" +  x);
}

 (function ($) {

    function init_whatsapp_otp( host )
    {
        $( host ).find( '.otp-input' ).find( 'input:first-child' ).trigger( 'focus' );
        $( host ).find('.otp-input').find('input').each(function() {
          $(this).attr('maxLength', 1);
          $(this).on('keyup', function(e) {
            if(['Backspace', 'Delete'].includes(e.key)) {
              if ($(this).prev().length > 0) {
                $(this).prev().trigger('focus'); 
              }
            }
            else if(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(e.key)) {
              const trimmed = $(this).val().replace(/\s/g, '');
              if ( trimmed.length > 0) {
                
                if ($(this).next().length > 0) {
                  $(this).next().trigger('focus'); 
                }
                var otp = [];
                $( host ).find('.otp-input').find('input').each(function() {
                    otp.push($(this).val());
                });
                otp = otp.join('');  
                if( otp.length ==6 ) $( 'input[name="verify-whatsapp-number"]' ).prop( 'disabled', false );
                console.log("OTP(" + otp.length + "): " + otp);
              }else{
                $(this).val('');
              }
            }

            $( host ).find( '.otp-input' ).removeClass( 'error' );
          });
          $(this).on('paste', function(e) {
            const otp = e.originalEvent.clipboardData.getData('text');
            const value = otp.split("");
            const regex = /^\d{6}$/;
            var inputs = $( host ).find('.otp-input').find('input');
            if (value.length === inputs.length && regex.exec(otp) !== null) {
              inputs.each(function(i) {
                $(this).val(value[i]);
              });
            }
            console.log("All OTP: " + otp);
            if( otp.length ==6 ) $( 'input[name="verify-whatsapp-number"]' ).prop( 'disabled', false );
            $( host ).find( '.otp-input' ).removeClass( 'error' );
          });
        });
    }

    function init_email_otp( host )
    {
        $( host ).find( '.otp-input' ).find( 'input:first-child' ).trigger( 'focus' );
        $( host ).find('.otp-input').find('input').each(function() {
          $(this).attr('maxLength', 1);
          $(this).on('keyup', function(e) {
            if(['Backspace', 'Delete'].includes(e.key)) {
              if ($(this).prev().length > 0) {
                $(this).prev().trigger('focus'); 
              }
            }
            else if(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(e.key)) {
              const trimmed = $(this).val().replace(/\s/g, '');
              if ( trimmed.length > 0) {
                
                if ($(this).next().length > 0) {
                  $(this).next().trigger('focus'); 
                }
                var otp = [];
                $( host ).find('.otp-input').find('input').each(function() {
                    otp.push($(this).val());
                });
                otp = otp.join('');  
                if( otp.length ==6 ) $( 'input[name="verify-email-address"]' ).prop( 'disabled', false );
                console.log("OTP(" + otp.length + "): " + otp);
              }else{
                $(this).val('');
              }
            }

            $( host ).find( '.otp-input' ).removeClass( 'error' );
          });
          $(this).on('paste', function(e) {
            const otp = e.originalEvent.clipboardData.getData('text');
            const value = otp.split("");
            const regex = /^\d{6}$/;
            var inputs = $( host ).find('.otp-input').find('input');
            if (value.length === inputs.length && regex.exec(otp) !== null) {
              inputs.each(function(i) {
                $(this).val(value[i]);
              });
            }
            console.log("All OTP: " + otp);
            if( otp.length ==6 ) $( 'input[name="verify-email-address"]' ).prop( 'disabled', false );
            $( host ).find( '.otp-input' ).removeClass( 'error' );
          });
        });
    }

    function send_notification( type, message )
    {
        //clean
        $( 'footer .notification' ).removeClass( 'error' ).removeClass( 'success' ).removeClass( 'warning' );
        $( 'footer .notification' ).addClass( type );
        $( 'footer .notification' ).addClass( 'show' );
        $( 'footer .notification' ).find( '.message' ).html( message );
        setTimeout( function(){ $( 'footer .notification' ).removeClass( 'show' ); console.log( 'close message!' ) }, 3000 )
    }   

    $( 'body' ).on( 'click', 'a[href="#account"]', function(e){
        e.preventDefault();
        if( !$( 'body' ).hasClass( 'logged-in' ) ) $( '.flying-login-menu' ).addClass( 'show' );
    } )

    $( 'body' ).on( 'click', 'a[href="#close-reset-password"]', function(e){
        e.preventDefault();
        console.log( 'close-reset-password' );
        $( '.flying-forget-password' ).removeClass( 'new-password' );
    } )

    $( 'body' ).on( 'click', 'a[href="#close-otp-email"]', function(e){
        e.preventDefault();
        $( '.flying-forget-password' ).removeClass( 'sent-otp-email' );
    } )

    $( 'body' ).on( 'click', 'a[href="#kembali"]', function(e){
        e.preventDefault();
        $( '.flying-reset-password' ).removeClass( 'success' );
    } )

    $( 'body' ).on( 'click', 'input[name="reset-password"]', function(e){
        e.preventDefault();
        console.log( 'reset-password' );

        var button = $( this );
        var data                = {};
        var security            = $( button ).closest( '.reset-body-tab' ).find( 'input[name="_wpnonce"]' ).val();
        var email_address       = $( button ).closest( '.reset-body-tab' ).find( 'input[name="email-address"]' ).val().trim();
        var new_password        = $( button ).closest( '.reset-body-tab' ).find( 'input[name="new-password"]' ).val().trim();
        var confirm_password    = $( button ).closest( '.reset-body-tab' ).find( 'input[name="confirm-password"]' ).val().trim();
        var url                 = ajaxurl + '?action=reset_new_password';

        data.email_address      = email_address;
        data.security           = security;
        data.new_password       = new_password;
        data.confirm_password   = confirm_password;

        if( new_password =='' ){
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="new-password"]' ).parent().addClass( 'is-error' );  
            return;
        }
        if( confirm_password =='' ){
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="confirm-password"]' ).parent().addClass( 'is-error' );  
            return;
        }
        if( new_password != confirm_password ){
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="confirm-password"]' ).parent().addClass( 'is-error' );
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="confirm-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Konfirmasi kata sandi salah' );
            
            setTimeout( function(){
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="confirm-password"]' ).parent().removeClass( 'is-error' );
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="confirm-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan konfirmasi kata sandi' );
                }, 3000 );
            return;
        }

        result = zxcvbn( new_password, [] );
        if( result.score<3 ){
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="new-password"]' ).parent().addClass( 'is-error' );
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="new-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Password anda lemah!' );
            send_notification( 'error', 'Password minimal 7 karakter, coba gunakan kombinasi huruf kecil dan besar, angka dan karakter seperti ! \" ? $ % ^ & ).' );

            setTimeout( function(){
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="new-password"]' ).parent().removeClass( 'is-error' );
            $( button ).closest( '.reset-body-tab' ).find( 'input[name="new-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                }, 3000 );
            return;
        }

        $( button ).prop( 'disabled', true );
        $.ajax({
            type        : "POST",
            url         : url,
            data        : data,
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    $( '.flying-login-menu' ).removeClass( 'forget-password' );
                    $( '.flying-forget-password' ).removeClass( 'sent-otp-email' ).removeClass( 'new-password' );
                    $( '.flying-reset-password' ).addClass( 'success' );
                }else{
                    //error login whatsapp
                    if( parseInt(r.code)==120 ){
                        $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().find( '.form-message-wrapper' ).html( r.message );

                        setTimeout( function(){
                            $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().addClass( 'is-error' );
                            $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                        }, 3000 )
                    }else if( parseInt(r.code)==130 ){
                        $( button ).closest( '.flying-reset-password' ).find( 'input[name="confirm-password"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.flying-reset-password' ).find( 'input[name="confirm-password"]' ).parent().find( '.form-message-wrapper' ).html( r.message );

                        setTimeout( function(){
                            $( button ).closest( '.flying-reset-password' ).find( 'input[name="confirm-password"]' ).parent().addClass( 'is-error' );
                            $( button ).closest( '.flying-reset-password' ).find( 'input[name="confirm-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan konfirmasi kata sandi' );
                        }, 3000 )
                    }else if( parseInt(r.code)==140 ){
                        $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().find( '.form-message-wrapper' ).html( r.message );
                        send_notification( 'error', 'Password minimal 7 karakter, coba gunakan kombinasi huruf kecil dan besar, angka dan karakter seperti ! \" ? $ % ^ & ).' );

                        setTimeout( function(){
                            $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().addClass( 'is-error' );
                            $( button ).closest( '.flying-reset-password' ).find( 'input[name="new-password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                        }, 3000 );
                    }else{
                        send_notification( 'error', r.message );
                    }
                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });
    } )

    $( 'body' ).on( 'click', 'input[name="verify-email-address"]', function(e){
        e.preventDefault();
        console.log( 'verify-email-address' );

        var otp = [];
        $( this ).closest( '.otp-body-tab' ).find('.otp-input').find('input').each(function() {
            otp.push($(this).val());
        });
        otp = otp.join('');

        var data            = {};
        var security        = $( this ).closest( '.otp-body-tab' ).find( 'input[name="_wpnonce"]' ).val();
        var email_address   = $( this ).closest( '.otp-body-tab' ).find( '.otp-email' ).html().trim();
        var url             = ajaxurl + '?action=verify_forget_password_token';
        //filled data
        data.email_address  = email_address;
        data.token          = otp;
        data.security       = security;
        

        var button      = $( this );
        $( button ).prop( 'disabled', true );
        $.ajax({
            type        : "POST",
            url         : url,
            data        : data,
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    $( '.flying-forget-password' ).addClass( 'new-password' );
                    $( '.flying-reset-password' ).find( 'input[name="_wpnonce"]' ).val( r.security );
                    $( '.flying-reset-password' ).find( 'input[name="email-address"]' ).val( r.email_address );
                }else{
                    //error login whatsapp
                    if( parseInt(r.code)==1000 ){
                        //reserved
                    }else{
                        $( button ).closest( '.otp-body-tab' ).find( '.otp-input' ).addClass( 'error' );
                        $( button ).closest( '.otp-body-tab' ).find( '.error-message' ).html( r.message );    
                    }
                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });
    } )

    $( 'body' ).on( 'click', 'input[name="verify-forget-password"]', function(e){
        e.preventDefault();
        var security = $( this ).closest( '.forget-password-body-tab' ).find( 'input[name="_wpnonce"]' ).val();
        var email  = $( this ).closest( '.forget-password-body-tab' ).find( 'input[name="username"]' ).val();
        var button = $( this );    
        url = ajaxurl + '?action=verify_forget_password';
        data = { "email":email, "security":security }
        $.ajax({
            type        : "POST",
            url         : url,
            data        : data,
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    //input otp email
                    $( '.flying-forget-password' ).addClass( 'sent-otp-email' );
                    $( '.flying-otp-email' ).find( '.otp-email' ).html( email ); 
                    init_email_otp( $( '.flying-otp-email' ) );
                }else{
                    if( r.code==90 ){
                        $( button ).closest( '.flying-forget-password' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.flying-forget-password' ).find( 'input[name="username"]' ).parent().find( '.form-message-wrapper' ).html( r.message );

                        setTimeout( function(){
                            $( button ).closest( '.flying-forget-password' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );
                            $( button ).closest( '.flying-forget-password' ).find( 'input[name="username"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi alamat email' );
                        }, 3000 )
                    }else{
                        send_notification( 'error', r.message );
                    }
                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });

    } ) 

    $( 'body' ).on( 'keyup', '.forget-password-body-tab input[name="username"]', function(e){
        console.log( 'username:' + $( this ).val().length );
        if( $( this ).val().length >5 ){
            $( 'input[name="verify-forget-password"]' ).prop( 'disabled', false );  
        }else{
            $( 'input[name="verify-forget-password"]' ).prop( 'disabled', true );
        } 
    } )

    $( 'body' ).on( 'click', 'a[href="#close-forget-password"]', function(e){
        e.preventDefault();
        $( '.flying-login-menu' ).removeClass( 'forget-password' );
    } )

    $( 'body' ).on( 'click', 'a.lupa-kata-sandi', function(e){
        e.preventDefault();
        $( '.flying-login-menu' ).addClass( 'forget-password' );
    } )

    $( 'body' ).on( 'click', 'a[href="#daftar"]', function(e){
        $( '.flying-login-menu' ).removeClass( 'show' );
        $( '.flying-register-menu' ).addClass( 'show' );
    } )
    $( 'body' ).on( 'click', 'a[href="#close-otp"]', function(e){
        e.preventDefault();
        $( '.flying-login-menu' ).removeClass( 'sent-otp' );
    } )

    $( 'body' ).on( 'click', 'a[href="#close-login"]', function(e){
        e.preventDefault();
        $( '.flying-login-menu' ).removeClass( 'show' );
    } )

    $( 'body' ).on( 'change', 'input.checkbox-eye', function(e){
        console.log( 'input.checkbox-eye:change' );
        if( $( this ).is(':checked') ){
            console.log( 'change to text' );
            $( this ).closest( '.form-element' ).find( 'input.form-textbox' ).attr( 'type', 'text' );
        }else{
            console.log( 'change to password' );
            $( this ).closest( '.form-element' ).find( 'input.form-textbox' ).attr( 'type', 'password' );
        }
    } )  

    $( 'body' ).on( 'click', 'input[name="submit-register"]', function(e){
        e.preventDefault();
        var url             = ajaxurl + '?action=verify_register';
        var security        = $( this ).closest( '.register-body' ).find( 'input[name="_wpnonce"]' ).val();
        var name            = $( this ).closest( '.register-body' ).find( 'input[name="first-name"]' ).val().trim();
        var whatsapp_number = $( this ).closest( '.register-body' ).find( 'input[name="whatsapp-number"]' ).val().trim();
        var email           = $( this ).closest( '.register-body' ).find( 'input[name="username"]' ).val().trim();
        var password        = $( this ).closest( '.register-body' ).find( 'input[name="password"]' ).val().trim();
        var button          = $( this );

        if( name.trim()=='' ){
            $( this ).closest( '.register-body' ).find( 'input[name="first-name"]' ).parent().addClass( 'is-error' );
        }
        console.log( 'whatsapp_number:'+whatsapp_number+'<-' )
        if( whatsapp_number.trim()=='' ){
            $( this ).closest( '.register-body' ).find( 'input[name="whatsapp-number"]' ).parent().addClass( 'is-error' );
        }

        if( email.trim()=='' ){
            $( button ).closest( '.register-body' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );  
        }  
        if( password.trim()=='' ){
            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );
        }

        result = zxcvbn( password.trim(), [] );
        if( result.score<3 ){
            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );
            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().find( '.form-message-wrapper' ).html( 'Password anda lemah!' );
            send_notification( 'error', 'Password minimal 7 karakter, coba gunakan kombinasi huruf kecil dan besar, angka dan karakter seperti ! \" ? $ % ^ & ).' );

            setTimeout( function(){
            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().removeClass( 'is-error' );
            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
         }, 3000 );
            return;
        }

        if( name.trim()=='' || whatsapp_number.trim()=='' || email.trim()=='' || password.trim()=='' ) return;
        
        $( button ).prop( 'disabled', true );
        data = { "name": name, "whatsapp_number": whatsapp_number, "email": email, "password" : password, "security" : security };
        $.ajax({
            type        : "POST",
            url         : url,
            data        : data,
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    //input otp
                    $( '.flying-register-menu' ).addClass( 'sent-otp' );
                    $( '.flying-otp-menu' ).find( '.otp-number' ).html( r.whatsapp_number );

                    $( '.flying-otp-menu' ).find( 'input[name="verify-whatsapp-number"]' ).attr( 'data-passing', JSON.stringify( data ) );
                    $( '.flying-otp-menu' ).find( 'input[name="verify-whatsapp-number"]' ).attr( 'data-action', 'verify_whatsapp_register' ); 
                    init_whatsapp_otp( $( '.flying-otp-menu' ) );
                    //send_notification( 'error', 'success!!' );
                }else{
                    if( r.code==83 ){
                        $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().find( '.form-message-wrapper' ).html( 'Password anda lemah!' );
                        send_notification( 'error', 'Password minimal 7 karakter, coba gunakan kombinasi huruf kecil dan besar, angka dan karakter seperti ! \" ? $ % ^ & ).' );

                        setTimeout( function(){
                            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().removeClass( 'is-error' );
                            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                        }, 3000 )
                    }else if( r.code==80 ){
                        $( button ).closest( '.register-body' ).find( 'input[name="first-name"]' ).parent().addClass( 'is-error' );
                        setTimeout( function(){
                            $( button ).closest( '.register-body' ).find( 'input[name="first-name"]' ).parent().removeClass( 'is-error' );
                        }, 3000 )
                    }else if( r.code==85 ){
                        $( button ).closest( '.register-body' ).find( 'input[name="whatsapp-number"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.register-body' ).find( 'input[name="whatsapp-number"]' ).parent().find( '.form-message-wrapper' ).html( r.message );
                        setTimeout( function(){
                            $( button ).closest( '.register-body' ).find( 'input[name="whatsapp-number"]' ).parent().removeClass( 'is-error' );
                            $( button ).closest( '.register-body' ).find( 'input[name="whatsapp-number"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi nomor whatsapp' );
                        }, 3000 )
                    }else if( r.code==90 ){
                        $( button ).closest( '.register-body' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.register-body' ).find( 'input[name="username"]' ).parent().find( '.form-message-wrapper' ).html( r.message );
                        setTimeout( function(){
                            $( button ).closest( '.register-body' ).find( 'input[name="username"]' ).parent().removeClass( 'is-error' );
                            $( button ).closest( '.register-body' ).find( 'input[name="username"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi alamat email' );
                        }, 3000 )
                    }else if( r.code==95 ){
                        $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );
                        setTimeout( function(){
                            $( button ).closest( '.register-body' ).find( 'input[name="password"]' ).parent().removeClass( 'is-error' );
                        }, 3000 )
                    }
                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });

    } )  

    $( 'body' ).on( 'click', 'input[name="submit-email"]', function(e){
        e.preventDefault();
        var url         = ajaxurl + '?action=verify_email';
        var security    = $( this ).closest( '.email-content' ).find( 'input[name="_wpnonce"]' ).val();
        var email       = $( this ).closest( '.email-content' ).find( 'input[name="username"]' ).val().trim();
        var password    = $( this ).closest( '.email-content' ).find( 'input[name="password"]' ).val().trim();
        var button      = $( this );

        if( email=='' ){
            $( button ).closest( '.email-content' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );  
            return;
        }  
        if( password=='' ){
            $( button ).closest( '.email-content' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );   
            return;
        }
        
        $( button ).prop( 'disabled', true );

        $.ajax({
            type        : "POST",
            url         : url,
            data        : { "email": email, "password" : password, "security" : security },
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    window.location.assign(document.URL);
                }else{
                    //username error
                    if( parseInt( r.code )==90 ){
                        $( button ).closest( '.email-content' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.email-content' ).find( 'input[name="username"]' ).parent().find( '.form-message-wrapper' ).html( r.message );
                        setTimeout( function(){
                            $( button ).closest( '.email-content' ).find( 'input[name="username"]' ).parent().removeClass( 'is-error' );
                            $( button ).closest( '.email-content' ).find( 'input[name="username"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi alamat email' );
                         }, 3000 );
                    }else if( parseInt( r.code )==95 ){
                        $( button ).closest( '.email-content' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );
                        $( button ).closest( '.email-content' ).find( 'input[name="password"]' ).parent().find( '.form-message-wrapper' ).html( r.message );
                        setTimeout( function(){
                            $( button ).closest( '.email-content' ).find( 'input[name="password"]' ).parent().removeClass( 'is-error' );
                            $( button ).closest( '.email-content' ).find( 'input[name="password"]' ).parent().find( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                         }, 3000 );
                    }else{
                        send_notification( 'error', r.message );    
                    }
                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });

    } )

    $( 'body' ).on( 'click', 'input[name="verify-whatsapp-number"]', function(e){
        e.preventDefault();
        //action parameter for url
        var action = 'verify_whatsapp_token';
        if( $( this ).attr( 'data-action' ).trim() != '' ) action = $( this ).attr( 'data-action' )
        var url         = ajaxurl + '?action=' + action;
        //get data
        var data = {};
        if( $( this ).attr( 'data-passing' ).trim() != '' ) data = JSON.parse( $( this ).attr( 'data-passing' ) );
        //get otp
        var otp = [];
        $( this ).closest( '.otp-body-tab' ).find('.otp-input').find('input').each(function() {
            otp.push($(this).val());
        });
        otp = otp.join('');

        var security        = $( this ).closest( '.otp-body-tab' ).find( 'input[name="_wpnonce"]' ).val();
        var whatsapp_number = $( this ).closest( '.otp-body-tab' ).find( '.otp-number' ).html().trim();
        
        //filled data
        data.whatsapp_number = whatsapp_number;
        data.token = otp;
        data.security = security;
        
        var button      = $( this );
        $( button ).prop( 'disabled', true );
        $.ajax({
            type        : "POST",
            url         : url,
            data        : data,
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    //reset
                    $( button ).attr( 'data-passing', '' );
                    $( button ).attr( 'data-action', '' );
                    window.location.reload();
                }else{
                    //error login whatsapp
                    if( parseInt(r.code)==100 ){
                        $( '.flying-login-menu.sent-otp' ).removeClass( 'sent-otp' );
                        $( '.flying-login-menu' ).find( 'input[name="whatsapp-number"]' ).siblings( '.form-message-wrapper' ).html( r.message );
                        $( '.flying-login-menu' ).find( 'input[name="whatsapp-number"]' ).parent().addClass( 'is-error' );

                        setTimeout( function(){
                            $( '.flying-login-menu' ).find( 'input[name="whatsapp-number"]' ).siblings( '.form-message-wrapper' ).html( 'Silahkan isi nomor whatsapp' );
                            $( '.flying-login-menu' ).find( 'input[name="whatsapp-number"]' ).parent().removeClass( 'is-error' );
                         }, 3000 );
                    
                    //error register
                    }else if( parseInt(r.code)==110 ){
                        $( '.flying-register-menu.sent-otp' ).removeClass( 'sent-otp' );
                        send_notification( 'error', r.message );

                    }else if( parseInt(r.code)==80 ){
                        $( '.flying-register-menu.sent-otp' ).removeClass( 'sent-otp' );
                        $( '.flying-register-menu' ).find( 'input[name="first-name"]' ).siblings( '.form-message-wrapper' ).html( r.message );
                        $( '.flying-register-menu' ).find( 'input[name="first-name"]' ).parent().addClass( 'is-error' );

                        setTimeout( function(){
                            $( '.flying-register-menu' ).find( 'input[name="first-name"]' ).siblings( '.form-message-wrapper' ).html( 'Silahkan isi nama' );
                            $( '.flying-register-menu' ).find( 'input[name="first-name"]' ).parent().removeClass( 'is-error' );
                         }, 3000 );
                    }else if( parseInt(r.code)==85 ){
                        $( '.flying-register-menu.sent-otp' ).removeClass( 'sent-otp' );
                        $( '.flying-register-menu' ).find( 'input[name="whatsapp-number"]' ).siblings( '.form-message-wrapper' ).html( r.message );
                        $( '.flying-register-menu' ).find( 'input[name="whatsapp-number"]' ).parent().addClass( 'is-error' );

                        setTimeout( function(){
                            $( '.flying-register-menu' ).find( 'input[name="whatsapp-number"]' ).siblings( '.form-message-wrapper' ).html( 'Silahkan isi nomor whatsapp' );
                            $( '.flying-register-menu' ).find( 'input[name="whatsapp-number"]' ).parent().removeClass( 'is-error' );
                         }, 3000 );
                    }else if( parseInt(r.code)==90 ){
                        $( '.flying-register-menu.sent-otp' ).removeClass( 'sent-otp' );
                        $( '.flying-register-menu' ).find( 'input[name="username"]' ).siblings( '.form-message-wrapper' ).html( r.message );
                        $( '.flying-register-menu' ).find( 'input[name="username"]' ).parent().addClass( 'is-error' );

                        setTimeout( function(){
                            $( '.flying-register-menu' ).find( 'input[name="username"]' ).siblings( '.form-message-wrapper' ).html( 'Silahkan isi alamat email' );
                            $( '.flying-register-menu' ).find( 'input[name="username"]' ).parent().removeClass( 'is-error' );
                         }, 3000 );
                    }else if( parseInt(r.code)==95 ){
                        $( '.flying-register-menu.sent-otp' ).removeClass( 'sent-otp' );
                        $( '.flying-register-menu' ).find( 'input[name="password"]' ).siblings( '.form-message-wrapper' ).html( r.message );
                        $( '.flying-register-menu' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );

                        setTimeout( function(){
                            $( '.flying-register-menu' ).find( 'input[name="password"]' ).siblings( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                            $( '.flying-register-menu' ).find( 'input[name="password"]' ).parent().removeClass( 'is-error' );
                         }, 3000 );
                    }else if( parseInt(r.code)==83 ){
                        $( '.flying-register-menu.sent-otp' ).removeClass( 'sent-otp' );
                        $( '.flying-register-menu' ).find( 'input[name="password"]' ).siblings( '.form-message-wrapper' ).html( r.message );
                        $( '.flying-register-menu' ).find( 'input[name="password"]' ).parent().addClass( 'is-error' );
                        send_notification( 'error', 'Password minimal 7 karakter, coba gunakan kombinasi huruf kecil dan besar, angka dan karakter seperti ! \" ? $ % ^ & ).' );

                        setTimeout( function(){
                            $( '.flying-register-menu' ).find( 'input[name="password"]' ).siblings( '.form-message-wrapper' ).html( 'Silahkan isi kata sandi' );
                            $( '.flying-register-menu' ).find( 'input[name="password"]' ).parent().removeClass( 'is-error' );
                         }, 3000 );
                    //error OTP
                    }else{
                        $( button ).closest( '.otp-body-tab' ).find( '.otp-input' ).addClass( 'error' );
                        $( button ).closest( '.otp-body-tab' ).find( '.error-message' ).html( r.message );    
                    }
                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });
    } )

    $( 'body' ).on( 'keyup', '.login-body-tab input[name="whatsapp-number"]', function(e){
        if( e.which == 13 ) e.preventDefault();
        if( $( this ).val().length > 9){
            $( this ).closest( '.whatsapp-content' ).find( 'input[type="submit"]' ).prop( 'disabled', false );
        }else{
            $( this ).closest( '.whatsapp-content' ).find( 'input[type="submit"]' ).prop( 'disabled', true );
        }
    } )

    $( 'body' ).on( 'click', '.whatsapp-content input[type="submit"]', function(e){
        //search certain barcode
        var url         = ajaxurl + '?action=verify_whatsapp_number';
        var whatsapp    = $( this ).closest( '.whatsapp-content' ).find( 'input[name="whatsapp-number"]' ).val();
        var security    = $( this ).closest( '.whatsapp-content' ).find( 'input[name="_wpnonce"]' ).val();
        var button      = $( this );
        $( button ).prop( 'disabled', true );
        $.ajax({
            type        : "POST",
            url         : url,
            data        : { "whatsapp-number" : whatsapp, "security" : security },
            dataType    : "json",
            success     : function( r ) {
                if( r.success ){
                    //input otp
                    $( '.flying-login-menu' ).addClass( 'sent-otp' );
                    $( '.flying-otp-menu' ).find( '.otp-number' ).html( r.whatsapp_number );
                    
                    init_whatsapp_otp( $( '.flying-otp-menu' ) );
                    //send_notification( 'error', 'success!!' );
                }else{

                }
            },
            complete    :function(r){
                $( button ).prop( 'disabled', false );
            },
            async       :true,
        });

    } )

    $( 'body' ).on( 'click', '.grouped-icon-add-to-wishlish .remove_from_wishlist', function(e){
        e.preventDefault();
        var product_id = $( this ).data( 'product-id' )
        data = {
                remove_from_wishlist: product_id,
                product_type: $( this ).data( 'product-type' ),
                action: yith_wcwl_l10n.actions.remove_from_wishlist_action
            };
        console.log( 'try remove from wishlist' );
        $.ajax({
            type: 'POST',
            url: yith_wcwl_l10n.ajax_url,
            data: data,
            dataType: 'json',
            beforeSend: function(){
                // el.siblings( '.ajax-loading' ).css( 'visibility', 'visible' );
            },
            complete: function(){
                console.log( 'complete:removed_from_wishlist(' + product_id + ')' );
                $('body').trigger('removed_from_wishlist', [ product_id ]);
                // el.siblings( '.ajax-loading' ).css( 'visibility', 'hidden' );
            },
            success: function( response ) {
                
            }

        });
    } )

    function another_call_ajax_add_to_wishlist( el ) {
        var product_id = el.data( 'product-id' ),
            el_wrap = $( '.add-to-wishlist-' + product_id ),
            data = {
                add_to_wishlist: product_id,
                product_type: el.data( 'product-type' ),
                action: yith_wcwl_l10n.actions.add_to_wishlist_action
            };

        if( !yith_wcwl_l10n.is_user_logged_in ){
            //redirect to login
        }

        $.ajax({
            type: 'POST',
            url: yith_wcwl_l10n.ajax_url,
            data: data,
            dataType: 'json',
            beforeSend: function(){
                // el.siblings( '.ajax-loading' ).css( 'visibility', 'visible' );
            },
            complete: function(){
                // el.siblings( '.ajax-loading' ).css( 'visibility', 'hidden' );
            },
            success: function( response ) {
                var msg = $( '#yith-wcwl-message' ),
                    response_result = response.result,
                    response_message = response.message;

                msg.html( response_message );
                msg.css( 'margin-left', '-' + ($( msg ).width()/2 + 15) + 'px' );
                msg.css( 'margin-top', '-' + ($( msg ).height()/2 + 15) + 'px' );
                msg.fadeIn().show();
                window.setTimeout( function() {
                    msg.fadeOut().hide();
                }, 2000 );

                if( response_result == "true" || response_result == "exists" ) {
                    console.log('wishlist');   

                    el.find('.icon-wishlist').addClass('show-wishlist');
                    el.find('i').attr('class', 'fa fa-heart');
                }
                $('body').trigger('added_to_wishlist');
            }

        });
    }

    $('body').on( 'click', '.rr-materializer.rs-giftoverlay button.as-overlay-close', function( event ){
        event.preventDefault();
        $( 'html' ).removeClass( 'rr-overlay-open' );
        $( '.rr-materializer.rs-giftoverlay' ).addClass( 'rr-materializer-hidden' ).addClass( 'rr-materializer-invisible' ).removeClass( 'rr-materializer-shown' );
    });
    
    $('body').on( 'click', '.rs-giftoverlay:not(.rs-overlay-content)', function( event ){
        console.log( 'tonnn override' );
        event.preventDefault();
        if( $(event.target).is( 'a' ) || $(event.target).closest( 'a' ).length ){
            var href='';
            if( $(event.target).is( 'a' ) ){
                href = $(event.target).attr( 'href' );  
            } else if( $(event.target).closest( 'a' ).length ){
                href = $(event.target).closest( 'a' ).attr( 'href' );
            }
            window.location.href = href;
        }else if( $(event.target).is( 'button' ) || $(event.target).is( 'input' ) ){
            console.log( 'button/input-click' );
            return;
        }
        if( $(event.target).is('.rs-overlay-content') || $(event.target).closest('.rs-overlay-content').length )return;
        $( 'html' ).removeClass( 'rr-overlay-open' );
        $( '.rr-materializer.rs-giftoverlay' ).addClass( 'rr-materializer-hidden' ).addClass( 'rr-materializer-invisible' ).removeClass( 'rr-materializer-shown' );
    })

    //swipe function
    if( $('.swipe-active-content').length ){
        // console.log('swipe mann');
        $(".swipe-active-content")
        .on('swipeleft', function(e) {
            var swipe_content   = $( this );
            var page            = swipe_content.data( 'page' );
            var total_page      = swipe_content.data( 'total-page' );

            if( page && total_page && page >= total_page ) return;

            swipe_content.html('<p class="ac-gn-bagview-message ac-gn-bagview-message-empty" style="text-align:center;display:flex;justify-content:center;align-items:center;min-height:100vh"><span class="waitindicator waitindicator40-gray"></span></p>');
            // $("html, body").animate({ scrollTop: 0 }, "slow");
            swipe_content.get(0).scrollIntoView();
            $.ajax({
                type: 'GET',
                url: swipe_content.data('next-link'),
                success: function( response ) {
                    page++;
                    swipe_content.html( $(response).find('.swipe-active-content').html() );
                    if( $(response).find('.swipe-active-content').data('page') ) swipe_content.data( 'page', $(response).find('.swipe-active-content').data('page') );
                    swipe_content.data( 'previous-link', $(response).find('.swipe-active-content').data('previous-link') );
                    swipe_content.data( 'next-link', $(response).find('.swipe-active-content').data('next-link') );
                    initTrendGallery();
                }
            });
        })
        .on('swiperight', function(e) {
            var swipe_content   = $( this );
            var page            = swipe_content.data( 'page' );
            var total_page      = swipe_content.data( 'total-page' );
            
            if( page && page == 1 ) return;

            swipe_content.html('<p class="ac-gn-bagview-message ac-gn-bagview-message-empty" style="text-align:center;display:flex;justify-content:center;align-items:center;min-height:75vh"><span class="waitindicator waitindicator40-gray"></span></p>');
            // $("html, body").animate({ scrollTop: 0 }, "slow");
            swipe_content.get(0).scrollIntoView();
            $.ajax({
                type: 'GET',
                url: swipe_content.data('previous-link'),
                success: function( response ) {
                    swipe_content.html( $(response).find('.swipe-active-content').html() );
                    if( $(response).find('.swipe-active-content').data('page') ) swipe_content.data( 'page', $(response).find('.swipe-active-content').data('page') );
                    swipe_content.data( 'previous-link', $(response).find('.swipe-active-content').data('previous-link') );
                    swipe_content.data( 'next-link', $(response).find('.swipe-active-content').data('next-link') );
                    reInitTrendGallery();
                }
            });
        })
        .on('movestart', function(e) {
            // If the movestart heads off in a upwards or downwards
            // direction, prevent it so that the browser scrolls normally.
            if ((e.distX > e.distY && e.distX < -e.distY) ||
                (e.distX < e.distY && e.distX > -e.distY)) {
                e.preventDefault();
                return;
            }
        })
        .on('move', function(e) {
            
            if( Math.abs( e.distX ) > $(window).width() * 0.30 ){
                // $( this ).trigger( 'moveend' );
                // $( this ).trigger( 'swipeleft' );
                e.preventDefault();
                return;  
            }else{
                $(this).css('left', e.distX);
            }

        })
        .on('moveend', function(e) {
            $(this).css('left', 0);
            // $( '#monitor' ).html( 'move end coi' );
        });
    }

    //check user role
    $('body').on('check_user_role', function(){
        console.log( 'check_user_role' );
        $.ajax({
            type: 'POST',
            url: admin_ajax,
            data:{'action':'render_user_role'},
            dataType: 'html',
            success: function( response ) {
                //remove indicator
               if( response.reseller == 'yes' ) $('.utility-nav-link.ac-gn-link-account').addClass( 'reseller' );
            }

        });
    })

    $('body').on('checkout_error', function(){
        console.log('trigger checkout error');
        window.setTimeout(function() {
            console.log('remove error flag');
            $('.as-promo.as-error-flag').removeClass( 'as-error-flag' );
        }, 700);    
    })
    

    $('body').on('click', '.utility-nav .ac-gn-link.ac-gn-link-search', function(){
        $('#ac-globalnav').toggleClass('searchopen');
        $('html').toggleClass('ac-gn-noscroll ac-gn-noscroll-long');
        $('.header-bar').css('max-width', 'none');

        //hide
        $('.utility-nav-link, .header-left').css('visibility', 'hidden').css('opacity', 0);

        //hide shopping bag
        $('.utility-nav.with-bagview').removeClass('with-bagview');

        window.setTimeout(function() {
            $('#ac-globalnav .ac-gn-searchview').toggleClass('open');
            $('#ac-globalnav .ac-gn-searchform-input').focus();
        }, 300);
        
    })

    

    $('body').on('change', '#rr-overlay-ordertotal', function(){
        $('html').toggleClass('ac-gn-noscroll ac-gn-noscroll-long');
    })

    $('body').on('keyup', '.ac-gn-searchform-input', function(e){  
        console.log('key up');
        if( $(this).val() == '' ){
            $('.ac-gn-searchresults').addClass('with-content');  
        } else {
            $('.ac-gn-searchresults').removeClass('with-content');
        }
    })

    $('body').on('click', '#ac-globalnav #ac-gn-searchview-close', function(e){  
       e.preventDefault();
       closeSearchView();
    })

    $('body').on('click', '#ac-gn-curtain', function(e){  
       e.preventDefault();
       closeSearchView();
    })

    $('body').on('keyup', function(e){  
        if (e.keyCode == 27 && $('.ac-gn-searchview').hasClass('open')) {
            e.preventDefault();
            closeSearchView();
        }
    })

    $('body').on('click', '.utility-nav-link.ac-gn-link-bag', function(e){  
        e.preventDefault();
        var nav = $(this).closest('nav');
        nav.toggleClass('with-bagview');

        //toggle back category menu
        $('#localnav-disclosure').prop( "checked", false );

        //toggle back menu
        $('#main-nav-item-default').prop( "checked", true );

        $('html').removeClass('ac-gn-noscroll ac-gn-noscroll-long');

        //remove indicator
        $('#ac-gn-bagview-content').find('.waitindicator').remove();
        //remove empty bag message
        $('#ac-gn-bagview-content').find('.ac-gn-bagview-message-empty').remove();
        //remove existing bag content
        $('#ac-gn-bagview-content').find('.ac-gn-bagview-bag').remove();
        //remove bag message
        $('#ac-gn-bagview-content').find('.ac-gn-bagview-linemessage').remove();
        //remove checkout button
        $('#ac-gn-bagview-content').find('.ac-gn-bagview-button.ac-gn-bagview-button-checkout').remove();

        //prepend indicator
        $('.ac-gn-bagview-content').prepend('<p class="ac-gn-bagview-message ac-gn-bagview-message-empty" style="text-align:center"><span class="waitindicator waitindicator40-gray"></span></p>');

        $.ajax({
            type: 'POST',
            url: admin_ajax,
            data:{'action':'render_shopping_bag'},
            dataType: 'html',
            success: function( response ) {
                //remove indicator
                $('#ac-gn-bagview-content').find('.ac-gn-bagview-message-empty').remove();
                
                //fill with shopping bag content
                $('#ac-gn-bagview-content').prepend( response );
            }

        });
    })

    $('body').on('click', '#ac-gn-menustate', function(e){
        $('html').toggleClass('ac-gn-noscroll ac-gn-noscroll-long menustate-open');
        $('#header').removeClass('searchopen');
    })

    $('body').on('click', 'a.ac-gn-link.ac-gn-link-search.main-nav__link', function(e){
        e.preventDefault();
        $('#header').addClass('searchopen');
        
        var ul = $(this).closest('ul');
        ul.siblings('.ac-gn-searchview').find('.ac-gn-searchform-input').focus();
        console.log('search mobile');
    })

    $('body').on('click', '#header #ac-gn-searchview-close', function(e){
        e.preventDefault();
        $('#header').removeClass('searchopen');
    })

    $('body').on('click', '.main-nav-check:checked ~ .main-nav__link.has-icon', function(e){
        e.preventDefault();
        console.log('youu');
        $( "#main-nav-item-default" ).prop( "checked", true ).change();
        $('html').removeClass('ac-gn-noscroll ac-gn-noscroll-long');
    })

    $('body').on('click', '.mobile-check:checked ~ .main-nav__link', function(e){
        e.preventDefault();
        console.log('youu mobiles');
        $( "#default-mobile-check" ).prop( "checked", true ).change();
    })

    $('body').on('change', '.mobile-check', function(e){
        e.preventDefault();
        if( $( this ).is( ':checked' ) ){
            //calculate column width
            var inner           = $( this ).siblings( '.main-nav__link-innner' ); 
            var w               = inner.width();
            console.log( 'width -> ' + w );
            w = Math.max( w, 330 );
            if(  w > 330) w = 330;
        
            var columns         = inner.find( '.as-localnavcolumn-nosubcategory7' );
            console.log( 'column' + columns.length );
            $( columns ).each( function( index ){
                console.log( 'modify ' + index );
                $( this ).css( 'width', w-50 );
            } )
            inner.find('.main-nav__link-scroller').css( 'width', (w-45) * columns.length );

            if( $( inner ).scrollLeft() ){
                //set to corner
                $( inner ).animate({scrollLeft: 0}, 500); 
                
            }else{
                setTimeout( function(){
                    $( inner ).animate({scrollLeft: 200}, 500);    
                }, 500 );

                setTimeout( function(){
                    $( inner ).animate({scrollLeft: 0}, 1300);    
                }, 500 );
            }
        }
    })


    $('body').on('click', '.main-nav-check:not(:checked) ~ .main-nav__link.has-icon', function(e){
        // e.preventDefault();
        $('.utility-nav.with-bagview').removeClass('with-bagview');
    })

    $('body').on('click', '.main-nav-check', function(e){
        if( $(this).is( ':checked' ) ){
            if( !$('html').hasClass( 'ac-gn-noscroll' ) ){
              $('html').addClass('ac-gn-noscroll ac-gn-noscroll-long');  
            }
        }
    })

    $('body').on('click', '.chat_with_sales', function( event ) {
        event.preventDefault();
        $zopim.livechat.window.show();
    });

    $('body').on('change blur', '.form-textbox', function( event ){
        if( $(this).val() != '' ){
            $( this ).addClass( 'form-textbox-entered' );
            $( this ).closest('.form-element').removeClass('is-error');
        }else{
            $( this ).removeClass( 'form-textbox-entered' );
            if( $( this ).prop( 'required' ) ) $( this ).closest('.form-element').addClass('is-error');
        }
    })

    $('body').on('focus', '.form-textbox', function(){
        console.log('killll');
        console.log( 'gantii' + $(this).siblings('.form-label').html() );    
        $(this).siblings('.form-label').html( $(this).siblings('.form-label').data( 'text' ) );
    })

    $( document ).ready(function() {

        $('.lazy').lazy();

        var els = document.getElementsByClassName("ase-truncate-title");
        for( let i = 0; i < els.length; i++ )$clamp(els[i], {clamp: 2});

        $( document.body ).trigger( 'checkout_error' );
        $( document.body ).trigger( 'check_user_role' );

        //update shopping bag
        $.ajax({
            type: 'POST',
            url: admin_ajax,
            data:{'action':'update_shopping_bag_badge'},
            dataType: 'json',
            success: function( response ) {
                console.log( 'shopping cart badge' );
                $( '.cart-count' ).attr( 'data-count', response.cart );
                $( '.cart-count' ).html( response.cart );
            }

        });

        //clamp
        $('.comment-content').each(function(index, element) {
            $clamp(element, { clamp: 3, useNativeClamp: false });
        });


        var gallery = $('#behind-ubslifestyle-gallery');    
        $('#behind-ubslifestyle-gallery').slick({
            dots:true,
            arrows: true,
            prevArrow:  gallery.siblings('.paddlenav').find( '.paddlenav-arrow-previous' ),
            nextArrow:  gallery.siblings('.paddlenav').find( '.paddlenav-arrow-next' ),
            appendDots: gallery.siblings('.dotnav'),
            infinite:false,
        });

        var another_gallery = $('.another-main-gallery');
        another_gallery.each( function(index, element){
            var gallery = $(this).find('.gallery');
            gallery.slick({
                dots:true,
                arrows: true,
                prevArrow:  gallery.siblings('.paddlenav').find( '.paddlenav-arrow-previous' ),
                nextArrow:  gallery.siblings('.paddlenav').find( '.paddlenav-arrow-next' ),
                appendDots: gallery.siblings('.dotnav'),
                infinite:false,
            });
        } )

        var trend_gallery = $('.trend-gallery');
        trend_gallery.each(function(index){
            $(this).slick({
                dots:false,
                arrows: false,
                prevArrow:  $(this).siblings('.paddlenav').find( '.paddlenav-arrow-previous' ),
                nextArrow:  $(this).siblings('.paddlenav').find( '.paddlenav-arrow-next' ),
                appendDots: $(this).siblings('.dotnav'),
                infinite:true,
                respondTo:'slider',
                // mobileFirst: true,
            });    
        })
        
        $('body').on( 'change', '#filter-action-button', function(){
            console.log('reinit trend gallery');
            if( $( window ).width() <=720 ) return;
            var trend_gallery = $('.trend-gallery');
            trend_gallery.each(function(index){
                $(this).slick('rInit'); 
                // $(this).slick('slickGoTo', false);                
            })
        } )

        //wishlist
        $('div.as-search-results-width .as-producttile').each(function( index ){
            var product_id = $(this).closest('.as-producttile').data('product-id');
            var icon_wishlist = jQuery('<span data-id="' + product_id + '" class="icon-wishlist " href="#"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 206 192" enable-background="new 0 0 206 192" xml:space="preserve"> <path fill="none" stroke="#B22F2F" stroke-width="5" stroke-miterlimit="10" d="M146.3,20.5c-16.5,0-31.1,8.1-40.2,20.5 c-9-12.4-23.6-20.5-40.2-20.5c-27.4,0-49.6,22.2-49.6,49.7c0,41.7,89.8,109,89.8,109s89.8-67.3,89.8-109 C195.9,42.8,173.7,20.5,146.3,20.5z"/> </svg></span>');
            $(this).append(icon_wishlist);
            icon_wishlist.on('click', function(){
                console.log( 'product-id' +  product_id);
                another_call_ajax_add_to_wishlist( $(this).closest('.as-producttile') );
            });

            if( $.inArray(product_id, wishes) != -1 ){
                icon_wishlist.addClass('show-wishlist');
            }
        });

        var testimony = $('#testimony-in');   
        var testimony_icon =  testimony.find('.tabnav-items');
        var testimony_gallery = testimony.find('.ac-gallery');

        var items = testimony_gallery.find('.gallery-item');
    
        testimony_icon.slick({
            dots:false,
            arrows: false,
            slidesToShow: items.length,
            slidesToScroll: items.length,
            infinite:false,
            focusOnSelect: true,
            asNavFor: testimony_gallery,
        });

        testimony_gallery.slick({
            dots:true,
            arrows: true,
            slidesToShow: 1,
            slidesToScroll: 1,
            
            prevArrow:  testimony_gallery.siblings('.paddlenav').find( '.paddlenav-arrow-previous' ),
            nextArrow:  testimony_gallery.siblings('.paddlenav').find( '.paddlenav-arrow-next' ),
            appendDots: testimony_gallery.siblings('.dotnav'),
            infinite:false,
            asNavFor: testimony_icon,
        });

        
    });

    function initTrendGallery()
    {
        var trend_gallery = $('.trend-gallery');
        if( trend_gallery.length ==0) return;
        trend_gallery.each(function(index){
            $(this).slick({
                dots:true,
                arrows: true,
                prevArrow:  $(this).siblings('.paddlenav').find( '.paddlenav-arrow-previous' ),
                nextArrow:  $(this).siblings('.paddlenav').find( '.paddlenav-arrow-next' ),
                appendDots: $(this).siblings('.dotnav'),
                infinite:false,
                respondTo:'slider',
                // mobileFirst: true,
            });    
        })
    }

    

    function closeSearchView()
    {
        $('.ac-gn-searchview').removeClass('open');
        $('.utility-nav-link, .header-left').css('visibility', 'visible').css('opacity', 1);

        $('html').removeClass('ac-gn-noscroll ac-gn-noscroll-long');
        $('#ac-globalnav').removeClass('searchopen');

        $('.header-bar').css('max-width', '980px');
    }

    $(window).bind('focusout', function(){
        console.log('bye bye');
    });

    $(window).bind('focusin', function(){
        console.log('welcome back!');
    });

    $( 'body' ).on( 'click', '.my-coupons', function(e){
        e.preventDefault();
        var href = $( this ).attr( 'href' );
        popupWindow( href, 'my-coupons', window, 500, 500);
    } )

    if( $( 'body' ).hasClass( 'woocommerce-cart' ) ){
        console.log( 'add link my coupons' );
        $( '#rr-accordion-shoppingCart-promoCode' ).append( '<a class="rr-toggle form-textbox-sidebutton my-coupons" href="/my-coupon">My Coupons</a>' );
    }

    if( $( 'body' ).hasClass( 'woocommerce-checkout' ) ){
        console.log( 'checkout page' );
        $( '.as-paymentoptions-item.as-paymentoptions-item-giftcard' ).find( '.rs-payment-giftcard-header' ).append( '<a class="rr-toggle form-textbox-sidebutton my-coupons" style="position: relative;top: auto;font-size: inherit;" href="/my-coupon">My Coupons</a>' );
    }

})(jQuery);
