PageSourceSearch

https://www.ijvcanada.org/wp-content/plugins/keydesign-addon/assets/js/jquery.easytabs.min.js?ver=7.0.6

js ijvcanada.org collected 2026-09-24 08:56:15 UTC 12,778 bytes, 450 lines download raw bytes

1/*
2 * jQuery EasyTabs plugin 3.2.0
3 *
4 * Copyright (c) 2010-2011 Steve Schwartz (JangoSteve)
5 *
6 * Dual licensed under the MIT and GPL licenses:
7 *   http://www.opensource.org/licenses/mit-license.php
8 *   http://www.gnu.org/licenses/gpl.html
9 *
10 * Date: Thu May 09 17:30:00 2013 -0500
11 */
12
13
14(function(a) {
15	a.easytabs = function(j, e) {
16		var f = this,
17			q = a(j),
18			i = {
19				animate: true,
20				panelActiveClass: "active",
21				tabActiveClass: "active",
22				defaultTab: "li:first-child",
23				animationSpeed: "normal",
24				tabs: "> ul > li",
25				updateHash: true,
26				cycle: false,
27				collapsible: false,
28				collapsedClass: "collapsed",
29				collapsedByDefault: false,
30				uiTabs: false,
31				transitionIn: "fadeIn",
32				transitionOut: "fadeOut",
33				transitionInEasing: "swing",
34				transitionOutEasing: "swing",
35				transitionCollapse: false,
36				transitionUncollapse: false,
37				transitionCollapseEasing: false,
38				transitionUncollapseEasing: false,
39				containerClass: "",
40				tabsClass: "",
41				tabClass: "",
42				panelClass: "",
43				cache: true,
44				event: "click",
45				panelContext: q
46			},
47			h, l, v, m, d, t = {
48				fast: 200,
49				normal: 300,
50				slow: 600
51			},
52			r;
53		f.init = function() {
54			f.settings = r = a.extend({}, i, e);
55			r.bind_str = r.event + ".easytabs";
56			if (r.uiTabs) {
57				r.tabActiveClass = "ui-tabs-selected";
58				r.containerClass = "ui-tabs ui-widget ui-widget-content ui-corner-all";
59				r.tabsClass = "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all";
60				r.tabClass = "ui-state-default ui-corner-top";
61				r.panelClass = "ui-tabs-panel ui-widget-content ui-corner-bottom"
62			}
63			if (r.collapsible && e.defaultTab !== undefined && e.collpasedByDefault === undefined) {
64				r.collapsedByDefault = false
65			}
66			if (typeof(r.animationSpeed) === "string") {
67				r.animationSpeed = t[r.animationSpeed]
68			}
69			a("a.anchor").remove().prependTo("body");
70			q.data("easytabs", {});
71			f.setTransitions();
72			f.getTabs();
73			b();
74			g();
75			w();
76			n();
77			c();
78			q.attr("data-easytabs", true)
79		};
80		f.setTransitions = function() {
81			v = (r.animate) ? {
82				show: r.transitionIn,
83				hide: r.transitionOut,
84				speed: r.animationSpeed,
85				collapse: r.transitionCollapse,
86				uncollapse: r.transitionUncollapse,
87				halfSpeed: r.animationSpeed / 2
88			} : {
89				show: "show",
90				hide: "hide",
91				speed: 0,
92				collapse: "hide",
93				uncollapse: "show",
94				halfSpeed: 0
95			}
96		};
97		f.getTabs = function() {
98			var x;
99			f.tabs = q.find(r.tabs), f.panels = a(), f.tabs.each(function() {
100				var A = a(this),
101					z = A.children("a"),
102					y = A.children("a").data("target");
103				A.data("easytabs", {});
104				if (y !== undefined && y !== null) {
105					A.data("easytabs").ajax = z.attr("href")
106				} else {
107					y = z.attr("href")
108				}
109				y = y.match(/#([^\?]+)/)[1];
110				x = r.panelContext.find("#" + y);
111				if (x.length) {
112					x.data("easytabs", {
113						position: x.css("position"),
114						visibility: x.css("visibility")
115					});
116					x.not(r.panelActiveClass).hide();
117					f.panels = f.panels.add(x);
118					A.data("easytabs").panel = x
119				} else {
120					f.tabs = f.tabs.not(A);
121					if ("console" in window) {
122						console.warn("Warning: tab without matching panel for selector '#" + y + "' removed from set")
123					}
124				}
125			})
126		};
127		f.selectTab = function(x, C) {
128			var y = window.location,
129				B = y.hash.match(/^[^\?]*/)[0],
130				z = x.parent().data("easytabs").panel,
131				A = x.parent().data("easytabs").ajax;
132			if (r.collapsible && !d && (x.hasClass(r.tabActiveClass) || x.hasClass(r.collapsedClass))) {
133				f.toggleTabCollapse(x, z, A, C)
134			} else {
135				if (!x.hasClass(r.tabActiveClass) || !z.hasClass(r.panelActiveClass)) {
136					o(x, z, A, C)
137				} else {
138					if (!r.cache) {
139						o(x, z, A, C)
140					}
141				}
142			}
143		};
144		f.toggleTabCollapse = function(x, y, z, A) {
145			f.panels.stop(true, true);
146			if (u(q, "easytabs:before", [x, y, r])) {
147				f.tabs.filter("." + r.tabActiveClass).removeClass(r.tabActiveClass).children().removeClass(r.tabActiveClass);
148				if (x.hasClass(r.collapsedClass)) {
149					if (z && (!r.cache || !x.parent().data("easytabs").cached)) {
150						q.trigger("easytabs:ajax:beforeSend", [x, y]);
151						y.load(z, function(C, B, D) {
152							x.parent().data("easytabs").cached = true;
153							q.trigger("easytabs:ajax:complete", [x, y, C, B, D])
154						})
155					}
156					x.parent().removeClass(r.collapsedClass).addClass(r.tabActiveClass).children().removeClass(r.collapsedClass).addClass(r.tabActiveClass);
157					y.addClass(r.panelActiveClass)[v.uncollapse](v.speed, r.transitionUncollapseEasing, function() {
158						q.trigger("easytabs:midTransition", [x, y, r]);
159						if (typeof A == "function") {
160							A()
161						}
162					})
163				} else {
164					x.addClass(r.collapsedClass).parent().addClass(r.collapsedClass);
165					y.removeClass(r.panelActiveClass)[v.collapse](v.speed, r.transitionCollapseEasing, function() {
166						q.trigger("easytabs:midTransition", [x, y, r]);
167						if (typeof A == "function") {
168							A()
169						}
170					})
171				}
172			}
173		};
174		f.matchTab = function(x) {
175			return f.tabs.find("[href='" + x + "'],[data-target='" + x + "']").first()
176		};
177		f.matchInPanel = function(x) {
178			return (x && f.validId(x) ? f.panels.filter(":has(" + x + ")").first() : [])
179		};
180		f.validId = function(x) {
181			return x.substr(1).match(/^[A-Za-z]+[A-Za-z0-9\-_:\.].$/)
182		};
183		f.selectTabFromHashChange = function() {
184			var y = window.location.hash.match(/^[^\?]*/)[0],
185				x = f.matchTab(y),
186				z;
187			if (r.updateHash) {
188				if (x.length) {
189					d = true;
190					f.selectTab(x)
191				} else {
192					z = f.matchInPanel(y);
193					if (z.length) {
194						y = "#" + z.attr("id");
195						x = f.matchTab(y);
196						d = true;
197						f.selectTab(x)
198					} else {
199						if (!h.hasClass(r.tabActiveClass) && !r.cycle) {
200							if (y === "" || f.matchTab(m).length || q.closest(y).length) {
201								d = true;
202								f.selectTab(l)
203							}
204						}
205					}
206				}
207			}
208		};
209		f.cycleTabs = function(x) {
210			if (r.cycle) {
211				x = x % f.tabs.length;
212				$tab = a(f.tabs[x]).children("a").first();
213				d = true;
214				f.selectTab($tab, function() {
215					setTimeout(function() {
216						f.cycleTabs(x + 1)
217					}, r.cycle)
218				})
219			}
220		};
221		f.publicMethods = {
222			select: function(x) {
223				var y;
224				if ((y = f.tabs.filter(x)).length === 0) {
225					if ((y = f.tabs.find("a[href='" + x + "']")).length === 0) {
226						if ((y = f.tabs.find("a" + x)).length === 0) {
227							if ((y = f.tabs.find("[data-target='" + x + "']")).length === 0) {
228								if ((y = f.tabs.find("a[href$='" + x + "']")).length === 0) {
229									a.error("Tab '" + x + "' does not exist in tab set")
230								}
231							}
232						}
233					}
234				} else {
235					y = y.children("a").first()
236				}
237				f.selectTab(y)
238			}
239		};
240		var u = function(A, x, z) {
241			var y = a.Event(x);
242			A.trigger(y, z);
243			return y.result !== false
244		};
245		var b = function() {
246			q.addClass(r.containerClass);
247			f.tabs.parent().addClass(r.tabsClass);
248			f.tabs.addClass(r.tabClass);
249			f.panels.addClass(r.panelClass)
250		};
251		var g = function() {
252			var y = window.location.hash.match(/^[^\?]*/)[0],
253				x = f.matchTab(y).parent(),
254				z;
255			if (x.length === 1) {
256				h = x;
257				r.cycle = false
258			} else {
259				z = f.matchInPanel(y);
260				if (z.length) {
261					y = "#" + z.attr("id");
262					h = f.matchTab(y).parent()
263				} else {
264					h = f.tabs.parent().find(r.defaultTab);
265					if (h.length === 0) {
266						a.error("The specified default tab ('" + r.defaultTab + "') could not be found in the tab set ('" + r.tabs + "') out of " + f.tabs.length + " tabs.")
267					}
268				}
269			}
270			l = h.children("a").first();
271			p(x)
272		};
273		var p = function(z) {
274			var y, x;
275			if (r.collapsible && z.length === 0 && r.collapsedByDefault) {
276				h.addClass(r.collapsedClass).children().addClass(r.collapsedClass)
277			} else {
278				y = a(h.data("easytabs").panel);
279				x = h.data("easytabs").ajax;
280				if (x && (!r.cache || !h.data("easytabs").cached)) {
281					q.trigger("easytabs:ajax:beforeSend", [l, y]);
282					y.load(x, function(B, A, C) {
283						h.data("easytabs").cached = true;
284						q.trigger("easytabs:ajax:complete", [l, y, B, A, C])
285					})
286				}
287				h.data("easytabs").panel.show().addClass(r.panelActiveClass);
288				h.addClass(r.tabActiveClass).children().addClass(r.tabActiveClass)
289			}
290			q.trigger("easytabs:initialised", [l, y])
291		};
292		var w = function() {
293			f.tabs.children("a").bind(r.bind_str, function(x) {
294				r.cycle = false;
295				d = false;
296				f.selectTab(a(this));
297				x.preventDefault ? x.preventDefault() : x.returnValue = false
298			})
299		};
300		var o = function(z, D, E, H) {
301			f.panels.stop(true, true);
302			if (u(q, "easytabs:before", [z, D, r])) {
303				var A = f.panels.filter(":visible"),
304					y = D.parent(),
305					F, x, C, G, B = window.location.hash.match(/^[^\?]*/)[0];
306				if (r.animate) {
307					F = s(D);
308					x = A.length ? k(A) : 0;
309					C = F - x
310				}
311				m = B;
312				G = function() {
313					q.trigger("easytabs:midTransition", [z, D, r]);
314					if (r.animate && r.transitionIn == "fadeIn") {
315						if (C < 0) {
316							y.animate({
317								height: y.height() + C
318							}, v.halfSpeed).css({
319								"min-height": ""
320							})
321						}
322					}
323					if (r.updateHash && !d) {
324						window.location.hash = "#" + D.attr("id")
325					} else {
326						d = false
327					}
328					D[v.show](v.speed, r.transitionInEasing, function() {
329						y.css({
330							height: "",
331							"min-height": ""
332						});
333						q.trigger("easytabs:after", [z, D, r]);
334						if (typeof H == "function") {
335							H()
336						}
337					})
338				};
339				if (E && (!r.cache || !z.parent().data("easytabs").cached)) {
340					q.trigger("easytabs:ajax:beforeSend", [z, D]);
341					D.load(E, function(J, I, K) {
342						z.parent().data("easytabs").cached = true;
343						q.trigger("easytabs:ajax:complete", [z, D, J, I, K])
344					})
345				}
346				if (r.animate && r.transitionOut == "fadeOut") {
347					if (C > 0) {
348						y.animate({
349							height: (y.height() + C)
350						}, v.halfSpeed)
351					} else {
352						y.css({
353							"min-height": y.height()
354						})
355					}
356				}
357				f.tabs.filter("." + r.tabActiveClass).removeClass(r.tabActiveClass).children().removeClass(r.tabActiveClass);
358				f.tabs.filter("." + r.collapsedClass).removeClass(r.collapsedClass).children().removeClass(r.collapsedClass);
359				z.parent().addClass(r.tabActiveClass).children().addClass(r.tabActiveClass);
360				f.panels.filter("." + r.panelActiveClass).removeClass(r.panelActiveClass);
361				D.addClass(r.panelActiveClass);
362				if (A.length) {
363					A[v.hide](v.speed, r.transitionOutEasing, G)
364				} else {
365					D[v.uncollapse](v.speed, r.transitionUncollapseEasing, G)
366				}
367			}
368		};
369		var s = function(z) {
370			if (z.data("easytabs") && z.data("easytabs").lastHeight) {
371				return z.data("easytabs").lastHeight
372			}
373			var B = z.css("display"),
374				y, x;
375			try {
376				y = a("<div></div>", {
377					position: "absolute",
378					visibility: "hidden",
379					overflow: "hidden"
380				})
381			} catch (A) {
382				y = a("<div></div>", {
383					visibility: "hidden",
384					overflow: "hidden"
385				})
386			}
387			x = z.wrap(y).css({
388				position: "relative",
389				visibility: "hidden",
390				display: "block"
391			}).outerHeight();
392			z.unwrap();
393			z.css({
394				position: z.data("easytabs").position,
395				visibility: z.data("easytabs").visibility,
396				display: B
397			});
398			z.data("easytabs").lastHeight = x;
399			return x
400		};
401		var k = function(y) {
402			var x = y.outerHeight();
403			if (y.data("easytabs")) {
404				y.data("easytabs").lastHeight = x
405			} else {
406				y.data("easytabs", {
407					lastHeight: x
408				})
409			}
410			return x
411		};
412		var n = function() {
413			if (typeof a(window).hashchange === "function") {
414				a(window).hashchange(function() {
415					f.selectTabFromHashChange()
416				})
417			} else {
418				if (a.address && typeof a.address.change === "function") {
419					a.address.change(function() {
420						f.selectTabFromHashChange()
421					})
422				}
423			}
424		};
425		var c = function() {
426			var x;
427			if (r.cycle) {
428				x = f.tabs.index(h);
429				setTimeout(function() {
430					f.cycleTabs(x + 1)
431				}, r.cycle)
432			}
433		};
434		f.init()
435	};
436	a.fn.easytabs = function(c) {
437		var b = arguments;
438		return this.each(function() {
439			var e = a(this),
440				d = e.data("easytabs");
441			if (undefined === d) {
442				d = new a.easytabs(this, c);
443				e.data("easytabs", d)
444			}
445			if (d.publicMethods[c]) {
446				return d.publicMethods[c](Array.prototype.slice.call(b, 1))
447			}
448		})
449	}
450})(jQuery);

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.