/* Js for , Version=1775193950 */
 v.lang = {"confirmDelete":"\u60a8\u786e\u5b9a\u8981\u6267\u884c\u5220\u9664\u64cd\u4f5c\u5417\uff1f","deleteing":"\u5220\u9664\u4e2d","doing":"\u5904\u7406\u4e2d","loading":"\u52a0\u8f7d\u4e2d","updating":"\u66f4\u65b0\u4e2d...","timeout":"\u7f51\u7edc\u8d85\u65f6,\u8bf7\u91cd\u8bd5","errorThrown":"\u6267\u884c\u51fa\u9519\uff1a","continueShopping":"\u7ee7\u7eed\u8d2d\u7269","required":"\u5fc5\u586b","back":"\u8fd4\u56de","continue":"\u7ee7\u7eed","bindWechatTip":"\u53d1\u5e16\u529f\u80fd\u8bbe\u7f6e\u4e86\u7ed1\u5b9a\u5fae\u4fe1\u7684\u9650\u5236\uff0c\u8bf7\u5148\u7ed1\u5b9a\u5fae\u4fe1\u4f1a\u5458\u3002","importTip":"\u53ea\u5bfc\u5165\u4e3b\u9898\u7684\u98ce\u683c\u548c\u6837\u5f0f","fullImportTip":"\u5c06\u4f1a\u5bfc\u5165\u6d4b\u8bd5\u6570\u636e\u4ee5\u53ca\u66ff\u6362\u7ad9\u70b9\u6587\u7ae0\u3001\u4ea7\u54c1\u7b49\u6570\u636e","hide":"\u9690\u85cf"};;if(location.href.includes('needEditNickname'))
{
    $('#editName').modal({
        show: true,
        backdrop: 'static',
        keyboard: false
    });
    $.setAjaxForm('#nicknameForm');
};v.random = "18e6dce4de2da28b13004bea26554557";;v.resend = "\u91cd\u65b0\u53d1\u9001";;v.mobileTips = "\u8bf7\u8f93\u5165\u624b\u673a\u53f7";;v.captchaTips = "\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801";;
$().ready(function()
{
    $('a.btn-oauth').each(function()
    {
        getFingerprint().then(result =>
        {
            $(this).attr('href', $(this).attr('href').replace('fingerprintval', result))
        })
    })
});
;$(function(){
   $('.join').click(function(e) {
        e.stopPropagation();
        $(this).find('.code-wrap').toggle()
    })
    $(document).click(function(){
        $('.join .code-wrap').hide();
    })
    $('.code-wrap').click(function(e) {
        e.stopPropagation();
    })
    
    if($('#copyright').find('.footer-link').length === 0) {
        $('#copyright').after('<a href="http://www.easycorp.cn" target="_blank" class="footer-link">禅道软件（青岛）有限公司</a>')
    } 
})

;/* Keep session random valid. */
needPing = true;
$('.normal #submit').click(function(e)
{
    e.preventDefault();
    var loginText = $(this).val();
    $(this).val($(this).data('loading'));
    var password = $('#password').val();
    var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    var hasCaptcha = false;
    if(!reg.test($('#account').val())) password = md5(md5(md5($('#password').val()) + $('#account').val()) + v.random);
    if($('.captcha').size() > 0)
    {
        hasCaptcha = true;
        captchaInput = $('.captcha:last input:text').attr('id');
    }

    getFingerprint().then(result =>
    {
        postData = "account=" + $('#account').val() + '&password=' + encodeURIComponent(password) + '&referer=' + encodeURIComponent($('#referer').val()) + '&fingerprint=' + result;
        loginURL = createLink('user', 'login');
        if(hasCaptcha) postData += '&' + captchaInput + '=' + $('#' + captchaInput).val();
        $.ajax(
        {
            type: "POST",
            data: postData,
            url:loginURL,
            dataType:'json',
            success:function(data)
            {
                $('.normal #submit').val(loginText);
                if(data.result == 'success') return location.href=data.locate;
                postData = "account=" + $('#account').val() + '&password=' + $('#password').val() + '&referer=' + encodeURIComponent($('#referer').val()) + '&fingerprint=' + result;
                if(hasCaptcha) postData += '&' + captchaInput + '=' + $('#' + captchaInput).val();
                $.ajax(
                {
                    type: "POST",
                    data: postData,
                    url:loginURL,
                    dataType:'json',
                    success:function(data)
                    {
                        if(data.result == 'fail') showFormError(data.message);
                        if(data.result == 'success') location.href=data.locate;
                        if(typeof(data) != 'object') showFormError(data);
                    },
                    error:function(data){showFormError(data.responseText);}
                })
            },
            error:function(data){showFormError(data.responseText); $('.normal #submit').val(loginText);}
        })
    })
});

