script.js 8.13 KB
$(document).ready(function() {

    footerBottom();
    modalForms();
    openMobMenuNew();
    closeMobMenu();
    canvasFunction();
    scrollToForm();
    cardHideDesk();
    inputNumber();
    phoneMask();


    function footerBottom(){
        var heightHeader = document.getElementById('header_').offsetHeight
        var heightFooter = document.getElementById('footer_').offsetHeight
        var windowHeight = window.innerHeight
        document.getElementById('content_').style.minHeight = windowHeight-heightHeader-heightFooter+'px';
    }

    function mobOverlayAdd() {
        if($('body').find('.mob-overlay').length > 0) {
        } else {
            $('body').append('<div class="mob-overlay"></div>')
        }
        $('.mob-overlay').fadeIn(300);
    }

    function mobOverlayRemove() {
        $('.mob-overlay').fadeOut(300);
        $('body').removeClass('show-block-mobile');
        setTimeout(function () {
            $('body').removeClass('body-fixed');
        },510)

    }

    function openMobMenuNew() {
        $('.menu_mob').click(function () {
            mobOverlayAdd()
            $('body').addClass('body-fixed show-block-mobile');


        })
    }

    function closeCallMobileHide() {
        $('.call-mobile-wr').removeClass('visible')
        setTimeout(function () {
            $('.call-mobile-wr').removeClass('open')
        },200)
    }

    function closeMobMenu() {
        $('body').on('click','.mob-overlay',function () {
            mobOverlayRemove();
        })

        $('.close-mobile-menu').click(function () {
            mobOverlayRemove();
        })
    }


    function canvasFunction() {
        var percentBl = $(".percent-bl");
        for (i=0; i < percentBl.length; i++){
            var width = (typeof $(percentBl[i]).attr("data-width") != 'undefined') ? Math.round($(percentBl[i]).attr("data-width")) : 80;
            var procent = (Number($(percentBl[i]).html()) > 0 && Number($(percentBl[i]).html()) < 100) ? Math.round(Number($(percentBl[i]).html()) * 10)/10 : 0;
            var lineWidth = (typeof $(percentBl[i]).attr("data-lineWidth") != 'undefined') ? Number($(percentBl[i]).attr("data-lineWidth")) : width / 10;
            var size = width+lineWidth;
            var lineRound = (typeof $(percentBl[i]).attr("data-lineRound") != 'undefined') ? true : false;
            var borderColor = "#ccc"
            var color = $(percentBl[i]).css("color");
            $(percentBl[i]).css({"width": size + 'px', "height": size + 'px', "font-size": Math.floor((width-lineWidth) / 4) + 'px'});
            $(percentBl[i]).html('<canvas id="dial' + i + '" width="' + size + '" height="' + size + '"></canvas><p>' + procent + '%</p>');
            $("p", percentBl[i]).css({"line-height": size + 'px'});
            var canvas = document.getElementById("dial" + i);
            var context = canvas.getContext("2d");
            var radian = 2*Math.PI*procent/100;
            context.arc(width/2+lineWidth/2, width/2+lineWidth/2, width/2, 0, 2*Math.PI, false);
            context.lineWidth = lineWidth;
            context.strokeStyle = borderColor;
            context.stroke();
            context.beginPath();
            context.arc(width/2+lineWidth/2, width/2+lineWidth/2, width/2, 1.5 * Math.PI, radian+1.5 * Math.PI, false);
            context.strokeStyle = color;
            if (lineRound == true && lineWidth < width) context.lineCap = "round";
            context.stroke();
        }
    }

    function scrollToForm() {
        $('body').on('click','.answers-wr span', function () {
            $("#answer-form").find('.field-comment-parent_id').find("#comment-parent_id").val($(this).data('id'));
            var block = $('.hidden-comments-form-card');
            block.addClass('vis_');
            $('body, html').animate({scrollTop:block.offset().top - 36},500)

        })
        $('body').on('click','.hidden-comments-form-card button', function () {
            $('.hidden-comments-form-card').removeClass('vis_');

            alert('thiiiis')
        })

    }
    
    function cardHideDesk() {
        $('body').on('click','.mob-card-desk-btn span', function () {
            var hideText = $(this).parent().data('hide');
            var showText = $(this).parent().data('show');
            if($('.card-desk-text').hasClass('show_')){
                $('.card-desk-text').removeClass('show_');
                $(this).html(showText);

            } else {
                $('.card-desk-text').addClass('show_');
                $(this).html(hideText);
            }
        })
    }


    function inputNumber() {
        $(document).on('keypress', '.price-input input', function (e) {
            if (!(e.which == 8 || (e.which > 47 && e.which < 58))) {
                return false;
            }
        });
    }

    function phoneMask() {
        var phoneInput = '.phones_mask input';

        if($('body').find('.phones_mask').find('input').length>0){
            $(phoneInput).mask('(000) 000-00-00');
            $(phoneInput).focus(function () {

                var text = $(this).val();
                $(this).val(text);
                if(($(this).val())== '') {$(this).val('(0')}
            });
            $(phoneInput).focusout(function () {
                var phoneVal = $(this).val();
                if(phoneVal.length <15) {$(this).val('')}
            })
        }
    }































    $(window).resize(function () {
        // heightSliderCol();
        footerBottom();
        if(window.innerWidth>=992){
            mobOverlayRemove()
            $('#menu-mob-hidden').removeClass('visible')
            setTimeout(function () {
                $('#menu-mob-hidden').removeClass('opens')
            },200)
            $('body').removeClass('off-scroll')
            $('body').removeClass('hidden_scroll-y')
            $('.mob_filters_wr').attr('style','')
        }
    })

    function modalForms() {
        $('body').on('click','.modal-link', function (e) {

            e.preventDefault();
            e.stopPropagation();


            mobOverlayRemove()
            $('#menu-mob-hidden').removeClass('visible')
            setTimeout(function () {
                $('#menu-mob-hidden').removeClass('opens')
            },200)
            $('body').removeClass('off-scroll')

            mobOverlayRemove()
            closeCallMobileHide()
            $('.btn_call').removeClass('close')
            $('.call-mobile-wr').removeClass('open')
            $('body').removeClass('off-scroll')


            var idForm = $(this).data('form');


            var pos = ($(window).scrollTop()) + 30;
            if($(this).hasClass('fixed-modal')){
                pos = 30;
                $('#'+idForm).css({position:'fixed'})
            }
            if($(this).hasClass('pos-top')){
                pos = 30;
            }
            $('#overlay').removeClass('overlay_cloned');
            $('#overlay').fadeIn(400,
                function(){
                    $('#'+idForm)
                        .css('display', 'block')
                        .animate({opacity: 1, top: pos}, 200);
                });
        })
    }

    closeForms();
    function closeForms() {
        $('#modal_close, #overlay').click( function(){
            $('.forms_').animate({opacity: 0, top: '0'}, 200,function(){
                $(this).css('display', 'none');
                $(this).prev("#overlay").css('display', 'none');
                $('#overlay').fadeOut(400);
            });
            $('#success_form').animate({opacity: 0, top: '0'}, 200,function(){
                $(this).css('display', 'none');
                $(this).prev("#overlay").css('display', 'none');
                $(this).css({top:'50%'});
            });
        });
    }
    //после удачной отправки формы запускать success()
    // success()
    function success() {
        var pos = ($(window).scrollTop()) + 30;
        $('.forms_').animate({opacity: 0, top: '0'}, 200,function(){
            $(this).css('display', 'none');
        });
        setTimeout(function () {
            $('#overlay').fadeIn(400);
            $('#success_form').css('display', 'block').animate({opacity: 1, top: pos}, 700);
        },400)
    }





})