PageSourceSearch

https://www.fine.cz/obchod/js/shop.js?v=1784532905

js fine.cz collected 2026-09-24 12:52:42 UTC 56,512 bytes, 1,461 lines download raw bytes

1(function() {
2    var $window = $(window);
3    var height = $window.height();
4    var width = $window.width();
5    var $floatmenu = $('.section-support-menu:not(.noscroll), .search-menu');
6    var $topmenu = $('.section-float-menu');
7    var offset = 0;
8    var $mobile = false;
9    var $device;
10    var loaded = false;
11    var maxWidth  = $('.dealer-map').width();
12    var maxHeight = $('.dealer-map').height();
13    var PropertiesHeight = $('.section-properties').css('height');
14    var $searchfield;
15
16    newCart = {
17        options: {
18            // template: '<tr data-id="{id}"><td class="label">{label}</td><td class="price">{price}</td><td class="action"><button type="button" >&times;</button></td></tr>',
19            template: '<li data-id="{id}"><div class="menu--title"><span class="mnuCart bold label">{label}</span><span class="mnuCart bold label licence-type">{type}</span></div><div class="menu--price"><span class="mnuCart bold">{price}</span><a href="#" class="close"></a></div></li>',
20            defaultPriceTemplate: '<strong>{price} {currency}</strong>',
21            priceTemplate: '<span>{price} {currency}</span>',
22            defaultCurrency: '',
23            currencies: [],
24            apiUrl: '',
25            networkMultiplier: 30,
26            leaseMultiplier: 45
27        },
28        init: function() {
29            return false;
30            var self = this;
31            this.cart = {};
32            this.element = $('li.item.cart');
33            this.mobileCart = $('#my-mobile-cart ul.cart-items');
34
35            this.options.defaultCurrency = window.shopConfigOptions.currency;
36            this.options.apiUrl = this.element.attr('data-api-url');
37            this.content = this.element.find('ul.cart-items');
38
39            this.emptyCart = emptyCart;
40
41            this.silent = true;
42            this.isActive = false;
43
44            this.counts = this.element.find('.count');
45            this.timer = null;
46            var data = this.readCartPrograms();
47
48            if (data) {
49                this.render(data);
50            }
51        },
52        addToCart: function(qty) {
53            var self = this;
54            this.cart = this.readCartPrograms();
55
56            var result = $.grep(this.cart, function(e){ return e.id == programApi.id; });
57
58            var pr = programApi;
59            if (result.length) {
60                pr = result[0];
61            } else {
62                this.cart.push(pr);
63            }
64
65            pr[qty] = (Number(pr[qty]) || 0) + 1;
66
67            this.writeCartData();
68            return this;
69        },
70
71        getCart: function() {
72            var cart =  JSON.parse(window.localStorage.getItem('cart'));
73            if (cart == null) {
74                return this.emptyCart;
75            }
76            if (cart.version != this.emptyCart.version) {
77                this.writeEmptyCartData();
78                return this.emptyCart;
79            }
80            return cart;
81        },
82        writeEmptyCartData: function() {
83            var self = this;
84            var cart =  this.emptyCart;
85            window.localStorage.setItem('cart', JSON.stringify(cart));
86            return this;
87        },
88        readCartPrograms: function() {
89            var self = this;
90            var cart =  this.getCart();
91            if (cart.programs.length < 1) {
92                return [];
93            }
94            return cart.programs.sort(function(a,b){return b.sortOrder - a.sortOrder})
95        },
96        writeCartData: function() {
97            var self = this;
98            var cart =  this.getCart();
99
100            cart.programs = this.cart;
101            cart.cartStep = 1;
102            window.localStorage.setItem('cart', JSON.stringify(cart));
103
104            return this;
105        },
106        deleteCartItem: function(id) {
107            var self = this;
108            this.cart = this.readCartData();
109            this.cart  = $.grep(this.cart, function(e){ return e.id != id; });
110            this.writeCartData();
111            return this;
112        },
113        render: function(data) {
114            var self = this;
115            var buffer = [];
116            var types = ['local_quantity', 'lease_local_quantity', 'network_quantity', 'lease_network_quantity'];
117            var count = 0;
118            var cartToolbarTranslations = {
119                local_quantity: window.i18n['front']['local_licence'],
120                lease_local_quantity: window.i18n['front']['lease_local_licence'],
121                network_quantity: window.i18n['front']['network_licence'],
122                lease_network_quantity: window.i18n['front']['lease_network_licence']
123            };
124
125            if (typeof data === 'object' && data.length) {
126                $.each(data, function(key,item) {
127                    $.each(types, function(k, type) {
128                        var no = Number(item[type]) || 0;
129                        if (no > 0) {
130                            count = count + no;
131                            var content = self.substitute(self.options.template, {
132                                type: cartToolbarTranslations[type],
133                                id: item.id,
134                                label: item[type] + "x" + ' ' + item.name,
135                                price: self.createPrice(item, type)
136                            });
137                            buffer.push(content);
138                        }
139                    });
140                });
141
142                this.counts.html(count).css('display','block');
143                this.element.addClass('cart-full');
144                this.mobileCart.addClass('cart-full');
145                $('.cart-items').removeClass('hidden');
146                $('div.menu.cart .empty-cart').removeClass('hidden');
147                $('div.menu.cart .emptycart').addClass('hidden');
148                this.element.find('.menu--footer').css('position','relative');
149            } else {
150                this.element.removeClass('cart-full');
151                this.mobileCart.removeClass('cart-full');
152                $('.cart-items').addClass('hidden');
153                $('div.menu.cart .empty-cart').addClass('hidden');
154                $('div.menu.cart .emptycart').removeClass('hidden');
155                APICart.close()
156                checkClosing();
157                this.element.find('.menu--footer').css('position','absolute');
158                this.counts.html(0).css('display','none');
159            }
160
161
162            buffer.push('</tbody></table>');
163            this.content.html(buffer.join(''));
164            this.mobileCart.html(buffer.join(''));
165
166            if (!this.silent) {
167                this.open();
168                this.timer = this.close.delay(3000, this);
169            }
170        },
171        substitute: function(template, object, regexp){
172            return String(template).replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
173                if (match.charAt(0) == '\\') return match.slice(1);
174                return (object[name] != null) ? object[name] : '';
175            });
176        },
177
178        toggle: function() {
179            if (this.element.hasClass('activex')) {
180                this.close();
181            } else {
182                this.open();
183            }
184            return this;
185        },
186
187        open: function() {
188            clearTimeout(this.timer);
189            $('.thismenuopened').removeClass('thismenuopened');
190            $('#main-menu .menu-label.icon-cart').addClass('thismenuopened');
191            adaptMenu();
192            this.element.addClass('activex');
193
194            return this;
195        },
196
197        close: function() {
198            if (!this.isActive) {
199                this.element.removeClass('activex');
200                $('#menushaker').css('opacity','0').css('visibility', 'hidden');
201                $('.thismenuopened').removeClass('thismenuopened');
202            }
203            return this;
204        },
205
206        createPrice: function(item, type) {
207            var value = this.getItemPrice(item, type) * (Number(item[type]) || 0);
208            return this.priceFormat(value);
209        },
210        priceFormat(price, show = false, decimals = false)
211        {
212            let currency = window.shopConfigOptions.currency;
213            price = Number(price) || 0;
214            if (Number(price) == 0 && show == false) {
215                return '';
216            }
217            let decimalCount = 2;
218            //(currency == 'EUR' || currency == 'USD' ) &&
219            if (decimals == true) {
220                decimalCount = 2;
221            } else if (price % 1 == 0) {
222                decimalCount = 0;
223            }
224
225            let decimal = window.priceFormatOptions.price_decimal_format;
226            let thousands = window.priceFormatOptions.price_thousands_format;
227            let format = window.priceFormatOptions.currency_format;
228            format = unescape(format);
229
230            let i = parseInt(price = Math.abs(Number(price) || 0).toFixed(decimalCount)).toString();
231            let j = (i.length > 3) ? i.length % 3 : 0;
232
233            let value = (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands) + (decimalCount ? decimal + Math.abs(price - i).toFixed(decimalCount).slice(2) : "");
234            return format.replace('{value}', value).replace(/&nbsp;/gi," ");
235        },
236        getItemPrice: function(item, qty) {
237            var currency = this.options.defaultCurrency;
238            var basePrice = Number(item['price_list'][currency] || 0);
239            var price = 0;
240            if (qty == 'local_quantity') {
241                price = basePrice || 0;
242            } else if (qty == 'network_quantity') {
243                price = basePrice + (basePrice * this.options.networkMultiplier / 100)
244            } else if (qty == 'lease_local_quantity') {
245                price = (basePrice * this.options.leaseMultiplier / 100);
246            } else if (qty == 'lease_network_quantity') {
247                var newBase = (basePrice * this.options.leaseMultiplier / 100);
248                price = (newBase + (newBase * this.options.networkMultiplier / 100));
249            }
250
251            return Math.trunc(price);
252        },
253
254    };
255
256
257    if($floatmenu.length){ offset = parseInt($floatmenu.offset().top) - 110; }
258
259    $(window).resize(function() {
260        height = $window.height();
261        width = $window.width();
262        adapt();
263    });
264
265    /*-- STICKY MENUS ON FEW PAGES --*/
266    $(window).bind('scroll', function () {
267        if($floatmenu.length && ($floatmenu.outerHeight( true ) < $(window, screen).height() )){
268            if(($(window).scrollTop() > offset) && ($(window).scrollTop()+$window.height()) < ($(document).height()-270)) {
269                if($(window).scrollTop()-offset-100>0){
270                    $floatmenu.css('position', 'absolute').css('top', ($(window).scrollTop()-offset-100) + 'px');
271                }else{
272                    $floatmenu.css('position', 'absolute').css('top', '0px');
273                }
274            }
275        }else if ($floatmenu.outerHeight( true ) > $(window, screen).height()){
276            $floatmenu.css('position', 'absolute').css('top', 0);
277        }
278        $('.support-container__onlineHelp').css('min-height', $floatmenu.outerHeight( true )+'px');
279    });
280
281
282    /*-- CART ADDING AND REMOVING LISTENERS --*/
283    $(document).on('click', '.buy-button-list li a', function(event){
284        hj('trigger', 'add_to_cart');
285        event.preventDefault();
286        window.fireEvent('addToCart', $(this).attr('href'));
287    });
288
289    $(document).on('click', '.removeCartButton', function(event){
290        event.preventDefault();
291        var parentLi = $(this).parent().parent();
292        var url = new URI($('li.item.cart').attr('data-api-url')+"?product_id="+parentLi.attr('data-id')+"&remove=true");
293        window.fireEvent('removeFromCart', url.toString());
294        parentLi.slideUp(100);
295    });
296
297
298
299    /*-- GLOBAL LISTENERY --*/
300
301    $(document).on('mouseenter', '.popup-info', function(){
302        var $panel = $(this).parent().find('.content').hide();
303        $panel.addClass('popup');
304    });
305
306
307    $(document).on('click', '.popup-info', function(){
308        return false;
309    });
310
311
312    $(document).on('mouseout', '.popup-info', function(){
313        var $panel = $(this).parent().find('.content').hide();
314        $panel.removeClass('popup');
315    });
316
317    $(document).on('click', '.mobile-menu.mobile--cart a', function(event){
318        $(this).addClass('enable');
319        $(".mobile-menu.mobile--main a").removeClass("icon-mobile-menu-2");
320        $(".mobile-menu.mobile--main a").addClass("icon-close");
321    });
322    $(document).on('click', '.mobile-menu.mobile--search a', function(event){
323        $(this).addClass('enable');
324        $(".mobile-menu.mobile--main a").removeClass("icon-mobile-menu-2");
325        $(".mobile-menu.mobile--main a").addClass("icon-close");
326    });
327    $(document).on('click', '.mobile-menu.mobile--main a', function(event){
328        $(this).addClass('enable');
329        $(".mobile-menu.mobile--main a").removeClass("icon-mobile-menu-2");
330        $(".mobile-menu.mobile--main a").addClass("icon-close");
331    });
332    $(document).on('click', '.mobile-menu.mobile--login a', function(event){
333        $(this).addClass('enable');
334        $(".mobile-menu.mobile--main a").removeClass("icon-mobile-menu-2");
335        $(".mobile-menu.mobile--main a").addClass("icon-close");
336    });
337
338
339    /*-- #SEARCH SCROLL TO FOUND ITEM BY MENU CONTROLLER --*/
340    $(document).on('click', '.search-menu a', function(event){
341        event.preventDefault();
342        var actualtab = $(".tabs-generated li.active a").attr('href').replace('#','');;
343        var offset = $(this).attr('href').replace('#','');
344        offset = parseInt($('#'+actualtab+"-"+offset).offset().top)
345        $("html, body").animate({ scrollTop: (offset+20)+'px' }, 800);
346    });
347
348
349    /*-- #SOLUTIONS ITEM PROPERTIES ROLLDOWN --*/
350    $(document).on('click touchend', '.solution-list-item-link a', function(event){
351        event.preventDefault();
352        if(!$(this).hasClass('rolled')){
353            $(this).parent().parent().find('.submenu').stop().slideDown(100);
354            $(this).addClass('rolled');
355        }else{
356            $(this).parent().parent().find('.submenu').stop().slideUp(100);
357            $(this).removeClass('rolled');
358        }
359    });
360
361
362    /*-- #FORM SHOW HIDDEN INFO MENU --*/
363    $(document).on('click touchend', '.form-toggle', function(event){
364        event.preventDefault();
365        if(!$(this).hasClass('rolled')){
366            $(this).parent().parent().next('.form-slide').show();
367            $(this).addClass('rolled');
368        }else{
369            $(this).parent().parent().next('.form-slide').hide();
370            $(this).removeClass('rolled');
371        }
372    });
373
374    $(document).on('mouseenter', '.form-toggle', function(event){
375        $(this).parent().parent().next('.form-slide').show();
376        $(this).addClass('rolled');
377    });
378    $(document).on('mouseleave', '.form-toggle', function(event){
379        $(this).parent().parent().next('.form-slide').hide();
380        $(this).removeClass('rolled');
381    });
382
383
384    /*-- #VERSIONS IF LISTS HAVE SUBLISTS TELL CSS NOT SHOW ARROW --*/
385    /* if($('body').hasClass('versions')){
386        $('.news-item-content ul li:has(ul)').addClass('has_sub');
387     }
388 */
389
390    /*-- #SOLUTIONS ITEM PROPERTIES ROLLDOWN --*/
391    $(document).on('click touchend', '.faq dt', function(event){
392        event.preventDefault();
393        if(!$(this).hasClass('rolled')){
394            $(this).next('dd').addClass('rolled').show()
395            $(this).addClass('rolled');
396        }else{
397            $(this).next('dd').removeClass('rolled').hide();
398            $(this).removeClass('rolled');
399        }
400    });
401
402    /*-- #TECHNICAL SUPPORT FORM SEND HEADER TO DOWNLOAD FILE IMMEDIATELY --*/
403    $(document).on('submit', '#form-update-tool', function(event){
404        event.preventDefault();
405        window.location=$(this).find('select').val();
406    });
407
408    /*-- #SOLUTIONS ITEM PROPERTIES ROLLDOWN --*/
409    $(document).on('click touchend', '.toggler, .Pricetoggler', function(event){
410        event.preventDefault();
411        var product = $(this).parent().attr('data-product');
412
413        if(!$(this).hasClass('rolled')) {
414            $('[id^="title-' + product + '"]').addClass('rolled');
415            $('[id^="title-' + product + '"] span').addClass('rolled');
416            $('[id^="slide-' + product + '"]').addClass('rolled');
417            $('[id^="slide-' + product + '"]').css('display', 'block');
418
419            $(this).parent().next('.slide').stop().slideDown(400);
420            $(this).find('em').fadeOut();
421            $('[id^="em-' + product + '"]').css('display', 'none');
422            $(this).parent().next().find('.tablesaw').tablesaw().data("tablesaw").refresh();
423
424            //        setTimeout(function(){ $(this).parent().next().find('.tablesaw').tablesaw().data("tablesaw").resize(); }, 100);
425
426        }else{
427            $(this).parent().next('.slide').removeClass('rolled').stop().slideUp(400);
428            $(this).find('em').fadeIn()
429            $(this).removeClass('rolled');
430            $(this).parent().removeClass('rolled');
431
432            $('[id^="title-' + product + '"]').removeClass('rolled');
433            $('[id^="title-' + product + '"] span').removeClass('rolled');
434            $('[id^="slide-' + product + '"]').removeClass('rolled');
435            $('[id^="em-' + product + '"]').css('display', '');
436            $('[id^="slide-' + product + '"]').css('display', '');
437        }
438    });
439
440    /*-- CLOSE OPENED SLIDE HELPERS ON MOBILE --*/
441    $('.content').on('touchend', function(event){
442        if($('.form-slide').length){
443            $('.form-slide').hide();
444        }
445    });
446
447
448    /*-- REPLACE <BREAK> IN PROPERTIES --*/
449    function adaptProperties(){
450        if($('body').hasClass('product') && !$('body').hasClass('uvod')){
451            var $propertiescol =  $('.section-properties .ulholder');
452            var $break = $('.section-properties .ulholder').find('break');
453            if($break.length){
454                $break.html('<p class="properties-next"><a href="#">'+$('.properties-label').html()+'</a></p>');
455                $oldheight = ($break.offset().top - $propertiescol.offset().top + 70) + 'px';
456                $propertiescol.css('height', $oldheight);
457            }
458        }
459    }
460
461
462    /*-- #PRODUCT PROPERTIES ROLL DOWN --*/
463    $(document).on('click touchend', '.properties-next a', function(event){
464        event.preventDefault();
465        if(width > 767){
466            $('.section-properties .ulholder').css('height', PropertiesHeight);
467        }else{
468            $('.section-properties .ulholder').css('height', 'auto');
469        }
470
471        $(this).hide();
472    });
473
474
475    /*-- CHANGING LANGUAGE BY SELECT ON #VIDEO-ITEMS --*/
476    $(document).on('change', '#video .form-language-selector', function(event){
477        $('.form-language-select').submit();
478    });
479
480
481    /*-- SHOW OTHER COUNTRIES SELECT ON #DEALER PAGE -*/
482    $(document).on('click', '#prodejci .othercountries, #aboutus .othercountries', function(event){
483        event.preventDefault();
484        $(this).parent().hide();
485        $(".dealer-card .select").css('display', 'block');
486    });
487
488    /*-- CLOSING ALL MENUS AND PROPER ICON SWITCHING ON SMALLER DEVICES --*/
489    $(document).on('click touchstart tap touch touchend', '#mm-blocker', function(event){
490        checkClosing();
491        $('.help-menu-mobile').removeClass('active');
492    });
493
494
495
496    $(document).on('click', '.mobile--menu a', function(event){
497        event.preventDefault();
498        if($('body').hasClass('menu')){
499            $('body').removeClass('menu');
500        }else{
501            $('body').addClass('menu');
502        }
503    });
504
505
506    /*-- #ING-MANUALS SHOW TABS BY SELECTED LANGUAGE --*/
507    $(document).on('change', 'select[name="lang"]', function(event){
508        if($('body').hasClass('ingmanualy')){
509            var searchfortab = $(this).val();
510            var $panels = $(this).closest('.language-tabs').find('.tab-panel');
511            $panels.each( function() {
512                var thisid = $(this).attr('id');
513                if (searchfortab == thisid){
514                    $(this).css('display','block');
515                }else{
516                    $(this).css('display','none');
517                }
518            });
519        }
520    });
521
522
523    /*-- #PRODUCT DETAIL SENDING LINK ON MOBILE VERSION --*/
524    $(document).on('click touchstart', '.section-mdownload.mobile button', function(event){
525        event.preventDefault();
526        if ($(this).prop('disabled')) {
527            return 1;
528        }
529        $(this).prop('disabled', true);
530
531        if (window.grecaptcha) {
532            grecaptcha.ready(function () {
533                var key = $("meta[name=captcha-key]").attr('content');
534                var action = 'downloadMobile';
535                grecaptcha.execute(key, {action: action}).then(function (token) {
536                    $("input[name=grecaptcharesponse]").val(token);
537                    var formData = $(".section-mdownload.mobile button").closest('form').serialize();
538                    var url = $(".section-mdownload.mobile button").closest('form').attr('action');
539                    $.ajax({
540                        dataType: "json",
541                        url: url,
542                        data: formData,
543                        success: function (data) {
544                            $('.message p').hide();
545                            $('.message p.message_'+data.result).show();
546                            $('.message').addClass('active');
547                            if (data.result != "1") {
548                                $(".section-mdownload.mobile button").prop('disabled', false);
549                            } else {
550                                $(".section-mdownload.mobile").css("display", "none");
551                            }
552                        }
553                    });
554                });
555            });
556        }
557    });
558
559    /*-- #CLOSE MODAL MESSAGE --*/
560    $(document).on('click', '.message', function(event){
561        $(this).removeClass('active');
562    });
563
564
565    /*-- FLOATING MENU ON #PRODUCT CONTROLLER --*/
566    $(document).on('click', '.section-float-menu a', function(event){
567        var offset = $(this).attr('href').replace('#','');
568        offset = parseInt($('#'+offset).offset().top)
569        $("html, body").animate({ scrollTop: (offset-100)+'px' }, 800);
570    });
571
572
573    /*-- CART MENU FOR SMALLER DEVICES --*/
574
575    var $mobilecart = $("li.item.cart .menu").clone();
576    $mobilecart.attr( "id", "my-mobile-cart" );
577
578    $mobilecart.mmenu({
579        autoHeight: true,
580        extensions  : [ 'effect-slide-menu' ],
581        offCanvas: {
582            position  : "right"
583        }
584    });
585    var APICart = $('#my-mobile-cart').data( "mmenu" );
586
587    /*-- USER MENU FOR SMALLER DEVICES --*/
588
589    var $mobileuser = $("li.item.user .user-menu").clone();
590    $mobileuser.attr( "id", "my-mobile-login" );
591
592    $mobileuser.mmenu({
593        autoHeight: true,
594        extensions  : [ 'effect-slide-menu' ],
595        offCanvas: {
596            position  : "right"
597        }
598    });
599
600
601    /*-- MAIN MENU FOR SMALLER DEVICES --*/
602    var $menuMain = $('.menu-main li.item').clone();
603    var $menuInfo = $('.menu-info li.languages').clone();
604    var $menuCurrency = $('.menu-info li.currency').clone();
605    var $menuRight = $('.menu-right').clone();
606    var $menuGeo5 = $('#menu-tab-geo5').clone();
607    var $menuFinec = $('#menu-tab-finec').clone();
608    var $menuTruss = $('#menu-tab-truss').clone();
609    var $menu = $(document.createElement('div'));
610    var $menuSupport = $menuMain.find("li.item");
611    $menu.append('<ul class="mobile-menu"></ul>');
612    // $menu.find('.mobile-menu').append($menuMain).append($menuInfo);
613    $menu.find('.mobile-menu').append($menuGeo5).append($menuFinec).append($menuTruss).append($menuInfo).append($menuCurrency).append($menuRight);
614    $menu.attr( "id", "my-mobile-menu" );
615    $menu.mmenu({
616        extensions  : [ 'effect-slide-menu' ],
617        offCanvas: { position  : "right" },
618        pageSelector: ".content"
619    });
620    var API = $menu.data( "mmenu" );
621    var $logo = $('.mobile-header .logo a').clone();
622        $logo.attr('id','cloned_logo');
623    var $menuCart = $('.mobile--cart').clone();
624    var $menuUser = $('.mobile--user').clone();
625    var $menuSearch =  $('.mobile--search').clone();
626    $('.mm-navbar').append($menuCart).append($menuSearch).append($menuUser).prepend($logo);
627
628
629    /*-- SEARCH MENU FOR SMALLER DEVICES --*/
630    $("#my-mobile-search").mmenu({
631        offCanvas: {
632            position  : "top",
633            zposition : "front"
634        }
635    });
636    var APISearch = $("#my-mobile-search").data( "mmenu" );
637
638
639    /*-- SUBMENU ON #SUPPORT PAGE FOR SMALLER DEVICES --*/
640    if($('body').hasClass('OnlineSupport')){
641        var $submenu = $('.menutemplate').clone();
642        $submenu.attr( "id", "my-support-menu" );
643        $submenu.removeClass('hidden');
644        $submenu.mmenu({
645            extensions  : [ 'effect-slide-menu' ],
646            offCanvas: { position  : "left" }
647        });
648        var APISubmenu = $submenu.data( "mmenu" );
649    }
650
651
652    /*-- WRAP ALL IMAGES TO LINK FOR LIGHTBOX CAUSE NOT CHANGING ADMIN DATA --*/
653    /*    if($('body').hasClass('OnlineSupport')){
654            $('.support-container img').each( function() {
655                var $img = $(this),
656                    href = $img.attr('src');
657                $img.wrap('<a href="' + href + '" class="link" rel="lightbox"></a>');
658            });
659        }
660    */
661
662    /*-- FLOATING MENUS ON #SUPPORT CONTROL --*/
663    $(document).on('click', '#OnlineSupport .support-menu', function(event){
664        event.preventDefault();
665        if($('.rolled').length){
666            $('.rolled').parent().find('.submenu').stop().slideUp(100);
667            $('.rolled').removeClass('rolled');
668            $(this).parent().find('.submenu').stop().slideDown(100);
669            $(this).addClass('rolled');
670        }else{
671            $(this).parent().find('.submenu').stop().slideDown(100);
672            $(this).addClass('rolled');
673        }
674    });
675
676    $(document).on('click', '#OnlineSupport .submenu a', function(event){
677        event.preventDefault();
678        if($('.xrolled').length){
679            $('.xrolled').parent().find('.subsubmenu').stop().slideUp(100);
680            $('.xrolled').removeClass('xrolled');
681            $(this).parent().find('.subsubmenu').stop().slideDown(100);
682            $(this).addClass('xrolled');
683        }else{
684            $(this).parent().find('.subsubmenu').stop().slideDown(100);
685            $(this).addClass('xrolled');
686        }
687    });
688
689
690    /*-- ROLLDOWN LIST ON #CONTACT PAGE--*/
691    $(document).on('click', '.contact-adress li a, .text-toggle', function(event){
692        event.preventDefault();
693        if(!$(this).hasClass('rolled')){
694            $(this).parent().find('.submenu').stop().slideDown(100);
695            $(this).addClass('rolled');
696        }else{
697            $(this).parent().find('.submenu').stop().slideUp(100);
698            $(this).removeClass('rolled');
699        }
700    });
701
702
703    /*-- ROLLDOWN ON PAGES FROM ADMIN --*/
704    $(document).on('click', '.slide-toggle', function(event){
705        event.preventDefault();
706        if(!$(this).hasClass('rolled')){
707            $(this).parent().next('.slide-block').stop().slideDown(100);
708            $(this).addClass('rolled');
709        }else{
710            $(this).parent().next('.slide-block').stop().slideUp(100);
711            $(this).removeClass('rolled');
712        }
713    });
714
715
716    /*-- SUBMITS FORM ON CHANGE SELECTBOX --*/
717    $(document).on('change', 'select[data-action=submit]', function(event){
718        event.preventDefault();
719        $(this).closest('form').submit();
720    });
721
722
723    /*-- SENDING SEARCHTERM AND HASH TO SEARCH PAGE FROM PRODUCT DETAIL --*/
724    $(document).on('click', '#detailhelp', function(event){
725        event.preventDefault();
726        $("#detailhelpform").attr("action",$("#detailhelpform").attr("action")+"?text="+$("#detailhelptext").val()+"#help");
727        $("#detailhelpform").submit();
728    });
729
730    /*-- #SCROLL TO TAB WHEN SELECTED CONTINENT --*/
731    if($('body').hasClass('prodejci') && $('#hiddenRegion').val()=="1"){
732        $("html, body").animate({ scrollTop: ($('#tabs').offset().top-100) }, 800);
733    }
734
735
736
737    /*-- #PRODUCT OWL CAROUSEL INIT + ADDING CONTROLS --*/
738    if($('body').hasClass('product') && !$('body').hasClass('uvod')){
739        var $carousel = $(".section-product-images .wrapper").clone();
740        var $ArrowDivLeft = $('<div></div>').addClass("arrow").addClass("arrow-left");
741        var $ArrowDivRight = $('<div></div>').addClass("arrow").addClass("arrow-right");
742        $carousel.attr('id','my-mobile-carousel');
743        $(".section-product-images").append($carousel)
744        $('#my-mobile-carousel').find('.product-column--free').remove();
745        $('#my-mobile-carousel').owlCarousel({margin: 20});
746        $('#my-mobile-carousel').prepend($ArrowDivLeft).append($ArrowDivRight);
747    }
748
749    /*-- #PACKAGES OWL CAROUSEL INIT + ADDING CONTROLS --*/
750    if($('body').hasClass('packages-page')){
751        var $carousel = $(".section-product-images .packages-wrapper").clone();
752        var $ArrowDivLeft = $('<div></div>').addClass("arrow").addClass("arrow-left");
753        var $ArrowDivRight = $('<div></div>').addClass("arrow").addClass("arrow-right");
754        $carousel.attr('id','packages-carousel');
755        $(".section-product-images").append($carousel);
756        $('#packages-carousel').find('.product-column--free').remove();
757        $('#packages-carousel').owlCarousel({margin: 20});
758        $('#packages-carousel').prepend($ArrowDivLeft).append($ArrowDivRight);
759    }
760
761    if($('[data-component="languageSwitch"]').length){
762        $('.languageSwitch a').click(function() {
763            event.preventDefault();
764            var current = $(this).data('currency');
765            var date = new Date();
766            date.setTime(date.getTime() + (10*24*60*60*1000));
767            var expires = "; expires=" + date.toUTCString();
768            document.cookie = 'currency=' + current + expires + '; path=/';
769
770            $('.languageSwitch a').removeClass('active');
771            $('.languageSwitch a[data-currency="' + current + '"]').addClass('active');
772
773            $('strong[data-currency]').hide();
774            $('strong[data-currency="' + current + '"]').show();
775            $('span[data-currency]').hide();
776            $('span[data-currency="' + current + '"]').show();
777
778            //replace currency anchor
779            $('.section-properties a').each(function() {
780                var href = $(this).attr('href');
781                if (href.indexOf("#") != -1) {
782                    href = href.substring(0, href.length - 4) + "_" + current;
783                    $(this).attr('href', href);
784                }
785            })
786        })
787    }
788
789    if($('[data-component="accordeon"]').length){
790        var $accordeon = $('[data-component="accordeon"]');
791        var $accordeon_items = $accordeon.children('.accordeon-item');
792        var $accordeon_nav_items = $('a[data-package]');
793        var hash = $(location).attr('hash').split('#').pop();
794
795        // Check for has in url and select active item
796        if (hash) {
797            $accordeon_items.each(function(index) {
798                if ($($accordeon_items[index]).data('id') == hash) {
799                    $accordeon_items.removeClass('active');
800                    $($accordeon_items[index]).addClass('active');
801
802                    $accordeon_nav_items.removeClass('active');
803                    $('a[data-package="' + $($accordeon_items[index]).data('id') + '"]').addClass('active');
804                }
805            });
806        }
807
808        if ($(document).innerWidth() < 1024) {
809            $accordeon_items.each(function(index) {
810                $($accordeon_items[index]).find('.accordeon-body').css('max-height', ($($accordeon_items[index]).find('.accordeon-body').prop('scrollHeight') + 20) + 'px');
811            });
812        } else {
813            $accordeon.css('height', ($accordeon_items[0].scrollHeight + 20) + 'px');
814        }
815
816        // Click event for desktop
817        $accordeon_nav_items.click(function(event) {
818            $accordeon_nav_items.removeClass('active');
819            $(this).addClass('active');
820
821            $accordeon_items.removeClass('active');
822            $('.accordeon-item[data-id=' + $(this).data('package') + ']').addClass('active');
823        })
824
825        // Click event for mobile
826        $('.accordeon-header').click(function(event) {
827            event.preventDefault();
828
829            var header = $(this)
830            setTimeout(function() {
831                $('html, body').scrollTop(header.offset().top - 40);
832            }, 50)
833
834            $accordeon_items.removeClass('active');
835            $(this).closest('.accordeon-item').addClass('active');
836        })
837
838        // Resize event
839        $( window ).resize(function() {
840            if ($( window ).innerWidth() < 1024) {
841                $accordeon_items.each(function(index) {
842                    $($accordeon_items[index]).find('.accordeon-body').css('max-height', ($($accordeon_items[index]).find('.accordeon-body').prop('scrollHeight') + 20) + 'px');
843                });
844            } else {
845                $accordeon.css('height', ($accordeon_items[0].scrollHeight + 20) + 'px');
846            }
847        })
848    }
849
850
851    /*-- #SUPPORT OWL CAROUSEL LISTENERY --*/
852    $(document).on('click', '#my-mobile-carousel .arrow-left', function(event){
853        var owl = $(".owl-carousel").data('owlCarousel');
854        owl.prev();
855    });
856    $(document).on('click', '#my-mobile-carousel .arrow-right', function(event){
857        var owl = $(".owl-carousel").data('owlCarousel');
858        owl.next();
859    });
860
861    $(document).on('click', '#packages-carousel .arrow-left', function(event){
862        var owl = $(".owl-carousel").data('owlCarousel');
863        owl.prev();
864    });
865    $(document).on('click', '#packages-carousel .arrow-right', function(event){
866        var owl = $(".owl-carousel").data('owlCarousel');
867        owl.next();
868    });
869
870    /*-- #PACKAGES OWL CAROUSEL INIT + ADDING CONTROLS --*/
871
872
873
874    /*-- #TESTIMONIALS CAROUSEL--*/
875    if ($(".testimonial-carousel").length ) {
876        $(".testimonial-carousel").owlCarousel({
877            singleItem: true,
878            center: true,
879            autoPlay: 20000,
880            stopOnHover: true
881        });
882        var owl = $(".testimonial-carousel").data('owlCarousel');
883        owl.jumpTo(Math.floor((Math.random() * 3)));
884    }
885
886    /*-- #HOMEPAGE CAROUSEL--*/
887    if ($(".introduction-carousel").length ) {
888        $(".introduction-carousel").owlCarousel({
889            singleItem: true,
890            autoPlay: 3000,
891            center: true,
892            stopOnHover: true
893        });
894    }
895
896
897    /*-- #FEATURE CAROUSEL--*/
898    if ($(".feature-carousel").length ) {
899        $(".feature-carousel").owlCarousel({
900            singleItem: true,
901            pagination: true,
902            autoPlay: 3000,
903            center: true,
904            stopOnHover: true,
905            navigation: true,
906            transitionStyle : "fade",
907            navigationText: [
908                '<span class="nav-btn prev-slide" aria-hidden="true"></span>',
909                '<span class="nav-btn next-slide" aria-hidden="true"></span>'
910            ]
911        });
912    }
913
914
915    /*-- #DEALER SELECTOR --*/
916    $(document).on('click', '#prodejci .section-support-menu-oneLevel a', function(event){
917        event.preventDefault();
918        var country = $(this).attr('href').substr(1);
919        $(".section-support-menu-oneLevel .active").removeClass('active');
920        $(this).addClass('active');
921        $(".dealer-list.preferred .countrylabel").html($(this).text());
922        $(".dealer-list.preferred").removeClass("hidden");
923        $(".dealer-list.preferred .dealer-item").remove();
924        $(".dealer-item:not(.preferred)" ).each(function( index ) {
925            $(this).find('.countries span').each(function( index ) {
926                if($(this).data('rel') == country){
927                    var preferred = $(this).closest('.dealer-item').clone();
928                    $(".dealer-list.preferred").append(preferred);
929                }
930            });
931        });
932        $('html,body').animate({scrollTop:$(".dealer-list.preferred h2").offset().top}, 500);
933    });
934
935
936    /*--  MENU CONTROLLER --*/
937    // var timer;
938    // var delay = 200;
939
940    $('.menu .item .menu-label').hover(function() {
941        menuElement = $(this);
942        timer = setTimeout(function() {
943            if(window.innerWidth >= 700 && !menuElement.hasClass('no-menu')){
944                $('.thismenuopened').removeClass('thismenuopened');
945                menuElement.addClass('thismenuopened');
946                adaptMenu();
947
948                // IF MENU IS SEARCH THEN INSERT SEARCHED VALUE AND FOCUS
949                if(menuElement.hasClass('icon-search')){
950                    $('#menushaker').find('.searchfield').val($searchfield).focus();
951                }
952            }else{
953                $('#menushaker').css('opacity',0);
954            }
955        }, delay);
956
957    }, function() {
958        clearTimeout(timer);
959    });
960
961    $(document).on('input', '#menushaker .searchfield', function(event){
962        $searchfield = $(this).val();
963    });
964
965    $(document).on('mouseleave', '.site-nav', function(event){
966        $('#menushaker').css('opacity','0').css('visibility', 'hidden');
967        $('.thismenuopened').removeClass('thismenuopened');
968    });
969
970    $(document).on('click touchend', '.content', function(event){
971        $('#menushaker').css('opacity','0').css('visibility', 'hidden');
972        $('.thismenuopened').removeClass('thismenuopened');
973    });
974
975    $(document).on('mouseenter', '.site-nav', function(event){
976        $('li.item').addClass('hiddenmenu');
977    });
978
979    $(document).on('mouseleave', '.site-nav', function(event){
980        $('li.item').removeClass('hiddenmenu');
981    });
982
983    $(document).on('click', '.help-menu-settings a', function(event){
984        $('.filters').slideToggle();
985        $(this).parent().toggleClass('active');
986    });
987
988    $(document).on('click', '.help-menu-mobile a', function(event){
989        $(this).parent().toggleClass('active');
990    });
991
992
993    /*-- CHANGE ICONS ON CLOSING MOBILE MENUS --*/
994    function checkClosing() {
995        if($('.mobile--main a').hasClass('enable')){
996            $('.mobile--main a').removeClass('icon-close');
997            $('.mobile--main a').removeClass('enable');
998            $('.mobile--main a').addClass('icon-mobile-menu-2');
999        }
1000        if($('.mobile--search a').hasClass('enable')){
1001            $('.mobile--main a').removeClass('icon-close');
1002            $('.mobile--main a').removeClass('enable');
1003            $('.mobile--main a').addClass('icon-mobile-menu-2');
1004        }
1005        if($('.mobile--cart a').hasClass('enable')){
1006            $('.mobile--main a').removeClass('icon-close');
1007            $('.mobile--main a').removeClass('enable');
1008            $('.mobile--main a').addClass('icon-mobile-menu-2');
1009        }
1010        if($('.mobile--login a').hasClass('enable')){
1011            $('.mobile--main a').removeClass('icon-close');
1012            $('.mobile--main a').removeClass('enable');
1013            $('.mobile--main a').addClass('icon-mobile-menu-2');
1014        }
1015    }
1016
1017    /*-- ADAPTING MENU TO ALL RESOLUTIONS --*/
1018    function adaptMenu(){
1019        if ($('.thismenuopened').length){
1020            var $menucontent = $('.thismenuopened').parent().find('.menu').clone();
1021            var $unimenu = $('#menushaker');
1022            var $menuwidthhalf = parseInt($('.thismenuopened').data('width'))/2;
1023            var $needoffset = parseInt($('.thismenuopened').data('offset'));
1024            var $top = ((parseInt($('.thismenuopened').offset().top)) + (parseInt($('.thismenuopened').outerHeight( true ))) 
1024- 1);
1025            var $right = ($(window).width() - ($('.thismenuopened').offset().left + $('.thismenuopened').outerWidth(true)) - $menuwidthhalf - $needoffset);
1026
1027            //setTimeout(function(){  }, 3000);
1028
1029            $unimenu.html("");
1030            $unimenu.css('top',$top+'px');
1031            $unimenu.css('opacity', 0.5);
1032            $unimenu.append($menucontent).css('visibility', 'visible');
1033            $unimenu.css('opacity', 1);
1034            $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))))+'px');
1035
1036            if(width>=1024){
1037                if($right + parseInt($('.thismenuopened').data('width')) < width){
1038                    $unimenu.css('width',parseInt($('.thismenuopened').data('width'))+'px');
1039                    $unimenu.css('right',$right+'px');
1040                }else{
1041                    $unimenu.css('width',parseInt($('.thismenuopened').data('width'))+'px');
1042                    $unimenu.css('right',width - parseInt($('.thismenuopened').data('width'))+'px');
1043                    $unimenu.find('.triangle').css('left','400px');
1044                }
1045            }  else{
1046                if($('.thismenuopened').data('width')=="1024"){
1047                    $unimenu.css('width','100%');
1048                    $unimenu.css('right',0);
1049                    $unimenu.find('.triangle').css('left',$('.thismenuopened').offset().left + parseInt($('.thismenuopened').data('tablet')) +'px');
1050                }else{
1051                    $unimenu.css('width',$('.thismenuopened').data('width')+'px');
1052                    $unimenu.css('right',$right+'px');
1053                }
1054            }
1055
1056            if($('.thismenuopened').parent().find('.menu').hasClass('learning') && $('.thismenuopened').parent().find('.menu').hasClass('lastitem') && $device == "projector"){
1057                $unimenu.css('right',($right-375)+'px');
1058                $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))+375))+'px');
1059            }
1060
1061
1062
1063            if($('.thismenuopened').parent().find('.menu').hasClass('fin') && $device == "tablet"){
1064                 $unimenu.css('right',($right-90)+'px');
1065                 $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))+160))+'px');
1066
1067            }
1068            //support adjustments
1069            if($('.thismenuopened').parent().find('.menu').hasClass('help') && $device == "tablet"){
1070                $unimenu.css('right','0');
1071                $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))-90))+'px');
1072                console.log("tablet");
1073            }
1074            if($('.thismenuopened').parent().find('.menu').hasClass('help') && $device == "lg"){
1075                $unimenu.css('right','0');
1076                $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))-70))+'px');
1077
1078            }
1079            if($('.thismenuopened').parent().find('.menu').hasClass('help') && $device == "xl"){
1080                $unimenu.css('right',($right+40)+'px');
1081                $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))-45))+'px');
1082            }
1083            //cart adjustments
1084            if($('.thismenuopened').parent().find('.menu').hasClass('cart') && $device == "lg"){
1085                $unimenu.css('right',($right+5)+'px');
1086                $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))-25))+'px');
1087            }
1088
1089            if($('.thismenuopened').parent().find('.menu').hasClass('shop') && $('.thismenuopened').parent().find('.menu').hasClass('lastitem') && $device == "tablet"){
1090                 $unimenu.css('right',($right-125)+'px');
1091                 $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))+125))+'px');
1092            }
1093
1094            var xwidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
1095            if($('.thismenuopened').parent().find('.menu').hasClass('geo5') && xwidth >= 1920){
1096                 $unimenu.find('.triangle').css('left','490px');
1097            }
1098        }
1099    }
1100
1101
1102    /*-- ADAPTING BACKGROUND WHEN SMALLER SCREEN IS USED --*/
1103    function adaptBG(){
1104        var width = $(window).width();
1105        var pattern = $('.homepage-background-pattern');
1106        var backgro = $('.homepage-background-image');
1107        var howmany = (width - 1300) / 2;
1108        var multiplier = 1;
1109
1110        if(width < 768){
1111            multiplier = 500;
1112        }else if (width >= 768 && width < 1240){
1113            multiplier = 0;
1114        }else if (width > 1024 && width < 1903){
1115            multiplier = -275;
1116        }else{
1117            multiplier = 0;
1118        }
1119
1120        if(width > 1240){
1121            pattern.css('left',(howmany+multiplier) + 'px');
1122            backgro.css('right',(howmany-multiplier) + 'px');
1123        }
1124    }
1125
1126
1127    /*-- DETECT DEVICE RESOLUTION --*/
1128    function deviceDetect(){
1129        if(window.innerWidth < 768){
1130            $device = "mobile";
1131        }else if (window.innerWidth >= 768 && window.innerWidth < 1024){
1132            $device = "tablet";
1133        }else if (window.innerWidth > 1025 && window.innerWidth < 1199){
1134            $device = "lg";
1135            // console.log("lg")
1136        }else if (window.innerWidth > 1200 && window.innerWidth < 1400){
1137            $device = "xl";
1138            // console.log("xl")
1139        }else if (window.innerWidth > 1400 && window.innerWidth < 1600){
1140            $device = "xxl";
1141        }else if (window.innerWidth > 1600 && window.innerWidth < 1928){
1142            $device = "xxxl";
1143        }else if (window.innerWidth > 1025 && window.innerWidth < 1928){
1144            $device = "desktop";
1145        }else{
1146            $device = "projector";
1147        }
1148
1149        if(width > 680){
1150            API.close();
1151            APISearch.close();
1152            // APICart.close()
1153            checkClosing();
1154        }
1155
1156        if(width < 768 && $('body').hasClass('OnlineSupport')){
1157            APISubmenu.close();
1158            checkClosing();
1159        }
1160
1161
1162    }
1163
1164
1165    /*-- GETTING OFFSET OF FLOATING ELEMENTS --*/
1166    function offsetMenu(){
1167        //   if($floatmenu.length){ offset = parseInt($floatmenu.offset().top) - 40; }
1168    }
1169
1170    function adapt(){
1171        var $olddevice = $device;
1172        deviceDetect();
1173        adaptMenu();
1174        adaptBG();
1175        adaptProperties();
1176        offsetMenu();
1177
1178
1179    }
1180
1181    //change additional language functionality
1182    $(document).ready(function(){
1183        $('#change_language_flag').click(function(event) {
1184            event.preventDefault();
1185            var applyLang = $(this).attr('data-language-flag');
1186            var select = $('#form-help-language');
1187            var form = $('.form-support-filter');
1188            if (select.length && form.length && applyLang.length) {
1189                select.val(applyLang);
1190                form.submit();
1191            }
1192        });
1193    });
1194
1195
1196    // newCart.init();
1197    deviceDetect();
1198    $(document).ready(adapt);
1199    $(window).resize(adapt);
1200
1201})();
1202/*--  MENU CONTROLLER --*/
1203var timer;
1204var delay = 200;
1205var width = $(window).width();
1206
1207$('.menu .item .menu-label').hover(function() {
1208    menuElement = $(this);
1209    timer = setTimeout(function() {
1210        if(window.innerWidth >= 700 && !menuElement.hasClass('no-menu')){
1211            $('.thismenuopened').removeClass('thismenuopened');
1212            menuElement.addClass('thismenuopened');
1213            adaptMenu();
1214
1215            // IF MENU IS SEARCH THEN INSERT SEARCHED VALUE AND FOCUS
1216            if(menuElement.hasClass('icon-search')){
1217                $('#menushaker').find('.searchfield').val($searchfield).focus();
1218            }
1219        }else{
1220            $('#menushaker').css('opacity',0);
1221        }
1222    }, delay);
1223
1224}, function() {
1225    // on mouse out, cancel the timer
1226    clearTimeout(timer);
1227});
1228
1229$(document).on('input', '#menushaker .searchfield', function(event){
1230    $searchfield = $(this).val();
1231});
1232
1233$(document).on('mouseleave', '.site-nav', function(event){
1234    $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1235    $('.thismenuopened').removeClass('thismenuopened');
1236});
1237
1238$(document).on('click touchend', '.content', function(event){
1239    $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1240    $('.thismenuopened').removeClass('thismenuopened');
1241});
1242
1243$(document).on('mouseenter', '.site-nav', function(event){
1244    $('li.item').addClass('hiddenmenu');
1245});
1246
1247$(document).on('mouseleave', '.site-nav', function(event){
1248    $('li.item').removeClass('hiddenmenu');
1249});
1250
1251$(document).on('click', '.help-menu-settings a', function(event){
1252    $('.filters').slideToggle();
1253    $(this).parent().toggleClass('active');
1254});
1255
1256$(document).on('click', '.help-menu-mobile a', function(event){
1257    $(this).parent().toggleClass('active');
1258});
1259
1260
1261
1262/*-- ADAPTING MENU TO ALL RESOLUTIONS --*/
1263function adaptMenu(){
1264    if ($('.thismenuopened').length){
1265        var $menucontent = $('.thismenuopened').parent().find('.menu').clone();
1266        var $unimenu = $('#menushaker');
1267        var $menuwidthhalf = parseInt($('.thismenuopened').data('width'))/2;
1268        var $needoffset = parseInt($('.thismenuopened').data('offset'));
1269        var $top = ((parseInt($('.thismenuopened').offset().top)) + (parseInt($('.thismenuopened').outerHeight( true ))) - 1);
1270        var $right = ($(window).width() - ($('.thismenuopened').offset().left + $('.thismenuopened').outerWidth(true)) - $menuwidthhalf - $needoffset);
1271
1272        //setTimeout(function(){  }, 3000);
1273
1274        $unimenu.html("");
1275        $unimenu.css('top',$top+'px');
1276        $unimenu.css('opacity', 0.5);
1277        $unimenu.append($menucontent).css('visibility', 'visible');
1278        $unimenu.css('opacity', 1);
1279        $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))))+'px');
1280
1281        if(width>=1024){
1282            if($right + parseInt($('.thismenuopened').data('width')) < width){
1283                $unimenu.css('width',parseInt($('.thismenuopened').data('width'))+'px');
1284                $unimenu.css('right',$right+'px');
1285            }else{
1286                $unimenu.css('width',parseInt($('.thismenuopened').data('width'))+'px');
1287                $unimenu.css('right',width - parseInt($('.thismenuopened').data('width'))+'px');
1288                $unimenu.find('.triangle').css('left','400px');
1289            }
1290        }else{
1291            if($('.thismenuopened').data('width')=="1024"){
1292                $unimenu.css('width','100%');
1293                $unimenu.css('right',0);
1294                $unimenu.find('.triangle').css('left',$('.thismenuopened').offset().left + parseInt($('.thismenuopened').data('tablet')) +'px');
1295            }else{
1296                $unimenu.css('width',$('.thismenuopened').data('width')+'px');
1297                $unimenu.css('right',$right+'px');
1298            }
1299        }
1300
1301        if($('.thismenuopened').parent().find('.menu').hasClass('help') && $('.thismenuopened').parent().find('.menu').hasClass('lastitem') && $device == "projector"){
1302            $unimenu.css('right',($right-350)+'px');
1303            $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))+350))+'px');
1304        }
1305
1306        if($('.thismenuopened').parent().find('.menu').hasClass('shop') && $('.thismenuopened').parent().find('.menu').hasClass('lastitem') && $device == "projector"){
1307            $unimenu.css('right',($right-125)+'px');
1308            $unimenu.find('.triangle').css('left',($menuwidthhalf-(parseInt($unimenu.find('.triangle').data('offset'))+125))+'px');
1309        }
1310
1311        var xwidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
1312        if($('.thismenuopened').parent().find('.menu').hasClass('geo5') && xwidth >= 1920){
1313            $unimenu.find('.triangle').css('left','490px');
1314        }
1315    }
1316}
1317
1318
1319/*-- ADAPTING BACKGROUND WHEN SMALLER SCREEN IS USED --*/
1320function adaptBG(){
1321    var width = $(window).width();
1322    var pattern = $('.homepage-background-pattern');
1323    var backgro = $('.homepage-background-image');
1324    var howmany = (width - 1300) / 2;
1325    var multiplier = 1;
1326
1327    if(width < 768){
1328        multiplier = 500;
1329    }else if (width >= 768 && width < 1240){
1330        multiplier = 0;
1331    }else if (width > 1024 && width < 1903){
1332        multiplier = -275;
1333    }else{
1334        multiplier = 0;
1335    }
1336
1337    if(width > 1240){
1338        pattern.css('left',(howmany+multiplier) + 'px');
1339        backgro.css('right',(howmany-multiplier) + 'px');
1340    }
1341}
1342
1343
1344/*-- DETECT DEVICE RESOLUTION --*/
1345function deviceDetect(){
1346    if(window.innerWidth < 768){
1347        $device = "mobile";
1348    }else if (window.innerWidth >= 768 && window.innerWidth < 1024){
1349        $device = "tablet";
1350    }else if (window.innerWidth > 1025 && window.innerWidth < 1199){
1351        $device = "lg";
1352        // console.log("lg")
1353    }else if (window.innerWidth > 1200 && window.innerWidth < 1400){
1354        $device = "xl";
1355        // console.log("xl")
1356    }else if (window.innerWidth > 1400 && window.innerWidth < 1600){
1357        $device = "xxl";
1358    }else if (window.innerWidth > 1600 && window.innerWidth < 1928){
1359        $device = "xxxl";
1360    }else if (window.innerWidth > 1025 && window.innerWidth < 1928){
1361        $device = "desktop";
1362    }else{
1363        $device = "projector";
1364    }
1365
1366    if(window.innerWidth > 680){
1367        API.close();
1368        APISearch.close();
1369        // APICart.close()
1370        APIUser.close()
1371        checkClosing();
1372    }
1373
1374    if(window.innerWidth < 768 && $('body').hasClass('OnlineSupport')){
1375        APISubmenu.close();
1376        checkClosing();
1377    }
1378
1379
1380}
1381
1382
1383
1384function changeSelectedProductMenu() {
1385    // $('.menu-tab').hover(function () {
1386    //     $(this).toggleClass('selected').siblings().removeClass('selected');
1387    // });
1388
1389    $('.menu-tab').on('mouseover', function() {
1390
1391        $('.menu-tab.active').removeClass('active');
1392        $('.menu-tab.selected').removeClass('selected');
1393        $(this).addClass('selected');
1394        $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1395
1396    });
1397    
1398    $('#menushaker').on('mouseleave', function() {
1399        $('.menu-tab').removeClass('selected');
1400    });
1401    $('.site-nav').on('mouseleave', function() {
1402        if ($('#menushaker').css("visibility") == "hidden") {
1403            $('.menu-tab').removeClass('selected');
1404            $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1405        }
1406    });
1407    $('.logo--inner').on('mouseover', function() {
1408        $('.menu-tab.selected').removeClass('selected');
1409        $('.menu-tab:first-child').addClass('selected');
1410    });
1411}
1412function changeMenuByProduct() {
1413    if (!$('body').hasClass("finec") || !$('body').hasClass("truss4")) {
1414        $('.menu-tab .geo5').parent().addClass('active');
1415    }
1416    if ($('body').hasClass("geo5")) {
1417        $('.menu-tab .truss, .menu-tab .fin').on('mouseout', function(e) {
1418            var opened = $(this).find(".thismenuopened");
1419            // console.log(opened);
1420            if (!opened.length>0) {
1421                $(this).parent().removeClass('selected');
1422                $('.menu-tab .geo5').parent().addClass('selected');
1423                $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1424                $('.thismenuopened').removeClass('thismenuopened');
1425            }
1426        });
1427
1428    };
1429    if ($('body').hasClass("finec")) {
1430
1431        $('.menu-tab .fin').parent().addClass('active');
1432        $('.menu-tab .truss, .menu-tab .geo5').on('mouseout', function(e) {
1433            var opened = $(this).find(".thismenuopened");
1434            // console.log(opened);
1435            if (!opened.length>0) {
1436                $(this).parent().removeClass('selected');
1437                $('.menu-tab .fin').parent().addClass('selected');
1438                $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1439                $('.thismenuopened').removeClass('thismenuopened');
1440            }
1441        });
1442
1443    }
1444    if ($('body').hasClass("truss4")) {
1445
1446        $('.menu-tab .truss').parent().addClass('active');
1447        $('.menu-tab .fin, .menu-tab .geo5').on('mouseout', function(e) {
1448            var opened = $(this).find(".thismenuopened");
1449            // console.log(opened);
1450            if (!opened.length>0) {
1451                $(this).parent().removeClass('selected');
1452                $('.menu-tab .truss').parent().addClass('selected');
1453                $('#menushaker').css('opacity','0').css('visibility', 'hidden');
1454                $('.thismenuopened').removeClass('thismenuopened');
1455            }
1456        });
1457    }
1458}
1459changeSelectedProductMenu();
1460// changeMenuByProduct();
1461

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.