PageSourceSearch

https://faberwritingacademy.com.au/wp-content/themes/faber-theme-n…/responsive-tabs.js?ver=7.0.5

js faberwritingacademy.com.au collected 2026-10-04 00:11:31 UTC 11,664 bytes, 405 lines download raw bytes

1var rtabsGlobalOptions = {
2  event: "click", //"click", or "mouseover"
3  autoAdvance: 0,
4  animate: 5, //duration in seconds.
5  license: "5511k"
6};
7
8/* Responsive Tabs v2014.12.23. Copyright www.menucool.com */
9var tabbers = tabbers || (function() {
10  var delay = 50,
11    offset = 0,
12    a = "length",
13    d = "className",
14    c = document,
15    o = "getElementById",
16    f = "innerHTML",
17    j = "getElementsByTagName",
18    k = "addEventListener",
19    e = "parentNode",
20    i = "style",
21    g = "location",
22    m = "getAttribute",
23    h = "hash",
24    r = '<div class="ajaxLoading">&nbsp;</div>',
25    b = [],
26    E = [],
27    n = 0;
28  if (!Array.prototype.indexOf) Array.prototype.indexOf = function(d, c) {
29    for (var b = c || 0, e = this[a]; b < e; b++)
30      if (this[b] === d) return b;
31    return -1
32  };
33  var F = function() {
34      var a = window[g][h].match(/#([\-\w]+)/);
35      if (a) a = a[1];
36      return a
37    },
38    K = function(a) {
39      if (a && a.stopPropagation) a.stopPropagation();
40      else if (window.event) window.event.cancelBubble = true
41    },
42    w = function(b) {
43      var a = b || window.event;
44      //if (a.preventDefault) a.preventDefault();
45      //else if (a) a.returnValue = false
46    },
47    s = function() {
48      var a = c.documentElement;
49      return [window.pageXOffset || a.scrollLeft, window.pageYOffset || a.scrollTop]
50    },
51    y = function(a, c, b) {
52      if (a[k]) a[k](c, b, false);
53      else a.attachEvent && a.attachEvent("on" + c, b)
54    },
55    B = function(c, d) {
56      var b = {};
57      for (var a in c) b[a] = c[a];
58      for (var a in d) b[a] = d[a];
59      return b
60    },
61    H = [/(?:.*\.)?(\w)([\w\-])[^.]*(\w)\.[^.]+$/, /.*([\w\-])\.(\w)(\w)\.[^.]+$/, /^(?:.*\.)?(\w)(\w)\.[^.]+$/, /.*([\w\-])([\w\-])\.com\.[^.]+$/, /^(\w)[^.]*(\w)$/],
62    L = function(a) {
63      return a.replace(/(?:.*\.)?(\w)([\w\-])?[^.]*(\w)\.[^.]*$/, "$1$3$2")
64    },
65    I = ["$1$2$3", "$1$2$3", "$1$24", "$1$23", "$1$22"],
66    J, C = function() {
67      var c = 50,
68        b = navigator.userAgent,
69        a;
70      if ((a = b.indexOf("MSIE ")) != -1) c = parseInt(b.substring(a + 5, b.indexOf(".", a)));
71      return c
72    },
73    z = C(),
74    l = function(c, a) {
75      var b = new RegExp("(^| )" + a + "( |$)");
76      return b.test(c[d]) ? true : false
77    },
78    x = function(a, b) {
79      if (!l(a, b))
80        if (a[d] == "") a[d] = b;
81        else a[d] += " " + b
82    },
83    t = function(a, b) {
84      var c = new RegExp("(^| )" + b + "( |$)");
85      a[d] = a[d].replace(c, "$1");
86      a[d] = a[d].replace(/ $/, "")
87    },
88    G = function(e, d) {
89      for (var c = [], b = 0; b < e[a]; b++) c[c[a]] = String.fromCharCode(e.charCodeAt(b) - (d ? d : 3));
90      return c.join("")
91    },
92    q = function() {
93      if (!n)
94        for (var d, c = 0, e = b[a]; c < e; c++) d = b[c].s()
95    };
96  if ("onhashchange" in window) y(window, "hashchange", q);
97  else {
98    var u = window[g][h];
99    window.setInterval(function() {
100      if (window[g][h] != u) {
101        u = window[g][h];
102        q()
103      }
104    }, 100)
105  }
106  var v = function(b) {
107    var a = this;
108    a.P;
109    a.b;
110    a.c;
111    a.d = 0;
112    a.a;
113    a.e = [];
114    a.f;
115    a.g;
116    a.h;
117    a.i = {};
118    a.j = null;
119    a.p(b[m]("data-options"));
120    a.q(b)
121  };
122  v.prototype = {
123    k: function() {
124      for (var b = 0, c = this.a[a]; b < c; b++)
125        if (l(this.a[b][e], "selected")) return b;
126      return 0
127    },
128    m: function(c, b) {
129      var a = this;
130      clearTimeout(a.c);
131      a.c = setTimeout(function() {
132        a.w(b)
133      }, delay);
134      return false
135    },
136    n: function(c, b) {
137      w(c);
138      n = 1;
139      var a = s();
140      this.w(b);
141      window[g][h] = b.a;
142      window.scrollTo(a[0], a[1]);
143      setTimeout(function() {
144        n = 0
145      }, 120)
146    },
147    o: function() {
148      var b = this;
149      b.f = [];
150      for (var f, d = 0; d < b.a[a]; d++) {
151        f = c[o](b.a[d].a);
152        if (f) {
153          if (!b.b) b.b = f[e];
154          if (z < 7) f[i].padding = "26px";
155          b.f.push(f);
156          if (this.P.b == "mouseover") {
157            b.a[d].onmouseover = function(a) {
158              b.m(a, this)
159            };
160            b.a[d].onmouseout = function() {
161              clearTimeout(b.c)
162            };
163            b.a[d].onclick = w
164          } else b.a[d].onclick = function(a) {
165            b.n(a, this)
166          }
167        }
168      }
169    },
170    p: function(a) {
171      if (a && typeof a === "string") {
172        a = eval("(" + a + ")");
173        a = B(rtabsGlobalOptions, a)
174      } else a = rtabsGlobalOptions;
175      this.P = {
176        a: a.license,
177        b: a.event,
178        c: a.autoAdvance,
179        d: function() {
180          typeof onTabSelected === "function" && onTabSelected(arguments[0], arguments[1])
181        }
182      }
183    },
184    q: function(k) {
185      var e = this;
186      e.a = [];
187      for (var i = k[j]("a"), c, b, f, d, g = 0; g < i[a]; g++) {
188        b = i[g];
189        f = b[m]("data-ajax");
190        if (f) {
191          try {
192            d = eval("(" + f + ")")
193          } catch (l) {
194            alert("data-ajax syntax error.");
195            return
196          }
197          d.cache = d.cache || 1;
198          b.b = d;
199          b.a = c = d.target
200        } else {
201          b.b = 0;
202          c = b[m]("href", 2);
203          if (c == null) continue;
204          var h = c.match(/#([^?]+)/);
205          if (!h) continue;
206          c = h[1];
207          b.a = c
208        }
209        e.a.push(b);
210        E.push(c);
211        e.e.push(c)
212      }
213      e.o()
214    },
215    r: function(d) {
216      for (var c = 0, b = 0; b < this.a[a]; b++)
217        if (this.a[b].a == d) {
218          c = this.a[b];
219          break
220        }
221      return c
222    },
223    s: function() {
224      var b = this,
225        a = F();
226      if (a) {
227        var d = c[o](a);
228        if (!d) a = 0
229      }
230      if (a) b.t(d);
231      else b.v();
232      b.P.c && !b.d && b.z();
233      return a
234    },
235    t: function(c) {
236      function b(a, d) {
237        var c = a.id;
238        return c && d.indexOf(c) != -1 ? c : a[e].nodeName == "BODY" ? 0 : b(a[e], d)
239      }
240      var f = b(c, this.e);
241      if (f) var g = this.r(f);
242      if (g) {
243        this.w(g);
244        c.scrollIntoView();
245        var d = s(),
246          a = d[1];
247        if (a > offset) a -= offset;
248        window.scrollTo(d[0], a)
249      } else this.v()
250    },
251    v: function() {
252      var b = this,
253        c = b.k();
254      if (c >= b.a[a]) c = 0;
255      b.w(b.a[c])
256    },
257    w: function(g) {
258      var d = this;
259      if (g.b)
260        if (!d.i[g.a]) {
261          var h = c[o](g.a);
262          h[f] = r;
263          d.h = h.id;
264          d.x(g[m]("href"), g.b, h)
265        }
266      for (var j = 0, b = 0; b < this.a[a]; b++)
267        if (d.a[b].a == g.a) {
268          x(d.a[b][e], "selected");
269          j = b
270        } else t(d.a[b][e], "selected");
271      for (b = 0; b < d.f[a]; b++)
272        if (d.f[b].id == g.a) {
273          t(d.f[b], "inactive");
274          d.f[b][i].display = "block"
275        } else {
276          x(d.f[b], "inactive");
277          d.f[b][i].display = "none"
278        }
279      d.P.d(g, g.a)
280    },
281    x: function(h, d, c) {
282      var b = this,
283        g, e, k, m, l, i;
284      e = d.success || 0;
285      g = d.responseType || "html";
286      k = d.context && e ? d.context : 0;
287      m = d.fail || 0;
288      l = d.cache;
289      i = d.id || 0;
290      b.j = this.y();
291      if (!l && z < 9) h = h + (h.indexOf("?") == -1 ? "?" : "&") + (new Date).getMilliseconds();
292      b.j.open("GET", h, true);
293      b.j.onreadystatechange = function() {
294        if (b.j && b.j.readyState == 4) {
295          if (b.h == c.id)
296            if (b.j.status == 200) {
297              var d = g.toLowerCase() == "xml" ? b.j.responseXML : b.j.responseText;
298              if (g.toLowerCase() == "json") {
299                var n = d;
300                try {
301                  n = eval("(" + d + ")");
302                  d = n
303                } catch (p) {
304                  d = "json parsing failed or 404 error.";
305                  e = 0
306                }
307              }
308              if (i && g == "html") {
309                var o = function(d, e) {
310                  for (var c = e[j]("*"), b = 0, f = c[a]; b < f; b++)
311                    if (c[b].id == d) return c[b];
312                  return 0
313                };
314                c[f] = d;
315                var h = o(i, c);
316                if (h) d = h[f]
317              }
318              if (e) d = e(d, k, b.r(c.id));
319              c[f] = d;
320              b.i[c.id] = l ? 1 : 0
321            } else {
322              c[f] = m ? m(k) : r + "Failed to get data.";
323              b.i[c.id] = 0
324            }
325          b.j = null
326        }
327      };
328      try {
329        b.j.send(null)
330      } catch (n) {}
331    },
332    y: function() {
333      try {
334        if (window.ActiveXObject) return new window.ActiveXObject("Microsoft.XMLHTTP")
335      } catch (a) {}
336      return new window.XMLHttpRequest
337    },
338    z: function() {
339      var b = this;
340      if (b.f[a] > 1) {
341        b.b.onmouseover = function() {
342          this.g = 1
343        };
344        b.b.onmouseout = function() {
345          this.g = 0
346        }
347      }
348      this.d = setInterval(function() {
349        if (b.b.offsetWidth && !b.b.g) {
350          for (var d = 0, c = 0; c < b.f[a]; c++)
351            if (!l(b.f[c], "inactive")) {
352              d = c;
353              break
354            }
355          var e = b.a[++d % b.f[a]];
356          b.w(e)
357        }
358      }, b.P.c * 1e3)
359    }
360  };
361
362  function A(f, e) {
363    if (e) {
364      if (typeof f[i].webkitAnimationName != "undefined") var b = "-webkit-";
365      else if (typeof f[i].animationName != "undefined") b = "";
366      else return;
367      var g = "@" + b + "keyframes panelFadeIn {from{opacity:0;} to{opacity:1;}}",
368        h = "div.panel-container > div {" + b + "animation: panelFadeIn " + e + "s;}";
369      if (c.styleSheets && c.styleSheets[a]) {
370        var d = c.styleSheets[0];
371        if (d.insertRule) {
372          d.insertRule(h, 0);
373          d.insertRule(g, 0)
374        }
375      }
376    }
377  }
378  var D = function(d) {
379      var a = 0;
380
381      function b() {
382        if (a) return;
383        a = 1;
384        setTimeout(d, 4)
385      }
386      if (c[k]) c[k]("DOMContentLoaded", b, false);
387      else y(window, "load", b)
388    },
389    p = function() {
390      for (var e = c[j]("ul"), d = 0, h = e[a]; d < h; d++) l(e[d], "rtabs") && e[d][j]("a")[a] > 0 && b.push(new v(e[d], d));
391      if (b[a]) {
392        (new Function("a", "b", "c", "d", "e", "f", "g", function(c) {
393          for (var b = [], a = 0, d = c.length; a < d; a++) b[b.length] = String.fromCharCode(c.charCodeAt(a) - 4);
394          return b.join("")
395        }("zev$nAjyrgxmsr,|0}-�zev$eAjyrgxmsr,f-�zev$gAf2glevGshiEx,4-2xsWxvmrk,-?vixyvr$g2wyfwxv,g2pirkxl15-?\u0081?vixyvr$|/e,}_4a-/e,}_6a-/}_5a?\u0081?zev$qAe2T2e\u0080\u0080+:+0rAtevwiMrx,q2glevEx,4--0vAQexl2verhsq,-0sA,hsgyqirx_h,+kvthpu+-a\u0080\u0080+pijx+-2vitpegi,g_r16a0f_r16a-2wtpmx,++-?mj,q%An,r/+9+0s--�zev$wAh,+[hiz'[yphs']lyzpvu+-?mj,v@27-j_4a_iaAw?ipwi$mj,v@28-k_iaAw?\u0081vixyvr$e?"))).apply(this, [b[0], I, H, G, f, b[0].a, b[0].f[0]]).s();
396        for (var g = 1, i = b[a]; g < i; g++) b[g].s();
397        A(b[0].a[0], rtabsGlobalOptions.animate)
398      }
399    };
400  D(p);
401  b.init = function() {
402    !b[a] && p()
403  };
404  return b
405}())

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.