PageSourceSearch

https://admin.last-minute-essay.com/public_new/assets/js/main.js?v=1789732155

js last-minute-essay.com collected 2026-10-04 02:57:59 UTC 192,380 bytes, 4,528 lines download raw bytes

1var new_datetimepicker = false;
2var rate_order_after_auto_approve = false;
3var messages_update_interval = false;
4var firstMessageUpdate = true;
5var minRateForTips = 4;
6
7if ($.inArray('41', ['4', '6', '7', '8', '9', '10', '11', '14', '17', '18', '21', '23', '33', '36', '39', '41', '47', '49', '55', '58', '62', '68', '70', '72', '82', '94', '100', '104']) > -1 || getParameterByNameInMain('datepricker')) {
8    new_datetimepicker = true;
9}
10if ($.inArray('41', ['4', '6', '7', '8', '9', '10', '11', '14', '17', '18', '21', '23', '33', '36', '39', '41', '47', '49', '55', '58', '62', '70', '72', '100']) > -1) {
11    var rate_order_after_auto_approve = true;
12}
13
14var in_development = (parseInt(getCookie('test_office')) === 1);
15
16var rate_data = {
17    writer: {
18        value: false,
19        feedback: false,
20        errors: {
21            empty: 'Please enter details',
22            symbols: 'English only'
23        },
24        regex: new RegExp("^[A-Za-z0-9\\s!@#$%^&*()_+=\\-`~\\\]\[{}|';:\/.,?><\"]*$"),
25        tip_amount_regex: new RegExp("^\\d+(\\.\\d+)*$")
26    },
27    service: {
28        value: false,
29        feedback: false,
30        errors: {
31            empty: 'Please enter details',
32            symbols: 'English only'
33        },
34        regex: new RegExp("^[A-Za-z0-9\\s!@#$%^&*()_+=\\-`~\\\]\[{}|';:\/.,?><\"]*$")
35    },
36    feedback: {
37        errors: {
38            empty: 'Please enter details',
39            symbols: 'English only'
40        },
41        regex: new RegExp("^[A-Za-z0-9\\s!@#$%^&*()_+=\\-`~\\\]\[{}|';:\/.,?><\"]*$")
42    }
43};
44
45var tips_data = {
46    errors: {
47        min: 'Minimum transaction limit is $1',
48        max: 'Maximum transaction limit is $500',
49        not_valid: 'Please enter the correct amount'
50    }
51};
52
53var price_order = 0;
54
55function getCookie(name) {
56    var matches = document.cookie.match(new RegExp(
57            "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
58            ));
59    return matches ? decodeURIComponent(matches[1]) : undefined;
60}
61/* float btn*/
62$(document).ready(function() {
63    if ($('.autoClose').length > 0) {
64        $('.copy-btn').on('click', handleClick);
65        $('.autoClose').on('click', closeFloat);
66    }
67
68    function handleClick(event) {
69        event.preventDefault();
70
71        var targetMail = $(this).data('mail');
72        var statusElement = $(this).find('.status');
73
74        if (targetMail.length) {
75            navigator.clipboard.writeText(targetMail);
76
77            statusElement.addClass('active');
78
79            setTimeout(function() {
80                statusElement.removeClass('active');
81            }, 1500);
82        } else {
83            console.error('Element with id ' + targetMail + ' not found');
84        }
85    }
86
87    function closeFloat() {
88        $('#callback-float-btn').toggleClass('opened')
89    }
90});
91
92/*end float btn*/
93
94/*Ajax load page content START*/
95$(document).on("click", "[data-ajax-load-page]", function (event) {
96    if ($(event.target).attr('data-no-event-click')) {
97        event.stopPropagation();
98        return false;
99    }
100    $('[data-ajax-load-page]').addClass('disabled');
101    var ajax_page = $(this).data('ajaxLoadPage');
102    callAjax(
103            'html',
104            ajax_page,
105            function (data) {
106                var isValidJSON = data ? true : false;
107                try {
108                    JSON.parse(data)
109                } catch (e) {
110                    isValidJSON = false
111                }
112                if (isValidJSON) {
113                    var result = JSON.parse(data);
114                    if (result.redirect) {
115                        document.location.href = result.redirect;
116                    } else {
117                        $('[data-ajax-load-page]').removeClass('disabled');
118                        $('.container-fluid[data-main-content]').removeClass('container-ajax-list'); 
119                        if (result.html) {
120                            var content_page = result.html;
121                            $('[data-main-content]').html(content_page).append('<div class="pleasewait"></div>');
122                            var title = content_page.split('<!--BlockTitle', 2);
123                            title = title.join('');
124                            var title = title.split('BlockTitle-->', 1);
125                            title = title.join( );
126                            $('html head').find('title').text(title);
127                        }
128
129                        var main_content = document.getElementById("content");
130                        main_content.scrollIntoView(true);
131                        var page_title = $('html head').find('title').text() ? $.trim($('html head').find('title').text()) : 'Page Title';
132                        window.history.pushState({}, page_title, ajax_page);                                
133                    }
134                    $(".pleasewait").fadeOut("slow");
135                }
136            },
137            {ajax_load_page: true}
138    );
139    return false;
140});
141/*Ajax load page content END*/
142
143$(document).ready(function () {
144    customRadio();
145    customSelect()
146    toggleSidebar();
147    hideSidebar();
148    progressStatus();
149    showExtras();
150    bannerItem();
151    favoriteWriter();
152    datePicker();
153    orderTitle();
154    showSpinner();
155    showRewards();
156    Tabs();
157    sliderItems();
158    selectTabs();
159    modalClientInformation();
160    customTooltip();
161    anchorLinkScroll();
162    
163    $('#datetimepicker1').on("dp.show", function (e) {
164        console.log('show dp');
165        addButtonConfirm();
166    });
167    
168    //checkAutoApprovedOrdersForRate();
169//    counterMessagesUpdateCronStart();
170
171    if ($(".timeline-inner").length) {
172        timerMobile();
173    }
174    if ($(".timeline-container").length) {
175        swipeSlider();
176    }
177
178    if ($('.file_items').length) {
179        $(".file_items").mCustomScrollbar();
180    }
181
182    $('input[name="options"]').on("change",function(){
183        console.log("lllllllll");
184        if($(this).prop("checked", true) && $(this).hasClass('add_more_info')){
185            $('.options_txt_block').show();
186        }else{
187            $('.options_txt_block').hide();
188        }
189    });
190
191    $(window).on('resize', function () {
192        hideSidebar();
193        orderTitle();
194        sliderItems();
195        clearTimeout(window.resizedFinished);
196        if ($("#exstras-wrapper").length) {
197            CustomScroll();
198        }
199    });
200
201    if ($(".datetimepicker").length) {
202        datePicker();
203    }
204    if ($("#exstras-wrapper").length) {
205        CustomScroll();
206    }
207    ContactsButton();
208
209    $('[data-toggle="tooltip"]').tooltip();
210
211    if ($(".paynow_body").length) {
212        $('.paynow_body').addClass("scroll-pane");
213        JSScrollStart(
214                $('.scroll-pane'),
215                $("#ModalPayNow"),
216                $("#ModalPayNow"),
217                "shown.bs.modal"
218                );
219    }
220    setTimeout(function () {
221        if ($('.banner_top_wrp_earn .got_it, .banner_top_wrp_earn .not_interested').length > 0) {
222            $('.banner_top_wrp_earn .got_it, .banner_top_wrp_earn .not_interested').on('click', function () {
223                console.log("Triggered");
224                var button = $(this);
225
226                if ($.inArray('41', ['6', '11']) !== -1 && parseInt(button.attr('data-action-type')) === 1) {
227                    location.href = '/earn_with_us';
228                }
229
230                button.closest('.banner_top_wrp_earn').slideUp(500, function () {
231                    button.closest('.banner_top_wrp_earn').detach();
232                });
233
234                callAjax('json', '/profile?ajax=HideEarnWithUsBanner', function () {
235                }, {
236                    action_type: button.attr('data-action-type')
237                });
238            });
239        }
240    }, 500);
241
242    if (typeof $.cookie('tip_order') !== 'undefined') {
243        $.removeCookie('tip_order', {path: '/'});
244        // $("#ModalWithoutTips").modal('show');
245        // if ($("#ModalWithoutTips").attr('data-not-cancel') == '1') {
246        //     $('#ModalWithoutTips').on('hidden.bs.modal', function (e) {
247        //        location.reload();
248        //     });
249        // } else {
250        //     setTimeout(function () {
251        //         $("#ModalWithoutTips").modal('hide');
252        //     }, 5000);
253        // }
254    }
255
256    var owl = $('.payment-carousel');
257    owl.owlCarousel({
258        margin: 8,
259        items: 1,
260        dots: false,
261        nav: true,
262        loop: true,
263        autoWidth: true
264    });
265
266    $('.payment_bonus').on('click', function () {
267        if ($(this).hasClass('disabled-element'))
268            return false;
269        $(this).parents('.payment-col').addClass('active-bonus-pay');
270        $(this).hide();
271        $(this).parents('.payment-col').find('.bonus-wrapper').show();
272    });
273
274    $('.close-bonus-payment').on('click', function () {
275        $(this).parents('.payment-col').find('.bonus-wrapper').hide();
276        $(this).parents('.payment-col').removeClass('active-bonus-pay');
277        $(this).parents('.payment-col').find('.payment_bonus').show();
278    });
279
280    $('.btn-gopay').on('click', function () {
281        $(this).parents('.payment-col').find('.payment_bonus').show();
282        $(this).parents('.bonus-wrapper').hide();
283    });
284
285    $('.btn-pay-collapse').on('click', function () {
286        $(this).parents('.payment-col').find('.payment_bonus').show();
287        $(this).parents('.bonus-wrapper').hide();
288    });
289
290    // check height for sticky orders/writers item head
291    function checkForChanges() {
292        var height = $('.topbar').height();
293        $('.orders-caption').css('top', height);
294        setTimeout(checkForChanges, 500);
295    }
296    checkForChanges();
297
298    /*Rate our team Start*/
299    $('[data-service-rate]').on('click', function () {
300        $('#form_order_rate_service input[name="id"]').val($(this).data('orderId'));
301    });
302
303    $('[name="service_rate"]').click(function () {
304        $('[data-service-rate-error]').hide();
305        $('[data-service-rate-msg]').text($(this).attr('title')).show();
306        if ($('[name="recommend_rate"]').is(':checked')) {
307            $('[data-rate-service-submit]').removeClass('btn-rate-disabled');
308        }
309    });
310
311    $('[name="recommend_rate"]').change(function () {
312        $('[data-recommend-rate-error]').hide();
313        $('[data-recommend-rate-msg]').text($(this).attr('title')).show();
314        if ($('[name="service_rate"]').is(':checked')) {
315            $('[data-rate-service-submit]').removeClass('btn-rate-disabled');
316        }
317    });
318
319    $('[data-rate-service-submit]').on('click', function () {
320        if ($(this).hasClass('ajax-submit')) {
321            rateServiceAjaxSubmit.call(this);
322        } else {
323            var form = $('#form_order_rate_service');
324            if ($(this).hasClass('btn-rate-disabled')) {
325                showMessageOnOurRate();
326                return false;
327            }
328
329            var button_submit = $(this);
330            button_submit.addClass('btn-rate-disabled');
331            if (form.valid()) {
332                var preloader = $('#page-preloader');
333                preloader.fadeIn();
334                callAjax('json', '/orders?ajax=rateService', function (data) {
335                    if(typeof CURRENT_USER !== 'undefined' && CURRENT_USER.id != 307915530){
336                        window.location.reload(true);
337
338                    }else{
339                        console.log(response_data);
340                        console.log(data);
341                        $("#ModalAfterLowRateService").modal('show');
342                        $("#ModalAfterLowRateService input[name='options']:eq(0)").trigger("click");
343                        //$('div.sorry_option').not(":eq("+(response_data.result.rate_sorry_options - 1)+")").remove();
344                    }
345                    
346                    
347                    
348                    
349                    
350                    
351                    
352                }, form.serialize(), form);
353            } else {
354                showMessageOnOurRate();
355                button_submit.removeClass('btn-rate-disabled');
356            }
357            return false;
358        }
359    });
360    /*Rate our team End*/
361    
362
363    $('#ModalAfterLowRateWithTextarea textarea[name="manager_help"]').on("keyup", function () {
364        delWrongSymbols($(this));
365        if($(this).val().trim().split(" ").length > 150){
366            $('.rate-mess-error').remove();
367            $(this).parent().append('<div class="alert rate-mess-error alert-error alert-block" style="color:red; padding:0;">Oops, you’ve reached the limit of 150 words</div>');
368        }else{
369            $('.rate-mess-error').remove();
370        }
371    });
372    
373    
374        $("#ModalAfterLowRateService button").on('click', function () {
375            
376            
377            
378            var sry_option = $("#ModalAfterLowRateService form input[name='options']:checked").val();
379            var order_id=$(".topic-order-id").text().replace(/\D/g, "");
380
381            var button_submit = $(this);
382            button_submit.addClass('btn-rate-disabled');
383            button_submit.attr('disabled','disabled');
384            
385            callAjax("json", "/orders?ajax=SorryRateService", function (response_data) {
386                console.log(response_data);
387
388                $("#ModalAfterLowRateService").modal('hide');
389                $("#sorryDiscount .disc_sry_code").text(response_data.result.return_code);
390                $("#sorryDiscount .opt_name").text(response_data.result.return_option_desc);
391                $("#sorryDiscount").modal('show');
392
393            }, {'option_id':sry_option, 'order_id':$('.curr_order').val()});
394
395                return false;
396        });
397    
398    
399
400        $("#ModalAfterLowRateWithTextarea button").on('click', function () {
401
402            if($('.rate-mess-error').length>0){ 
403                return false;
404            }
405            
406            
407            var button_submit = $(this);
408            button_submit.attr('disabled','disabled');
409            var form = $('#ModalAfterLowRateWithTextarea form');
410            
411            if(!button_submit.hasClass("btn-rate-disabled")){
412                callAjax("json", "/orders?ajax=SorryRateWriter", function (response_data) {
413                    console.log(response_data);
414                    button_submit.addClass('btn-rate-disabled');
415                    
416                    $("#ModalAfterLowRateWithTextarea").modal('hide');
417                    $("#sorryDiscountWriter .text-responsive").html(response_data.result.return_code.desc);
418                    $("#sorryDiscountWriter").modal('show');
419
420                    if(response_data.result.return_code.refresh==1){
421                        timeoutModal = setTimeout(function () {
422                            $("#sorryDiscountWriter").modal('hide');
423                        }, 10000);
424                    }
425
426
427
428
429                }, form.serialize());
430            }
431            return false;
432        });
433
434    /*Rate Writer Start*/
435    $('[data-writer-rate]').on('click', function () {
436        $('#form_order_rate_paper input[name="id"]').val($(this).data('orderId'));
437    });
438
439    $('[name="writer_rate"]').click(function () {
440        $('[data-writer-rate-error]').hide();
441        $('[data-writer-rate-msg]').text($(this).attr('title')).show();
442        $('[data-rate-writer-submit]').removeClass('btn-rate-disabled');
443
444        if ($.inArray($(this).val() * 1, [1, 2, 3]) > -1) {
445            $('[data-writer-rate-block-writer-msg]').show();
446        } else {
447            $('[data-writer-rate-block-writer-msg]').hide();
448        }
449    });
450
451//    $('#ModalRateWriter [data-add-writer-blacklist]').click(function(){
452//        $('#ModalRateWriter').modal('hide');
453//    });
454
455
456    /* start send for paid revision on detailed orders*/
457
458    $("[data-send-for-revision-paid-submit]").click(function () {
459        console.log('clicked padi revision');
460        $('#form_order_revision_paid').submit();
461    });
462
463    /* end send for paid revision on detailed orders*/
464
465
466    /* start send for revision on detailed orders*/
467    $("[data-send-for-revision-submit]").click(function () {
468        var preloader = $('#page-preloader');
469        var form = $('#form_order_revision_upd');
470        var order_id = form.find('[name="order_id"]').val();
471        var reasons = form.find('[name="reasons[]"]').val();
472        if (!reasons) {
473            form.find('[data-error="reasons"]').show();
474            form.find('[name="reasons[]"]').closest(".block_element").find('.select2-container').addClass('alert-control');
475        } else {
476            form.find('[data-error="reasons"]').hide();
477            form.find('[name="reasons[]"]').closest(".block_element").find('.select2-container').removeClass('alert-control');
478
479        }
480
481        if (form.valid() && reasons) {
482            preloader.fadeIn();
483            var form_data = form.serialize();
484            if ('41' == '29' && MOBILE_APP) {
485                FlurryAgent.logEvent("Order Revision", {
486                    idUser: CURRENT_USER.id + "",
487                    userType: CURRENT_USER.mkt_type + "",
488                    idOrder: ORDER.id + "",
489                    page: ORDER.pages_num + "",
490                    academicLevel: ORDER.academic_level + "",
491                    deadline: ORDER.deadline + "",
492                    paymentSystem: ORDER.payment_system + ""
493                });
494                FlurryAgent.endSession();
495            }
496            callAjax("json", "/orders?ajax=revise", function (response_data) {
497                if (typeof (response_data.sent_for_revision) != "undefined" && response_data.sent_for_revision == true) {
498                    if ($("#ModalSendRevision").hasClass('new-revision')) {
499                        $("#ModalSendRevision").modal('hide');
500
501                        setTimeout(function () {
502                            $("#ModalSuccessRevision").modal('show');
503                            setTimeout(function () {
504                                $("#ModalSuccessRevision").modal('hide');
505                                location.reload();
506                            }, 5000);
507                        }, 300);
508                    } else {
509                        location.replace("/orders?subcom=detailed&id=" + ORDER.id);
510                    }
511                }
512                preloader.fadeOut();
513            }, form_data, form);
514        }
515    });
516    /* end send for revision on detailed orders*/
517
518    $('[data-rate-writer-submit]').click(function () {
519        console.log(1);
520        if ($(this).hasClass('ajax-submit')) {
521            console.log(2);
522            rateWriterAjaxSubmit.call(this);
523        } else {
524            var form = $('#form_order_rate_paper');
525            if ($(this).hasClass('btn-rate-disabled')) {
526                if (!$('[name="writer_rate"]').is(':checked')) {
527                    $('[data-writer-rate-error]').show();
528                }
529                return false;
530            }
531            if (form.valid()) {
532                var preloader = $('#page-preloader');
533                preloader.fadeIn();
534                callAjax('json', '/orders?ajax=rateWriter', function (data) {
535                    window.location.reload(true);
536                }, form.serialize(), form);
537            }
538            return false;
539        }
540    });
541
542    $('.new-rate-modal').find('[name="writer_rate"]').click(function () {
543
544        if ($('[name="writer_rate"]').is(':checked')) {
545            $('[data-comment-rate], [data-improve-rate]').show();
546            $('[data-new-rate-submit]').removeClass('btn-rate-disabled');
547        }
548
549        if ($(this).val() >= minRateForTips) {
550            $('.improve-items-holder').hide();
551            if($('#form_writer_rate [name="writer_tip_payed"]').length && $('#form_writer_rate [name="writer_tip_payed"]').val()==1){
552                $('.writers-tip_holder').hide();
553            }else{
554                $('.writers-tip_holder').show();
555            }
556        } else {
557            $('.writers-tip_holder').hide();
558            $('.improve-items-holder').show();
559        }
560
561        var submit_text = "Submit";
562
563        if (($(this).val() * 1) >= minRateForTips && ($('.btn-tip-writer.btn-tip-writer-active').length > 0 || $('[name="tip-amount"]').is(':visible'))) {
564            submit_text = "Submit & Pay";
565             submit_n_pay = true;
566        }
567        $(this).closest('#ModalRatePaper').find('button[data-new-rate-submit]').html(submit_text);
568    });
569
570    $('.btn-tip-writer').on('click', function () {
571        $(this).toggleClass('btn-tip-writer-active').siblings().removeClass('btn-tip-writer-active');
572        $('[name="tip-amount"]').val('').hide();
573        $('.text-custom-tip').show();
574
575        $(this).closest('form').find('.error-custom-tips').html('').hide();
576
577        if ($(this).hasClass('btn-tip-writer-active')) {
578            $(this).closest('#ModalRatePaper').find('button[data-new-rate-submit]').html("Submit & Pay");
579             submit_n_pay = true;
580        } else {
581            $(this).closest('#ModalRatePaper').find('button[data-new-rate-submit]').html("Submit");
582        }
583    });
584
585    $('.text-custom-tip').on('click', function () {
586        $(this).closest('.modal')
587                .find('.text-custom-tip').hide();
588        $(this).closest('.modal')
589                .find('.btn-tip-writer').removeClass('btn-tip-writer-active');
590        $(this).closest('.modal')
591                .find('[name="tip-amount"]').show();
592        $(this).closest('.modal')
593                .find('button[data-new-rate-submit]').html("Submit");
594    });
595
596    $('[name="writer_rate"]').click(function () {
597        if ($(this).val() == 5) {
598            $('[data-comment-title]').text('Light up the writer’s day with your comment.');
599        } else if ($(this).val() == 4) {
600            $('[data-comment-title]').text('How can our writer be even better?');
601        } else {
602            $('[data-comment-title]').text('What went wrong? We badly want to fix it!');
603        }
604
605        $(this).closest('#ModalRatePaper').removeClass('modal-popup').addClass('modal-custom');
606    });
607
608    $('[name="tip-amount"]').on('input', function () {
609        var submit_text = "Submit";
610        if ($(this).val().length > 0) {
611            submit_text = "Submit & Pay";
612        }
613
614        $(this).closest('#ModalRatePaper').find('button[data-new-rate-submit]').text(submit_text);
615    });
616    $('[name="tip-amount"]').on('blur', function () {
617        var input = $(this),
618                value = input.val();
619
620        input.val(value.replace(/,/g, '.'));
621    });
622    /*Rate Writer End*/
623
624
625
626//Summary Rate Open Modal
627    $('[data-summary-rate]').click(function () {
628        var form_rate = $('#form_order_rate');
629        form_rate.find('input[name="id"]').val($(this).data('orderId'));
630        /*form_rate.find('input[name="writer_id"]').val($(this).data('writerId'));
631         var form_rate_type_of_paper = $(this).data('typeOfPaper');
632         var form_rate_subject = $(this).data('subject');
633         if (form_rate_subject && form_rate_type_of_paper && form_rate_subject != 'Other' && form_rate_type_of_paper != 'Other') {
634         form_rate.find('span.rate_your_paper_subject').html(form_rate_subject + ' ' + form_rate_type_of_paper);
635         } else {
636         form_rate.find('span.rate_your_paper_subject').html('Paper');
637         }*/
638    });
639
640    $('#form_order_rate input').click(function () {
641        var is_error = false;
642        $('#form_order_rate input').each(function (index) {
643            switch ($(this).attr('name')) {
644                case 'service_rate':
645                    if (!$('[name="service_rate"]').is(':checked')) {
646                        is_error = true;
647                    }
648                case 'recommend_rate':
649                    if (!$('[name="recommend_rate"]').is(':checked')) {
650                        is_error = true;
651                    }
652                case 'writer_rate':
653                    if (!$('[name="writer_rate"]').is(':checked')) {
654                        is_error = true;
655                    }
656            }
657        });
658        if (!is_error) {
659            $('#form_order_rate [data-rate-summary-submit]').removeClass('btn-rate-disabled');
660        }
661    });
662
663//Summary Rate Send Rate START
664    $('[data-rate-summary-submit]').on('click', function () {
665        if ($(this).hasClass('ajax-submit')) {
666            rateSummaryAjaxSubmit(this);
667        } else {
668            var form = $('#form_order_rate');
669
670            var is_error = false;
671
672            if ($(this).hasClass('btn-rate-disabled')) {
673                showMessageOnOurRate();
674                is_error = true;
675            }
676
677            if ($(this).hasClass('btn-rate-disabled')) {
678                if (!$('[name="writer_rate"]').is(':checked')) {
679                    $('[data-writer-rate-error]').show();
680                }
681                is_error = true;
682            }
683
684            if (is_error) {
685                return false;
686            }
687
688            var button_submit = $(this);
689            button_submit.addClass('btn-rate-disabled');
690
691            if (form.valid()) {
692                var preloader = $('#page-preloader');
693                preloader.fadeIn();
694                callAjax('json', '/orders?ajax=rate', function (data) {
695                    window.location.reload(true);
696                }, form.serialize(), form);
697            } else {
698                showMessageOnOurRate();
699                button_submit.removeClass('btn-rate-disabled');
700            }
701            return false;
702        }
703    });
704
705
706    $('#form_order_rate [data-link-open]').click(function () {
707        var block_change = $(this).data('linkOpen');
708        if ($(this).hasClass('open')) {
709            $(this).text($(this).data('openText'));
710            $(this).removeClass('open');
711        } else {
712            $(this).text($(this).data('hideText'));
713            $(this).addClass('open');
714        }
715        $('div[data-block-open="' + block_change + '"]').toggle();
716    });
717//Summary Rate Send Rate END
718
719
720    /*Payment Modal Start*/
721    $('body').on('click', '[data-btn-pay]', function (evt) {
722
723        if (!SINGLE_PAYMENT_METHOD || CURRENT_USER.store_credit > 0) {
724            evt.preventDefault();
725            if ('41' == '10' || '41' == '7') {
726                if ($(this).data('full-paid') && $(this).data('full-paid') == 1) {
727                    $('#payment_form [name="full_paid"]').val(1);
728                } else {
729                    $('#payment_form [name="full_paid"]').val(0);
730                }
731            }
732            var preloader = $('#page-preloader');
733            preloader.fadeIn();
734            var button_pay = $(this);
735            callAjax("json", "/orders?ajax=detailedForPayModal", function (data) {
736                preloader.fadeOut();
737                var add_nfo = (typeof (data) != "undefined" && data != null) ? data : false;
738                pay_modal(button_pay.data('bid'), button_pay.data('token'), parseFloat(button_pay.data('bill-price')), button_pay.data('deadline-id'), button_pay.data("order"), add_nfo);
739                var userMaxBonuses = $('#ModalPayNow [data-max-bonus]').data('maxBonus') * 1;
740                var priceOrder = $('#ModalPayNow [data-price-pay-modal]').text() * 1;
741                if (userMaxBonuses && userMaxBonuses > 0) {
742                    if ($.inArray('41', ['68']) !== -1) {
743                        if (userMaxBonuses > priceOrder) {
744                            $('#ModalPayNow [name="amount"]').val(parseFloat(priceOrder).toFixed(2));
745                        } else {
746                            $('#ModalPayNow [name="amount"]').val(parseFloat(userMaxBonuses).toFixed(2));
747                        }
748                    }else{
749                        $('#ModalPayNow [name="amount"]').val('');
750                    }
751                }
752                if ($.inArray('41', ['4','6','7','8','9','10','11','14','17','18','21','23','33','36','39','41','47','49','55','58','62','68','70','72','94']) !== -1) {
753                    price_order = priceOrder;
754                    var form_pay = $('#payment_form');
755                    var bid = form_pay.find('[name="bid"]').val();
756                    var token = form_pay.find('[name="token"]').val();
757                    postTransactionData = (paymentData, srvResult) => {
758                        $.ajax({
759                            url: "/payment?from_admin=1&bid=" + bid + "&token=" + token + "&m=34",
760                            method: 'post',
761                            data: '&appleToken=' + encodeURIComponent(JSON.stringify(paymentData.token)),
762                            success: function(result){
763                                const response = JSON.parse(result);
764                                console.log(response);
765                                srvResult(response.result);
766                            }
767                        });
768                    }
769                    window.payment_url = "/payment?from_admin=1&bid=" + bid + "&token=" + token;//for solid apple
770                }
771                $('#ModalPayNow').modal('show');
772            }, {
773                order_id: $(this).data("order")
774            });
775        }
776    });
777
778    /*Send to Payment System Start*/          
779    $('[data-payment-method]').on('click', function (event) {
780        if ($.inArray('41', ['4','6','7','8','9','10','11','14','17','18','21','23','33','36','39','41','47','49','55','58','62','70','72','94']) !== -1) {
781            if ($(this).data('payment-method') == 34) {
782                console.log('pay with applepay');
783                payByApple(event, 34);
784                return;
785            }
786        }
787        if ($(this).data('payment-method') == 35) {
788            payByApple(event, 35);
789            return;
790        }
791        if ($(this).data('payment-method') == 53) {
792            if ($(event.target).closest('.crypto-select').length) {
793                return false;
794            }
795            if ($(event.target).closest('.tooltip-crypto').length) {
796                return false;
797            }
798        }
799        if ($(this).hasClass('disabled-element'))
800            return false;
801
802        let form_pay = $(this).closest('#payment_form');
803        let from_add_pay = $(this).closest('#payment_form_additional');
804        if(form_pay.length > 0){
805            form_pay.find('[name="m"]').val($(this).data('payment-method'));
806            form_pay.trigger('submit');
807        }else if(from_add_pay.length > 0){
808            from_add_pay.find('[name="m"]').val($(this).data('payment-method'));
809            from_add_pay.trigger('submit');
810        }
811    });
812    
813    $('#payment_form').find('[name="spoynt_method"]').change(function () {
814        $('#payment_form').find('[name="spoynt_method_mobile"]').find('option[value="' + $(this).val() + '"]').prop('selected', true);
815    });
816
817    $('#payment_form').find('[name="spoynt_method_mobile"]').change(function () {
818        $('#payment_form').find('[name="spoynt_method"]').find('option[value="' + $(this).val() + '"]').prop('selected', true);
819        $('#payment_form').find('[name="spoynt_method"]').change();
820    });
821    
822    /*Send to Payment System End*/
823
824    /*Validation Bonus on Pay Modal Start*/
825    $('body').on('keyup', '#ModalPayNow [name="amount"]', function () {
826        $(this).val($(this).val().replace(/[^0-9\.]/g, ''));
827        var priceOrder = parseFloat($('#ModalPayNow [data-price-pay-modal]').text());
828        var userMaxBonuses = parseFloat($('#ModalPayNow [data-max-bonus]').data('maxBonus'));
829        var userBonuses = parseFloat($(this).val());
830        if (userBonuses && userBonuses < priceOrder && userBonuses < userMaxBonuses) {
831            $('.bonus_code_hint').show();
832            $('[data-using-bonus]').text(userBonuses);
833            $('[data-remaining-pay ]').text(parseFloat(priceOrder - userBonuses).toFixed(2));
834        } else {
835            $('.bonus_code_hint').hide();
836        }
837        validBonusOnModal();
838    });
839
840    get_add_bill = false;
841    var full_paid_store_credit = false;
842    var wait_for_apply_bonus = false;
843    $("#ModalPayNow .apply-bonus").click(function () {
844        if (validBonusOnModal()) {
845            if (wait_for_apply_bonus)
846                return false;
847            wait_for_apply_bonus = true;
848            bonus_input = $("#ModalPayNow [name='amount']");
849            bonus_error = $("#ModalPayNow .bonus_code_error_place");
850            var form = $("#payment_form");
851            order_id = form.find('[name="moid"]').val();
852            bonus_pay = form.find('[name="amount"]').val() * 1;
853            $("#ModalPayNow .call-spinner").show();
854            $("#ModalPayNow .apply_bonus_span").hide();
855            disabledPayButtons();
856            callAjax("json", "/orders?ajax=billPayWithCredit", function (data) {
857                if (typeof (data.payed) != "undefined" && data.payed == true) {
858                    enabledPayButtons();
859                    if (typeof (data.full_payed) != "undefined" && data.full_payed == true) {
860                        $("#ModalPayNow").modal('hide');
861                        full_paid_store_credit = true;
862                        get_add_bill = false;
863                        $('#ModalThankYou').find('[data-thankyou-order-id]').attr('href', "/orders?subcom=detailed&id=" + order_id);
864                        $('#ModalThankYou').modal('show');
865                    } else if (typeof (data.bill) != "undefined") {
866                        var payed_by_bonuses = $('[data-payed-pay-modal]').text() * 1;
867                        $('[data-payed-pay-modal]').text(parseFloat(bonus_pay + payed_by_bonuses).toFixed(2));
868                        $('[data-store-credit-pay-modal]').text(data.store_credit);
869                        $('[data-max-bonus]').data('maxBonus', data.store_credit);
870                        $('[data-price-pay-modal]').text(data.bill.price);
871                        $('#payment_form [name="bid"]').val(data.bill.id);
872                        $('#payment_form [name="token"]').val(data.bill.token);
873                        if(data.how_much_can_pay_by_credit == 0){
874                            $('.close-bonus-payment').trigger('click');
875                            $('.payment_bonus').hide();
876                            $('[data-max-can-pay]').data('maxCanPay', data.how_much_can_pay_by_credit);
877                            $('[data-max-can-pay]').attr('data-max-can-pay', data.how_much_can_pay_by_credit);
878                        } else if (data.how_much_can_pay_by_credit) {
879                            $('[data-max-can-pay]').data('maxCanPay', data.how_much_can_pay_by_credit);
880                            $('[data-max-can-pay]').attr('data-max-can-pay', data.how_much_can_pay_by_credit);
881                        }
882                        $('#ModalPayNow .payed_by_bonuses').show();
883                        get_add_bill = true;
884                        $("#ModalPayNow .call-spinner").hide();
885                        $("#ModalPayNow .apply_bonus_span").show();
886                        $('#ModalPayNow [name="amount"]').trigger('keyup');
887                        if (data.store_credit * 1 == 0) {
888                            $("#ModalPayNow .active-bonus-pay").removeClass('active-bonus-pay');
889                            $("#ModalPayNow [data-bonus-inf]").text('You have no bonus yet');
890                            $("#ModalPayNow .payment_bonus").addClass('disabled-element');
891                            $("#ModalPayNow .btn-pay-collapse").trigger('click');
892                        }
893                    } else {
894                        //location.reload();    
895                    }
896                } else {
897                    if (typeof (data.payed) != "undefined" && data.payed.error && data.payed.error.amount) {
898                        bonus_input.addClass('alert-control');
899                        bonus_error.text(data.payed.error.amount);
900                        $("#ModalPayNow .call-spinner").hide();
901                        $('#ModalPayNow [error="amount"]').remove();
902                    }
903                    //location.reload();
904                }
905                wait_for_apply_bonus = false;
906            }, form.serialize(), form);
907        }
908    });
909
910    $('[data-open-modal]').each(function () {
911        $(this).modal('show');
912    });
913
914    $('#ModalThankYou').on('hidden.bs.modal', function (e) {
915        if (full_paid_store_credit) {
916            location.reload();
917        }
918    });
919
920    $('#ModalPayNow').on('hidden.bs.modal', function (e) {
921        if (get_add_bill) {
922            location.reload();
923        }
924    });
925
926    /*Validation Bonus on Pay Modal End*/
927
928    /*Payment Modal End*/
929
930    /* Modal Login Auth phone highlighted*/
931    jQuery(document).on('click', function (e) {
932        var el = '.phone-box .select2';
933        if (jQuery(e.target).closest(el).length)
934            return;
935        $('#input_phone').removeClass('select-highlight');
936    });
937
938    $('.phone-box .select2-phone').on('select2:unselect select2:select select2:close', function (evt) {
939        $(this).parent().closest('.input-phone-inner').find('#input_phone').removeClass('select-highlight');
940    });
941
942    $(".phone-box .select2").on('click', function () {
943        if ($(this).hasClass('select2-container--open')) {
944            $('#input_phone').toggleClass('select-highlight');
945        } else {
946            $('#input_phone').removeClass('select-highlight');
947        }
948    });
949    /* END Modal Login Auth */
950
951//rate admin banner
952    $("#hide_rate-admin-banner").on('click', function () {
953        $(this).parents().closest('.rate-admin-banner').hide();
954        callAjax("json", "/orders?ajax=SetNpsRateShow", function (result) {
955        }, {});
956    });
957
958    $(".rate-emoji-item").on('click', function () {
959        $('.rate-emoji-item').removeClass('rate-emoji-active');
960        $(this).addClass('rate-emoji-active');
961
962        if ($(this).hasClass('rate-emoji-active')) {
963            $('.rate-admin-btn').removeClass('rate-admin-btn-dis');
964        }
965
966    });
967
968    $(".rate-admin-btn").on('click', function () {
969        if ($('.rate-admin-banner .rate-admin-items .rate-emoji-active').length == 0) {
970            return false;
971        }
972
973        if ($('.rate-emoji-item').hasClass('rate-emoji-active')) {
974            $(this).parents('.rate-emoji-holder').hide();
975
976            $('.rate-second-banner').show();
977
978            setTimeout(function () { // auto close rate
979                if ($('.rate-admin-banner').is(':visible')) {
980                    $('.rate-admin-banner').hide();
981                    callAjax("json", "/orders?ajax=SetNpsRateShow", function (result) {
982                    }, {});
983                }
984            }, 5000);
985
986            callAjax("json", "/orders?ajax=NpsRate", function (result) {
987            }, {
988                id: parseInt($('.rate-admin-banner [name="nps_order_id"]').val()),
989                recommend_rate: parseInt($('.rate-admin-banner .rate-admin-items .rate-emoji-active').html())
990            });
991        }
992
993
994
995    });
996
997    $('.rate-admin_textarea').on('paste input', function () {
998        var responsiveWidth = $(window).width();
999        if (responsiveWidth < 767) {
1000            if ($(this).outerHeight() > this.scrollHeight) {
1001                $(this).height(1);
1002            }
1003            while ($(this).outerHeight() < this.scrollHeight + parseFloat($(this).css("borderTopWidth")) + parseFloat($(this).css("borderBottomWidth"))) {
1004                $(this).height($(this).height() + 1);
1005            }
1006        }
1007    });
1008
1009//END rate admin banner
1010
1011//START writer rate
1012    $('#form_writer_rate [name="feedback_writer"]').on('blur', function () {
1013        validateWriterRateComment.call(this);
1014    });
1015
1016    $('#form_writer_rate [data-new-rate-submit]').on('click', function () {
1017
1018        if ($('.btn-send-revision.d-none').length > 0) {
1019            $('.btn-send-revision.d-none').removeClass('d-none');
1020        }
1021        
1022        let auto_approved_order = ($('#form_writer_rate [name="auto_approve_order"]').length && $('#form_writer_rate [name="auto_approve_order"]').val() === '1');
1023
1024        if (validateWriterRateComment.call($('#form_writer_rate [name="feedback_writer"]').get())
1025            && validateWriterTips($('#form_writer_rate')) !== false
1026        ) {
1027            if (
1028                (
1029                    $.inArray('41', ['4', '10']) !== -1
1030                    || (in_development && $.inArray('41', []) !== -1)
1031                )
1032                && typeof ORDER !== 'undefined'
1033                && !auto_approved_order
1034            ) {
1035                var preloader = $('#page-preloader');
1036                preloader.fadeIn();
1037
1038                if (typeof rate_and_approve !== 'undefined' && rate_and_approve){
1039                    rateWriterNewAjaxSubmit(true);
1040                    console.log("reload 11")
1041                } else {
1042                    callAjax(
1043                        'json',
1044                        '/orders?subcom=detailed&id=' + (ORDER.id) + '&tab=details&get_ajax_content=1',
1045                        function (data) {
1046                            reloadContent(
1047                                'orders_details_tab_content_ajax',
1048                                '#tab-1.order-details',
1049                                data,
1050                                function () {
1051                                    rateWriterNewAjaxSubmit(true);
1052                                }
1053                            );
1054                        }
1055                    );
1056                }
1057            } else {
1058                console.log("reload 21")
1059                rateWriterNewAjaxSubmit();
1060            }
1061        }
1062    });
1063
1064    $('#form_writer_rate [data-new-rate-later]').on('click', function () {
1065        location.replace("/orders?subcom=detailed&id=" + ORDER.id);
1066    });
1067
1068    $('#TipYourWriter [data-pay-tip]').on('click', function () {
1069        var form = $(this).closest('.modal');
1070        var tips_valid_res = validateWriterTips(form, true);
1071        if (
1072                form.find('[name="order_id"]').val() !== ''
1073                && tips_valid_res !== false // if valid
1074                ) {
1075            addWriterTip(form);
1076        }
1077    });
1078
1079
1080
1081    $("#ModalSendRevision").on('hidden.bs.modal', function () {
1082        // fix modal 
1083        $("#ModalSendRevision").find('.revision-deadline p').addClass('d-none');
1084        $("#ModalSendRevision").find('.revision-deadline p:not(.after_rate)').removeClass('d-none');
1085
1086        if (new_datetimepicker) {
1087            $("#ModalSendRevision").find("#datetimepicker2").data("DateTimePicker").minDate(new Date(Date.now()));
1088        } else {
1089            var date_now = new Date(Date.now());
1090            var date_formated = date_now.getFullYear() +
1091                    "/" + ((date_now.getMonth() + 1) < 10 ? ("0" + (date_now.getMonth() + 1)) : (date_now.getMonth() + 1))
1092                    + "/" + (date_now.getDate() < 10 ? ("0" + date_now.getDate()) : date_now.getDate())
1093                    + " " + (date_now.getHours() < 10 ? ("0" + date_now.getHours()) : date_now.getHours())
1094                    + ":" + (date_now.getMinutes() < 10 ? ("0" + date_now.getMinutes()) : date_now.getMinutes());
1095
1096            $("#ModalSendRevision").find("#datetimepicker2").val(date_formated);
1097            $("#ModalSendRevision").find("#datetimepicker2").datetimepicker({
1098                minDate: date_now,
1099                defaultDate: date_now
1100            });
1101//            revision_modal.find("#datetimepicker2").datetimepicker("option", "defaultDate", revision_min_date);
1102        }
1103    });
1104    //END writer rate
1105
1106
1107    $(".statistic_send[data-counter]").click(function (e) {
1108        var element = $(this);
1109        var counter = $(this).data('counter');
1110        callAjax('json', '/profile?ajax=statisticCounter&counter=' + counter, function () {
1111            if ($.inArray(counter, ['online_lecture_summary_try_now', 'online_lecture_summary_not_interested']) > -1) {
1112                $.cookie('hide_banner_online_lecture_summary', 1, {expires: 999999, path: '/'});
1113                if (element.data('location-to')) {
1114                    location.replace(element.data('location-to'));
1115                }
1116                element.closest('[data-banner]').hide();
1117            }
1118        });
1119    });
1120
1121    if (new_rating) {
1122        $('#ModalPayTips').on('hide.bs.modal', function () {
1123
1124            if ($('#ModalPayTips').attr('data-show-no-tips-modal') != '1') {
1125                location.reload();
1126                return true;
1127            }
1128
1129            setTimeout(function () {
1130                $("#ModalWithoutTips").modal('show');
1131                if ($("#ModalWithoutTips").attr('data-not-cancel') == '1') {
1132                    $('#ModalWithoutTips').on('hidden.bs.modal', function (e) {
1133                        location.reload();
1134                    });
1135                } else {
1136                    if (typeof ORDER !== 'undefined') {
1137                        setTimeout(function () {
1138                            location.reload();
1139                        }, 4500);
1140                    }
1141
1142                    setTimeout(function () {
1143                        $("#ModalWithoutTips").modal('hide');
1144                    }, 5000);
1145                }
1146            }, 500);
1147        });
1148    }
1149
1150    // floating btn for files tab
1151    $('[data-tab-files]').click(function () {
1152        if ($('#callback-float-btn').length > 0) {
1153            $("#callback-float-btn .float-btn").addClass('lottie-wrapper-files');
1154        } else {
1155            $("#lottie-wrapper").addClass('lottie-wrapper-files');
1156        }
1157    });
1158
1159    $('[data-tab-messages] , [data-tab-details]').click(function () {
1160        if ($('#callback-float-btn').length > 0) {
1161            $("#callback-float-btn .float-btn").removeClass('lottie-wrapper-files');
1162        } else {
1163            $("#lottie-wrapper").removeClass('lottie-wrapper-files');
1164        }
1165    });
1166    if ($('.service_level-wrap').length > 0) {
1167        $('input[name="top_priority"], input[name="standard_level_service"]').off('click');
1168        $('input[name="top_priority"], input[name="standard_level_service"]').on('click', function () {
1169            if ($(this).is(":checked")) {
1170                $(this).prop('checked', false);
1171                $(this).closest(".checkbox-v").removeClass("check-active");
1172            } else {
1173                $(this).prop('checked', true);
1174                $(this).closest(".checkbox-v").addClass("check-active");
1175            }
1176        });
1177    }
1178
1179    $('.how-it-works_btn').on('click', function () {
1180        window.location.href = "https://admin.last-minute-essay.com/how_it_works?subcom=OnboardingHowItWorks";
1181    });
1182        
1183    $('[data-content-to-copy]').click(function (e) {
1184        e.preventDefault();
1185        e.stopPropagation();
1186        var button = $(this);
1187        copyToClp(button.attr('data-content-to-copy'));
1188        button.addClass('has-copied').html('Copied');
1189        if ($(this).hasClass('copy_promo')) {
1190            setTimeout(function () {
1191                button.removeClass('has-copied').html('Copy code');
1192            }, 5000);
1193        } else {
1194            setTimeout(function () {
1195                button.removeClass('has-copied').html('Copy referral link');
1196            }, 5000);
1197        }
1198
1199    });
1200
1201    /* Apple pay */
1202    if ( !window.ApplePaySession || !ApplePaySession.canMakePayments() ){
1203        $(".payment_apple-pay").remove();
1204    }
1205    
1206    /* sticky files tab */
1207    $("#order-page .writers-list-inner .tabs .tab-link").on("click", function(){
1208        if ($('[data-tab-files]').hasClass('current')) {
1209            $(this).parent(".tabs-list").addClass('sticky-tab');
1210        } else {
1211            $(this).parent(".tabs-list").removeClass('sticky-tab');
1212        }
1213    });
1214    
1215    if ('41' == '10') {
1216        $('.settings-item__phone .btn-add-alternative').on('click', function () {
1217            $('#client_change_alt_phone [name="alt_phone"]').trigger('input');
1218        });
1219        setTimeout(function(){
1220            $('#client_change_alt_phone [name="alt_phone"]').bind('input', function () {
1221                var $this = $(this);
1222                var onlyNum = $this.val().match(/([0-9]+)/g);
1223                if (!onlyNum) {
1224                    $this.val('');
1225                    return false;
1226                }
1227                onlyNum = onlyNum.join('').substring(0, 100);
1228
1229                var result = '(';
1230                for (var i = 0; i < onlyNum.length; i++) {
1231                    if (i == 3) {
1232                        result += ')';
1233                    }
1234                    if (i == 6) {
1235                        result += ' - ';
1236                    }
1237
1238                    result += onlyNum.charAt(i);
1239                }
1240                $(this).val( result );
1241            });       
1242        },500);
1243    }
1244    
1245    /* Balance tooltip */
1246    $(document).mouseup(function (e) {        
1247        if ($(".sidebar__balance--info").has(e.target).length === 0){
1248            $(".tooltip__balance--tab").removeClass("show");
1249        }
1250        if ($(".sidebar__balance--info").has(e.target).length === 0){
1251            $(".tooltip__balance--mob").removeClass("show");
1252        }
1253    });
1254    
1255});
1256
1257function modalClientInformation() {
1258    if ($("#ModalAuth").length) {
1259        setTimeout(function () {
1260            $("#ModalAuth").modal('show');
1261        }, 2000);
1262    }
1263
1264    $('#ModalAuth').on('hidden.bs.modal', function () {
1265        $('#ModalAuth').attr('data-not-used-popup', "");
1266    });
1267
1268    $('#client_details_modal #select-country').on('select2:select', function (e) {
1269        if($("#client_details_modal").data("phoneValidByCountry")){
1270            validatePhoneByCountry($("#client_details_modal [name='phone']"),e.params.data.id,e.params.data.text); 
1271            if($.trim($('#client_details_modal [name="phone"]').val())!=''){
1272                $('#client_details_modal [name="phone"]').valid();
1273            }
1274        }        
1275    });
1276
1277    $("#client_details_modal").submit(function (e) {
1278        e.preventDefault();
1279        e.stopPropagation();
1280
1281        var form = $(this);
1282        if($("#client_details_modal").data("phoneValidByCountry")){
1283            validatePhoneByCountry($("#client_details_modal [name='phone']"),form.find('select[name="country"]').val());
1284        }
1285        var data = {
1286            name: form.find('input[name="name"]').val(),
1287            phone: form.find('input[name="phone"]').val().replace(/\D/g, ""),
1288            country: form.find('select[name="country"]').val(),
1289            email: form.find('input[name="email"]').val(),
1290            allow_night_call: (form.find('input[name="allow_night_call"]').is(':checked') ? 1 : 0),
1291            source: "pop_up"
1292        };
1293
1294        if (data.name.trim() == '') {
1295            form.validate().settings.rules.name.required = false;
1296            data.name = 'Customer';
1297        } else {
1298            form.validate().settings.rules.name.required = true;
1299        }
1300
1301        if (form.valid()) {
1302            form.find('button[type="submit"]').find('i').addClass('fa-spinner');
1303            console.log(data);
1304            callAjax("json", "/profile?ajax=dataChange", function (result) {
1305                console.log(result);
1306                location.reload();
1307            }, data, form);
1308        }
1309
1310        return false;
1311    });
1312
1313    $('#client_details_modal [name="phone"]').on('input', function () {
1314        if($("#client_details_modal").data("phoneValidByCountry")){
1315            validatePhoneByCountry($("#client_details_modal [name='phone']"),$('#client_details_modal select[name="country"]').val());
1316        }        
1317        
1318        var $this = $(this);
1319        var onlyNum = $this.val().match(/([0-9]+)/g);
1320        if (!onlyNum) {
1321            $this.val('');
1322            return false;
1323        }
1324        onlyNum = onlyNum.join('').substring(0, 100);
1325
1326        if (onlyNum.length > 11 || onlyNum.length < 3) {
1327            $('#client_details_modal').find('button[type="submit"]').addClass('disabled');
1328        } else {
1329            $('#client_details_modal').find('button[type="submit"]').removeClass('disabled');
1330        }
1331
1332        var result = '(';
1333        for (var i = 0; i < onlyNum.length; i++) {
1334            if (i == 3) {
1335                result += ')';
1336            }
1337            if (i == 6) {
1338                result += ' - ';
1339            }
1340
1341            result += onlyNum.charAt(i);
1342        }
1343        $this.val(
1344                result
1345                );
1346    });
1347
1348    $("#client_details_modal").find('.btn-skip').click(function () {
1349        //$("#ModalSkipNow").modal('show');
1350        callAjax("json", "/profile?ajax=notShowModalContactInfo", function () {
1351        }, {data: 1});
1352    });
1353
1354    $('#client_details_modal select[name="country"]')
1355            .find('option[value="' + $('#client_details_modal select[name="country"]').attr('data-attr-current-country') + '"]').prop('selected', true).parent().change();
1356
1357    $('#modal-edit-phone select[name="country_format"]').find('option').filter(function() {
1358            return $(this).text() === $('#modal-edit-phone select[name="country_format"]').attr('data-attr-country-code');
1359        }).prop('selected', true).parent().change();
1360    
1361
1362    $('#client_details_modal').find('[name="name"]').keyup(function () {
1363        if ($(this).val().trim() == '') {
1364            $("#client_details_modal").validate().settings.rules.name.required = false;
1365        } else {
1366            $("#client_details_modal").validate().settings.rules.name.required = true;
1367        }
1368    });
1369    
1370        // starts box
1371    $('.rating input').change(function () {
1372        $(this).closest('.rating').find('.selected').removeClass('selected');
1373        $(this).closest('label').addClass('selected');
1374    });
1375
1376}
1377
1378function callWriterRateModalNew() {    
1379    if ($(this).attr('data-rate-and-approve') == 1) {
1380        rate_and_approve = true;
1381    }
1382    
1383    $('#ModalRatePaper [name="id"]').val($(this).attr('data-order'));
1384    if ($(this).attr('data-writers') == 1) {
1385        $('#ModalRatePaper [name="id"]').attr('from-writers', 1);
1386    } else {
1387        $('#ModalRatePaper [name="id"]').removeAttr('from-writers');
1388    }
1389
1390    $('#ModalRatePaper .btn-rate-block')
1391            .attr('data-order-id', $(this).attr('data-order'))
1392            .attr('data-add-writer-blacklist', $(this).attr('data-writer'));
1393//    $("#ModalAddBlacklist [name='order_id']").val($(this).attr('data-order'));
1394//    $("#ModalAddBlacklist [name='writer_id']").val($(this).attr('data-writer'));
1395
1396    $("#ModalRatePaper [data-rate-writer-submit]").addClass('ajax-submit');
1397    $("#ModalRatePaper").modal('show');
1398}
1399
1400function callWriterRateModal() {
1401    $('#ModalRateWriter [name="id"]').val($(this).attr('data-order'));
1402    if ($(this).attr('data-writers') == 1) {
1403        $('#ModalRateWriter [name="id"]').attr('from-writers', 1);
1404    } else {
1405        $('#ModalRateWriter [name="id"]').removeAttr('from-writers');
1406    }
1407    $("#ModalAddBlacklist [name='order_id']").val($(this).attr('data-order'));
1408    $("#ModalAddBlacklist [name='writer_id']").val($(this).attr('data-writer'));
1409
1410    $("#ModalRateWriter [data-rate-writer-submit]").addClass('ajax-submit');
1411    $("#ModalRateWriter").modal('show');
1412}
1413
1414function callSummaryRateModal() {
1415    $('#ModalRateSummary [name="id"]').val($(this).attr('data-order'));
1416    $("#ModalRateSummary [data-rate-summary-submit]").addClass('ajax-submit');
1417
1418    $('#ModalRateSummary [name="id"]').val($(this).attr('data-order'));
1419    if ($(this).attr('data-writers') == 1) {
1420        $('#ModalRateSummary [name="id"]').attr('from-writers', 1);
1421    } else {
1422        $('#ModalRateSummary [name="id"]').removeAttr('from-writers');
1423    }
1424    $("#ModalAddBlacklist [name='order_id']").val($(this).attr('data-order'));
1425    $("#ModalAddBlacklist [name='writer_id']").val($(this).attr('data-writer'));
1426
1427    $("#ModalRateSummary").modal('show');
1428}
1429
1430function rateSummaryAjaxSubmit() {
1431    var form = $('#form_order_rate');
1432    var button_submit = $(this);
1433
1434    var from_writers = form.find('[name="id"]').attr('from-writers') == 1 ? true : false;
1435
1436    if (button_submit.hasClass('btn-rate-disabled')) {
1437        if (!$('[name="writer_rate"]').is(':checked')) {
1438            $('[data-writer-rate-error]').show();
1439        }
1440        showMessageOnOurRate();
1441        return false;
1442    }
1443
1444    button_submit.addClass('btn-rate-disabled');
1445
1446    var form_data = {};
1447    $.each(
1448            form.serializeArray(),
1449            function (iter, field) {
1450                form_data[field.name] = field.value;
1451            }
1452    );
1453
1454    if (form.valid()) {
1455        var preloader = $('#page-preloader');
1456        preloader.fadeIn();
1457
1458        callAjax('json', '/orders?ajax=rate', function (data) {
1459
1460            /*Service Start*/
1461            var order_block = $(".order-list-holder .order-item[data-id='" + form_data.id + "']");
1462
1463            order_block.find(".service-rate-block .team-rating-order").hide();
1464
1465            if (form_data.service_rate > 0) {
1466                order_block.find(".service-rate-block .service-rate-data").html(form_data.service_rate + ".0").show();
1467                if (parseInt(form_data.service_rate) === 1) {
1468                    order_block.find(".service-rate-block .service-rate-data").addClass('low-rating-item');
1469                }
1470            }
1471
1472            if (form_data.recommend_rate > 0) {
1473                order_block.find(".service-rate-block .recommend-rate-data").html(form_data.recommend_rate + ".0").show();
1474                if (parseInt(form_data.recommend_rate) === 1) {
1475                    order_block.find(".service-rate-block .recommend-rate-data").addClass('low-rating-item');
1476                }
1477            }
1478
1479            order_block.find(".service-rate-block .star-rating-holder").show();
1480
1481            /*Service End*/
1482
1483            if (from_writers) {
1484                var order_blocks = $(".tasks-holder .task-wrap[data-order='" + form_data.id + "']");
1485
1486                $.each(
1487                        order_blocks,
1488                        function (iter, order_block) {
1489//                        rating-box
1490                            $(order_block).find('.set-rate-box').detach();
1491                            var writer_id = $(order_block).closest(".item-holder").attr('data-writer');
1492                            var parsed_stars = "";
1493
1494                            for (var i = 1; i <= 5; i++) {
1495                                var is_checked = parseInt(form_data.writer_rate) >= i;
1496
1497                                parsed_stars += '<label ' + (is_checked ? 'class="selected"' : '') + '>' +
1498                                        '<input type="radio" name="rating_' + form_data.id + '" value="' + i + '" title="' + i + ' stars"> ' + i +
1499                                        '</label>';
1500                            }
1501
1502                            $(order_block).find('.rating-box .rating-score').html(form_data.writer_rate + ".0");
1503                            $(order_block).find('.rating-box .rating').html(parsed_stars);
1504
1505                            $(order_block).find('.rating-box').show();
1506
1507                        }
1508                );
1509            } else {
1510                var order_block = $(".order-list-holder .order-item[data-id='" + form_data.id + "']");
1511
1512                order_block.find(".writer-rate-block .writer-rating-order").hide();
1513
1514                if (form_data.writer_rate > 0) {
1515                    order_block.find(".writer-rate-block .writer-rate-data").html(form_data.writer_rate + ".0").show();
1516                    if (parseInt(form_data.writer_rate) === 1) {
1517                        order_block.find(".writer-rate-block .writer-rate-data").addClass('low-rating-item');
1518                    }
1519
1520                    if (parseInt(form_data.writer_rate) >= minRateForTips) {
1521                        order_block.find(".writer-rate-block .small_tip-writer").show();
1522                    }else{
1523                        order_block.find(".writer-rate-block .small_tip-writer").hide();
1524                    }
1525                }
1526
1527                order_block.find(".writer-rate-block .star-rating-holder").show();
1528            }
1529
1530            preloader.fadeOut('fast', function () {
1531                $("#ModalRateSummary").modal('hide');
1532            });
1533        }, form.serialize(), form);
1534    }
1535    showMessageOnOurRate();
1536    return false;
1537}
1538function validateWriterRateComment() {
1539    var feedback_val = $(this).val();
1540    var comment_block = $(this).closest('.comment-wrap');
1541
1542    if (feedback_val.length === 0) {
1543        $(this).removeClass('error');
1544        comment_block.find('.alert-required').hide();
1545
1546        return true;
1547
1548    } else if (feedback_val.length > 0 && feedback_val.length < 3) {
1549        $(this).addClass('error');
1550        comment_block.find('.alert-required').html(rate_data.writer.errors.empty).show();
1551        return false;
1552
1553    } else if (rate_data.writer.regex.test(feedback_val) !== true) {
1554        $(this).addClass('error');
1555        comment_block.find('.alert-required').html(rate_data.writer.errors.symbols).show();
1556        return false;
1557
1558    } else {
1559        $(this).removeClass('error');
1560        comment_block.find('.alert-required').hide();
1561
1562        return true;
1563    }
1564}
1565
1566function isRevisionAvailable(order_block) {
1567    var period_after_approved = order_block.attr('data-time-after-approve'),
1568            spacing = parseInt(order_block.attr('data-spacing')),
1569            pages = parseInt(order_block.attr('data-pages')),
1570            slides_problems_questions = parseInt(order_block.attr('data-except-pages')),
1571            type_of_paper_id = order_block.attr('data-type-of-paper-id');
1572
1573    if ($.inArray('41', ['4', '10', '58', '100', '6', '17', '49', '11']) !== -1 || (in_development && $.inArray('41', []) !== -1)) {//service layers part
1574        if (order_block.attr('data-vip') == 1 || order_block.attr('data-extended_revision_time') == 1) {
1575            if (
1576                (pages > 0 && pages <= 19 && spacing == 2 && period_after_approved < 14 * 24 * 3600)
1577                || (pages > 0 && pages <= 9 && spacing == 1 && period_after_approved < 14 * 24 * 3600)
1578                || (pages >= 20 && spacing == 2 && period_after_approved < 30 * 24 * 3600)
1579                || (pages >= 10 && spacing == 1 && period_after_approved < 30 * 24 * 3600)
1580                || (pages == 0 && slides_problems_questions > 0 && period_after_approved < 14 * 24 * 3600)
1581                /*|| ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions <= 39 && period_after_approved < 14 * 24 * 3600)
1582                || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions >= 40 && period_after_approved < 30 * 24 * 3600)
1583                || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions <= 9 && period_after_approved < 14 * 24 * 3600)
1584                || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions > 9 && period_after_approved < 30 * 24 * 3600)*/
1585                || ($.inArray(type_of_paper_id, ["411038", "411039"]) !== -1  && period_after_approved < 14 * 24 * 3600)
1586            )
1587            {
1588                return true;
1589            } else {
1590                return false;
1591            }
1592        }
1593    }
1594
1595    if($.inArray('41', ['10', '58', '94','6', '17', '49', '11']) !== -1 &&
1596        (pages > 0 && pages <= 19 && spacing == 2 && period_after_approved < 14 * 24 * 3600)
1597        || (pages > 0 && pages <= 9 && spacing == 1 && period_after_approved < 14 * 24 * 3600)
1598        || (pages >= 20 && spacing == 2 && period_after_approved < 30 * 24 * 3600)
1599        || (pages >= 10 && spacing == 1 && period_after_approved < 30 * 24 * 3600)
1600        || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions > 39 && period_after_approved < 30 * 24 * 3600)
1601        || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions > 9 && period_after_approved < 30 * 24 * 3600)
1602    ){
1603        return true;
1604    }
1605
1606    if (
1607            (pages > 0 && pages <= 19 && spacing == 2 && period_after_approved < 7 * 24 * 3600)
1608            || (pages > 0 && pages <= 9 && spacing == 1 && period_after_approved < 7 * 24 * 3600)
1609            || (pages >= 20 && spacing == 2 && period_after_approved < 14 * 24 * 3600)
1610            || (pages >= 10 && spacing == 1 && period_after_approved < 14 * 24 * 3600)
1611            || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions <= 39 && period_after_approved < 7 * 24 * 3600)
1612            || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions > 39 && period_after_approved < 14 * 24 * 3600)
1613            || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions <= 9 && period_after_approved < 7 * 24 * 3600)
1614            || ($.inArray(type_of_paper_id, ["410004", "410060", "411038", "411039"]) !== -1 && slides_problems_questions > 9 && period_after_approved < 14 * 24 * 3600)
1615            )
1616    {
1617        return true;
1618    }
1619
1620    return false;
1621}
1622
1623function chooseExtendRevisionDeadlineValue(client_deadline_left) {
1624    var extend_time = {
1625        time: 0,
1626        days: 0,
1627        hours: 0
1628    };
1629
1630    if (client_deadline_left > 4 * 3600) { // ddl_left > 4 hours
1631        extend_time.time = client_deadline_left - 4 * 3600;
1632    } else if (client_deadline_left > 0 && client_deadline_left <= 4 * 3600) { // 0 < ddl_left > 4hours
1633        extend_time.time = 4 * 3600;
1634    } else { // ddl passed
1635        extend_time.time = 4 * 3600;
1636    }
1637
1638    extend_time.days = Math.floor(extend_time.time / (24 * 3600)); // how many days extended
1639    extend_time.hours = Math.round((extend_time.time % (24 * 3600)) / 3600); // how many hours extended
1640
1641    return extend_time;
1642}
1643
1644function prepareWriterRateModal() {
1645    // prepare #ModalRatePaper + #ModalSendRevision
1646    // check for revision enable and update revision ddl
1647
1648    var order_block = $(this);
1649    var rate_modal = $("#ModalRatePaper");
1650    var revision_modal = $("#ModalSendRevision");
1651    var client_deadline_left = order_block.attr('data-time-ddl-left');
1652
1653    let price_writer_tips =  order_block.attr('data-order-price');
1654    setWriterTips(price_writer_tips,rate_modal);
1655
1656    // show/hide revision link
1657    if (isRevisionAvailable(order_block)) {
1658        var extend_data = chooseExtendRevisionDeadlineValue(client_deadline_left);
1659
1660        var revision_min_date = new Date(Date.now() + extend_data.time * 1000 + 60 * 1000) /* in miliseconds */;
1661        revision_modal.find('.revision-deadline p').addClass('d-none');
1662        revision_modal.find('.revision-deadline p.after_rate').removeClass('d-none');
1663
1664        var days_and_hours = false;
1665        if (extend_data.days > 0 && extend_data.hours > 0) {
1666            days_and_hours = true;
1667        }
1668
1669        revision_modal.find("#revision-deadline").html(
1670                (extend_data.days > 0 ? (extend_data.days + ' day' + (extend_data.days > 1 ? 's' : '')) : "") + (days_and_hours ? " " : "")
1671                + (extend_data.hours > 0 ? (extend_data.hours + ' hour' + ((extend_data.hours > 1) ? 's' : '')) : "")
1672                );
1673
1674        if (new_datetimepicker) {
1675            revision_modal.find("#datetimepicker2").data("DateTimePicker").minDate(revision_min_date);
1676            revision_modal.find("#datetimepicker2").data("DateTimePicker").defaultDate(revision_min_date);
1677        } else {
1678            var date_formated = revision_min_date.getFullYear() +
1679                    "/" + ((revision_min_date.getMonth() + 1) < 10 ? ("0" + (revision_min_date.getMonth() + 1)) : (revision_min_date.getMonth() + 1))
1680                    + "/" + (revision_min_date.getDate() < 10 ? ("0" + revision_min_date.getDate()) : revision_min_date.getDate())
1681                    + " " + (revision_min_date.getHours() < 10 ? ("0" + revision_min_date.getHours()) : revision_min_date.getHours())
1682                    + ":" + (revision_min_date.getMinutes() < 10 ? ("0" + revision_min_date.getMinutes()) : revision_min_date.getMinutes());
1683
1684            revision_modal.find("#datetimepicker2").val(date_formated);
1685            revision_modal.find("#datetimepicker2").datetimepicker({
1686                minDate: revision_min_date,
1687                defaultDate: revision_min_date
1688            });
1689//            revision_modal.find("#datetimepicker2").datetimepicker("option", "defaultDate", revision_min_date);
1690        }
1691
1692        var order_id = typeof ORDER !== 'undefined' ? ORDER.id : false;
1693
1694        if (order_id === false) {
1695            if (typeof order_block.attr('data-order') !== typeof undefined && order_block.attr('data-order') !== false) {
1696                order_id = order_block.attr('data-order');
1697            } else if (typeof order_block.attr('data-order-id') !== typeof undefined && order_block.attr('data-order-id') !== false) {
1698                order_id = order_block.attr('data-order-id');
1699            }
1700        }
1701
1702        if (typeof order_block.attr('data-writer-tip-payed') !== typeof undefined && order_block.attr('data-writer-tip-payed') !== false) {
1703            rate_modal.find('[name="writer_tip_payed"]').val(order_block.attr('data-writer-tip-payed'));
1704        }else{
1705            rate_modal.find('[name="writer_tip_payed"]').val('');
1706        }
1707
1708        revision_modal.find('[name="order_id"]').val(order_id);
1709        revision_modal.find('[name="is_new_rate"]').val("1");
1710        revision_modal.addClass('new-revision');
1711        rate_modal.find('.new_alert-block-rate').removeClass('d-none');
1712    } else {
1713        rate_modal.find('.new_alert-block-rate').addClass('d-none');
1714    }
1715
1716}
1717
1718function validateWriterTips(form, is_required) {
1719    var tips_input = form.find('.writers-tip_inner .input-tip-writer');
1720
1721    if (form.find('.writers-tip_inner .btn-tip-writer-active').length) { //if default button active
1722        return parseFloat(form.find('.writers-tip_inner .btn-tip-writer-active').attr('data-tip-amount'));
1723
1724    } else if (tips_input.is(':visible')) { // if custom ammount active
1725        if (
1726                tips_input.val().length === 0 // if empty
1727                || !rate_data.writer.tip_amount_regex.test(tips_input.val()) // if not valid
1728                ) {
1729            form.find('.error-custom-tips').html(tips_data.errors.not_val
1729id).show();
1730            form.find('.writers-tip_inner .input-tip-writer').addClass('alert-control');
1731            return false;
1732
1733        } else if (parseFloat(tips_input.val()) < 1) {
1734            form.find('.error-custom-tips').html(tips_data.errors.min).show();
1735            form.find('.writers-tip_inner .input-tip-writer').addClass('alert-control');
1736            return false;
1737
1738        } else if (parseFloat(tips_input.val()) > 500) {
1739            form.find('.error-custom-tips').html(tips_data.errors.max).show();
1740            form.find('.writers-tip_inner .input-tip-writer').addClass('alert-control');
1741            return false;
1742        }
1743
1744        form.find('.writers-tip_inner .input-tip-writer').removeClass('alert-control');
1745        form.find('.error-custom-tips').html('').hide();
1746        return parseFloat(form.find('.writers-tip_inner .input-tip-writer').val());
1747    } else if (typeof is_required !== 'undefined') { // if not active & required
1748        form.find('.error-custom-tips').html(tips_data.errors.not_valid).show();
1749        return false;
1750
1751    } else { // if not active & not required
1752        return true;
1753    }
1754
1755}
1756
1757function addWriterTip(modal_tip) {
1758
1759    var valid_tip = validateWriterTips(modal_tip);
1760    if (valid_tip === false || valid_tip === true) { // not-active || not-valid
1761        return false;
1762    }
1763
1764    var form_data = {
1765        id: modal_tip.find('[name="order_id"]').val(),
1766        tip_amount: valid_tip
1767    };
1768
1769    var preloader = $('#page-preloader');
1770    var button_submit = modal_tip.find('[data-pay-tip]');
1771
1772    button_submit.addClass('btn-rate-disabled');
1773    preloader.fadeIn();
1774
1775    callAjax('json', '/orders?ajax=CreateTip', function (response_data) {
1776        preloader.fadeOut('fast', function () {
1777            button_submit.removeClass('btn-rate-disabled');
1778            if (typeof response_data.result.bill_add !== 'undefined') {
1779                var modal_tip_payment = $("#ModalPayTips");
1780                modal_tip.modal('hide');
1781
1782                var bill_data = response_data.result.bill_add;
1783
1784                modal_tip_payment.attr('data-show-no-tips-modal', "");
1785                modal_tip_payment.find('[name="bid"]').val(bill_data.id);
1786                modal_tip_payment.find('[name="token"]').val(bill_data.hash);
1787
1788                modal_tip_payment.modal('show');
1789            }
1790        });
1791    }, form_data);
1792}
1793
1794var timeoutModal = false;
1795function rateWriterNewAjaxSubmit(without_preloader) {
1796    
1797    
1798    var form = $('#form_writer_rate');
1799    var form_data = {};
1800    var from_writers = form.find('[name="id"]').attr('from-writers') == 1 ? true : false;
1801
1802    $.each(
1803            form.serializeArray(),
1804            function (iter, field) {
1805                if (field.name !== 'tip-amount' || parseFloat(field.value) > 0) {
1806                    form_data[field.name] = field.value;
1807                }
1808            }
1809    );
1810
1811    form_data.minRateForTips = minRateForTips;
1812
1813    if (parseInt(form_data.writer_rate) >= minRateForTips) {
1814        var valid_tip = validateWriterTips(form);
1815        if (valid_tip === false) { // active && not valid
1816            return false;
1817        } else if (valid_tip === true) { // not-active
1818
1819        } else { // active && valid
1820            form_data['tip_amount'] = valid_tip;
1821        }
1822
1823    } else if (parseInt(form_data.writer_rate) < minRateForTips) {
1824        if (form.find('.improve-items-holder .improve-item:checked').length) {
1825            form_data['improve_types'] = [];
1826            $.each(
1827                    form.find('.improve-items-holder .improve-item:checked'),
1828                    function (iter, field) {
1829                        form_data['improve_types'].push(parseInt($(field).attr('value')));
1830                    }
1831            );
1832
1833            if (form_data['improve_types'].length > 0) {
1834                form_data['improve_types'] = Base64.encode(form_data['improve_types'].join('|'));
1835            } else {
1836                form_data['improve_types'] = '';
1837            }
1838        }
1839    }
1840
1841    var preloader = $('#page-preloader');
1842
1843    if (typeof without_preloader === 'undefined' || without_preloader !== true) {
1844        preloader.fadeIn();
1845    }
1846
1847    callAjax('json', '/orders?ajax=WriterRate', function (response_data) {
1848        
1849        if (typeof from_writers !== 'undefined' && from_writers) {
1850//                location.reload();
1851            var order_blocks = $(".tasks-holder .task-wrap[data-order='" + form_data.id + "']");
1852
1853            $.each(
1854                    order_blocks,
1855                    function (iter, order_block) {
1856//                        rating-box
1857                        $(order_block).find('.set-rate-box').detach();
1858                        var writer_id = $(order_block).closest(".item-holder").attr('data-writer');
1859                        var parsed_stars = "";
1860
1861                        for (var i = 1; i <= 5; i++) {
1862                            var is_checked = parseInt(form_data.writer_rate) >= i;
1863
1864                            parsed_stars += '<label ' + (is_checked ? 'class="selected"' : '') + '>
1864' +
1865                                    '<input type="radio" name="rating_' + form_data.id + '" value="' + i + '" title="' + i + ' stars"> ' + i +
1866                                    '</label>';
1867                        }
1868
1869                        $(order_block).find('.rating-box .rating-score').html(form_data.writer_rate + '.0');
1870                        $(order_block).find('.rating-box .rating').html(parsed_stars);
1871
1872                        $(order_block).find('.rating-box').show();
1873
1874                        // check for "Count unrated" to hide
1875                        var writer_block = $(order_block).closest('.item-holder[data-writer]');
1876                        var count_unrated = writer_block.find('.tasks-holder-show .task-wrap .set-rate-box').length;
1877
1878                        if (count_unrated === 0) {
1879                            writer_block.find('.ratting-messages, .ratting-messages-mobile').detach();
1880                        }
1881
1882                    }
1883            );
1884        } else {
1885            var order_block = $(".order-list-holder .order-item[data-id='" + form_data.id + "']");
1886
1887            if (order_block.length) {
1888                order_block.find(".rating-order-item").hide();
1889
1890                if (form_data.writer_rate > 0) {
1891                    order_block.find(".writer-rate-block .writer-rate-data").html(form_data.writer_rate).show();
1892
1893                    if (parseInt(form_data.writer_rate) >= minRateForTips) {
1894                        order_block.find(".writer-rate-block .small_tip-writer").show();
1895                    }else{
1896                        order_block.find(".writer-rate-block .small_tip-writer").hide();
1897                    }
1898
1899                    if (parseInt(form_data.writer_rate) === 1) {
1900                        order_block.find(".writer-rate-block .writer-rate-data").addClass('low-rating-item');
1901                    }
1902                }
1903
1904                order_block.find(".writer-rate-block .star-rating-holder").show();
1905            }
1906
1907            var summary_block = $(".approved-box-inner .rate-section");
1908
1909            if (summary_block.length) {
1910                summary_block.find(".rate-enable-block").hide();
1911
1912                if (form_data.writer_rate > 0) {
1913                    summary_block.find(".rate-exists-block .writer-rate").html(form_data.writer_rate).show();
1914                    if (parseInt(form_data.writer_rate) === 1) {
1915                        summary_block.find(".rate-exists-block .writer-rate").addClass('low-rating-item');
1916                    }
1917                    summary_block.find(".call_rate-paper").show();
1918
1919                    if (parseInt(form_data.writer_rate) < minRateForTips) {
1920                        summary_block.find(".call_tip-writer").hide();
1921                    }
1922                }
1923
1924                summary_block.find(".rate-exists-block").show();
1925            }
1926
1927            var writers_order_block = $('.writers-list-inner .item-holder .task-wrap[data-order="' + form_data.id + '"]');
1928
1929            if (writers_order_block.length) {
1930                var writer_block = writers_order_block.closest('.item-holder');
1931
1932                writers_order_block.find(".set-rate-box").hide().detach();
1933                if (form_data.writer_rate > 0) {
1934                    writers_order_block.find(".rating-box .rating-score").html(form_data.writer_rate).show();
1935
1936                    for (var i = 1; i <= form_data.writer_rate; i++) {
1937                        writers_order_block.find(".rating-box .rating label:nth-of-type(" + i + ")").addClass('selected');
1938                    }
1939                }
1940
1941                writers_order_block.find(".rating-box").show();
1942
1943
1944                var unrated_count_end = writer_block.find('.tasks-holder-show .task-wrap .set-rate-box').length;
1945
1946                if (unrated_count_end === 0) {
1947                    writer_block.find('.ratting-messages, .ratting-messages-mobile').detach();
1948                }
1949            }
1950        }
1951
1952        preloader.fadeOut('fast', function () {
1953            $('#ModalRatePaper').off('hide.bs.modal');
1954
1955            $("#ModalRatePaper").modal('hide');
1956
1957            if (parseInt(form_data.writer_rate) >= minRateForTips) {
1958                if (typeof form_data.tip_amount !== 'undefined') { // added tip
1959                    var modal = $("#ModalPayTips");
1960                    var bill_data = response_data.result.bill_add;
1961
1962                    modal.attr('data-show-no-tips-modal', (form_data.writer_rate == '5' ? '1' : ''));
1963                    modal.find('[name="bid"]').val(bill_data.id);
1964                    modal.find('[name="token"]').val(bill_data.hash);
1965
1966                    $("#ModalPayTips").modal('show');
1967
1968                } else { // without tip
1969                    
1970                    if(('41' != '10') && response_data.result.rate_min_sorry){
1971                        $('#ModalWithoutTips .custom_remove').remove();
1972                        $("#ModalWithoutTips .modal-body").append('<p class="text-center">Grab your 10% discount code: <a href="#">'+response_data.result.rate_min_sorry+'</a></p>')
1973                    }
1974                    
1975                    $("#ModalWithoutTips").modal('show');
1976                    if ($("#ModalWithoutTips").attr('data-not-cancel') == '1') {
1977                        $('#ModalWithoutTips').on('hidden.bs.modal', function (e) {
1978                            location.reload();
1979                        });
1980                    } else {
1981                        if(!response_data.result.rate_min_sorry){
1982                            if (typeof ORDER !== 'undefined' && ('41' != '10')) { // if from order details
1983                                setTimeout(function () {
1984                                    location.reload();
1985                                }, 4500);
1986                            }
1987
1988                            timeoutModal = setTimeout(function () {
1989                                $("#ModalWithoutTips").modal('hide');
1990                            }, 5000);
1991                        }
1992
1993                    }
1994                }
1995
1996
1997            } else if (parseInt(form_data.writer_rate) === 4) {
1998                $("#ModalSuccessRateStars").modal('show');
1999                console.log(response_data);
2000                if(response_data.result.rate_min_sorry){
2001                    $("#ModalSuccessRateStars .custom_remove").remove();
2002                    $("#ModalSuccessRateStars .modal-body").append('<p class="text-center">Grab your 10% discount code: <a href="#">'+response_data.result.rate_min_sorry+'</a></p>')
2003                }
2004                
2005                
2006                
2007                
2008                if ($("#ModalSuccessRateStars").attr('data-not-cancel') == '1') {
2009                    $('#ModalSuccessRateStars').on('hidden.bs.modal', function (e) {
2010                        location.reload();
2011                    });
2012                } else {
2013                    if(!response_data.result.rate_min_sorry){
2014                        if (typeof ORDER !== 'undefined' && ('41' == '10')) { // if from order details
2015                            setTimeout(function () {
2016                                location.reload();
2017                            }, 4500);
2018                        }
2019
2020                        timeoutModal = setTimeout(function () {
2021                            $("#ModalSuccessRateStars").modal('hide');
2022                        }, 5000);
2023                    }
2024                }
2025            } else { // 1-3
2026                    if(response_data.result != null && response_data.result.rate_sorry){
2027                        if(response_data.result.rate_sorry_lower){
2028                            $('div.default_option').remove();
2029                        }else{
2030                            $('div.custom_sr_option').remove();
2031                        }
2032                        $("#ModalAfterLowRateWithTextarea").modal('show');
2033                        
2034                        if(response_data.result.rate_sorry_extras_txt){
2035                            $('#ModalAfterLowRateWithTextarea .rnd_txt').text(response_data.result.rate_sorry_extras_txt);
2036                        }
2037                        
2038                        $('div.sorry_option').not(":eq("+(response_data.result.rate_sorry_options - 1)+")").remove();
2039                        $("#ModalAfterLowRateWithTextarea").find('input[name="order_id"]').val(response_data.result.rate_sorry_order);
2040                        $("#ModalAfterLowRateWithTextarea input[name='options']:eq(0)").trigger("click");
2041                    } else{
2042                        console.log(response_data);
2043
2044                        
2045                        if(response_data.result.rate_min_sorry){
2046                            $("#ModalSuccessNewRate .modal-body").append('<p class="text-center">Grab your 10% discount code: <a href="#">'+response_data.result.rate_min_sorry+'</a></p>');
2047                        }else{
2048                            
2049                        }
2050                        
2051                        
2052                        $("#ModalSuccessNewRate").modal('show');
2053                        if(!response_data.result.rate_min_sorry){
2054                            if (typeof ORDER !== 'undefined' && ('41' == '10')) { // if from order details
2055                                setTimeout(function () {
2056                                    location.reload();
2057                                }, 4500);
2058                            }
2059                            
2060                            timeoutModal = setTimeout(function () {
2061                                $("#ModalSuccessNewRate").modal('hide');
2062                                location.reload();
2063                            }, 5000);
2064                        }
2065                    }
2066
2067            }
2068
2069        });
2070    }, form_data);
2071
2072}
2073
2074function rateWriterAjaxSubmit() {
2075    var form = $('#form_order_rate_paper');
2076    var button_submit = $(this);
2077
2078    var from_writers = form.find('[name="id"]').attr('from-writers') == 1 ? true : false;
2079
2080    if (button_submit.hasClass('btn-rate-disabled')) {
2081        if (!$('[name="writer_rate"]').is(':checked')) {
2082            $('[data-writer-rate-error]').show();
2083        }
2084        return false;
2085    }
2086
2087    button_submit.addClass('btn-rate-disabled');
2088
2089    var form_data = {};
2090    $.each(
2091            form.serializeArray(),
2092            function (iter, field) {
2093                form_data[field.name] = field.value;
2094            }
2095    );
2096
2097    if (form.valid()) {
2098        var preloader = $('#page-preloader');
2099        preloader.fadeIn();
2100
2101        callAjax('json', '/orders?ajax=rateWriter', function (data) {
2102            if (from_writers) {
2103//                location.reload();
2104                var order_blocks = $(".tasks-holder .task-wrap[data-order='" + form_data.id + "']");
2105
2106                $.each(
2107                        order_blocks,
2108                        function (iter, order_block) {
2109//                        rating-box
2110                            $(order_block).find('.set-rate-box').detach();
2111                            var writer_id = $(order_block).closest(".item-holder").attr('data-writer');
2112                            var parsed_stars = "";
2113
2114                            for (var i = 1; i <= 5; i++) {
2115                                var is_checked = parseInt(form_data.writer_rate) >= i;
2116
2117                                parsed_stars += '<label ' + (is_checked ? 'class="selected"' : '') + '>' +
2118                                        '<input type="radio" name="rating_' + form_data.id + '" value="' + i + '" title="' + i + ' stars"> ' + i +
2119                                        '</label>';
2120                            }
2121
2122                            $(order_block).find('.rating-box .rating-score').html(form_data.writer_rate + ".0");
2123                            $(order_block).find('.rating-box .rating').html(parsed_stars);
2124
2125                            $(order_block).find('.rating-box').show();
2126
2127                        }
2128                );
2129            } else {
2130                var order_block = $(".order-list-holder .order-item[data-id='" + form_data.id + "']");
2131
2132                order_block.find(".writer-rate-block .writer-rating-order").hide();
2133
2134                if (form_data.writer_rate > 0) {
2135                    order_block.find(".writer-rate-block .writer-rate-data").html(form_data.writer_rate + ".0").show();
2136                    if (parseInt(form_data.writer_rate) === 1) {
2137                        order_block.find(".writer-rate-block .writer-rate-data").addClass('low-rating-item');
2138                    }
2139                }
2140
2141                order_block.find(".writer-rate-block .star-rating-holder").show();
2142            }
2143
2144            preloader.fadeOut('fast', function () {
2145                $("#ModalRateWriter").modal('hide');
2146            });
2147        }, form.serialize(), form);
2148    }
2149    return false;
2150}
2151function rateServiceAjaxSubmit() {
2152    var form = $('#form_order_rate_service');
2153    var button_submit = $(this);
2154
2155    if (button_submit.hasClass('btn-rate-disabled')) {
2156        showMessageOnOurRate();
2157        return false;
2158    }
2159
2160    button_submit.addClass('btn-rate-disabled');
2161
2162    var form_data = {};
2163    $.each(
2164            form.serializeArray(),
2165            function (iter, field) {
2166                form_data[field.name] = field.value;
2167            }
2168    );
2169
2170    if (form.valid()) {
2171        var preloader = $('#page-preloader');
2172        preloader.fadeIn();
2173        callAjax('json', '/orders?ajax=rateService', function (data) {
2174            var order_block = $(".order-list-holder .order-item[data-id='" + form_data.id + "']");
2175
2176            order_block.find(".service-rate-block .team-rating-order").hide();
2177
2178            if (form_data.service_rate > 0) {
2179                order_block.find(".service-rate-block .service-rate-data").html(form_data.service_rate + ".0").show();
2180                if (parseInt(form_data.service_rate) === 1) {
2181                    order_block.find(".service-rate-block .service-rate-data").addClass('low-rating-item');
2182                }
2183            }
2184
2185            if (form_data.recommend_rate > 0) {
2186                order_block.find(".service-rate-block .recommend-rate-data").html(form_data.recommend_rate + ".0").show();
2187                if (parseInt(form_data.recommend_rate) === 1) {
2188                    order_block.find(".service-rate-block .recommend-rate-data").addClass('low-rating-item');
2189                }
2190            }
2191
2192            order_block.find(".service-rate-block .star-rating-holder").show();
2193
2194
2195            preloader.fadeOut('fast', function () {
2196                $("#ModalRate").modal('hide');
2197            });
2198
2199
2200        }, form.serialize(), form);
2201    } else {
2202        showMessageOnOurRate();
2203        button_submit.removeClass('btn-rate-disabled');
2204    }
2205    return false;
2206}
2207
2208function validBonusOnModal() {
2209    let bonus_input = $("#ModalPayNow [name='amount']");
2210    let bonus_error = $('#ModalPayNow .bonus_code_error_place');
2211    let bonus_button = $('#ModalPayNow .apply-bonus');
2212    let priceOrder = parseFloat($('#ModalPayNow [data-price-pay-modal]').text());
2213    bonus_input.removeClass('alert-control');
2214    bonus_button.removeClass('disabled');
2215    bonus_error.text('');
2216    let valid_bonus = true;
2217    let payed_bonus = $.trim(bonus_input.val()) * 1;
2218    if (payed_bonus == '') {
2219        if ($.inArray('41', ['68']) !== -1) {
2220            bonus_input.addClass('alert-control');
2221            bonus_error.text('Type the bonus amount');
2222        }else{
2223            bonus_button.addClass('disabled');
2224        }
2225        valid_bonus = false;
2226    } else if (bonus_input.val() > Math.min(bonus_input.data('maxBonus'), priceOrder)) {
2227        bonus_input.addClass('alert-control');
2228        bonus_error.text('Should not exceed $' + Math.min(bonus_input.data('maxBonus'), priceOrder));
2229        valid_bonus = false;
2230    } else if ((bonus_input.data('maxCanPay') || bonus_input.data('maxCanPay')  == 0) && bonus_input.data('maxCanPay')!=='' && bonus_input.val()*1 > bonus_input.data('maxCanPay')*1) {
2231        bonus_input.addClass('alert-control');
2232        bonus_error.text('Bonuses can cover up to 20% of the price - $' + bonus_input.data('maxCanPay'));
2233        $('.bonus_code_hint').hide();
2234        valid_bonus = false;
2235    }
2236    return valid_bonus;
2237}
2238
2239function disabledPayButtons() {
2240    $('#ModalPayNow .payment_method_box').addClass('disabled-element');
2241}
2242
2243function enabledPayButtons() {
2244    $('#ModalPayNow .payment_method_box').removeClass('disabled-element');
2245}
2246
2247function showMessageOnOurRate() {
2248    if (!$('[name="service_rate"]').is(':checked')) {
2249        $('[data-service-rate-error]').show();
2250    }
2251    if (!$('[name="recommend_rate"]').is(':checked')) {
2252        $('[data-recommend-rate-error]').show();
2253    }
2254}
2255
2256var crypto_rate_data = null;
2257var is_get_crypto_rate_data = false;
2258function handleCryptoPayByPrice(price, type) {
2259    try {
2260        let class_disabled_button_pay = 'disabled-click';
2261        if(type === 'of'){
2262            var select_name = '#_order_form [name="spoynt_method"]';
2263            var pay_system_name = '#_order_form [name="pay_system"][value="53"]';
2264            var $parent_block_button_pay = $(select_name).closest('button');
2265        } else if(type === 'modal'){
2266            var select_name = '#ModalPayNow [name="spoynt_method"]';
2267            var pay_system_name = '.modal_has_no_that_its_cork';
2268            var $parent_block_button_pay = $(select_name).closest('.payment_cryptopay');
2269        } else if(type === 'modal_mobile'){
2270            var select_name = '#ModalPayNow [name="spoynt_method_mobile"]';
2271            var pay_system_name = '.modal_has_no_that_its_cork';
2272            var $parent_block_button_pay = $(select_name).closest('.payment_cryptopay');
2273        } else{
2274            return false;
2275        }
2276
2277        if (crypto_rate_data != null) {
2278
2279            $.each(crypto_rate_data, function () {
2280                let option = $(select_name).find('option[value="' + this.sys_name + '"]');
2281                if (!option.length) {
2282                    return;
2283                }
2284                if (this.min_price > price) {
2285                    if (option.is(':selected')) {
2286                        $(select_name).find('option[value="' + this.sys_name + '"]').prop('selected', false).removeAttr('selected');
2287                        option.prop('selected', false).removeAttr('selected');
2288                        $(select_name).val(null);
2289                        if ($(pay_system_name).is(':checked')) {
2290                            $(pay_system_name).prop('checked', false);
2291                            $parent_block_button_pay.removeClass('btn-payment-active');
2292                        }
2293                        if($parent_block_button_pay.hasClass('btn-payment-active')){
2294                            $parent_block_button_pay.removeClass('btn-payment-active');
2295                        }
2296                    }
2297                    option.prop('disabled', true);
2298                } else {
2299                    option.prop('disabled', false);
2300                }
2301            });
2302
2303            if ($(select_name + ' option:not(:disabled)').length < 1) {
2304                $parent_block_button_pay.addClass(class_disabled_button_pay);
2305            } else if ($(select_name).find('option:selected').length < 1) {
2306                $(select_name + ' option:not(:disabled)').first().prop('selected', true);
2307                $parent_block_button_pay.removeClass(class_disabled_button_pay);
2308            } else{
2309                $parent_block_button_pay.closest('button').removeClass(class_disabled_button_pay);
2310            }
2311
2312            if(typeof $dropdown != 'undefined') {
2313                $(select_name).change().trigger('change')
2314                    .select2('destroy')
2315                    .select2({
2316                        minimumResultsForSearch: -1,
2317                        templateResult: function (o) {
2318                            if (!o.id) {
2319                                return o.text;
2320                            } else {
2321                                return $(`<span><i class="icon-${o.id}"></i> ${o.text}</span>`);
2322                            }
2323                        },
2324                        templateSelection: function (o) {
2325                            if (!o.id) {
2326                                return o.text;
2327                            } else {
2328                                return $(`<span><i class="icon-${o.id}"></i> ${o.text}</span>`);
2329                            }
2330                        },
2331                        allowHtml: true
2332                    }).data('select2').$dropdown.addClass("select2-crypto");
2333            }
2334        } else if (!crypto_rate_data && !is_get_crypto_rate_data) {
2335            crypto_rate_request = true;
2336            $.ajax({
2337                url: '/public_new/crypto_rate.json',
2338                success: function (data) {
2339                    crypto_rate_data = data;
2340                    is_get_crypto_rate_data = false;
2341                    handleCryptoPayByPrice(price, type);
2342                },
2343                error: function(){
2344                    console.log('error file crypto_rate.json');
2345                }
2346            });
2347            return false;
2348        } else {
2349            console.log('wait for');
2350        }
2351    } catch (e) {
2352        console.log('handleCryptoPayByPrice exception', e);
2353    }
2354}
2355
2356
2357var distributionTextSymbols = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM\".,()\\!?: ;\n{}$_'-%@#^&*[]|\“<>/~+=";
2358
2359function delWrongSymbols(el) {
2360    var text = el.val();
2361
2362    for (i = 0; i < text.length; i++) {
2363        if (distributionTextSymbols.indexOf(text[i]) == -1) {
2364            text = text.split(text[i]).join('');
2365        }
2366    }
2367
2368    el.val(text);
2369}
2370
2371
2372
2373function pay_modal(bid, token, bprice, deadline_id, order, add_info) {
2374    //hideAddFieldsCharts();
2375    $('.payed_by_bonuses').hide();
2376    $('#payment_form [name="bid"]').val(bid);
2377    $('#payment_form [name="token"]').val(token);
2378    if (order > 0) {
2379        $('#payment_form [name="moid"]').val(order);
2380    }
2381    $('[data-price-pay-modal]').text(bprice);
2382    $('.summary_pay_extra .summary_pay_item').hide();
2383
2384    if (typeof crypto_pay != 'undefined' && crypto_pay) {
2385        handleCryptoPayByPrice(bprice, 'modal');
2386        handleCryptoPayByPrice(bprice, 'modal_mobile');
2387    }
2388
2389    if (add_info) {
2390        if (add_info.preferred_writer) {
2391            var group_writer = ''
2392            switch (add_info.preferred_writer * 1) {
2393                case 1:
2394                    group_writer = 'Basic';
2395                    break;
2396                case 2:
2397                    group_writer = 'Top';
2398                    break;
2399                case 3:
2400                    group_writer = 'Specific Writer';
2401                    break;
2402                case 4:
2403                    group_writer = 'Advanced';
2404                    break;
2405                default:
2406                    group_writer = 'Basic';
2407                    break;
2408            }
2409            $('.summary_pay_writer').show();
2410            $('[data-name-writer-category]').text(group_writer);
2411            if (add_info.price_detailed.bundles.prefered_writer) {
2412                $('[data-pay-modal-writer-price]').text('$ ' + add_info.price_detailed.bundles.prefered_writer);
2413            }
2414        }
2415        if (add_info.payed && add_info.payed * 1 > 0) {
2416            $('.payed_by_bonuses').show();
2417            $('[data-payed-pay-modal]').text(add_info.payed);
2418        }
2419
2420        if (add_info.type_of_paper) {
2421            $('[data-pay-modal-type-of-paper]').text(add_info.type_of_paper);
2422        }
2423        if (add_info.deadline_date_format) {
2424            $('[data-pay-modal-deadline]').text(add_info.deadline_date_format);
2425        }
2426        if (add_info.price_detailed.base_price_without_extra) {
2427            $('[data-pay-modal-type-of-paper-price]').text(add_info.price_detailed.base_price_without_extra);
2428        }
2429        if (add_info.subject) {
2430            $('[data-pay-modal-subject]').text(add_info.subject);
2431        }
2432        if (add_info.academic_level) {
2433            $('[data-pay-modal-ac-level]').text(add_info.academic_level);
2434        }
2435        if(add_info.pages_num && add_info.pages_num > 0 && add_info.words_num && add_info.words_num > 0){
2436            $('[data-pay-modal-quantity]').text(add_info.words_num + ' words');
2437        } else if (add_info.pages_num && add_info.pages_num > 0) {
2438            if (add_info.pages_num > 1) {
2439                $('[data-pay-modal-quantity]').text(add_info.pages_num + ' pages');
2440            } else {
2441                $('[data-pay-modal-quantity]').text(add_info.pages_num + ' page');
2442            }
2443        } else if (add_info.slides_num && add_info.slides_num > 0) {
2444            if (add_info.slides_num > 1) {
2445                $('[data-pay-modal-quantity]').text(add_info.slides_num + ' slides');
2446            } else {
2447                $('[data-pay-modal-quantity]').text(add_info.slides_num + ' slide');
2448            }
2449        } else if (add_info.questions_num && add_info.questions_num > 0) {
2450            if (add_info.questions_num > 1) {
2451                $('[data-pay-modal-quantity]').text(add_info.questions_num + ' questions');
2452            } else {
2453                $('[data-pay-modal-quantity]').text(add_info.questions_num + ' question');
2454            }
2455        } else if (add_info.problems_num && add_info.problems_num > 0) {
2456            if (add_info.problems_num > 1) {
2457                $('[data-pay-modal-quantity]').text(add_info.problems_num + ' problems');
2458            } else {
2459                $('[data-pay-modal-quantity]').text(add_info.problems_num + ' problem');
2460            }
2461        }
2462        if (add_info.sources_needed && add_info.sources_needed > 0) {
2463            //$('.summary_pay_sources_needed').show();
2464            $('[data-pay-modal-sources_needed]').text(add_info.sources_needed);
2465            /*if (add_info.sources_needed > 1) {
2466                $('[data-pay-modal-sources_needed]').text(add_info.sources_needed + ' sources');
2467            } else {
2468                $('[data-pay-modal-sources_needed]').text(add_info.sources_needed + ' source');
2469            }*/
2470        }else{
2471            $('.summary_pay_sources_needed').hide();
2472        }
2473        if (add_info.charts && add_info.charts > 0) {
2474            //$('.summary_pay_charts').show();
2475            $('[data-pay-modal-charts]').text(add_info.charts);
2476            /*if (add_info.charts > 1) {
2477                $('[data-pay-modal-charts]').text(add_info.charts + ' charts');
2478            } else {
2479                $('[data-pay-modal-charts]').text(add_info.charts + ' chart');
2480            }*/
2481        }else{
2482            $('.summary_pay_charts').hide();
2483        }
2484        if (add_info.simple_language && add_info.simple_language == 1) {
2485            $('.summary_language').show();
2486        }
2487        var text_free = 'Free';
2488        if (add_info.abstract_page && add_info.abstract_page == 1) {
2489            $('.summary_abstract').show();
2490            if (add_info.price_detailed.bundles.abstract) {
2491                $('[data-pay-modal-abstract-price]').text('$ ' + add_info.price_detailed.bundles.abstract);
2492            } else {
2493                $('[data-pay-modal-abstract-price]').text(text_free);
2494            }
2495        }
2496        if (add_info.editors_check && add_info.editors_check == 1) {
2497            $('.summary_editors').show();
2498            if (add_info.price_detailed.bundles.editors_check) {
2499                $('[data-pay-modal-editors-price]').text('$ ' + add_info.price_detailed.bundles.editors_check);
2500            } else {
2501                $('[data-pay-modal-editors-price]').text(text_free);
2502            }
2503        }
2504        if (add_info.sources_used && add_info.sources_used == 1) {
2505            $('.summary_sources').show();
2506            if (add_info.price_detailed.bundles.sources_used) {
2507                $('[data-pay-modal-sources-price]').text('$ ' + add_info.price_detailed.bundles.sources_used);
2508            } else {
2509                $('[data-pay-modal-sources-price]').text(text_free);
2510            }
2511        }
2512        if (add_info.table_of_contents && add_info.table_of_contents == 1) {
2513            $('.summary_table').show();
2514            if (add_info.price_detailed.bundles.table_of_contents) {
2515                $('[data-pay-modal-table-price]').text('$ ' + add_info.price_detailed.bundles.table_of_contents);
2516            } else {
2517                $('[data-pay-modal-table-price]').text(text_free);
2518            }
2519        }
2520        if (add_info.updates_via_sms && add_info.updates_via_sms == 1) {
2521            $('.summary_message').show();
2522            if (add_info.price_detailed.bundles.updates_via_sms) {
2523                $('[data-pay-modal-message-price]').text('$ ' + add_info.price_detailed.bundles.updates_via_sms);
2524            } else {
2525                $('[data-pay-modal-message-price]').text(text_free);
2526            }
2527        }
2528        if (add_info.plagiarism_report && add_info.plagiarism_report == 1) {
2529            $('.summary_plagiarism').show();
2530            if (add_info.price_detailed.bundles.plagiarism) {
2531                $('[data-pay-modal-plagiarism-price]').text('$ ' + add_info.price_detailed.bundles.plagiarism);
2532            } else {
2533                $('[data-pay-modal-plagiarism-price]').text(text_free);
2534            }
2535        }
2536        if (add_info.extended_revision_time && add_info.extended_revision_time == 1) {
2537            $('.summary_extended_revision_time').show();
2538            if (add_info.price_detailed.bundles.extended_revision_time) {
2539                $('[data-pay-modal-extended_revision_time-price]').text('$ ' + add_info.price_detailed.bundles.extended_revision_time);
2540            } else {
2541                $('[data-pay-modal-extended_revision_time-price]').text(text_free);
2542            }
2543        }
2544
2545        if (add_info.plagiarism_report_turnitin && add_info.plagiarism_report_turnitin == 1) {
2546            $('.summary_plagiarism_turnitin').show();
2547            $('[data-pay-modal-turnitin-price]').text('$ 29.99');
2548        }
2549
2550        if (add_info.top_priority && add_info.top_priority == 1) {
2551            $('.summary_vip').show();
2552            if (add_info.price_detailed.bundles.top_priority) {
2553                $('[data-pay-modal-vip-price]').text('$ ' + add_info.price_detailed.bundles.top_priority);
2554            } else {
2555                $('[data-pay-modal-vip-price]').text(text_free);
2556            }
2557        }
2558
2559        if(add_info.how_much_can_pay_by_credit == 0){
2560            $('.payment_bonus').hide();
2561        }if (add_info.how_much_can_pay_by_credit) {
2562            $('.payment_bonus').show();
2563            $('[data-max-can-pay]').data('maxCanPay', add_info.how_much_can_pay_by_credit);
2564            $('[data-max-can-pay]').attr('data-max-can-pay', add_info.how_much_can_pay_by_credit);
2565        }
2566    }
2567
2568    //$('#pay_with_credit_form ._bill-price').text(bprice);
2569    /*if($.inArray(deadline_id,['4138'])>-1){
2570     $('#payment_form .btn-paypal-mod').hide();
2571     $('#payment_form .late_pay_pal').remove();
2572     }else{
2573     $('#payment_form .btn-paypal-mod').show();
2574     $('#payment_form .late_pay_pal').remove();
2575     }
2576     
2577     $('#pay_with_credit_form [name="amount"]').val((bprice <= CURRENT_USER.store_credit) ? bprice : CURRENT_USER.store_credit).trigger("change");
2578     $('#pay_with_credit_form [name="bid"]').val(bid);
2579     if (!$('#pay_with_credit_form').hasClass('collapse')) {
2580     $('#pay_with_credit_form').removeClass('in').addClass('collapse');
2581     $('._submit_pay_with_credit_form').hide();
2582     }
2583     if (order > 0) {
2584     $('#pay_with_credit_form [name="moid"]').val(order);
2585     }*/
2586}
2587
2588function buttonEnable(button_el) {
2589    if (button_el.hasClass('disabled')) {
2590        button_el.removeClass('disabled');
2591        button_el.removeAttr('disabled').css('pointer-events', 'auto');
2592        button_el.find('i.fa').removeClass('fa-spin').removeClass('fa-spinner').addClass(button_el.attr('fa'));
2593        return true;
2594    } else {
2595        return false;
2596    }
2597}
2598
2599function buttonDisable(button_el) {
2600    if (!button_el.hasClass('disabled')) {
2601        button_el.addClass('disabled');
2602        button_el.attr('disabled', 'disabled').css('pointer-events', 'n
2602one');
2603        button_el.find('i.fa').addClass('fa-spin').addClass('fa-spinner');
2604        return true;
2605    } else {
2606        return false;
2607    }
2608}
2609
2610function JSScrollStart(scroll_block, parent_block_opacity, event_listen_block, event_trigger) {
2611    parent_block_opacity.css('opacity', '0');
2612    event_listen_block.on(event_trigger, function () {
2613        scroll_block.jScrollPane();
2614        parent_block_opacity.css('opacity', '1');
2615    });
2616}
2617
2618// Toggle the side navigation
2619function toggleSidebar() {
2620    $("#sidebarToggle").on('click', function (e) {
2621        $(".sidebar").toggleClass("toggled");
2622        $('.sidebar-brand-desk').toggleClass("toggled");
2623        $('.sidebar-brand-mob').toggleClass("toggled");
2624        $('.topbar-btn-balance').toggleClass("toggled");
2625    });
2626    $("#sidebarToggleTop").on('click', function (e) {
2627        $("body").toggleClass("sidebar-toggled");
2628    });
2629    $("#sidebarToggleMob").on('click', function (e) {
2630        $("body").toggleClass("sidebar-toggled");
2631    });
2632}
2633
2634//Hide Sidebar tablet/mobile
2635function hideSidebar() {
2636    var windowWidth = $(window).width();
2637    if (windowWidth > 767 && windowWidth < 992) {
2638        $(".sidebar").addClass("toggled");
2639        $('.sidebar-brand-desk').addClass("toggled");
2640        $('.sidebar-brand-mob').removeClass("toggled");
2641        $('.topbar-btn-balance').removeClass("toggled");
2642    } else {
2643        $(".sidebar").removeClass("toggled");
2644        $('.sidebar-brand-desk').removeClass("toggled");
2645        $('.sidebar-brand-mob').addClass("toggled");
2646        $('.topbar-btn-balance').addClass("toggled");
2647    }
2648}
2649
2650
2651
2652//Contact Button
2653function ContactsButton() {
2654    if ($(".partner-content").length == 0) {
2655        buildContactButton();
2656    }
2657}
2658function buildContactButton() {
2659    if ('41' == '10') {
2660        button = '<div id="lottie-wrapper">';
2661        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2662                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2663                '<div class="messager-icon"><a target="_blank" href="https://m.me/830593933647283">Messenger</a></div>' +
2664                '<div class="skype-icon"><a href="skype:paperhelp.org?call">Skype</a></div>' +
2665                '<div class="email-icon"><a href="mailto:[email protected] ">Email</a></div>' +
2666                '<div class="phone-icon-usa"><a href="tel:+1-888-318-0063">1-888-318-0063</a></div>' +
2667                '<div class="phone-icon-uk"><a href="tel:+44-203-608-5285">44-203-608-5285</a></div>' +
2668                '<div class="phone-icon-au"><a href="tel:+61-283-550-180">61-283-550-180</a></div>' +
2669                '</div>';
2670        button += '<div id="lottie-block"><div id="contactButton">';
2671        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2672        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2673
2674        button += '</div></div></div>';
2675        $(button).appendTo("body");
2676    } else if ('41' == '6') {
2677        button = '<div id="lottie-wrapper">';
2678        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2679                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2680                '<div class="messager-icon"><a target="_blank" href="http://m.me/writemypapers.org">Messenger</a></div>' +
2681                '<div class="email-icon"><a href="mailto:[email protected] ">Email</a></div>' +
2682                '<div class="phone-icon-usa"><a href="tel:+1-800-380-2909">1-800-380-2909</a></div>' +
2683                '<div class="phone-icon-uk"><a href="tel:+44-800-086-9055">44-800-086-9055</a></div>' +
2684                '<div class="phone-icon-au"><a href="tel:+61-386-477-477">61-386-477-477</a></div>' +
2685                '</div>';
2686        button += '<div id="lottie-block"><div id="contactButton">';
2687        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2688        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2689
2690        button += '</div></div></div>';
2691        $(button).appendTo("body");
2692    } else if ('41' == '11') {
2693        button = '<div id="lottie-wrapper">';
2694        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2695                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2696                '<div class="email-icon">' +
2697                '<a onclick="copyEmail(this)" data-mail="[email protected]" role="button" class="copy_mail_btn">Email' +
2698                '<span class="copy_text"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_2_169)"><path d="M13.7344 15.4922H5.76563C4.79627 15.4922 4.00781 14.7037 4.00781 13.7344V5.76563C4.00781 4.79627 4.79627 4.00781 5.76563 4.00781H13.7344C14.7037 4.00781 15.4922 4.79627 15.4922 5.76563V13.7344C15.4922 14.7037 14.7037 15.4922 13.7344 15.4922ZM5.76563 5.17969C5.44254 5.17969 5.17969 5.44254 5.17969 5.76563V13.7344C5.17969 14.0575 5.44254 14.3203 5.76563 14.3203H13.7344C14.0575 14.3203 14.3203 14.0575 14.3203 13.7344V5.76563C14.3203 5.44254 14.0575 5.17969 13.7344 5.17969H5.76563ZM2.83594 10.8047H2.25C1.92691 10.8047 1.66406 10.5418 1.66406 10.2188V2.25C1.66406 1.92691 1.92691 1.66406 2.25 1.66406H10.2188C10.5418 1.66406 10.8047 1.92691 10.8047 2.25V2.80664H11.9766V2.25C11.9766 1.28064 11.1881 0.492188 10.2188 0.492188H2.25C1.28064 0.492188 0.492188 1.28064 0.492188 2.25V10.2188C0.492188 11.1881 1.28064 11.9766 2.25 11.9766H2.83594V10.8047Z" fill="#454545"></path></g><defs><clipPath id="clip0_2_169"><rect width="16" height="16" fill="white"></rect></clipPath></defs></svg></span>' +
2699                '<span class="status">Copied!</span>' +
2700                '</a>' +
2701                '</div>' +
2702                '<div class="phone-icon"><a href="tel:+1-888-581-7887">1-888-581-7887</a></div>' +
2703                '</div>';
2704        button += '<div id="lottie-block"><div id="contactButton">';
2705        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2706        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2707
2708        button += '</div></div></div>';
2709        $(button).appendTo("body");
2710    } else if ('41' == '72') {
2711        button = '<div id="lottie-wrapper">';
2712        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2713                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2714                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2715                '<div class="phone-icon"><a href="tel:+1-888-631-2757">1-888-631-2757</a></div>' +
2716                '</div>';
2717        button += '<div id="lottie-block"><div id="contactButton">';
2718        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2719        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2720
2721        button += '</div></div></div>';
2722        $(button).appendTo("body");
2723    } else if ('41' == '18') {
2724        button = '<div id="lottie-wrapper">';
2725        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2726                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2727                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2728                '<div class="phone-icon"><a href="tel:+1-877-211-8477">1-877-211-8477</a></div>' +
2729                '</div>';
2730        button += '<div id="lottie-block"><div id="contactButton">';
2731        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2732        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2733
2734        button += '</div></div></div>';
2735        $(button).appendTo("body");
2736    } else if ('41' == '36') {
2737        button = '<div id="lottie-wrapper">';
2738        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2739                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2740                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2741                '<div class="phone-icon"><a href="tel:+1-888-880-8504">1-888-880-8504</a></div>' +
2742                '</div>';
2743        button += '<div id="lottie-block"><div id="contactButton">';
2744        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2745        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2746
2747        button += '</div></div></div>';
2748        $(button).appendTo("body");
2749    } else if ('41' == '4') {
2750        button = '<div id="lottie-wrapper">';
2751        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2752                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2753                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2754                '<div class="phone-icon-usa"><a href="tel:+1-877-282-9925">1-877-282-9925</a></div>' +
2755                '<div class="phone-icon-uk"><a href="tel:+44-800-098-8093">44-800-098-8093</a></div>' +
2756                '<div class="phone-icon-au"><a href="tel:+61-283-550-191">61-283-550-191</a></div>' +
2757                '</div>';
2758        button += '<div id="lottie-block"><div id="contactButton">';
2759        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2760        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2761
2762        button += '</div></div></div>';
2763        $(button).appendTo("body");
2764    } else if ('41' == '14') {
2765        button = '<div id="lottie-wrapper">';
2766        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2767                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2768                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2769                '<div class="phone-icon-usa"><a href="tel:+1-800-878-3917">1-800-878-3917</a></div>' +
2770                '<div class="phone-icon-uk"><a href="tel:+44-203-51-416-85">44-203-51-416-85</a></div>' +
2771                '</div>';
2772        button += '<div id="lottie-block"><div id="contactButton">';
2773        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2774        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2775
2776        button += '</div></div></div>';
2777        $(button).appendTo("body");
2778    } else if ('41' == '41') {
2779        button = '<div id="lottie-wrapper">';
2780        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2781                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2782                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2783                '<div class="phone-icon-usa"><a href="tel:+1-888-240-62-70">1-888-240-62-70</a></div>' +
2784                '</div>';
2785        button += '<div id="lottie-block"><div id="contactButton">';
2786        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2787        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2788
2789        button += '</div></div></div>';
2790        $(button).appendTo("body");
2791    } else if ('41' == '55') {
2792        button = '<div id="lottie-wrapper">';
2793        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2794                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2795                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2796                '<div class="phone-icon-usa"><a href="tel:+1-888-542-5836">1-888-542-5836</a></div>' +
2797                '</div>';
2798        button += '<div id="lottie-block"><div id="contactButton">';
2799        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2800        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2801
2802        button += '</div></div></div>';
2803        $(button).appendTo("body");
2804    } else if ('41' == '62') {
2805        button = '<div id="lottie-wrapper">';
2806        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2807                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2808                '<div class="email-icon"><a href="mailto:buyessayfriend.com">Email</a></div>' +
2809                '<div class="phone-icon-usa"><a href="tel:+1-888-382-2732">1-888-382-2732</a></div>' +
2810                '</div>';
2811        button += '<div id="lottie-block"><div id="contactButton">';
2812        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2813        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2814
2815        button += '</div></div></div>';
2816        $(button).appendTo("body");
2817    } else if ('41' == '47') {
2818        button = '<div id="lottie-wrapper">';
2819        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2820                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2821                '<div class="email-icon"><a href="mailto:darwinessay.com">Email</a></div>' +
2822                '<div class="phone-icon-usa"><a href="tel:+1-314-332-1075">1-314-332-1075</a></div>' +
2823                '<div class="phone-icon-uk"><a href="tel:+44-203-80-820-49">44-203-80-820-49</a></div>' +
2824                '</div>';
2825        button += '<div id="lottie-block"><div id="contactButton">';
2826        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2827        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2828
2829        button += '</div></div></div>';
2830        $(button).appendTo("body");
2831    } else if ('41' == '94') {
2832        button = '<div id="lottie-wrapper" class="d-none">';
2833        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2834                '<div class="chat-icon" style="cursor: pointer"><a onclick="toggleUp()" style="cursor: pointer" href="javascript:void(Tawk_API.toggle())">Instant Chat</a></div>' +
2835                '<div class="email-icon"><a href="mailto:[email protected]">Email</a></div>' +
2836                '</div>';
2837        button += '<div id="lottie-block"><div id="contactButton">';
2838        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2839        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2840
2841        button += '</div></div></div>';
2842        $(button).appendTo("body");
2843    } else if ('41' == '7') {
2844        button = '<div id="lottie-wrapper">';
2845        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2846            '<div class="chat-icon" style="cursor: pointer">
2846<a onclick="toggleUp()" style="cursor: pointer" ';
2847
2848        button += 'href="javascript:void(Tawk_API.toggle())"';
2849
2850        button += '>Instant Chat</a></div>' +
2851            '<div class="email-icon">' +
2852            '<a onclick="copyEmail(this)" data-mail="[email protected]" role="button" class="copy_mail_btn">Email' +
2853            '<span class="copy_text">' +
2854            '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_1_90)"><path d="M22.1485 1.85129C19.6801 -0.617098 15.6643 -0.617098 13.1958 1.85129L9.5176 5.52953C8.87574 6.17139 8.35566 6.99029 8.02046 7.99009C8.01483 7.99196 8.00939 7.99482 8.00377 7.9967C7.24139 10.2902 7.8196 12.7841 9.5176 14.4821C10.0249 14.9895 10.6218 15.4072 11.2683 15.7156L11.5071 15.4769C12.3327 14.6512 12.3327 13.3183 11.5071 12.4926C10.1343 11.1199 10.1343 8.89164 11.5071 7.51895L15.1853 3.84071C16.558 2.46798 18.7862 2.46798 20.159 3.84071C21.5317 5.21345 21.5317 7.44165 20.159 8.81439L17.3661 11.6073C17.7385 12.7588 17.8174 13.9781 17.6371 15.165C17.9313 14.9599 18.2143 14.738 18.4702 14.4821L22.1484 10.8039C24.6169 8.33551 24.6169 4.31964 22.1485 1.85129Z" fill="#81BF60"/><path d="M14.4913 9.50849C13.984 9.00116 13.3872 8.58337 12.7307 8.28491L12.5019 8.51376C11.6762 9.33937 11.6762 10.6723 12.5019 11.498C13.8746 12.8707 13.8746 15.099 12.5019 16.4717C11.3399 17.6336 9.92232 19.0514 8.81448 20.1593C7.44175 21.532 5.21354 21.532 3.84081 20.1593C2.46807 18.7866 2.46807 16.5584 3.84081 15.1856L6.64286 12.3833C6.27043 11.2318 6.19159 10.0124 6.37182 8.82562C6.07764 9.03074 5.79461 9.2526 5.53867 9.50849L1.85129 13.1961C-0.617098 15.6645 -0.617098 19.6803 1.85129 22.1488C4.31968 24.6172 8.33551 24.6171 10.8039 22.1488L14.4913 18.4611C15.1332 17.8192 15.6533 17.0004 15.9885 16.0006C15.9941 15.9987 15.9995 15.9959 16.0052 15.994C16.7675 13.7005 16.1893 11.2065 14.4913 9.50849Z" fill="#81BF60"/><path d="M20.4598 19.4558L19.4651 18.4611C19.1902 18.1862 18.7452 18.1862 18.4704 18.4611C18.1954 18.736 18.1954 19.1809 18.4704 19.4558L19.4651 20.4505C19.74 20.7255 20.1849 20.7255 20.4598 20.4505C20.7347 20.1756 20.7347 19.7307 20.4598 19.4558Z" fill="#81BF60"/><path d="M5.53897 4.53467L4.54419 3.53993C4.26927 3.26501 3.82433 3.26501 3.54945 3.53993C3.27453 3.81485 3.27453 4.25979 3.54945 4.53467L4.54419 5.5294C4.81911 5.80432 5.26405 5.80432 5.53897 5.5294C5.81389 5.25448 5.81389 4.80954 5.53897 4.53467Z" fill="#81BF60"/><path d="M23.0572 14.2286L21.6982 13.8642C21.3227 13.7637 20.9371 13.9862 20.8365 14.3616C20.7359 14.7394 20.961 15.1235 21.3339 15.2233L22.6929 15.5876C23.0684 15.6882 23.4541 15.4657 23.5546 15.0902C23.6541 14.7147 23.4326 14.3272 23.0572 14.2286Z" fill="#81BF60"/><path d="M2.6749 8.76738L1.31586 8.40306C0.940388 8.30252 0.554748 8.52499 0.454201 8.90045C0.35356 9.27813 0.578607 9.66227 0.951591 9.76211L2.31064 10.1264C2.68611 10.227 3.07175 10.0045 3.17229 9.62903C3.27233 9.2531 3.04892 8.86544 2.6749 8.76738Z" fill="#81BF60"/><path d="M15.5971 22.6839L15.2328 21.3249C15.1318 20.9479 14.7466 20.7269 14.3712 20.8275C13.9957 20.928 13.7732 21.3137 13.8738 21.6891L14.2381 23.0482C14.3379 23.4212 14.7221 23.6462 15.0997 23.5456C15.4752 23.445 15.6976 23.0594 15.5971 22.6839Z" fill="#81BF60"/><path d="M10.1357 2.3015L9.77139 0.94245C9.67131 0.565528 9.2852 0.345497 8.90973 0.44506C8.53426 0.545607 8.31179 0.931247 8.41234 1.30672L8.77665 2.66576C8.80965 2.78914 8.87382 2.89601 8.95829 2.98053C9.13023 3.15247 9.38668 3.23018 9.63826 3.16315C10.0138 3.06265 10.2362 2.67697 10.1357 2.3015Z" fill="#81BF60"/></g><defs><clipPath id="clip0_1_90"><rect width="24" height="24" fill="white"/></clipPath></defs></svg>' +
2855            '</span>' +
2856            '<span class="status">Copied!</span>' +
2857            '</a>';
2858        button += '</div>' +
2859            '</div>';
2860        button += '<div id="lottie-block"><div id="contactButton">';
2861        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2862        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2863
2864        button += '</div></div></div>';
2865        $(button).appendTo("body");
2866
2867
2868    } else {
2869        button = '<div id="lottie-wrapper">';
2870        button += '<div id="contacts-popup" class="shadow contact-button-in" role="button">' +
2871                '<div class="chat-icon" style="cursor: pointer">
2871<a onclick="toggleUp()" style="cursor: pointer" ';
2872
2873        button += 'href="javascript:void(Tawk_API.toggle())"';
2874
2875        button += '>Instant Chat</a></div>' +
2876            '<div class="email-icon"><a href="mailto:support@';
2877
2878        button += 'last-minute-essay.com';
2879        button += '">Email</a></div>' +
2880                '</div>';
2881        button += '<div id="lottie-block"><div id="contactButton">';
2882        button += '<a id="shadow-element" class="contact-button shadow"></a>';
2883        button += '<a id="contacts-btn" style="cursor: pointer" onclick="toggleUp(this)" class="main-button contact-button contact-button-in" role="button"></a>';
2884
2885        button += '</div></div></div>';
2886        $(button).appendTo("body");
2887    }
2888
2889    if ($('[data-tab-files]').hasClass('current')) {
2890        $("#lottie-wrapper").addClass('lottie-wrapper-files');
2891    } else {
2892        $("#lottie-wrapper").removeClass('lottie-wrapper-files');
2893    }
2894
2895}
2896function copyEmail(link) {
2897    event.preventDefault();
2898
2899    var targetMail = $(link).data('mail');
2900    var statusElement = $(link).find('.status');
2901
2902    if (targetMail.length) {
2903        navigator.clipboard.writeText(targetMail);
2904
2905        statusElement.addClass('active');
2906
2907        setTimeout(function() {
2908            statusElement.removeClass('active');
2909        }, 1500);
2910    } else {
2911        console.error('Element with id ' + targetMail + ' not found');
2912    }
2913}
2914
2915function toggleUp() {
2916    $(".contact-button-in").toggleClass("up");
2917    $(".menu-button").toggleClass("contact-button-out");
2918}
2919//Contact Button END
2920
2921function progressStatus() {
2922    var progressStatus = $('.progress-line').find('.is-active').text();
2923    $('.progress-line-status').text(progressStatus);
2924}
2925
2926function customRadio() {
2927    $('.checkbox-v input[type="checkbox"]').on('click touchstart', function () {
2928        $('.checkbox-v input[type="checkbox"]').each(function () {
2929            $(this).parents(".checkbox-v").removeClass("check-active");
2930            if ($(this).is(":checked")) {
2931                $(this).parents(".checkbox-v").addClass("check-active");
2932            }
2933        });
2934    });
2935}
2936
2937function counterMessagesUpdate() {
2938    console.log('function counterMessagesUpdate');
2939    
2940    if (firstMessageUpdate) {
2941        var lastMsgTime = $('#last_msg_time').val();
2942    } else {
2943        var lastMsgTime = $('#last_msg_time').val();
2944    }    
2945    callAjax("json", "/messages?ajax=GetCountNewMessages", function (response) {
2946        if (response.new_messages.result) {
2947            if (firstMessageUpdate) {
2948                firstMessageUpdate = false;
2949            }
2950            $('#last_msg_time').val(response.new_messages.result.last_message_time);
2951            console.log('response count messages all', response.new_messages.result.count_new_messages_all);
2952            addSidebarMessageCounter(response.new_messages.result.count_new_messages_all);
2953            if (TITLE_CTRL == 'orders') {
2954                $.each(response.new_messages.result.messages, function (key, message) {
2955                    var messCounterOrder = $('.order-item[data-id="' + message.order_id + '"]').find('.messages-box .alert-new');
2956                    if (messCounterOrder.is(':visible')) {
2957                        var oldCount = parseInt(messCounterOrder.html());
2958                        messCounterOrder.html(oldCount + parseInt(message.count_messages));
2959                    } else {
2960                        messCounterOrder.html(message.count_messages);
2961                        messCounterOrder.show();
2962                    }
2963                })
2964                $.each(response.new_messages.result.files, function (key, file) {
2965                    var messCounterOrder = $('.order-item[data-id="' + file.order_id + '"]').find('.files-box .alert-new');
2966                    if (messCounterOrder.is(':visible')) {
2967                        var oldCount = parseInt(messCounterOrder.html());
2968                        messCounterOrder.html(oldCount + parseInt(file.count_messages));
2969                    } else {
2970                        messCounterOrder.html(file.count_messages);
2971                        messCounterOrder.show();
2972                    }
2973                })
2974            };
2975        }
2976    },{date_from: lastMsgTime});    
2977    
2978    /*if (messages_update_interval) {
2979        clearInterval(messages_update_interval);
2980    }
2981    messages_update_interval = setInterval(function () {
2982        if (firstMessageUpdate) {
2983            var lastMsgTime = $('#last_msg_time').val();
2984        } else {
2985            var lastMsgTime = $('#last_msg_time').val();
2986        }
2987
2988        callAjax("json", "/messages?ajax=GetCountNewMessages", function (response) {
2989            if (response.new_messages.result) {
2990                if (firstMessageUpdate) {
2991                    firstMessageUpdate = false;
2992                }
2993                $('#last_msg_time').val(response.new_messages.result.last_message_time);
2994                console.log('response count messages all', response.new_messages.result.count_new_messages_all);
2995                addSidebarMessageCounter(response.new_messages.result.count_new_messages_all);
2996                if (TITLE_CTRL == 'orders') {
2997                    $.each(response.new_messages.result.messages, function (key, message) {
2998                        var messCounterOrder = $('.order-item[data-id="' + message.order_id + '"]').find('.messages-box .alert-new');
2999                        if (messCounterOrder.is(':visible')) {
3000                            var oldCount = parseInt(messCounterOrder.html());
3001                            messCounterOrder.html(oldCount + parseInt(message.count_messages));
3002                        } else {
3003                            messCounterOrder.html(message.count_messages);
3004                            messCounterOrder.show();
3005                        }
3006                    })
3007                    $.each(response.new_messages.result.files, function (key, file) {
3008                        var messCounterOrder = $('.order-item[data-id="' + file.order_id + '"]').find('.files-box .alert-new');
3009                        if (messCounterOrder.is(':visible')) {
3010                            var oldCount = parseInt(messCounterOrder.html());
3011                            messCounterOrder.html(oldCount + parseInt(file.count_messages));
3012                        } else {
3013                            messCounterOrder.html(file.count_messages);
3014                            messCounterOrder.show();
3015                        }
3016                    })
3017                }
3018                ;
3019
3020            }
3021
3022        },
3023                {date_from: lastMsgTime});
3024
3025    }, 20000)*/
3026}
3027
3028function addSidebarMessageCounter(count_messages) {
3029    var sidebar_counter_unread = $('.nav-link[href="/messages"]').parent().find('.counter');
3030    var sidebar_counter_orders = $('.nav-link[href="/orders"]').parent().find('.counter');
3031    if (sidebar_counter_unread.length > 0) {
3032        var new_count_unread = parseInt(sidebar_counter_unread.html()) + count_messages;
3033        sidebar_counter_unread.html(new_count_unread)
3034    } else {
3035        $('.nav-link[href="/messages"] .nav-link-item').append('<span class="counter">' + count_messages + '</span>')
3036    }
3037
3038    if (sidebar_counter_orders.length > 0) {
3039        var new_count_unread = parseInt(sidebar_counter_orders.html()) + count_messages;
3040        sidebar_counter_orders.html(new_count_unread)
3041    } else {
3042        $('.nav-link[href="/orders"] .nav-link-item').append('<span class="counter">' + count_messages + '</span>')
3043    }
3044}
3045
3046
3047// Summary Block
3048function showExtras() {
3049    var count = 2;
3050
3051    var max_show_extras = 4;
3052    if ($('#exstras-wrapper [data-block-extra]').length > max_show_extras) {
3053        $('#exstras-wrapper [data-block-extra]').each(function (index) {
3054            if (index + 1 > max_show_extras) {
3055                $(this).addClass('hidden d-none');
3056            }
3057        });
3058        $('.link-extras__show-more').removeClass('d-none');
3059        $('.link-extras__show-more').on('click', function () {
3060            if ($(this).text() == 'Show more') {
3061                $(this).text('Show less');
3062            } else {
3063                $(this).text('Show more');
3064            }
3065            $('.order-summary__wrapper .checkbox-v.hidden').each(function () {
3066                $(this).toggleClass('d-none');
3067            });
3068        });
3069    }
3070
3071
3072    if ($('.extras-selected-top-desk').hasClass('shown')) {
3073        $('.extras-selected-counter-block').show();
3074    } else {
3075        $('.extras-selected-counter-block').hide();
3076    }
3077
3078    $('.extras-selected-top-desk').on('click', function () {
3079        $(this).toggleClass('shown');
3080        $('.extras-selected-items').slideToggle();
3081        if ($('.extras-selected-top-desk').hasClass('shown')) {
3082            $('.extras-selected-counter-block').show();
3083        } else {
3084            $('.extras-selected-counter-block').hide();
3085        }
3086
3087
3088    });
3089
3090    $('.extras-selected-top-desk, #add_extra_buy .checkbox-v').on('click', function () {
3091        var count_selected = 0;
3092        $('.extras-selected-items .extras__wrapper--top').each(function (index, element) {
3093            //if ($(this).is(':visible')) {
3094            count_selected++;
3095            //}       
3096        });
3097        $('#extras-selected-counter').text(count_selected - 1);
3098    });
3099
3100
3101    $('.extras-selected-arrow').on('click', function () {
3102        $(this).toggleClass('shown');
3103        $('.extras-selected-items').slideToggle();
3104        $('.extras-selected-items .extras-selected-top').slideToggle();
3105    });
3106
3107    $('.extras-selected-items .extras-selected-top').on('click', function () {
3108        $('.extras-selected-arrow').toggleClass('shown');
3109        $('.extras-selected-items').slideToggle();
3110        $('.extras-selected-items .extras-selected-top').slideToggle();
3111    });
3112
3113    $('.extras-selected-items .extras__wrapper--top').each(function (index, element) {
3114        count = index + 1;
3115    });
3116
3117    $('.extras__wrapper--top .extras__delete').on('click', function () {
3118        $(this).closest('.extras__wrapper--top').remove();
3119    });
3120
3121    $('#extras-selected-counter').text(count);
3122
3123}
3124
3125function bannerItem() {
3126    $('.banner-item').find('.close-banner').on('click', function () {
3127        $(this).closest('.banner-item').fadeOut('slow');
3128    })
3129}
3130
3131function orderTitle() {
3132    $('.order-title').each(function () {
3133        var orderHeight = $(this).find('span').height();
3134        var orderTitle = $(this).find('span').text();
3135        if (orderHeight > 60) {
3136            $(this).attr('data-toggle', 'tooltip').attr('title', orderTitle);
3137            $('[data-toggle="tooltip"]').tooltip();
3138        } else {
3139            $(this).removeAttr('title').removeAttr('data-toggle').removeAttr('data-original-title');
3140        }
3141    });
3142}
3143
3144function customSelect() {
3145    $(".custom-select").select2({
3146        minimumResultsForSearch: -1,
3147        containerCssClass: 'custom-select-wrapper',
3148        dropdownCssClass: 'custom-select-wrapper'
3149    });
3150
3151    $(".custom-select-1").select2({
3152        minimumResultsForSearch: -1,
3153        containerCssClass: 'custom-select-wrapper',
3154        dropdownCssClass: 'custom-select-wrapper'
3155    });
3156
3157    $(".custom-select-2").select2({
3158        minimumResultsForSearch: -1,
3159        containerCssClass: 'custom-select-wrapper',
3160        dropdownCssClass: 'custom-select-wrapper'
3161    });
3162
3163    //$('.custom-select option:eq(1)').prop('selected',true)
3164
3165    $("#actions").select2({
3166        minimumResultsForSearch: -1,
3167        placeholder: "Actions",
3168        dropdownCssClass: 'actions-dropdown',
3169        templateResult: function (data, container) {
3170            if (data.element) {
3171                $(container).addClass($(data.element).attr("class"));
3172            }
3173            return data.text;
3174        }
3175    });
3176
3177    $(".reason-for-revision-select").select2({
3178        minimumResultsForSearch: -1,
3179        placeholder: "Reason for revision"
3180    });
3181
3182    $(".custom-select-multiple").select2({
3183        minimumResultsForSearch: -1,
3184        containerCssClass: 'custom-select-multiple',
3185        placeholder: "Reason for revision"
3186    });
3187
3188}
3189
3190function datePicker() {
3191    if (new_datetimepicker) {
3192        if ($('.datetimepicker').length) {
3193            $('.datetimepicker').each(function () {
3194                var min_date = $(this).attr('data-x-value');
3195                if (!min_date || ((typeof min_date == 'string') && min_date.trim() == '')) {
3196                    min_date = new Date();
3197                }
3198                $(this).datetimepicker({
3199                    ignoreReadonly: true,
3200                    minDate: min_date,
3201                    defaultDate: min_date
3202                });
3203            });
3204        }
3205    } else {
3206        $('.datetimepicker').datetimepicker({
3207            defaultDate: new Date()
3208        });
3209    }
3210}
3211
3212function favoriteWriter() {
3213    $('.favourite-writer').on('click', function () {
3214        $(this).toggleClass('active');
3215        if ($(this).hasClass('active')) {
3216            $(this).attr('data-original-title', 'Remove writer from favorites');
3217        } else {
3218            $(this).attr('data-original-title', 'Add writer to Favorites');
3219        }
3220    });
3221
3222    $('.blacklist-writer').on('click', function () {
3223        $(this).toggleClass('active');
3224        if ($(this).hasClass('active')) {
3225            $(this).attr('data-original-title', 'Remove writer from blacklist');
3226        } else {
3227            $(this).attr('data-original-title', 'Add writer to blacklist');
3228        }
3229    });
3230}
3231
3232function CustomScroll() {
3233    var windowWidth = $(window).width();
3234    var element = $('#exstras-wrapper .scroll-pane').jScrollPane();
3235    var api = element.data('jsp');
3236    if (windowWidth > 767 && windowWidth < 1440) {
3237        $('#exstras-wrapper').addClass('scroll-pane');
3238        $(function () {
3239            $('.scroll-pane').jScrollPane();
3240        });
3241    } else {
3242        try {
3243            api.destroy();
3244        } catch (err) {
3245            console.log('api is destroyed');
3246        }
3247        $('#exstras-wrapper').removeClass('scroll-pane');
3248    }
3249}
3250
3251//modal start
3252function customModal(content, title, data_unique) {
3253    title = title || 'Message';
3254    data_unique = data_unique || 'custom_message';
3255    $('#ModalCustomMessage').attr('data_unique', data_unique);
3256    $('#ModalCustomMessageTitle').html(title);
3257    $('#ModalCustomMessageContent').html(content);
3258    $('#ModalCustomMessage').modal('show');
3259
3260}
3261$(document).ready(function () {//for customModal function
3262    $('#ModalCustomMessage').on('hide.bs.modal', function () {
3263        $(this).find('#ModalCustomMessageContent').val('');
3264        $(this).find('#ModalCustomMessageTitle').val('');
3265    });
3266});
3267
3268//modal end
3269
3270function checkAutoApprovedOrdersForRate() {
3271
3272    if (!rate_order_after_auto_approve) {
3273        return false;
3274    }
3275
3276    if ($.inArray(TITLE_CTRL, ['order', 'auth', 'password_restore']) !== -1
3277            || (TITLE_CTRL == 'orders' && getParameterByNameInMain('subcom'))) {
3278        return false;
3279    }
3280
3281    let checkPeriod = 3600 * 3;
3282    
3283    let timeCookie = new Date();
3284    timeCookie.setTime(timeCookie.getTime() + (checkPeriod * 1000));  
3285    
3286    if ($.cookie('last_check_auto_approved_orders') && $.cookie('last_check_auto_approved_orders') > Math.floor(timeCookie.getTime() / 1000)) {
3287        return false;
3288    }
3289
3290    $.cookie('last_check_auto_approved_orders', Math.floor(timeCookie.getTime() / 1000), {expires: timeCookie, path: '/'});
3291
3292    callAjax('json', '/orders?ajax=checkAutoApprovedOrdersForRate', function (data) {
3293        if (typeof data.status != 'undefined' && data.status) {
3294
3295            $('#ModalRatePaper [name="id"]').val(data.order_id);
3296
3297            $('#ModalRatePaper').find('[data-add-writer-blacklist]')
3298                    .attr('data-add-writer-blacklist', data.writer_id)
3299                    .attr('data-client-id', data.client_id)
3300                    .attr('data-order-id', data.order_id);
3301            $('#ModalRatePaper [name="auto_approve_order"]')
3302
3303                    .val('1')
3304                    .attr('data-order', data.order_id)
3305                    .attr('data-writer', data.writer_id)
3306                    .attr('data-time-ddl-left', data.deadline_left)
3307                    .attr('data-spacing', data.spacing)
3308                    .attr('data-pages', data.pages)
3309                    .attr('data-vip', data.vip)
3310                    .attr('data-type-of-paper-id', data.type_of_paper)
3311                    .attr('data-type-of-paper-id', data.type_of_paper)
3312                    .attr('data-except-pages', data.except_pages);
3313
3314            $('#ModalRatePaper .modal-title').html(
3315                    $('#ModalRatePaper .modal-title').html()
3316                    + (' (<a target="_blank" class="modal-rate-link-order" href="/orders?subcom=detailed&id=' + data.order_id + '">' + data.order_id + '</a>)')
3317                    );
3318
3319            $("#ModalRatePaper").on('hidden.bs.modal', function (e) {
3320                $('#ModalRatePaper .modal-title .modal-rate-link-order').remove();//popravil oshibky
3321                $('#ModalRatePaper [name="auto_approve_order"]').attr('val', '');
3322            });
3323
3324            prepareWriterRateModal.call($('#ModalRatePaper [name="auto_approve_order"]').get(0));
3325
3326            $("#ModalRatePaper").modal('show');
3327
3328            (function () {
3329                let order_id = $('#ModalRatePaper [name="id"]').val();
3330                if (order_id != '') {
3331                    callAjax('json', '/orders?ajax=modalRatePaperShown', function () {}, {order_id: order_id});
3332                }
3333            })();
3334        }
3335    });
3336}
3337
3338function showSpinner() {
3339    $('.btn-spinner-show').on('click', function () {
3340        $('.circle-preloader-wrap').fadeIn();
3341    });
3342}
3343
3344function Tabs() {
3345    $('ul.tabs li').click(function () {
3346        var tab_id = $(this).attr('data-tab');
3347        $('ul.tabs li').removeClass('current');
3348        $('.tab-content').removeClass('current');
3349        $(this).addClass('current');
3350        $("#" + tab_id).addClass('current');
3351        scroll_loading_tab = tab_id;
3352        customSelect()
3353    });
3354}
3355
3356function showRewards() {
3357    var counter_item = 0;
3358    $('.game-reward .reward__item').each(function () {
3359        //$(this).hide(); 
3360
3361        if ($(this).hasClass('active')) {
3362            $(this).show();
3363            counter_item++;
3364        }
3365    });
3366    if (counter_item != 0) {
3367        $('.no-item').hide();
3368    } else {
3369        $('.no-item').show();
3370    }
3371    $('.rewards-cards__wrapper .tab-link').click(function () {
3372        $('.rewards-cards__wrapper .tab-link').each(function () {
3373            $(this).removeClass('active');
3374        });
3375        $(this).addClass('active');
3376        var rew_id = $(this).attr('data-rew');
3377        var counter = 0;
3378        $('.game-reward .reward__item').each(function () {
3379            $(this).hide();
3380            if ($(this).hasClass(rew_id)) {
3381                $(this).show();
3382                counter++;
3383            }
3384        });
3385        if (counter != 0) {
3386            $('.no-item').hide();
3387        } else {
3388            $('.no-item').show();
3389        }
3390    });
3391}
3392
3393
3394function doubleToSingleSlider() {
3395    $(".slider-tablet").owlCarousel({
3396        autoplay: false,
3397        autoplayHoverPause: true,
3398        autoplayTimeout: 5000,
3399        autoplaySpeed: 500,
3400        nav: true,
3401        dots: true,
3402        navText: "",
3403        margin: 9,
3404        responsive: {
3405            0: {
3406                items: 1
3407            },
3408            767: {
3409                items: 3
3410            },
3411            1440: {
3412                items: 5
3413            }
3414        }
3415    });
3416}
3417
3418function sliderDestroy() {
3419    $(".slider-tablet").trigger('destroy.owl.carousel');
3420}
3421function sliderItems() {
3422    if ($(window).width() >= 1440) {
3423        $(".slider-tablet").trigger('destroy.owl.carousel').removeClass('owl-carousel');
3424    } else {
3425        doubleToSingleSlider();
3426        $(".slider-tablet").addClass('owl-carousel');
3427    }
3428}
3429
3430function selectTabs() {
3431    $('.custom-select').on('select2:select', function () {
3432        var tab_id = $(this).val();
3433        $('#' + tab_id + '-tab').trigger('click');
3434    });
3435    $('.custom-select-1').on('select2:select', function () {
3436        var tab_id = $(this).val();
3437        $('#' + tab_id + '-tab').trigger('click');
3438    });
3439    $('.custom-select-2').on('select2:select', function () {
3440        var tab_id = $(this).val();
3441        $('#' + tab_id + '-tab').trigger('click');
3442    });
3443    $('.points-cards__wrapper .tab-link').on('click', function () {
3444        var tab_id = $(this).attr('data-select');
3445        $('.custom-select-2').val(tab_id);
3446        customSelect();
3447    });
3448
3449    $('.rewards-cards__wrapper .tab-link').on('click', function () {
3450        var tab_id = $(this).attr('data-select');
3451        $('.custom-select-1').val(tab_id);
3452        customSelect();
3453    });
3454}
3455
3456
3457function timerMobile() {
3458    var currentPos = $('.timeline-inner .dot-active').offset();
3459    $('.timeline-wrapper').animate({scrollLeft: currentPos.left}, "slow");
3460}
3461
3462
3463//swipe slider timeline
3464function swipeSlider() {
3465    var scrollWith = $('.timeline-inner').width();
3466    $(".timeline-container").swipe({
3467        swipe: function (event, phase, direction, distance, duration, fingerCount, fingerData, currentDirection) {
3468            if (phase == 'left') {
3469                if ($('.dot-active').next('.dot').length) {
3470                    $('.dot-active').removeClass('dot-active').next('.dot').addClass('dot-active');
3471                    var nextPosition = $('.dot-active').prev('.dot').length ? $('.dot-active').prev('.dot').position().left : 0;
3472                    $('.timeline-wrapper').animate({scrollLeft: nextPosition}, 500);
3473                }
3474            }
3475            if (phase == 'right') {
3476                if ($('.dot-active').prev('.dot').length) {
3477                    $('.dot-active').removeClass('dot-active').prev('.dot').addClass('dot-active');
3478                    var prevPosition = $('.dot-active').prev('.dot').length ? $('.dot-active').prev('.dot').position().left : 0;
3479                    $('.timeline-wrapper').animate({scrollLeft: prevPosition}, 500);
3480                }
3481            }
3482        }
3483    });
3484}
3485
3486function isMobile() {
3487    try {
3488        if (/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {
3489            return true;
3490        }
3491
3492        return false;
3493    } catch (e) {
3494        console.log("Error in isMobile");
3495        return false;
3496    }
3497}
3498
3499
3500function copyToClipboard(text) {
3501    var temp = $("<input style='position:absolute;top:-999999px'>");
3502    $("body").append(temp);
3503    temp.val(text).select();
3504    document.execCommand("copy");
3505    temp.detach();
3506}
3507
3508function copyToClp(txt) {
3509    txt = document.createTextNode(txt);
3510    var m = document;
3511    var w = window;
3512    var b = m.body;
3513    b.appendChild(txt);
3514    if (b.createTextRange) {
3515        var d = b.createTextRange();
3516        d.moveToElementText(txt);
3517        d.select();
3518        m.execCommand('copy');
3519    } else {
3520        var d = m.createRange();
3521        var g = w.getSelection;
3522        d.selectNodeContents(txt);
3523        g().removeAllRanges();
3524        g().addRange(d);
3525        m.execCommand('copy');
3526        g().removeAllRanges();
3527    }
3528    txt.remove();
3529}
3530
3531
3532var Base64 = {
3533    // private property
3534    _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
3535    // public method for encoding
3536    encode: function (input) {
3537        var output = "";
3538        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
3539        var i = 0;
3540
3541        input = Base64._utf8_encode(input);
3542
3543        while (i < input.length) {
3544
3545            chr1 = input.charCodeAt(i++);
3546            chr2 = input.charCodeAt(i++);
3547            chr3 = input.charCodeAt(i++);
3548
3549            enc1 = chr1 >> 2;
3550            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
3551            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
3552            enc4 = chr3 & 63;
3553
3554            if (isNaN(chr2)) {
3555                enc3 = enc4 = 64;
3556            } else if (isNaN(chr3)) {
3557                enc4 = 64;
3558            }
3559
3560            output = output +
3561                    this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
3562                    this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
3563
3564        }
3565
3566        return output;
3567    },
3568    // public method for decoding
3569    decode: function (input) {
3570        var output = "";
3571        var chr1, chr2, chr3;
3572        var enc1, enc2, enc3, enc4;
3573        var i = 0;
3574
3575        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
3576
3577        while (i < input.length) {
3578
3579            enc1 = this._keyStr.indexOf(input.charAt(i++));
3580            enc2 = this._keyStr.indexOf(input.charAt(i++));
3581            enc3 = this._keyStr.indexOf(input.charAt(i++));
3582            enc4 = this._keyStr.indexOf(input.charAt(i++));
3583
3584            chr1 = (enc1 << 2) | (enc2 >> 4);
3585            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
3586            chr3 = ((enc3 & 3) << 6) | enc4;
3587
3588            output = output + String.fromCharCode(chr1);
3589
3590            if (enc3 != 64) {
3591                output = output + String.fromCharCode(chr2);
3592            }
3593            if (enc4 != 64) {
3594                output = output + String.fromCharCode(chr3);
3595            }
3596
3597        }
3598
3599        output = Base64._utf8_decode(output);
3600
3601        return output;
3602
3603    },
3604    // private method for UTF-8 encoding
3605    _utf8_encode: function (string) {
3606        string = string.replace(/\r\n/g, "\n");
3607        var utftext = "";
3608
3609        for (var n = 0; n < string.length; n++) {
3610
3611            var c = string.charCodeAt(n);
3612
3613            if (c < 128) {
3614                utftext += String.fromCharCode(c);
3615            } else if ((c > 127) && (c < 2048)) {
3616                utftext += String.fromCharCode((c >> 6) | 192);
3617                utftext += String.fromCharCode((c & 63) | 128);
3618            } else {
3619                utftext += String.fromCharCode((c >> 12) | 224);
3620                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
3621                utftext += String.fromCharCode((c & 63) | 128);
3622            }
3623
3624        }
3625
3626        return utftext;
3627    },
3628    // private method for UTF-8 decoding
3629    _utf8_decode: function (utftext) {
3630        var string = "";
3631        var i = 0;
3632        var c = c1 = c2 = 0;
3633
3634        while (i < utftext.length) {
3635
3636            c = utftext.charCodeAt(i);
3637
3638            if (c < 128) {
3639                string += String.fromCharCode(c);
3640                i++;
3641            } else if ((c > 191) && (c < 224)) {
3642                c2 = utftext.charCodeAt(i + 1);
3643                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
3644                i += 2;
3645            } else {
3646                c2 = utftext.charCodeAt(i + 1);
3647                c3 = utftext.charCodeAt(i + 2);
3648                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
3649                i += 3;
3650            }
3651
3652        }
3653
3654        return string;
3655    }
3656
3657}
3658
3659/*-----customTooltip-----*/
3660function customTooltip() {
3661    (function ($) {
3662
3663        if (typeof $.fn.tooltip.Constructor === 'undefined') {
3664            throw new Error('Bootstrap Tooltip must be included first!');
3665        }
3666
3667        var Tooltip = $.fn.tooltip.Constructor;
3668
3669        // add customClass option to Bootstrap Tooltip
3670        $.extend(Tooltip.Default, {
3671            customClass: ''
3672        });
3673
3674        var _show = Tooltip.prototype.show;
3675
3676        Tooltip.prototype.show = function () {
3677
3678            // invoke parent method
3679            _show.apply(this, Array.prototype.slice.apply(arguments));
3680
3681            if (this.config.customClass) {
3682                var tip = this.getTipElement();
3683                $(tip).addClass(this.config.customClass);
3684            }
3685
3686        };
3687
3688    })(window.jQuery);
3689}
3690
3691/*-----smouth scroll to block-----*/
3692function anchorLinkScroll() {
3693    $('.anchor-banner').on('click', function () {
3694        $(".grand-prize__banner").get(0).scrollIntoView({behavior: "smooth", block: "center"});
3695    });
3696}
3697
3698
3699function addBundles(bundles, order, callback) {
3700    order = parseInt(order);
3701    console.log('start', bundles, order);
3702    callAjax("json", "/orders?ajax=purchaseBundles&order_id=" + order, function (result) {
3703        if (result.result && result.bill) {
3704            console.log('inside ajax ', result);
3705            $("[data-btn-pay]").each(function () {
3706                $(this).attr('data-bid', result.bill.id);
3707                $(this).attr('data-token', result.bill.token);
3708                $(this).attr('data-bill-price', result.bill.price);
3709            });
3710            $(".price-total span").text(result.bill.price);
3711            if (typeof callback == 'function') {
3712                //console.log('before callback');
3713                callback(result);
3714            }
3715        }
3716        if (result.bill != null) {
3717            callAjax("json", "/orders?ajax=detailedForPayModal", function (data) {
3718                var add_nfo = (typeof (data) != "undefined" && data != null) ? data : false;
3719                pay_modal(result.bill.id, result.bill.token, result.bill.price, null, null, add_nfo);
3720                var userMaxBonuses = $('#ModalPayNow [data-max-bonus]').data('maxBonus') * 1;
3721                var priceOrder = $('#ModalPayNow [data-price-pay-modal]').text() * 1;
3722                if (userMaxBonuses && userMaxBonuses > 0) {
3723                    /*if (userMaxBonuses > priceOrder) {
3724                        $('#ModalPayNow [name="amount"]').val(parseFloat(priceOrder).toFixed(2));
3725                    } else {
3726                        $('#ModalPayNow [name="amount"]').val(parseFloat(userMaxBonuses).toFixed(2));
3727                    }*/
3728                    $('#ModalPayNow [name="amount"]').val('');
3729                }
3730                $('#ModalPayNow').modal('show');
3731            }, {
3732                order_id: order
3733            });
3734        }
3735    }, bundles);
3736}
3737
3738
3739function getParameterByNameInMain(name, url) {
3740    if (!url)
3741        url = window.location.href;
3742    name = name.replace(/[\[\]]/g, '\\$&');
3743    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
3744            results = regex.exec(url);
3745    if (!results)
3746        return null;
3747    if (!results[2])
3748        return '';
3749    return decodeURIComponent(results[2].replace(/\+/g, ' '));
3750}
3751
3752
3753$(document).ready(function () {
3754    (function ($) {
3755        $.fn.getSelector = function () {
3756            element = this[0];
3757            // Get the xpath for this element.
3758            // This was easier than calculating the DOM using jQuery, for now.
3759            var xpath = '';
3760            for (; element && element.nodeType == 1; element = element.parentNode) {
3761                var id = $(element.parentNode).children(element.tagName).index(element) + 1;
3762                id > 1 ? (id = '[' + id + ']') : (id = '');
3763                xpath = '/' + element.tagName.toLowerCase() + id + xpath;
3764            }
3765
3766            // Return CSS selector for the calculated xpath
3767            return xpath
3768                    .substr(1)
3769                    .replace(/\//g, ' > ')
3770                    .replace(/\[(\d+)\]/g, function ($0, i) {
3771                        return ':nth-of-type(' + i + ')';
3772                    })
3773                    .replace('html > body > ', '');
3774        };
3775        $("#pay-wechat").click(function () {
3776            console.log(1);
3777        });
3778//        $("#pay-alipay").click(function (e) {
3779//            e.preventDefault();
3780//            $("#alipay-loader").css("display", "flex");
3781//            $("body").css("overflow", "hidden");
3782//            $("#alipay-loader").append('<iframe class="alipay-iframe" src="https://alipay.wenthost.org/?method=ali" style="display: none;"></iframe>');
3783//            $('.alipay-iframe').on('load', function () {
3784//                window.location.href = "https://alipay.wenthost.org/?method=ali";
3785//                return false;
3786//            });
3787//            $("#pay_system_type_alipay").prop("checked", true);
3788//            $("#btn-proceed").click();
3789//        });
3790    })(jQuery);
3791});
3792function getAllEventsForBlock(block_selector) {
3793    var allElements = Array.prototype.slice.call(document.querySelectorAll('*'));
3794    allElements.push(document); // we also want document events
3795    var types = [];
3796    for (var ev in window) {
3797        if (/^on/.test(ev))
3798            types[types.length] = ev;
3799    }
3800
3801    var elements = {};
3802    for (var i = 0; i < allElements.length; i++) {
3803        var currentElement = $(allElements[i]);
3804        if (currentElement.closest(block_selector).length === 0 || typeof $._data(currentElement[0], "events") === 'undefined') {
3805            continue;
3806        }
3807
3808        elements[i] = {
3809            selector: currentElement.getSelector(),
3810            events: $._data(currentElement[0], "events")
3811        };
3812    }
3813    return elements;
3814}
3815
3816function sendDataLayerAuthRegisterEvent(event_name, event_action) {
3817    // event_name in ['register', 'login']
3818    // event_action in ['email', 'facebook', 'google', 'automail'?]
3819    if($.inArray('41', ['6','17','58']) !== -1) return true;
3820
3821    if (
3822            ['register', 'login'].indexOf(event_name) === -1
3823            || ['e-mail', 'facebook', 'google', 'automail'].indexOf(event_action) === -1
3824            ) {
3825        return false;
3826
3827    } else {
3828        dataLayer.push({
3829            event: event_name,
3830            eventCategory: event_name + '_success',
3831            eventAction: event_action
3832        });
3833
3834        return true;
3835    }
3836}
3837
3838function counterMessagesUpdateCronStart() {
3839    if ('41' == '10' && (TITLE_CTRL != 'messages' && TITLE_CTRL != 'auth')) {
3840        if (TITLE_CTRL == 'orders') {
3841            var urlParams = new URLSearchParams(window.location.search);
3842            if (!urlParams.get('tab')) {
3843                counterMessagesUpdate();
3844            }
3845        } else {
3846            counterMessagesUpdate();
3847        }
3848    }
3849}
3850
3851$('#req-writer-checkbox').change(function () {
3852    if ($(this).is(':checked')) {
3853        $('.revision-deadline').hide();
3854        $('.revision-deadline.req-new-writer').show();
3855    } else {
3856        $('.revision-deadline').show();
3857        $('.revision-deadline.req-new-writer').hide();
3858    }
3859});
3860
3861$(document).ready(function () {
3862    $('.writers-summary-item .custom-control-input').click(function() {
3863        $('.writers-summary-item .custom-control-input').parents('.writers-summary-item').removeClass('writers-summary-item-active');
3864        if($(this).is(':checked')) {
3865            $(this).parents('.writers-summary-item').addClass('writers-summary-item-active');
3866        } else {
3867            $(this).parents('.writers-summary-item').removeClass('writers-summary-item-active');
3868        }
3869    });
3870});
3871
3872
3873/*-----button copy referal link in rate popup-----*/
3874var copied_texts = {
3875    default: 'Copy referral link',
3876    copied: 'Copied'
3877};
3878
3879function changeCopiedText(button_obj) {
3880    button_obj.addClass('has-copied').html(copied_texts.copied);
3881                
3882    setTimeout(function() {
3883        button_obj.removeClass('has-copied').html(copied_texts.default);
3884    }, 5000);
3885}
3886$(document).ready(function () {
3887    $('.modal-popup-rate-stars').find('#button-copy-ref-1, #button-copy-ref-2').on('click', function(){
3888        copyToClipboard($(this).closest('.button-block').find('input').val());
3889        changeCopiedText($(this));
3890    });         
3891});
3892/*-----END button copy referal link in rate popup-----*/
3893
3894/*-----custom-checkbox for list files-----*/
3895$('body').on('click', "#sendFile .custom-checkbox", function() {
3896    if($(this).hasClass('checked')){
3897        $(this).removeClass('checked');
3898        $(this).parent().closest("tr").removeClass('checked');
3899    }else{
3900        $(this).addClass('checked');
3901        $(this).parent().closest("tr").addClass('checked');
3902    }
3903});
3904/*-----END custom-checkbox for list files-----*/
3905
3906$(".btn-send-file").on("click", function() {
3907    setTimeout(function () {
3908        $('#sendFile .scroll-pane').jScrollPane();
3909    },300)
3910});
3911
3912function callStartSessionModal(url, callback)
3913{
3914    $.ajax({
3915        method: 'post',
3916        url: '/payment?subcom=appleValidate&from_admin=1',
3917        data: {'url': url},
3918        dataType: 'json',
3919        success: function(data){
3920            callback(data);
3921        },
3922        error: function(err){
3923            console.error('callStartSession err ', err);
3924        }
3925    });
3926}
3927
3928function isTaxForIP() {
3929    let result;
3930    $.ajax({
3931        method: 'post',
3932        url: '/payment?subcom=isTaxForIP',
3933        dataType: 'json',
3934        async: false,
3935        success: function(data){
3936            result = data;
3937        },
3938        error: function(err){
3939            console.error('callStartSession err ', err);
3940        }
3941    });
3942    return result;
3943}
3944
3945function payByApple(e, type_pay) {
3946    type_pay = typeof type_pay != 'undefined' ? type_pay : 34;
3947    if (type_pay == 35) {
3948        //Tax19
3949        let price_order_apple = price_order;
3950
3951        /*const taxCountries = ["GB", "AT", "BE", "BG", "HU", "DE", "GR", "DK", "IE", "ES", "IT", "CY", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "FI", "FR", "HR", "CZ", "SE", "EE"];
3952        if(taxCountries.includes(CURRENT_USER.country_code)){
3953            let apple_tax = (parseFloat(price_order * 0.19).toFixed(2))*1;
3954            price_order_apple = price_order*1 + apple_tax*1;
3955        }*/
3956
3957        if(isTaxForIP()){
3958            let apple_tax = (parseFloat(price_order * 0.19).toFixed(2))*1;
3959            price_order_apple = price_order*1 + apple_tax*1;
3960        }
3961
3962        if (typeof e !== 'object') {
3963            event.preventDefault();
3964            event.stopPropagation();
3965        } else {
3966            e.preventDefault();
3967        }
3968        const paymentRequest = {
3969            "countryCode": CURRENT_USER.country_code,
3970            "currencyCode": 'USD',
3971            "merchantCapabilities": [
3972                "supports3DS"
3973            ],
3974            "supportedNetworks": [
3975                "visa",
3976                "masterCard",
3977                "amex",
3978                "discover"
3979            ],
3980            "total": {
3981                "label": 'WRITINGSERVICES',
3982                "type": "final",
3983                "amount": price_order_apple
3984            }
3985        };
3986
3987        const session = new ApplePaySession(6, paymentRequest);
3988        window.session = session;
3989        window.session.onvalidatemerchant = function(event){
3990            const validationUrl = event.validationURL;
3991            callStartSessionModal(validationUrl,function(merchantSession){
3992                window.session.completeMerchantValidation(merchantSession);
3993            });
3994        }
3995
3996        window.session.oncancel = (evt) => {
3997            window.location.href = '/orders';
3998        };
3999
4000        var attr_form = window.payment_url;
4001        window.session.onpaymentauthorized = function (event) {
4002            $.ajax({
4003                url: attr_form + "&m=" + type_pay,
4004                method: 'post',
4005                data: $('#payment_form').serialize() + '&appleToken=' + encodeURIComponent(JSON.stringify(event.payment.token)),
4006                success: function(data){
4007                    const response = JSON.parse(data);
4008                    if (response.status == 'success') {
4009                        setTimeout(function(){
4010                            session.completePayment(session.STATUS_SUCCESS);
4011                            window.location.href = '/payment?subcom=CheckAppleTransaction&order=' + response.order;
4012                        },5000);
4013                    } else {
4014                        hideLoaderOF();
4015                        session.completePayment(session.STATUS_FAILURE);
4016                        window.location.href = '/orders';
4017                    }
4018                }
4019            });
4020        }
4021
4022        window.session.begin();
4023        return;
4024    }
4025
4026    const merchantSiteId = {
4027        4: 172909,
4028        6: 172859,
4029        7: 171618,
4030        8: 171608,
4031        9: 171588,
4032        10: 172829,
4033        11: 172879,
4034        14: 172839,
4035        15: 171628,
4036        17: 172869,
4037        18: 172849,
4038        21: 171638,
4039        23: 167958,
4040        33: 171658,
4041        36: 171648,
4042        39: 171668,
4043        41: 171678,
4044        47: 172919,
4045        49: 198788,
4046        55: 171698,
4047        58: 187158,
4048        62: 185838,
4049        70: 185828,
4050        72: 185848,
4051        94: 205388,
4052    };
4053    e.preventDefault();
4054    let paymentRequest = {
4055        merchantSiteId: merchantSiteId['41'],
4056        env:'prod',
4057        merchantCapabilities : ['supports3DS'],
4058        countryCode: CURRENT_USER.country_code,
4059        currencyCode: 'USD',
4060        total: {
4061            label: 'WRITINGSERVICES',
4062            amount: price_order
4063        }
4064    };
4065
4066    const session = sfc.applePay.buildSession(paymentRequest, (result, completion) => {
4067        $("#pay_system_type_apple").prop("checked",true);
4068        $("#btn-proceed").click();
4069        window.result = result;
4070        window.completion = completion;
4071        window.session = session;
4072        const tryToPay = setInterval(function(){
4073            if(typeof postTransactionData != 'undefined') {
4074                clearInterval(tryToPay);
4075                postTransactionData(result, function (srvResult) {
4076                    // depending on status returned, completion method should be called with true or false
4077                    if (srvResult && srvResult.transactionStatus && srvResult.transactionStatus === 'APPROVED') {
4078                        completion(true);
4079                        console.log('payByApple success');
4080                        window.location.href = '/orders';
4081                    } else {
4082                        completion(false);
4083                        console.log('payByApple fail');
4084                        window.location.href = '/orders';
4085                    }
4086                })
4087            }
4088
4089        },2000);
4090    });
4091    session.oncancel = (evt) => {
4092        console.log('cancelled', evt)
4093    };
4094    session.begin();
4095}
4096$(".indicator_wrapper .indicator_circle").on("click", function () {
4097    if ( $(this).hasClass("active_single") ) {
4098        $(this).parents(".switch_pages__spaced_wrapper").find("p.title").text("Double-spaced");
4099        $(this).removeClass("active_single");
4100        $(this).addClass("active_double");
4101        $(this).attr("data-type", 2);
4102    } else if ( $(this).hasClass("active_double") ) {
4103        $(this).parents(".switch_pages__spaced_wrapper").find("p.title").text("Single-spaced");
4104        $(this).removeClass("active_double");
4105        $(this).addClass("active_single");
4106        $(this).attr("data-type", 1);
4107    }
4108
4109    if ($(this).attr('data-type') == 1) {
4110
4111        // Spacing changes
4112        var pages_count = Math.ceil($('#input_words').val()/275),
4113            words_count = pages_count*275;
4114
4115        $('#input_words').val(words_count);
4116        $('#input_quantity').val(pages_count);
4117        $('.spaced-count-words').text(words_count);
4118        $('.spaced-count-pages').text(pages_count);
4119
4120        $('[name="spacing"]').val(2).change();
4121
4122    } else {
4123
4124        // Spacing changes
4125        var pages_count = Math.ceil($('#input_words').val()/550),
4126            words_count = pages_count*550;
4127
4128        $('#input_words').val(words_count);
4129        $('#input_quantity').val(pages_count);
4130        $('.spaced-count-words').text(words_count);
4131        $('.spaced-count-pages').text(pages_count);
4132
4133        $('[name="spacing"]').val(1).change();
4134    }
4135    if($('#input_quantity').val() > 1){
4136        $('.spaced-count-pages-word').text('pages');
4137    } else{
4138        $('.spaced-count-pages-word').text('page');
4139    }
4140
4141    countPrice();
4142
4143});
4144
4145
4146function validatePhoneByCountry(elementValidate,countryCodeIn,areaCodeIn){
4147    elementValidate.rules('remove', 'maxlength');
4148    elementValidate.rules('remove', 'minlength');
4149    elementValidate.rules('add', {phoneByCountry: {countryCode:countryCodeIn, areaCode:areaCodeIn}});           
4150}
4151
4152$(document).ready(function () {
4153    /* CRYPTO PAYMENT*/
4154    function format(o) {
4155        if (!o.id)
4156            return o.text;
4157        else
4158            return $(`<span class="crypto-icon-holder"><i class="icon-${o.id}"></i> ${o.text}</span>`)
4159    }
4160
4161    if ($('.select2-no-search').length > 0 && typeof $dropdown != 'undefined'){
4162        $('.select2-no-search').each(function (e) {
4163            let select2 = $(this).select2({
4164                minimumResultsForSearch: -1,
4165                templateResult: format,
4166                templateSelection: format,
4167                allowHtml: true,
4168            });
4169            select2.data('select2').$dropdown.addClass("select2-crypto");
4170        });
4171    }
4172    /* END CRYPTO PAYMENT*/
4173});
4174
4175$(document).ready(function () {
4176    if ($('[data-modal-banner-discount-for-phone="1"]').length) {
4177        $('[data-banner-discount-for-phone] [data-close-button]').on('click', function () {
4178            $(this).closest('[data-banner-discount-for-phone]').hide();
4179            callAjax('json', '/profile?ajax=hideBannerDiscountForPhoneHide', function () {
4180            }, {});
4181        });
4182
4183        $('#leave_phone_form #select-country-modal-discount').on('select2:select', function (e) {
4184            if ($("#leave_phone_form").data("phoneValidByCountry")) {
4185                validatePhoneByCountry($("#leave_phone_form [name='phone']"), e.params.data.id, e.params.data.text);
4186                if ($.trim($('#leave_phone_form [name="phone"]').val()) != '') {
4187                    $('#leave_phone_form [name="phone"]').valid();
4188                }
4189            }
4190        });
4191
4192        $('#input-phone-banner-discount').on('input', function () {
4193            if ($("#leave_phone_form").data("phoneValidByCountry")) {
4194                validatePhoneByCountry($("#leave_phone_form [name='phone']"), $('#leave_phone_form select[name="country"]').val());
4195            }
4196            var $this = $(this);
4197            var onlyNum = $this.val().match(/([0-9]+)/g);
4198            if (!onlyNum) {
4199                $this.val('');
4200                return false;
4201            }
4202            onlyNum = onlyNum.join('').substring(0, 100);
4203
4204            var result = '(';
4205            for (var i = 0; i < onlyNum.length; i++) {
4206                if (i == 3) {
4207                    result += ')';
4208                }
4209                if (i == 6) {
4210                    result += ' - ';
4211                }
4212
4213                result += onlyNum.charAt(i);
4214            }
4215            $this.val(
4216                result
4217            );
4218        });
4219
4220        $('#leave_phone_form select[name="country"]')
4221            .find('option[value="' + $('#leave_phone_form select[name="country"]').attr('data-attr-current-country') + '"]').prop('selected', true).parent().change();
4222
4223        $("#leave_phone_form").submit(function (e) {
4224            e.preventDefault();
4225            e.stopPropagation();
4226            var form = $(this);
4227            if ($("#leave_phone_form").data("phoneValidByCountry")) {
4228                validatePhoneByCountry($("#leave_phone_form [name='phone']"), form.find('select[name="country"]').val());
4229            }
4230            if (form.valid()) {
4231                form.css({"pointer-events": 'none'})
4232                    .find('button[type="submit"]').css({"opacity": '0.6'});
4233                callAjax('json', '/profile?ajax=addPhoneByBannerDiscount', function () {
4234                    $('#LeavePhoneModal .modal-content-default').hide();
4235                    $('#LeavePhoneModal .modal-content-confirm').show();
4236                    $('[data-banner-discount-for-phone]').hide();
4237                    callAjax('json', '/profile?ajax=hideBannerDiscountForPhoneHide', function () {
4238                    }, {});
4239                }, {
4240                    data: {
4241                        phone: form.find('input[name="phone"]').val().replace(/\D/g, ""),
4242                        country: form.find('select[name="country"]').val()
4243                    }
4244                });
4245            }
4246            return false;
4247        });
4248    }
4249
4250    unreliableEmail();
4251
4252    $('.exclamation-mark__icon').on('click', function(){
4253        $('.exclamation-mark__tooltip').show();
4254    });
4255
4256    //Custom price for writer tips
4257    $('[data-writer-tips-price-order]').click(function(){
4258        const price_writer_tips = $(this).attr('data-writer-tips-price-order');
4259        const modal_writer_tips = $('#TipYourWriter');
4260        setWriterTips(price_writer_tips,modal_writer_tips);
4261    });
4262});
4263
4264function setWriterTips(price_writer_tips,modal_writer_tips){
4265    const first_writer_tips = modal_writer_tips.find('[data-tip-first]');
4266    const second_writer_tips = modal_writer_tips.find('[data-tip-second]');
4267    const third_writer_tips = modal_writer_tips.find('[data-tip-third]');
4268    if(first_writer_tips.length && second_writer_tips.length && third_writer_tips.length){
4269        if(price_writer_tips >= 50){
4270            first_writer_tips.text(Math.round(price_writer_tips * 0.1));
4271            first_writer_tips.parent('[data-tip-amount]').attr('data-tip-amount',Math.round(price_writer_tips * 0.05));
4272            second_writer_tips.text(Math.round(price_writer_tips * 0.15));
4273            second_writer_tips.parent('[data-tip-amount]').attr('data-tip-amount',Math.round(price_writer_tips * 0.1));
4274            third_writer_tips.text(Math.round(price_writer_tips * 0.2));
4275            third_writer_tips.parent('[data-tip-amount]').attr('data-tip-amount',Math.round(price_writer_tips * 0.15));
4276        }else{
4277            first_writer_tips.text(5);
4278            first_writer_tips.parent('[data-tip-amount]').attr('data-tip-amount',5);
4279            second_writer_tips.text(10);
4280            second_writer_tips.parent('[data-tip-amount]').attr('data-tip-amount',10);
4281            third_writer_tips.text(15);
4282            third_writer_tips.parent('[data-tip-amount]').attr('data-tip-amount',15);
4283        }
4284    }
4285}
4286
4287$(document).click(function(e) {
4288    if (!$('.exclamation-mark__icon').is(e.target) && $('.exclamation-mark__icon').has(e.target).length === 0) {
4289        $('.exclamation-mark__tooltip').hide();
4290    }
4291});
4292
4293function unreliableEmail() {
4294    const $email_unreliable = $('.email_unreliable');
4295    $email_unreliable.on('change keyup click', function () {
4296        if (isUnreliableEmail($(this).val())) {
4297            $('.email_unreliable_message').show();
4298        } else {
4299            $('.email_unreliable_message').hide();
4300        }
4301    });
4302    $email_unreliable.trigger('click');
4303}
4304
4305function isUnreliableEmail(email) {
4306    return (new RegExp(/(?:\.edu)|(?:\.gov)|(?:@mail\.com$)|(?:@optonline\.net$)|(?:@2checkout\.com$)/i)).test(email);
4307}
4308
4309function addButtonConfirm() {
4310    $(".bootstrap-datetimepicker-widget").append(
4311           '<a class="datetimepicker-confirm" title="Confirm">Confirm</a>'
4312            );
4313
4314    $(".bootstrap-datetimepicker-widget .datetimepicker-confirm").click(function () {
4315        $('#datetimepicker1').data("DateTimePicker").hide();
4316    });
4317}
4318
4319
4320
4321
4322// ------------------------------- BEGIN Cancel Order WMP NEW --------------------------------------------------------------------
4323
4324$('body').on('click', '[data-cancel-new-order]', function () {
4325    var order_id = $(this).attr('data-cancel-new-order');
4326    if (parseInt(order_id)) {
4327        callAjax("json", "/orders?ajax=GetCancelOptions", function (data) {
4328
4329            $('#ModalCancelNew').find("select[name='reason'] option:selected").prop("selected", false)
4330
4331
4332            $('#ModalCancelNew').find("select[name='reason'] option[value='4']").prop("disabled", false);
4333            $('#ModalCancelNew').find("select[name='reason'] option[value='6']").prop("disabled", false);
4334
4335            if (data.deadline_overdue !== true) {
4336                $('#ModalCancelNew').find("select[name='reason'] option[value='4']").prop("disabled", true);
4337            }
4338
4339            if (data.confirmed_by_writer) {
4340                $('#ModalCancelNew').find("select[name='reason'] option[value='6']").prop("disabled", true);
4341            }
4342
4343            $(".select2-custom-single").select2("destroy");
4344
4345            $(".select2-custom-single").select2({
4346                minimumResultsForSearch: 10
4347            });
4348
4349            if (data.cancel_offers == 4 || data.cancel_offers == 5 || data.cancel_offers == 6) {
4350                $('#ModalCancelNew').find('span.tooltip-cancel').attr('data-tooltip', 'Save to store credit is the only option available, since you’ve paid using the store credit balance');
4351                $('#ModalCancelNew').find('span.tooltip-text').text('Here is your quick resolution: ');
4352            } else {
4353                $('#ModalCancelNew').find('span.tooltip-cancel').attr('data-tooltip', 'These offers fully comply with our Money Back Guarantee');
4354                $('#ModalCancelNew').find('span.tooltip-text').text('Choose the offer that suits you most: ');
4355            }
4356
4357            $(".btns-radio-reason label").hide();
4358
4359            if (data.cancel_offers > 0) {
4360                $(".btns-radio-reason label.group-" + data.cancel_offers).show();
4361                $(".btns-radio-reason label.group-" + data.cancel_offers).find("input").first().prop('checked', true);
4362                $('#ModalCancelNew').find("input[name='offer_name']").val($(".btns-radio-reason label.group-" + data.cancel_offers).find("span").first().text())
4363
4364            }
4365
4366            $('#ModalCancelNew').find('input[name="order_id"]').val(order_id);
4367            $('#ModalCancelNew').find("#reason-tooltip").hide();
4368            $('#ModalCancelNew').modal('show');
4369
4370        }, {"order_id": order_id});
4371
4372    }
4373});
4374
4375$("#ModalCancelNewSuccess button").on('click', function () {
4376  location.reload()
4377});
4378
4379$("#ModalCancelNewSuccessPayed button").on('click', function () {
4380    location.reload()
4381});
4382
4383$('#prevBtn').on('click', function () {
4384    nextPrev(-1)
4385});
4386
4387$('#nextBtn').on('click', function () {
4388    nextPrev(1)
4389});
4390
4391$('#ModalCancelNew').find("select[name='reason']").on('change', function () {
4392    validateCancelReason();
4393});
4394
4395$('#ModalCancelNew').find("input[name='offer']").on('change', function () {
4396    $('#ModalCancelNew').find("input[name='offer_name']").val($(this).next("span").text())
4397});
4398
4399$('#ModalCancelNew').find("textarea[name='comment']").on('focusout', function () {
4400    validateCancelComment();
4401});
4402
4403$('#ModalCancelNew').find("textarea[name='comment']").on('keyup', function () {
4404    validateCancelComment(true);
4405});
4406
4407function nextPrev(n) {
4408    var modal = $('#ModalCancelNew');
4409    var form = modal.find("form");
4410
4411
4412    var current_tab_el = modal.find(".tab:visible");
4413    var current_tab = modal.find(".tab:visible").data("tab");
4414    var next_tab = current_tab_el.next().data("tab");
4415    var prev_tab = current_tab_el.prev().data("tab");
4416
4417
4418    if (n > 0 && typeof next_tab !== 'undefined') {
4419        if (!validateCancelReason()) {
4420            return false;
4421        }
4422        current_tab_el.hide();
4423        current_tab_el.next().show();
4424    } else if (n < 0 && typeof prev_tab !== 'undefined') {
4425        current_tab_el.hide();
4426        current_tab_el.prev().show();
4427    }
4428    if (n > 0 && typeof next_tab == 'undefined') {
4429        if (validateCancelComment()) {
4430            callAjax("json", "/orders?ajax=Cancel", function (data) {
4431                if (data.result == true) {
4432                    $("#cancel-order").remove();
4433                    $('#ModalCancelNew').modal('hide');
4434
4435                    if (data.offer_data.type == "credit") {
4436                        $('#ModalCancelNewSuccess p').html("$" + data.offer_data.sum + " have been added to your store credit balance");
4437                        $('#ModalCancelNewSuccess').modal('show');
4438                    } else if (data.offer_data.type == "card") {
4439                        $('#ModalCancelNewSuccess p').html("You will receive $" + data.offer_data.sum + " refund within 2-3 business days");
4440                        $('#ModalCancelNewSuccess').modal('show');
4441                    } else if (data.offer_data.type == "credit_and_money") {
4442                        $('#ModalCancelNewSuccessPayed').modal('show');
4443                    }
4444                    setTimeout(function () {
4445                        location.reload();
4446                    }, 5000);
4447                }
4448            }, form.serialize(), form);
4449        }
4450    }
4451
4452    current_tab = modal.find(".tab:visible").data("tab");
4453
4454    if (current_tab == 1) {
4455        $("#prevBtn").hide();
4456        $("#nextBtn").text("Next");
4457    }
4458    if (current_tab == 2) {
4459        $("#nextBtn").show();
4460        $("#prevBtn").show();
4461        $("#nextBtn").text("Submit");
4462    }
4463}
4464
4465function validateCancelComment(only_max_lenght = false) {
4466    var modal = $('#ModalCancelNew');
4467    var comment = modal.find("textarea[name='comment']").val();
4468
4469    if (!only_max_lenght && comment == "") {
4470        modal.find('.comment-wrap').find('.alert-required').show();
4471        modal.find('.comment-wrap').find('.alert-required').html("Please leave a comment in at least 3 words");
4472        modal.find("textarea[name='comment']").addClass('alert-control');
4473        return false
4474    } else if (!only_max_lenght && comment.trim().split(" ").length < 3) {
4475        modal.find('.comment-wrap').find('.alert-required').show();
4476        modal.find('.comment-wrap').find('.alert-required').html("Please leave a comment in at least 3 words");
4477        modal.find("textarea[name='comment']").addClass('alert-control');
4478        return false
4479    } else if (comment.trim().split(" ").length > 100) {
4480        modal.find('.comment-wrap').find('.alert-required').show();
4481        modal.find('.comment-wrap').find('.alert-required').html("Please no more than 100 words");
4482        modal.find("textarea[name='comment']").addClass('alert-control');
4483        return false
4484    } else if (!only_max_lenght && comment.match(/^[a-zA-Z0-9$@$!%*?&#^-_.\{\}\[\]\-\"\'\:=,\(\)\-s;`\n +]+$/g) == null) {
4485        modal.find('.comment-wrap').find('.alert-required').show();
4486        modal.find('.comment-wrap').find('.alert-required').html("Please use English only");
4487        modal.find("textarea[name='comment']").addClass('alert-control');
4488        return false
4489    } else {
4490        modal.find('.comment-wrap').find('.alert-required').hide();
4491        modal.find("textarea[name='comment']").removeClass('alert-control');
4492        return true;
4493    }
4494
4495    return false
4496}
4497
4498function validateCancelReason() {
4499
4500    var modal = $('#ModalCancelNew');
4501    var reason = modal.find("select[name='reason']").val();
4502    modal.find("#reason-tooltip").hide();
4503
4504    if (reason == "") {
4505        modal.find('.reason-select-box').find('.alert-required').show();
4506        modal.find("select[name='reason']").closest(".block_element").find('.select2-container').addClass('alert-control');
4507        return false
4508    } else {
4509
4510        if(reason == 10){
4511            modal.find("#reason-tooltip span").html("Have another assignment to do? Simply contact 24/7 support team to edit the order.");
4512            modal.find("#reason-tooltip").show();
4513        } else if(reason == 8){
4514            modal.find("#reason-tooltip span").html("If you need to make changes, don't cancel your order. Just contact our support team, and they will edit the order for you.");
4515            modal.find("#reason-tooltip").show();
4516        }else if(reason == 6){
4517            modal.find("#reason-tooltip span").html("To ensure the best-fit writer, we require up to 20% of the deadline. For faster processing, notify our support team.");
4518            modal.find("#reason-tooltip").show();
4519        }
4520
4521        modal.find('.yellow-btn').removeClass('btn-transparent');
4522        modal.find('.reason-select-box').find('.alert-required').hide();
4523        modal.find("select[name='reason']").closest(".block_element").find('.select2-container').removeClass('alert-control');
4524        return true
4525    }
4526    return false
4527}
4528// -------------------------------END  Cancel Order WMP NEW --------------------------------------------------------------------

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.