PageSourceSearch

https://www.tibnor.se/_ui/tibnor/common/js/acc.tabs.js

js tibnor.se collected 2026-09-29 10:43:36 UTC 4,630 bytes, 144 lines download raw bytes

1ACC.tabs = {
2
3    _autoload: [
4        ["bindTabs", $(".js-tabs").length > 0],
5        "hideReviewBtn",
6        "determineToDisplayReviews"
7    ],
8
9    tabConf: {
10        tabhead: '.tabhead',
11        tabbody: '.tabbody',
12        fx: 'fadeIn',
13        fxspeed: 0,
14        currentClass: 'active',
15        autoAnchor: true,
16        lastNavItemClass: 'last js-last-nav-tab',
17        syncheights:true
18    },
19
20    bindTabs: function () {
21        $e = $(".js-tabs");
22        tabs = $e.accessibleTabs(ACC.tabs.tabConf);
23
24        //smarteditloader hack
25        if(('#ySmartEditFrame').length){
26            $(document).on("scroll", function (e) {
27                var tabsSE = $("body").find(".js-tabs");
28                if(tabsSE.find("> div.yCmsComponent").length){
29                    tabsSE.accessibleTabs(ACC.tabs.tabConf);
30                }
31            });
32        }
33
34        $e.on("click", ".tabhead", function (e) {
35            e.preventDefault();
36
37            if ($(this).hasClass("active")) {
38                $(this).removeClass("active");
39            } else {
40                $(this).parents(".js-tabs").children(".tabs-list").find("a[href='" + "#" + $(this).attr("id") + "']").click();
41
42                var offset = $(this).offset().top;
43                $("body,html").scrollTop(offset);
44            }
45
46        });
47
48        $e.on("click", "#tabreview", function (e) {
49            e.preventDefault();
50            ACC.track.trackShowReviewClick();
51            ACC.tabs.showReviewsAction("reviews");
52        });
53
54        $e.on("click", ".all-reviews-btn", function (e) {
55            e.preventDefault();
56            ACC.tabs.showReviewsAction("allreviews");
57            ACC.tabs.hideReviewBtn(".all-reviews-btn");
58            ACC.tabs.showReviewBtn(".less-reviews-btn");
59        });
60
61        $e.on("click", ".less-reviews-btn", function (e) {
62            e.preventDefault();
63            ACC.tabs.showReviewsAction("reviews");
64            ACC.tabs.hideReviewBtn(".less-reviews-btn");
65            ACC.tabs.showReviewBtn(".all-reviews-btn");
66        });
67
68        $(document).on("click", '.js-writeReviewTab', function (e) {
69            e.preventDefault();
70            tabs.showAccessibleTabSelector($(this).attr("href"));
71            $(".js-review-write").show();
72            $('#reviewForm input[name=headline]').focus();
73        });
74
75        $(document).on("click", ".js-review-write-toggle", function (e) {
76            e.preventDefault();
77            if ($(".js-review-write:visible").length < 1) {
78                $(".js-review-write").show();
79
80            } else {
81                $(".js-review-write").hide();
82            }
83        });
84
85        $(document).on("click", ".js-openTab", function () {
86            tabs.showAccessibleTabSelector($(this).attr("href"));
87        });
88        
89        handleArrows = function(){
90            var lastItem = $e.find('.js-last-nav-tab');
91            if(lastItem.length){
92                var lastPos = lastItem.offset().left;
93                var lastWidth = lastItem.width();
94                var tabPos = $e.offset().left;
95                var tabWidth = $e.width();
96            
97                $e.parent().toggleClass( "tabs-arrow", lastPos + lastWidth > tabPos + tabWidth);
98            }
99        }
100
101        $(window).on('load', handleArrows);
102        $(window).on('resize', handleArrows);
103        
104        $(document).on("click", ".js-tib-tabs-btn", function () {
105            var targ = $(this).data('nav');
106            var targVal = targ === 'prev' ? -1 : +1;
107            $e.find('.tabs-list').animate({scrollLeft: $e.find('.tabs-list').scrollLeft() + (targVal * $e.width()/4)}, 800);
108        });
109
110    },
111
112    showReviewsAction: function (s) {
113        $.get($("#reviews").data(s), undefined, function (result) {
114            $('#reviews').html(ACC.sanitizer.sanitize(result));
115            if ($(".js-ratingCalc").length > 0) {
116                ACC.ratingstars.bindRatingStars();
117                ACC.tabs.showingAllReviews();
118            }
119        }, 'html');
120    },
121
122    hideReviewBtn: function (btnClass) {
123
124        btnClass = (btnClass === undefined) ? ".less-reviews-btn" : btnClass;
125        $(btnClass).hide();
126    },
127
128    showReviewBtn: function (btnClass) {
129        $(btnClass).show();
130    },
131
132    showingAllReviews: function () {
133        var isShowingAllReviews = $("#showingAllReviews").data("showingallreviews");
134        if (isShowingAllReviews) {
135            ACC.tabs.hideReviewBtn(".all-reviews-btn");
136        }
137    },
138
139    determineToDisplayReviews: function () {
140        if (location.hash === "#tabreview") {
141            ACC.tabs.showReviewsAction('reviews');
142        }
143    }
144};

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.