From 87a6b63d6fb07683ae8512b04c18d194a78799c0 Mon Sep 17 00:00:00 2001 From: vdigital Date: Sat, 26 Apr 2008 13:19:24 +0000 Subject: New: jQuery and Accordion Admin menus git-svn-id: http://piwigo.org/svn/trunk@2313 68402e56-0260-453c-a942-63ccdbb3a9ee --- template-common/jquery.accordion.js | 311 +++++++++++++++++++++++++++++++ template-common/jquery.accordion.min.js | 14 ++ template-common/jquery.accordion.pack.js | 15 ++ template-common/lib/chili-1.7.pack.js | 1 + template-common/lib/jquery.dimensions.js | 116 ++++++++++++ template-common/lib/jquery.easing.js | 102 ++++++++++ template-common/lib/jquery.js | 11 ++ 7 files changed, 570 insertions(+) create mode 100644 template-common/jquery.accordion.js create mode 100644 template-common/jquery.accordion.min.js create mode 100644 template-common/jquery.accordion.pack.js create mode 100644 template-common/lib/chili-1.7.pack.js create mode 100644 template-common/lib/jquery.dimensions.js create mode 100644 template-common/lib/jquery.easing.js create mode 100644 template-common/lib/jquery.js (limited to 'template-common') diff --git a/template-common/jquery.accordion.js b/template-common/jquery.accordion.js new file mode 100644 index 000000000..ffa0711a5 --- /dev/null +++ b/template-common/jquery.accordion.js @@ -0,0 +1,311 @@ +/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2007 Jörn Zaefferer + * + * http://docs.jquery.com/UI/Accordion + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + * + */ + +;(function($) { + +// If the UI scope is not available, add it +$.ui = $.ui || {}; + +$.fn.extend({ + accordion: function(options, data) { + var args = Array.prototype.slice.call(arguments, 1); + + return this.each(function() { + if (typeof options == "string") { + var accordion = $.data(this, "ui-accordion"); + accordion[options].apply(accordion, args); + // INIT with optional options + } else if (!$(this).is(".ui-accordion")) + $.data(this, "ui-accordion", new $.ui.accordion(this, options)); + }); + }, + // deprecated, use accordion("activate", index) instead + activate: function(index) { + return this.accordion("activate", index); + } +}); + +$.ui.accordion = function(container, options) { + + // setup configuration + this.options = options = $.extend({}, $.ui.accordion.defaults, options); + this.element = container; + + $(container).addClass("ui-accordion"); + + if ( options.navigation ) { + var current = $(container).find("a").filter(options.navigationFilter); + if ( current.length ) { + if ( current.filter(options.header).length ) { + options.active = current; + } else { + options.active = current.parent().parent().prev(); + current.addClass("current"); + } + } + } + + // calculate active if not specified, using the first header + options.headers = $(container).find(options.header); + options.active = findActive(options.headers, options.active); + + if ( options.fillSpace ) { + var maxHeight = $(container).parent().height(); + options.headers.each(function() { + maxHeight -= $(this).outerHeight(); + }); + var maxPadding = 0; + options.headers.next().each(function() { + maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height()); + }).height(maxHeight - maxPadding); + } else if ( options.autoheight ) { + var maxHeight = 0; + options.headers.next().each(function() { + maxHeight = Math.max(maxHeight, $(this).outerHeight()); + }).height(maxHeight); + } + + options.headers + .not(options.active || "") + .next() + .hide(); + options.active.parent().andSelf().addClass(options.selectedClass); + + if (options.event) + $(container).bind((options.event) + ".ui-accordion", clickHandler); +}; + +$.ui.accordion.prototype = { + activate: function(index) { + // call clickHandler with custom event + clickHandler.call(this.element, { + target: findActive( this.options.headers, index )[0] + }); + }, + + enable: function() { + this.options.disabled = false; + }, + disable: function() { + this.options.disabled = true; + }, + destroy: function() { + this.options.headers.next().css("display", ""); + if ( this.options.fillSpace || this.options.autoheight ) { + this.options.headers.next().css("height", ""); + } + $.removeData(this.element, "ui-accordion"); + $(this.element).removeClass("ui-accordion").unbind(".ui-accordion"); + } +} + +function scopeCallback(callback, scope) { + return function() { + return callback.apply(scope, arguments); + }; +} + +function completed(cancel) { + // if removed while animated data can be empty + if (!$.data(this, "ui-accordion")) + return; + var instance = $.data(this, "ui-accordion"); + var options = instance.options; + options.running = cancel ? 0 : --options.running; + if ( options.running ) + return; + if ( options.clearStyle ) { + options.toShow.add(options.toHide).css({ + height: "", + overflow: "" + }); + } + $(this).triggerHandler("change.ui-accordion", [options.data], options.change); +} + +function toggle(toShow, toHide, data, clickedActive, down) { + var options = $.data(this, "ui-accordion").options; + options.toShow = toShow; + options.toHide = toHide; + options.data = data; + var complete = scopeCallback(completed, this); + + // count elements to animate + options.running = toHide.size() == 0 ? toShow.size() : toHide.size(); + + if ( options.animated ) { + if ( !options.alwaysOpen && clickedActive ) { + $.ui.accordion.animations[options.animated]({ + toShow: jQuery([]), + toHide: toHide, + complete: complete, + down: down, + autoheight: options.autoheight + }); + } else { + $.ui.accordion.animations[options.animated]({ + toShow: toShow, + toHide: toHide, + complete: complete, + down: down, + autoheight: options.autoheight + }); + } + } else { + if ( !options.alwaysOpen && clickedActive ) { + toShow.toggle(); + } else { + toHide.hide(); + toShow.show(); + } + complete(true); + } +} + +function clickHandler(event) { + var options = $.data(this, "ui-accordion").options; + if (options.disabled) + return false; + + // called only when using activate(false) to close all parts programmatically + if ( !event.target && !options.alwaysOpen ) { + options.active.parent().andSelf().toggleClass(options.selectedClass); + var toHide = options.active.next(), + data = { + instance: this, + options: options, + newHeader: jQuery([]), + oldHeader: options.active, + newContent: jQuery([]), + oldContent: toHide + }, + toShow = options.active = $([]); + toggle.call(this, toShow, toHide, data ); + return false; + } + // get the click target + var clicked = $(event.target); + + // due to the event delegation model, we have to check if one + // of the parent elements is our actual header, and find that + if ( clicked.parents(options.header).length ) + while ( !clicked.is(options.header) ) + clicked = clicked.parent(); + + var clickedActive = clicked[0] == options.active[0]; + + // if animations are still active, or the active header is the target, ignore click + if (options.running || (options.alwaysOpen && clickedActive)) + return false; + if (!clicked.is(options.header)) + return; + + // switch classes + options.active.parent().andSelf().toggleClass(options.selectedClass); + if ( !clickedActive ) { + clicked.parent().andSelf().addClass(options.selectedClass); + } + + // find elements to show and hide + var toShow = clicked.next(), + toHide = options.active.next(), + //data = [clicked, options.active, toShow, toHide], + data = { + instance: this, + options: options, + newHeader: clicked, + oldHeader: options.active, + newContent: toShow, + oldContent: toHide + }, + down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] ); + + options.active = clickedActive ? $([]) : clicked; + toggle.call(this, toShow, toHide, data, clickedActive, down ); + + return false; +}; + +function findActive(headers, selector) { + return selector != undefined + ? typeof selector == "number" + ? headers.filter(":eq(" + selector + ")") + : headers.not(headers.not(selector)) + : selector === false + ? $([]) + : headers.filter(":eq(0)"); +} + +$.extend($.ui.accordion, { + defaults: { + selectedClass: "selected", + alwaysOpen: true, + animated: 'slide', + event: "click", + header: "a", + autoheight: true, + running: 0, + navigationFilter: function() { + return this.href.toLowerCase() == location.href.toLowerCase(); + } + }, + animations: { + slide: function(options, additions) { + options = $.extend({ + easing: "swing", + duration: 300 + }, options, additions); + if ( !options.toHide.size() ) { + options.toShow.animate({height: "show"}, options); + return; + } + var hideHeight = options.toHide.height(), + showHeight = options.toShow.height(), + difference = showHeight / hideHeight; + options.toShow.css({ height: 0, overflow: 'hidden' }).show(); + options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{ + step: function(now) { + var current = (hideHeight - now) * difference; + if ($.browser.msie || $.browser.opera) { + current = Math.ceil(current); + } + options.toShow.height( current ); + }, + duration: options.duration, + easing: options.easing, + complete: function() { + if ( !options.autoheight ) { + options.toShow.css("height", "auto"); + } + options.complete(); + } + }); + }, + bounceslide: function(options) { + this.slide(options, { + easing: options.down ? "bounceout" : "swing", + duration: options.down ? 1000 : 200 + }); + }, + easeslide: function(options) { + this.slide(options, { + easing: "easeinout", + duration: 700 + }) + } + } +}); + +})(jQuery); diff --git a/template-common/jquery.accordion.min.js b/template-common/jquery.accordion.min.js new file mode 100644 index 000000000..e4b6cd9ff --- /dev/null +++ b/template-common/jquery.accordion.min.js @@ -0,0 +1,14 @@ +/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2007 Jörn Zaefferer + * + * http://docs.jquery.com/UI/Accordion + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + * + */;(function($){$.ui=$.ui||{};$.fn.extend({accordion:function(options,data){var args=Array.prototype.slice.call(arguments,1);return this.each(function(){if(typeof options=="string"){var accordion=$.data(this,"ui-accordion");accordion[options].apply(accordion,args);}else if(!$(this).is(".ui-accordion"))$.data(this,"ui-accordion",new $.ui.accordion(this,options));});},activate:function(index){return this.accordion("activate",index);}});$.ui.accordion=function(container,options){this.options=options=$.extend({},$.ui.accordion.defaults,options);this.element=container;$(container).addClass("ui-accordion");if(options.navigation){var current=$(container).find("a").filter(options.navigationFilter);if(current.length){if(current.filter(options.header).length){options.active=current;}else{options.active=current.parent().parent().prev();current.addClass("current");}}}options.headers=$(container).find(options.header);options.active=findActive(options.headers,options.active);if(options.fillSpace){var maxHeight=$(container).parent().height();options.headers.each(function(){maxHeight-=$(this).outerHeight();});var maxPadding=0;options.headers.next().each(function(){maxPadding=Math.max(maxPadding,$(this).innerHeight()-$(this).height());}).height(maxHeight-maxPadding);}else if(options.autoheight){var maxHeight=0;options.headers.next().each(function(){maxHeight=Math.max(maxHeight,$(this).outerHeight());}).height(maxHeight);}options.headers.not(options.active||"").next().hide();options.active.parent().andSelf().addClass(options.selectedClass);if(options.event)$(container).bind((options.event)+".ui-accordion",clickHandler);};$.ui.accordion.prototype={activate:function(index){clickHandler.call(this.element,{target:findActive(this.options.headers,index)[0]});},enable:function(){this.options.disabled=false;},disable:function(){this.options.disabled=true;},destroy:function(){this.options.headers.next().css("display","");if(this.options.fillSpace||this.options.autoheight){this.options.headers.next().css("height","");}$.removeData(this.element,"ui-accordion");$(this.element).removeClass("ui-accordion").unbind(".ui-accordion");}}function scopeCallback(callback,scope){return function(){return callback.apply(scope,arguments);};}function completed(cancel){if(!$.data(this,"ui-accordion"))return;var instance=$.data(this,"ui-accordion");var options=instance.options;options.running=cancel?0:--options.running;if(options.running)return;if(options.clearStyle){options.toShow.add(options.toHide).css({height:"",overflow:""});}$(this).triggerHandler("change.ui-accordion",[options.data],options.change);}function toggle(toShow,toHide,data,clickedActive,down){var options=$.data(this,"ui-accordion").options;options.toShow=toShow;options.toHide=toHide;options.data=data;var complete=scopeCallback(completed,this);options.running=toHide.size()==0?toShow.size():toHide.size();if(options.animated){if(!options.alwaysOpen&&clickedActive){$.ui.accordion.animations[options.animated]({toShow:jQuery([]),toHide:toHide,complete:complete,down:down,autoheight:options.autoheight});}else{$.ui.accordion.animations[options.animated]({toShow:toShow,toHide:toHide,complete:complete,down:down,autoheight:options.autoheight});}}else{if(!options.alwaysOpen&&clickedActive){toShow.toggle();}else{toHide.hide();toShow.show();}complete(true);}}function clickHandler(event){var options=$.data(this,"ui-accordion").options;if(options.disabled)return false;if(!event.target&&!options.alwaysOpen){options.active.parent().andSelf().toggleClass(options.selectedClass);var toHide=options.active.next(),data={instance:this,options:options,newHeader:jQuery([]),oldHeader:options.active,newContent:jQuery([]),oldContent:toHide},toShow=options.active=$([]);toggle.call(this,toShow,toHide,data);return false;}var clicked=$(event.target);if(clicked.parents(options.header).length)while(!clicked.is(options.header))clicked=clicked.parent();var clickedActive=clicked[0]==options.active[0];if(options.running||(options.alwaysOpen&&clickedActive))return false;if(!clicked.is(options.header))return;options.active.parent().andSelf().toggleClass(options.selectedClass);if(!clickedActive){clicked.parent().andSelf().addClass(options.selectedClass);}var toShow=clicked.next(),toHide=options.active.next(),data={instance:this,options:options,newHeader:clicked,oldHeader:options.active,newContent:toShow,oldContent:toHide},down=options.headers.index(options.active[0])>options.headers.index(clicked[0]);options.active=clickedActive?$([]):clicked;toggle.call(this,toShow,toHide,data,clickedActive,down);return false;};function findActive(headers,selector){return selector!=undefined?typeof selector=="number"?headers.filter(":eq("+selector+")"):headers.not(headers.not(selector)):selector===false?$([]):headers.filter(":eq(0)");}$.extend($.ui.accordion,{defaults:{selectedClass:"selected",alwaysOpen:true,animated:'slide',event:"click",header:"a",autoheight:true,running:0,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase();}},animations:{slide:function(options,additions){options=$.extend({easing:"swing",duration:300},options,additions);if(!options.toHide.size()){options.toShow.animate({height:"show"},options);return;}var hideHeight=options.toHide.height(),showHeight=options.toShow.height(),difference=showHeight/hideHeight;options.toShow.css({height:0,overflow:'hidden'}).show();options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{step:function(now){var current=(hideHeight-now)*difference;if($.browser.msie||$.browser.opera){current=Math.ceil(current);}options.toShow.height(current);},duration:options.duration,easing:options.easing,complete:function(){if(!options.autoheight){options.toShow.css("height","auto");}options.complete();}});},bounceslide:function(options){this.slide(options,{easing:options.down?"bounceout":"swing",duration:options.down?1000:200});},easeslide:function(options){this.slide(options,{easing:"easeinout",duration:700})}}});})(jQuery); \ No newline at end of file diff --git a/template-common/jquery.accordion.pack.js b/template-common/jquery.accordion.pack.js new file mode 100644 index 000000000..447f9de26 --- /dev/null +++ b/template-common/jquery.accordion.pack.js @@ -0,0 +1,15 @@ +/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2007 Jörn Zaefferer + * + * http://docs.jquery.com/UI/Accordion + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + * + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(3($){$.5=$.5||{};$.1L.M({6:3(c,b){7 d=1Q.1k.1K.F(16,1);9 2.B(3(){4(1m c=="1O"){7 a=$.j(2,"5-6");a[c].1h(a,d)}t 4(!$(2).R(".5-6"))$.j(2,"5-6",1D $.5.6(2,c))})},Q:3(a){9 2.6("Q",a)}});$.5.6=3(e,d){2.i=d=$.M({},$.5.6.11,d);2.N=e;$(e).L("5-6");4(d.1Z){7 a=$(e).1t("a").q(d.1r);4(a.V){4(a.q(d.u).V){d.8=a}t{d.8=a.m().m().1N();a.L("1M")}}}d.k=$(e).1t(d.u);d.8=U(d.k,d.8);4(d.1j){7 b=$(e).m().h();d.k.B(3(){b-=$(2).1g()});7 c=0;d.k.o().B(3(){c=P.19(c,$(2).1F()-$(2).h())}).h(b-c)}t 4(d.n){7 b=0;d.k.o().B(3(){b=P.19(b,$(2).1g())}).h(b)}d.k.O(d.8||"").o().10();d.8.m().J().L(d.w);4(d.Y)$(e).1z((d.Y)+".5-6",W)};$.5.6.1k={Q:3(a){W.F(2.N,{X:U(2.i.k,a)[0]})},1v:3(){2.i.Z=s},25:3(){2.i.Z=D},1Y:3(){2.i.k.o().C("1W","");4(2.i.1j||2.i.n){2.i.k.o().C("h","")}$.1V(2.N,"5-6");$(2.N).1U("5-6").1T(".5-6")}}3 1q(a,b){9 3(){9 a.1h(b,16)}}3 1p(a){4(!$.j(2,"5-6"))9;7 b=$.j(2,"5-6");7 c=b.i;c.v=a?0:--c.v;4(c.v)9;4(c.1S){c.l.1R(c.p).C({h:"",1n:""})}$(2).1P("1l.5-6",[c.j],c.1l)}3 I(g,c,b,d,a){7 e=$.j(2,"5-6").i;e.l=g;e.p=c;e.j=b;7 f=1q(1p,2);e.v=c.H()==0?g.H():c.H();4(e.G){4(!e.A&&d){$.5.6.T[e.G]({l:K([]),p:c,x:f,r:a,n:e.n})}t{$.5.6.T[e.G]({l:g,p:c,x:f,r:a,n:e.n})}}t{4(!e.A&&d){g.I()}t{c.10();g.S()}f(D)}}3 W(a){7 c=$.j(2,"5-6").i;4(c.Z)9 s;4(!a.X&&!c.A){c.8.m().J().1i(c.w);7 d=c.8.o(),j={1f:2,i:c,1e:K([]),1d:c.8,12:K([]),1b:d},f=c.8=$([]);I.F(2,f,d,j);9 s}7 b=$(a.X);4(b.1J(c.u).V)1I(!b.R(c.u))b=b.m();7 e=b[0]==c.8[0];4(c.v||(c.A&&e))9 s;4(!b.R(c.u))9;c.8.m().J().1i(c.w);4(!e){b.m().J().L(c.w)}7 f=b.o(),d=c.8.o(),j={1f:2,i:c,1e:b,1d:c.8,12:f,1b:d},r=c.k.1a(c.8[0])>c.k.1a(b[0]);c.8=e?$([]):b;I.F(2,f,d,j,e,r);9 s};3 U(a,b){9 b!=1H?1m b=="1G"?a.q(":18("+b+")"):a.O(a.O(b)):b===s?$([]):a.q(":18(0)")}$.M($.5.6,{11:{w:"1E",A:D,G:\'E\',Y:"1C",u:"a",n:D,v:0,1r:3(){9 2.17.1c()==1B.17.1c()}},T:{E:3(e,d){e=$.M({z:"15",y:1A},e,d);4(!e.p.H()){e.l.14({h:"S"},e);9}7 c=e.p.h(),13=e.l.h(),1s=13/c;e.l.C({h:0,1n:\'1o\'}).S();e.p.q(":1o").B(e.x).1y().q(":1x").14({h:"10"},{1X:3(a){7 b=(c-a)*1s;4($.1u.1w||$.1u.20){b=P.21(b)}e.l.h(b)},y:e.y,z:e.z,x:3(){4(!e.n){e.l.C("h","2a")}e.x()}})},28:3(a){2.E(a,{z:a.r?"27":"15",y:a.r?26:24})},23:3(a){2.E(a,{z:"22",y:29})}}})})(K);',62,135,'||this|function|if|ui|accordion|var|active|return||||||||height|options|data|headers|toShow|parent|autoheight|next|toHide|filter|down|false|else|header|running|selectedClass|complete|duration|easing|alwaysOpen|each|css|true|slide|call|animated|size|toggle|andSelf|jQuery|addClass|extend|element|not|Math|activate|is|show|animations|findActive|length|clickHandler|target|event|disabled|hide|defaults|newContent|showHeight|animate|swing|arguments|href|eq|max|index|oldContent|toLowerCase|oldHeader|newHeader|instance|outerHeight|apply|toggleClass|fillSpace|prototype|change|typeof|overflow|hidden|completed|scopeCallback|navigationFilter|difference|find|browser|enable|msie|visible|end|bind|300|location|click|new|selected|innerHeight|number|undefined|while|parents|slice|fn|current|prev|string|triggerHandler|Array|add|clearStyle|unbind|removeClass|removeData|display|step|destroy|navigation|opera|ceil|easeinout|easeslide|200|disable|1000|bounceout|bounceslide|700|auto'.split('|'),0,{})) \ No newline at end of file diff --git a/template-common/lib/chili-1.7.pack.js b/template-common/lib/chili-1.7.pack.js new file mode 100644 index 000000000..90e7735cb --- /dev/null +++ b/template-common/lib/chili-1.7.pack.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'$$\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\