PageSourceSearch

https://www.rpp-institut.com/wp-content/themes/rppinstitut/assets/js/main.js

js rpp-institut.com collected 2026-10-02 05:18:45 UTC 13,782 bytes, 404 lines download raw bytes

1/*
2
3  ID für Hide on Scroll / Show on Scroll:
4
5  #divibar-6240
6
7*/
8
9
10//custom Code by Lupoly
11
12var scrollBorder = 10;
13//var $el, $elcomp, compDist, vw, productSlider;
14var $el;
15var $elcomp;
16var existsCheck = false;
17var compDist;
18var width = 0;
19var height = 0;
20var startScrollAt = 100 + scrollBorder;
21var vw;
22var isTop = true;
23var endScrollSpeed = 0;
24var productSlider;
25var isPressed = false;
26var mouseX = 0;
27var productSliderItems;
28var accordionCurrentItem;
29
30
31jQuery(document).ready(function(){
32
33//console.log("Document ready");
34
35  //Exists Check
36  //Deprecated?
37
38  existsCheck = jQuery(".rpp-products-fixed")[0] ? true : false;
39  console.log("existsCheck: " + existsCheck);
40
41  if (existsCheck) {
42    $el = jQuery('.rpp-products-fixed');
43    $elcomp = jQuery('.rpp-sticky-compare');
44  }
45
46  vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
47
48  //console.log(vw);
49
50  //Check Amazon Books
51  if (document.getElementById("rpp-books-area")) {
52    if (!jQuery(".rpp-speaker--main")[0]){
53      document.getElementById("rpp-books-area").style.display = "none";
54    }
55  }
56
57  if (document.getElementById("rpp-products-area")) {
58    if (!jQuery(".rpp_woo_productlist_main")[0]){
59      document.getElementById("rpp-products-area").style.display = "none";
60    }
61  }
62
63  //Check Product accordion
64  if (document.getElementsByClassName("rpp_woo_pricing_accordion_headline")[0]) {
65    //console.log("found Accordion");
66    var targetTags = document.getElementsByTagName("h4");
67    var found;
68
69    for (var i = 0; i < targetTags.length; i++) {
70      if (targetTags[i].textContent == "RPP ABO") {
71        found = targetTags[i].parentElement;
72        //Code loaded before Page was ready. Delay 1s to give Page Time
73        accordionCurrentItem = found;
74    		accordionClicker(found);
75        //console.log(found);
76        break;
77      }
78    }
79    if (found == null) {
80      accordionCurrentItem = document.getElementsByClassName("rpp_woo_pricing_accordion_headline")[0];
81      accordionClicker(document.getElementsByClassName("rpp_woo_pricing_accordion_headline")[0]);
82    }
83
84    var intervalId = window.setInterval(function() {
85        accordionClicker(accordionCurrentItem);
86    }, 1000);
87  }
88
89
90  if (document.getElementById("rpp_product_productslider")) {
91    productSliderItems = document.getElementsByClassName("rpp_content_col_slider");
92    //if (!MobileDeviceCheck()) {
93      //if it is mobile
94    //}
95
96    productSlider = document.getElementsByClassName("rpp-product--overview")[0];
97    var productSliderItem = document.getElementsByClassName("rpp_woo_productlist_main");
98    isPressed = false;
99    var startX;
100    var scrollLeft;
101
102
103    SetProductSliderSize();
104
105
106
107    //Add Functionality to Slider
108    productSlider.addEventListener('mousedown', (e) => {
109      isPressed = true;
110      isTouched = true;
111      startX = e.pageX - productSlider.offsetLeft;
112      scrollLeft = productSlider.scrollLeft;
113    });
114    productSlider.addEventListener('mouseleave', () => {
115      isPressed = false;
116      isTouched = false;
117      sliderAutoRun = true;
118    });
119    productSlider.addEventListener('mouseenter', () => {
120      sliderAutoRun = false;
121    });
122    productSlider.addEventListener('mouseup', () => {
123      isPressed = false;
124      isTouched = false;
125      endScrollSpeed = differenceInPx * 1.5;
126      if (endScrollSpeed < 0) {sliderMoveRight = true;}
127      else if (endScrollSpeed > 0) {sliderMoveRight = false;}
128    });
129    productSlider.addEventListener('mousemove', (e) => {
130      if(!isPressed) return;
131      e.preventDefault();
132      const x = e.pageX - productSlider.offsetLeft;
133      const walk = (x - startX) * 1; //Scroll Speed Multiplier
134      productSlider.scrollLeft = scrollLeft - walk;
135    });
136
137    //Mobile Logic
138    productSlider.addEventListener('touchstart', () => {
139      isTouched = true;
140    });
141    productSlider.addEventListener('touchend', () => {
142      isTouched = false;
143    });
144    productSlider.addEventListener('touchcancel', () => {
145      isTouched = false;
146    });
147
148    for (let item of productSliderItem) {
149
150      let clickStart;
151      let mouseClickPosX = 0;
152      let mouseClickPosY = 0;
153
154      item.addEventListener('mousedown', (e) => {
155        clickstart = new Date();
156        mouseClickPosX = window.event.screenX;
157        mouseClickPosY = window.event.screenY;
158        //console.log(window.event.screenX + " " + window.event.screenY);
159      });
160
161      item.addEventListener('mouseup', () => {
162        var dif = new Date() - clickstart;
163        //console.log(window.event.screenX + " " + window.event.screenY);
164        //console.log(Math.abs(mouseClickPosX - window.event.screenX) + " " + Math.abs(mouseClickPosY - window.event.screenY));
165        if ((Math.abs(mouseClickPosX - window.event.screenX) < 10) && (Math.abs(mouseClickPosY - window.event.screenY) < 10) && dif < 1000) {
166          window.location.href = item.getAttribute("data-link");
167        }
168      });
169
170      var lastResizeTime = new Date();
171      window.addEventListener('resize', () => {
172        if ((new Date() - lastResizeTime) > 500) {
173          SetProductSliderSize();
174          lastResizeTime = new Date();
175        }
176      });
177
178    }
179
180    //start AnimateProductSliderFade
181    if (!MobileDeviceCheck()) {
182      setInterval(() => {
183        AnimateProductSliderFade();
184      }, 1000/60);
185
186      setInterval(() => {
187        ProductSliderAutoScroll();
188      }, 1000/50);
189    } else {
190      setInterval(() => {
191        ProductSliderAutoScrollMobile();
192      }, 1000/30);
193    }
194
195
196
197
198    //start Cursor check
199
200    jQuery(document).mousemove(function(event) {
201        mouseX = event.pageX;
202    });
203
204
205  }
206
207
208  if (document.getElementById("rpp_woo_productdescription")) {
209    var sectionText = jQuery("#rpp_woo_productdescription_text div p:first").text();
210    if (sectionText == "") {
211      jQuery("#rpp_woo_productdescription").hide();
212      jQuery("#rpp_woo_lektionen").css('margin-top',0).css('z-index', 3000);
213    }
214  }
215
216});
217
218//OnScroll Function do determin Distance to top
219jQuery(window).scroll(function(e){
220  if (existsCheck) {
221    var isPositionFixed = ($el.css('position') == 'fixed');
222
223    if (GetDistance() <= startScrollAt && !isPositionFixed){
224      width = document.getElementsByClassName("rpp-products-fixed")[0].offsetWidth;
225      $el.css({'position': 'fixed', 'top': startScrollAt + 'px', 'width': width + 'px'});
226      isPositionFixed == true;
227    }
228    compDist = jQuery($elcomp).offset().top - jQuery(window).scrollTop();
229    var mdist = jQuery($el).offset().top - jQuery(window).scrollTop();
230    if (GetDistance() < compDist && isPositionFixed){
231      $el.css({'position': 'static', 'top': '0px'});
232      isPositionFixed = false;
233    }
234  }
235
236
237  BlendMobileMenu();
238
239});
240
241//Distance Calculator
242function GetDistance() {
243  var scrollTop     = jQuery(window).scrollTop(),
244        elementOffset = jQuery($el).offset().top,
245        distance      = (elementOffset - scrollTop);
246
247  return distance;
248}
249
250//Menu Transition / Blend Function
251function BlendMobileMenu() {
252  vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
253  if (vw <= 980) {
254    if (jQuery(window).scrollTop() >= 100 ) //&& isTop
255    {
256      document.getElementById("main-header").style.backgroundColor = "rgba(0,0,0,0.8)";
257      isTop = false;
258    }
259    else if (jQuery(window).scrollTop() < 100 ) //&& !isTop
260    {
261      document.getElementById("main-header").style.backgroundColor = "rgba(0,0,0,0)";
262      isTop = true;
263    }
264  }
265}
266
267
268jQuery(document).ready(function() {
269  //Catch Accordion Clicks
270  jQuery(".rpp_woo_pricing_accordion_headline").click(function(){
271    accordionCurrentItem = this;
272    accordionClicker(this);
273    //console.log("Click");
274  });
275});
276
277function accordionClicker(thisElement) {
278  var acc = document.getElementsByClassName("rpp_woo_pricing_accordion_headline");
279  //deactivate all accordion items
280  for (var i = 0; i < acc.length; i++) {
281    acc[i].classList.remove("active");
282    acc[i].classList.add("inactive");
283    //Set maxHeight in next Element
284    acc[i].nextElementSibling.style.maxHeight = "0px";
285  }
286  //activate clicked accordion item
287  thisElement.classList.add("active");
288  thisElement.classList.remove("inactive");
289  thisElement.nextElementSibling.style.maxHeight = thisElement.nextElementSibling.scrollHeight + "px";
290}
291
292
293//Animation for Product Slider
294
295var lastMousePost = 0;
296var differenceInPx = 0;
297
298function AnimateProductSliderFade() {
299  if (isPressed) {
300    differenceInPx = mouseX - lastMousePost;
301    lastMousePost = mouseX;
302  }
303  if (endScrollSpeed == 0 || isPressed == true) { return; }
304
305  //Scroll Fade Out Effect
306  if (endScrollSpeed > 0) {
307    if (endScrollSpeed > 100) {endScrollSpeed = 100;}
308    else if (endScrollSpeed > 10) {endScrollSpeed = endScrollSpeed * .95;}
309    else if (endScrollSpeed > 0) {endScrollSpeed = endScrollSpeed - 0.4;}
310    if (endScrollSpeed < 0) {endScrollSpeed = 0;}
311  }
312
313  if (endScrollSpeed < 0) {
314    if (endScrollSpeed < -100) {endScrollSpeed = -100;}
315    else if (endScrollSpeed < -10) {endScrollSpeed = endScrollSpeed * .95;}
316    else if (endScrollSpeed < 0) {endScrollSpeed = endScrollSpeed + 0.25;}
317    if (endScrollSpeed > 0) {endScrollSpeed = 0;}
318  }
319  productSlider.scrollLeft = productSlider.scrollLeft - endScrollSpeed;
320  //End Scroll Fade Out Effect
321
322}
323
324
325
326function MobileDeviceCheck() {
327  let check = false;
328  (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
328sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
329  return check;
330};
331
332function SetProductSliderSize() {
333  var browserWidth = window.innerWidth;
334  productSliderItems = document.getElementsByClassName("rpp_content_col_slider");
335  for (let item of productSliderItems) {
336    item.style.width = (browserWidth > 980) ? "400px" : (browserWidth * 0.95) + "px";
337  }
338  jQuery("#rpp_product_productslider").width(((productSliderItems[0].offsetWidth + 30) * productSliderItems.length) + 500);
339
340  sliderWidthCurrent = jQuery("#rpp_product_productslider").width();
341
342  //console.log("Element width: " + jQuery("#rpp_product_productslider").width());
343}
344
345var sliderMoveRight = true;
346var scrollpercent = 0;
347var sliderAutoRun = true;
348
349function ProductSliderAutoScroll() {
350  if (isPressed == true || sliderAutoRun == false) { return; }
351  //productSliderItems
352  //productSlider.offsetLeft
353  scrollpercent = 100 * productSlider.scrollLeft / (productSlider.scrollWidth-productSlider.clientWidth);
354
355  if (sliderMoveRight) {
356    productSlider.scrollLeft = productSlider.scrollLeft + 1;
357    if (scrollpercent >= 99.8) {sliderMoveRight = false;}
358  } else {
359    productSlider.scrollLeft = productSlider.scrollLeft - 1;
360    if (scrollpercent <= 0.2) {sliderMoveRight = true;}
361  }
362
363}
364
365var isTouched = false;
366var lastTouched = new Date();
367var pauseAfterTouched = 0;
368
369function ProductSliderAutoScrollMobile() {
370  if (isTouched == true) {
371    lastTouched = new Date();
372    sliderAutoRun = false;
373  } else if (sliderAutoRun == false) {
374    pauseAfterTouched = new Date() - lastTouched;
375    sliderAutoRun =  (pauseAfterTouched>5000) ? true : false;
376  }
377  if (sliderAutoRun) {
378    scrollpercent = 100 * productSlider.scrollLeft / (productSlider.scrollWidth-productSlider.clientWidth);
379    if (sliderMoveRight) {
380      productSlider.scrollLeft = productSlider.scrollLeft + 1;
381      if (scrollpercent >= 99.8) {sliderMoveRight = false;}
382    } else {
383      productSlider.scrollLeft = productSlider.scrollLeft - 1;
384      if (scrollpercent <= 0.2) {sliderMoveRight = true;}
385    }
386  }
387
388}
389
390
391//Hide Bio if empty
392
393jQuery(document).ready(function() {
394  console.log("Checking for empty Bio!");
395  if (!bioHasContent("#rpp-speaker-bio")) {
396    jQuery("#rpp-speaker-bio-section").hide();
397  }
398});
399
400function bioHasContent(element) {
401  let content = jQuery(element).text().replace(/\s/g,'').replace(/\r?\n|\r/g,'');
402  console.log("Content: " + content);
403  return (content == "" ? false : true);
404}

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.