PageSourceSearch

http://leagueofarabstates.net/Style%20Library/HTabs/jquery.easytabs.min.js

js leagueofarabstates.net collected 2026-10-02 04:01:17 UTC 17,036 bytes, 555 lines download raw bytes

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