var countdown = 60;
var smsSenderTimer;

function setSmsSenderTime()
{
    $('.mobile .get-captcha').html(countdown + 's').addClass('reciprocal');
    smsSenderTimer = setInterval(function(){
    countdown -= 1;
    if(countdown > 0)
    {
        $('.mobile .get-captcha').html(countdown + 's').addClass('reciprocal');
    }else{
        window.clearInterval(smsSenderTimer);
        $('.mobile .get-captcha').html(v.resend).removeClass('reciprocal');
    }
    },1000);
}

function showFormError(text)
{
    var error = $('#formError').text(text);
    var parent = error.closest('.form-group');
    if(parent.length) parent.show();
    else error.show();
}

$('.wechat-show').click(function()
{
    $(this).addClass('active').siblings().removeClass('active');
    $('.normal, .mobile').hide();
    $('.wechat').show();
    getQrCode();
});

$('.normal-show').click(function()
{
    clearTimeout(disableQrCodeTimer);
    clearInterval(window.qrCodeTimer);
    $(this).addClass('active').siblings().removeClass('active');
    $('.wechat, .mobile').hide();
    $('.normal').show();
});

$('.mobile-show').click(function()
{
    clearTimeout(disableQrCodeTimer);
    clearInterval(window.qrCodeTimer);
    $(this).addClass('active').siblings().removeClass('active');
    $('.wechat, .normal').hide();
    $('.mobile').show();
});

$('.captcha-overlay').click(function()
{
    $('.captcha-overlay, .image-captcha-wrapper').addClass('hide');
    $('.image-captcha-wrapper #captcha').val('');
    $('.image-captcha-wrapper .text-red').remove();
});

$('.get-captcha').click(function()
{
    $('.mobile-tips').remove();
    $('#captcha').val('');
    if($(this).hasClass('reciprocal')) return;
    if(!$(this).parents('form').find('#mobile').val())
    {
        if($('.mobile-tips').length < 1) $('#mobile').after(`<p class='text-red mobile-tips'>${v.mobileTips}</p>`);
        return;
    }
    var _this = $(this);
    $.get(createLink('guarder', 'getcaptcha'), function(response)
    {
        if(response.result == 'success')
        {
            _this.parents('form').find('.image-captcha-wrapper .image-captcha').html(response.captchaContent);
            _this.parents('form').find('.image-captcha-wrapper, .captcha-overlay').removeClass('hide');
        }
    });
});

$('.image-captcha-wrapper .captcha-sure').click(function()
{
    $('.image-captcha-wrapper .text-red').remove();
    $.post(createLink('sms', 'sendCode'), {mobile: $('#mobile').val(), captchaContent: $('#captcha').val(), webToken: getWebToken()}, function(response)
    {
        if(response.result == 'success')
        {
            $('.image-captcha-wrapper, .captcha-overlay').addClass('hide');
            countdown = 60;
            setSmsSenderTime();
        }
        else
        {
            if($('.image-captcha-wrapper').find('.text-red').length < 1)
            {
                $('.image-captcha-wrapper').append(`<p class='text-red'>${response.message}</p>`);
                getCaptcha($('.image-captcha-wrapper .image-captcha'));
            }
        }
    });
});

$('.image-captcha-wrapper .image-captcha').click(function()
{
    getCaptcha($(this));
});

$('.mobile #submit').click(function(e)
{
    e.preventDefault();
    $('.captcha-tips, .mobile-tips').remove();

    if(!$('#mobile').val())
    {
        $('#mobile').after(`<p class='text-red mobile-tips'>${v.mobileTips}</p>`);
        return;
    }
    if(!$('#smscode').val())
    {
        $('.get-captcha').after(`<p class='text-red captcha-tips'>${v.captchaTips}</p>`);
        return;
    }

    $.post(createLink('user', 'mobilelogin'), {mobile: $('#mobile').val(), captcha: $('#smscode').val()}, function(response)
    {
        if(response.result == 'success')
        {
            if(response.locate) location.href = response.locate;
        }
        else
        {
            if(response.message.captcha) $('.get-captcha').after(`<p class='text-red captcha-tips'>${response.message.captcha}</p>`);
        }
    });
});

function getCaptcha(ele)
{
    $.get(createLink('guarder', 'getcaptcha'), function(response)
    {
        if(response.result == 'success')
        {
            ele.html(response.captchaContent);
        }
    });
}

$('.refresh').click(function(){getQrCode();});

var disableQrCodeTimer;
window.qrCodeTimer = null;

