PageSourceSearch

https://kreka.ba/wp-content/uploads/ac_assets/uc_content_accordion/content_accordion.js?ver=2.0.20

js kreka.ba collected 2026-09-25 11:08:41 UTC 4,523 bytes, 185 lines download raw bytes

1
2function UCPostAccordion(objAccordion){
3  
4  var g_activeClass;
5  var g_dataLinkNum, g_accItem, g_scrollOffset;
6  
7  //scroll func
8  function scrollToTop(){
9    var panel = jQuery(this).closest(".uc_ac_box");
10    
11    jQuery('html, body').animate({
12      scrollTop: panel.offset().top + g_scrollOffset
13    }, 400);
14  }
15  
16  function onItemClick(){
17    
18    var objCaption = jQuery(this);
19    var objContent = objCaption.next();
20    var objItem = objCaption.parent();
21    
22    var isActive = objItem.hasClass(g_activeClass);
23    var objOpened = objAccordion.find("."+g_activeClass);
24    var dataCloseothers = objAccordion.data("closeothers");
25    
26    if(dataCloseothers == true){
27      if(isActive == true){              
28        objItem.removeClass(g_activeClass);
29        objContent.slideUp();        	            	
30        return(true);
31      }
32      
33      objOpened.removeClass(g_activeClass);
34      objOpened.find(".uc_content").slideUp();
35      
36    }
37    objItem.addClass(g_activeClass);
38    
39    var dataScroll = objAccordion.data('scroll');
40    
41    if (dataScroll == "desktop"){
42      if(window.matchMedia("(min-width: 1024px)").matches){
43        objContent.slideDown(scrollToTop);
44      }else{
45        objContent.slideDown();
46      }
47    }
48    
49    if (dataScroll == "mobile"){
50      if(window.matchMedia("(max-width: 1024px)").matches){
51        objContent.slideDown(scrollToTop);
52      }else{
53        objContent.slideDown();
54      }
55    }
56    
57    if (dataScroll == "desktop+mobile"){
58      objContent.slideDown(scrollToTop);
59    }
60    
61    if (dataScroll == "off"){
62      objContent.slideDown();
63    }
64    
65    return false;
66  }
67  
68  
69  function linkToSlideScroll(){ 
70    
71    jQuery('html, body').animate({
72      scrollTop: g_accItem.offset().top + g_scrollOffset
73    }, 400);
74  }
75  
76  /*
77  * check if element is in viewport
78  */
79  function isElementInViewport(objElement) {
80    
81    var elementTop = objElement.offset().top;
82    var elementBottom = elementTop + objElement.outerHeight();
83    
84    var viewportTop = jQuery(window).scrollTop();
85    var viewportBottom = viewportTop + jQuery(window).height();
86    
87    var isInViwport = elementBottom > viewportTop && elementTop < viewportBottom;
88    
89    return(isInViwport);
90  } 
91  
92  /*
93  * on trigger link click
94  */
95  function onLinkClick(e){
96    
97    var objLink = jQuery(this);
98    
99    var dataAccName = objAccordion.data('name');
100    var dataLinkName = objLink.data('name');
101    g_dataLinkNum = objLink.data('num');
102    g_accItem = objAccordion.find('.uc_ac_box .uc_trigger').eq(g_dataLinkNum - 1);
103    var accItemNumber = objAccordion.find('.uc_ac_box').length;
104    
105    if(dataLinkName != dataAccName)
106    return(false);
107    
108    if(dataLinkName == undefined || g_dataLinkNum == '' || g_dataLinkNum > accItemNumber)
109    return(false);
110    
111    var accItemContent = g_accItem.next();
112    var accItemParent = g_accItem.parent();
113    var isItemParentActive = accItemParent.hasClass("uc-item-active");
114    
115    e.preventDefault();
116    
117    if(isItemParentActive == true && isElementInViewport(objAccordion) == false){
118      
119      linkToSlideScroll();
120      
121    }else if(isItemParentActive == false && isElementInViewport(objAccordion) == false){
122      
123      onItemClick();	      
124      accItemContent.slideDown(linkToSlideScroll);
125      accItemParent.addClass("uc-item-active");
126      
127    }else if(isItemParentActive == false && isElementInViewport(objAccordion) == true){
128      
129      onItemClick();	      
130      accItemContent.slideDown();
131      accItemParent.addClass("uc-item-active");
132    }
133  }
134  
135  /**
136  * init open links
137  */
138  function initLinks(){
139    
140    
141    var objLinks = jQuery('.ue-link-goto-item').not(".uc-link-inited");
142    
143    if(objLinks.length == 0){
144      return(false);
145    }
146    
147    var elementName = objAccordion.data("name");
148    
149    jQuery.each(objLinks, function(index, linkElement){
150      
151      var objLink = jQuery(linkElement);
152      
153      var name = objLink.data("name");
154      
155      if(name != elementName)
156      return(true);
157      
158      objLink.addClass("uc-link-inited");
159      
160      objLink.on("click", onLinkClick);
161      
162    });
163    
164    
165  }
166  
167  
168  function runPostAccordion(){
169    //init globals
170    
171    g_activeClass = "uc-item-active";
172    
173    g_scrollOffset = objAccordion.data('offset');
174    
175    initLinks();
176    
177    //init events
178    
179    objAccordion.on("click", ".uc_trigger", onItemClick);
180    objAccordion.on("ucclick", ".uc_trigger", onItemClick);
181  }
182  
183  runPostAccordion();
184  
185}

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.