function getQrCode()
{
    $.ajax(
        {
            url: "/wechat-getLoginQrCode",xhrFields: {withCredentials: true}, success: function(response)
            {
                if(response.result === "success")
                {
                    $('#login #expired').hide();
                    $('#login #qrcode').css('background-image', 'url(' + response.url + ')');
                    $('#login #mask').hide();
                    clearTimeout(disableQrCodeTimer);
                    if(window.qrCodeTimer) clearInterval(window.qrCodeTimer);
                    disableQrCodeTimer = setTimeout(disableQrCode, 58000);
                    window.qrCodeTimer = setInterval(function()
                    {
                        getFingerprint().then(result =>
                        {
                            $.post("/wechat-ajaxgetscanstatus", {'ticket': response.ticket, fingerprint: result, referer: encodeURIComponent($('#referer').val())}, function(response)
                            {
                                if(response.result == 'success')
                                {
                                    if(window.qrCodeTimer) clearInterval(window.qrCodeTimer);
                                    if(response.status == 'error')
                                    {
                                        if(response.message) bootbox.alert(response.message);
                                        disableQrCode();
                                        clearTimeout(disableQrCodeTimer);
                                        return;
                                    }
                                    if(response.status == 'fail')
                                    {
                                        if(response.message) bootbox.alert(response.message);
                                        return;
                                    }
                                    if(response.locate != '') setTimeout(function(){location.href = response.locate;}, 500);
                                }
                            });
                        })
                    }, 3000);
                }
                else
                {
                    $('#scanTip').html(response.message);
                }
            }
        });
}

function disableQrCode()
{
    $('#loginCommon #expired').show();
    $('#loginCommon #mask').show();
    if(window.qrCodeTimer) clearInterval(window.qrCodeTimer);
}

$(function()
{
    $.getJSON(createLink('user', 'ajaxinwechat', '', 'json'), function (response)
    {
        if(!response.result) getQrCode();
    });

    if($('a.wechat-login-btn').length)
    {
        getFingerprint().then(result =>{$('a.wechat-login-btn').attr('href', $('a.wechat-login-btn').attr('href').replace('fingerprintval', result))});
    }
});

function getWebToken()
{
    const timestamp = Math.floor(Date.now() / 1000);
    const random = Math.random().toString(36).substr(2, 8);
    const userAgent = btoa(navigator.userAgent);
    return btoa(`${timestamp}:${random}:${userAgent}`);
}$(function(){
    $(".siteNav a[href*='register']").remove();
    $(".siteNav a[href*='login']").text('登录/注册');
    
    $('.all-bottom').prependTo('#footer');

    var windowHeight = $(window).innerHeight();
    var minHeight = windowHeight - $('#header').height() - $('#footer').height() + 30;
    if($('html').hasClass('m-user-settings')) minHeight = minHeight - 30;
    if($('.page-wrapper').height() < minHeight) {
        $('.page-wrapper').css('minHeight', minHeight)
    }
    
    if($(window).innerWidth() < 768) {
        if($('html').hasClass('m-ask')) {
            $('.tree > li').removeClass('open');
        }
        
        if($('html').hasClass('m-claim')) {
            $('.clickable-claim').click(function() {
                $('.popover').remove();
            });
        }
    }
    
    if(location.href.includes('rrpl-search')) {
        $('a[href="/rrpl.html"]').parent().addClass('active');
    }
    
    if($('html').hasClass('m-ask-view')) {
        $('a[href="/ask.html"]').parent().addClass('active');
    }
    
    if(location.pathname == '/') $('a[href="/index.html"]').parent().addClass('active');
    
    $('.m-claim-browse .status-list a:last-child').addClass('hide');
    $('.m-claim-browse .type-wrap').css('display', 'none');
    $('.m-claim-browse #keyword').attr('placeholder', '请输入您要搜索的实践');
    if($('.related-zentao').length > 0) $('.details .origin').after($('.details .related-zentao'));
});
;
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?3f3a48b32f0477a6748d1771a83f99a1";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
;
function loadCartInfo(twinkle)
{
    $('.siteNav').load(createLink('misc', 'printTopBar'),
        function()
        {
            if(twinkle)
            {
                bootbox.dialog(
                {
                    message: v.addToCartSuccess,
                    buttons:
                    {
                        back:
                        {
                            label:     v.lang.continueShopping,
                            className: 'btn-primary',
                            callback:  function(){location.reload();}
                        },
                        cart:
                        {
                            label:     v.gotoCart,
                            className: 'btn-primary',
                            callback:  function(){location.href = createLink('cart', 'browse');}
                        }
                    }
                });
            }
        }
    );
}
;
var hash = window.location.hash.substring(1);
var browserLanguage = navigator.language || navigator.userLanguage;
var resolution      = screen.availWidth + ' X ' + screen.availHeight;
$.get(createLink('log', 'record', "hash=" + hash), {browserLanguage:browserLanguage, resolution:resolution});
