1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-05-17 00:18:39 +03:00
inform7/inform7/Internal/Templates/Parchment/parchment.min.js
2019-03-16 13:12:11 +00:00

13 lines
18 KiB
JavaScript
Executable file

/*
Parchment
=========
Built: 2015-09-25
Copyright (c) 2008-2015 The Parchment Contributors
BSD licenced
https://github.com/curiousdannii/parchment
*/
(function(){"use strict";var t,e,r=0,n=/xyz/.test(function(){})?/\b_super\b/:/.*/;for(e in{toString:1})t=1;Object.subClass=function(e){var i,o,a,s=this.prototype,c=!/native code/.test(""+e.toString)&&e.toString,h=function(t,e){return function(){var r,n=this._super;return this._super=s[t],r=e.apply(this,arguments),this._super=n,r}};r=1,i=new this,r=0;for(o in e)i[o]="function"==typeof e[o]&&"function"==typeof s[o]&&n.test(e[o])?h(o,e[o]):e[o];return!t&&c&&(i.toString=n.test(c)?h("toString",c):c),a=i.init?function(){r||this.init.apply(this,arguments)}:function(){},a.prototype=i,a.constructor=a,a.subClass=Object.subClass,a},window.Class=Object})(),function(){function t(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function e(t){return[255&t>>24,255&t>>16,255&t>>8,255&t]}function r(t,e){return String.fromCharCode(t[e],t[e+1],t[e+2],t[e+3])}function n(t){return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}var i=Object.subClass({init:function(e){if(this.type="",this.chunks=[],e){if("FORM"!=r(e,0))throw Error("Not an IFF file");this.type=r(e,8);for(var n=12,i=e.length;i>n;){var o=t(e,n+4);if(0>o||o+n>i)throw Error("IFF: Chunk out of range");this.chunks.push({type:r(e,n),offset:n,data:e.slice(n+8,n+8+o)}),n+=8+o,o%2&&n++}}},write:function(){for(var t=n(this.type),r=0,i=this.chunks.length;i>r;r++){var o=this.chunks[r],a=o.data,s=a.length;t=t.concat(n(o.type),e(s),a),s%2&&t.push(0)}return n("FORM").concat(e(t.length),t)}});i.num_from=t,i.num_to_word=e,i.text_from=r,i.text_to_word=n,window.IFF=i}();var extend=function(t,e){for(var r in e)t[r]=e[r];return t},rBadBackground=/inh|tra|(\d+, ?){3}0/,$window=$(window),$doc=$(document),$body,bodylineheight;$(function(){$body=$("body");var t=$("<span>&nbsp;</span>").appendTo($body);bodylineheight=t.height(),t.remove()}),extend($.cssHooks,{bgcolor:{get:function(t){var e=$(t),r=e.css("background-color");return rBadBackground.test(r)?e.parent().css("bgcolor"):r},set:function(t,e){var r=$(t),n=r.parent();r.css("background-color",e),rBadBackground.test(n.css("background-color"))&&n.css("bgcolor",e)}}});var scrollPages=window.scrollByPages||function(t){var e=document.documentElement.clientHeight,r=e-Math.min(e/10,2*bodylineheight);scrollBy(0,r*t)},selection=window.getSelection||function(){return document.selection?document.selection.createRange().text:""},TextInput=Object.subClass({init:function(t){var e=this,r=$("<input>",{"class":"TextInput",autocapitalize:"off",keydown:function(t){var r,n=e.keyCode=t.which;if("line"==e.mode)return 38==n&&(e.prev_next(1),r=1),40==n&&(e.prev_next(-1),r=1),33==n&&(scrollPages(-1),r=1),34==n&&(scrollPages(1),r=1),13==n&&(e.submitLine(),r=1),t.stopPropagation(),r?!1:void 0},keypress:function(t){return"char"==e.mode?(e.charCode=t.which,e.submitChar(),!1):void 0},keyup:function(){"char"==e.mode&&e.submitChar()}});e.lastinput=$('<span class="lastinput"/>').appendTo(t),$doc.on("click.TextInput keydown.TextInput",function(t){if("INPUT"!=t.target.nodeName&&""==selection())if($window.scrollTop()+$window.height()-r.offset().top>-60)window.scrollTo(0,9e9),t.target=r[0],r.focus().trigger(t),t.stopPropagation();else if("keydown"==t.type&&8==t.which)return!1}),e.history=[],e.input=r,e.container=t,e.statuswin=$("<div>"),e.scrollParent=/webkit/i.test(navigator.userAgent)?$body:$("html")},die:function(){$doc.off(".TextInput")},scroll:function(){this.scrollParent.scrollTop(this.lastinput.offset().top-this.statuswin.height()-bodylineheight)},getLine:function(t){var e,r=t.target.children().last(),n=this.input;$doc.trigger({type:"RequestingTextInput"}),this.order=t,this.mode="line",this.current=0,this.mutable_history=this.history.slice(),this.mutable_history.unshift(""),e=/^([\s\S]+<br>)(.+?)$/.exec(r.html()),e?(r.html(e[1]),e=r.clone().html(e[2]).appendTo(r)):e=r,n.width(20).val("").appendTo(e).width(t.target.offset().left+t.target.width()-n.offset().left),this.scroll()},submitLine:function(){var t=this.input.val();this.lastinput.appendTo(this.input.parent()),this.input.detach(),t!=this.history[0]&&/\S/.test(t)&&this.history.unshift(t),$doc.trigger({type:"TextInput",mode:"line",input:t}),this.mode=0,this.order.response=t,this.order.terminator=13,this.callback(this.order)},prev_next:function(t){var e=this.input,r=this.mutable_history,n=this.current,i=n+t;r.length>i&&i>=0&&(r[n]=e.val(),e.val(r[i]),this.current=i)},getChar:function(t){this.order=t,this.mode="char",$doc.trigger({type:"RequestingTextInput"}),this.keyCode=this.charCode=0,this.input.addClass("CharInput").appendTo(this.container),this.scroll()},submitChar:function(){var t=this.keyCode,e=this.charCode,r={keyCode:t,charCode:e};(t||e)&&(this.input.detach().removeClass("CharInput"),$doc.trigger({type:"TextInput",mode:"char",input:r}),this.mode=0,this.order.response=r,this.callback(this.order))}}),TextGrid=Object.subClass({init:function(t,e){var r=this;this.elem=t.addClass("TextGrid").on("stream",function(t){return r.stream(t.order.data),!1}).css("bgcolor","inherit"),this.lineheight=e.env.charheight,this.io=e,e.TextInput.statuswin=this.elem,this.lines=[],this.styles=[],this.cursor=[0,0],this.curheight=0,this.maxheight=0,this.seenheight=0,$doc.on("RequestingTextInput",function(){r.seenheight==r.maxheight&&(r.maxheight=r.curheight),r.lines.length=r.maxheight,r.seenheight=r.maxheight,r.maxheight=r.curheight,r.write(),$(".main").css("padding-top",r.elem.height())})},stream:function(t){function e(t){var e=[],r=0;for(t=t||p.length;f>r++;)e.push(" ");p[t]=e,d[t]=Array(f)}var r,n,i,o,a,s,c,h,l=this.cursor[0],u=this.cursor[1],p=this.lines,d=this.styles,f=this.io.env.width;for(i=0;t.length>i;i++){if(r=t[i],n=r.code,"height"==n){if(h=this.curheight,this.curheight=r.lines,this.curheight>this.maxheight&&(this.maxheight=this.curheight),this.curheight>h)for(o=h;this.curheight>o;)e(o++);for(;this.maxheight>p.length;)e()}if("clear"==n){for(o=0;p.length>o;)e(o++);l=0,u=0}if("cursor"==n)for(l=r.to[0],u=r.to[1],0>l&&(l=0),0>u&&(u=0);l>=p.length;)e();if("get_cursor"==n&&(r.pos=[l,u],this.io.input(r)),"stream"==n){for(;l>=p.length;)e();for(c="",r.props&&(s=$("<tt>",r.props).appendTo(this.elem),a=s.attr("style"),a&&(c+=' style="'+a+'"'),a=s.attr("class"),a&&(c+=' class="'+a+'"')),""===c&&(c=void 0),a=r.text,o=0;a.length>o;)s=a.charAt(o++),"\r"!=s&&(p[l][u]=s,d[l][u++]=c),("\r"==s||u==f)&&(l++,u=0,l>=p.length&&a.length>o&&e())}if("eraseline"==n)for(o=u;f>o;o++)p[l][o]=" ",d[l][o]=void 0}this.cursor=[l,u],this.write(),p.length!=h&&$(".main").css("padding-top",this.elem.height())},write:function(){for(var t,e,r,n="",i=0,o=this.lines,a=this.styles;o.length>i;){for(e="",r=a[i][0],t=0;o[i].length>t;t++)a[i][t]==r?e+=o[i][t]:(n+="<tt"+(r||"")+">"+e+"</tt>",r=a[i][t],e=o[i][t]);n+="<tt"+(r||"")+">"+e+"</tt>",++i<o.length&&(n+="<br>")}this.elem.html(n)}}),basic_stream_handler=function(t){var e=t.order,r=t.io.structures[e.name]||{node:"span"},n=e.node||e.props&&e.props.node||r.node,i=$("<"+n+">",e.props||{}).appendTo(t.target);return e.name&&i.addClass(e.name),e.text&&i.text(e.text.replace(/\r/g,"\n")),r.func&&r.func(i,t.io),!1};StructIO=Object.subClass({init:function(t){t=extend({},t),this.env=t;var e=$(t.container),r=$("<tt>00000</tt>").appendTo(e),n=r.height(),i=r.width()/5,o=Math.min(Math.floor(e.width()/i),t.width||80);r.remove(),extend(t,{charheight:n,charwidth:i,width:o,fgcolour:e.css("color"),bgcolour:e.css("bgcolor")}),e.width(o*i+2),this.container=e,this.target=e,e.on("stream",basic_stream_handler),this.TextInput=new TextInput(e),this.structures={main:{node:"div"},status:{node:"div",func:function(t,e){new TextGrid(t,e)}}}},event:function(t){var e,r,n,i,o=this.target,a=this.TextInput;for(n=0;t.length>n;n++){if(e=t[n],r=e.code,"structures"==r&&(e.code=void 0,$.extend(this.structures,e)),"find"==r&&(this.target=o=$("."+e.name)),"stream"==r&&(e.to?$("."+e.to):o).trigger({type:"stream",io:this,order:e}),"clear"==r){var s,c=e.bg,i=e.name?$("."+e.name):o;i.empty(),c!==void 0&&("main"==e.name&&(i=$body),s=/zvm-bg-\d+/.exec(i.attr("class")),s&&i.removeClass(s[0]),isNaN(c)?i.css("background-color",c):i.addClass("zvm-bg-"+c))}"read"==r&&(e.target=o,a.getLine(e)),"char"==r&&a.getChar(e),"quit"==r&&a.scroll()}}}),function(t){t.StructIO=StructIO,StructIO.TextInput=TextInput}(window,jQuery);var Runner=Object.subClass({init:function(t,e){var r=this;e=window.engine=this.e=new window[e],this.io=new StructIO(t),this.toEngine=this.io.TextInput.callback=function(t){e.inputEvent(t)},e.outputEvent=function(t){r.fromEngine(t)}},fromParchment:function(t){var e=t.code;"load"==e&&(t.env=this.io.env),this.toEngine(t)},fromEngine:function(t){var e,r,n,i=(this.e,0);for(this.io.event(t);t.length>i;i++){if(e=t[i],r=e.code,"quit"==r)return;("save"==r||"restore"==r)&&this.toParchment(e),"restart"==r&&(this.io.target=this.io.container.empty(),n=1),"tick"==r&&(n=1)}n&&this.toEngine(e)}});(function(t,e){"use strict";jQuery.ajaxSetup({cache:1,converters:{"* binary":!0}}),jQuery.ajaxPrefilter("script",function(t){t.isLocal&&(t.crossDomain=1)}),t.parchment={options:{container:"#parchment",lib_path:"lib/",page_title:1,panels:["ifdb","url","about"],proxy_url:"http://zcode.appspot.com/proxy/"},lib:{}};var r=function(t){var e,r=0,n={};for(""==t[0]&&r++;t.length>r;)e=/([^=]+)(=(.*))?/.exec(t[r++]),n[e[1]]=e[3]?unescape(e[3]):!0;return n}(location.search.slice(1).split(/[&;]/g));(function(e){t.FatalError=function(t){this.message=t,this.traceback="",this.onError(this),e(".load").length>0&&e(".load").detach()},FatalError.prototype={onError:function(r){var n=r.message;e("#parchment").append('<div class="error">An error occurred:<br/><pre>'+n+"\n\n"+r.traceback+"</pre></div>"),t.console&&console.error(n)},_makeTraceback:function(t){for(var e="",r=0,n=100;null!=t&&n>r;){var i=""+t;if(i){var o=i.match(/function (\w*)/);e=o&&o[1]?"\n "+o[1]+e:"\n (anonymous function)"+e}else e="\n (anonymous function)"+e;try{t=t.caller}catch(a){t=null}r++}return r==n&&(e="..."+e),"Traceback (most recent call last):\n"+e}}})(jQuery),function(t,e){function r(t,r){e.ajax(t,{dataType:"binary"}).success(function(t,e,n){r(n.responseArray)})}t.execScript&&execScript("Function VBCStr(x)\nVBCStr=CStr(x)\nEnd Function\nFunction VBLastAsc(x)\nDim l\nl=LenB(x)\nIf l mod 2 Then\nVBLastAsc=AscB(MidB(x,l,1))\nElse\nVBLastAsc=-1\nEnd If\nEnd Function","VBScript");var n=/chrome\/(\d+)/i.exec(navigator.userAgent),i=n&&parseInt(n[1])>4,o=function(t){return t.replace(/\u20ac/g,"\u0080").replace(/\u201a/g,"\u0082").replace(/\u0192/g,"\u0083").replace(/\u201e/g,"\u0084").replace(/\u2026/g,"\u0085").replace(/\u2020/g,"\u0086").replace(/\u2021/g,"\u0087").replace(/\u02c6/g,"\u0088").replace(/\u2030/g,"\u0089").replace(/\u0160/g,"\u008a").replace(/\u2039/g,"\u008b").replace(/\u0152/g,"\u008c").replace(/\u017d/g,"\u008e").replace(/\u2018/g,"\u0091").replace(/\u2019/g,"\u0092").replace(/\u201c/g,"\u0093").replace(/\u201d/g,"\u0094").replace(/\u2022/g,"\u0095").replace(/\u2013/g,"\u0096").replace(/\u2014/g,"\u0097").replace(/\u02dc/g,"\u0098").replace(/\u2122/g,"\u0099").replace(/\u0161/g,"\u009a").replace(/\u203a/g,"\u009b").replace(/\u0153/g,"\u009c").replace(/\u017e/g,"\u009e").replace(/\u0178/g,"\u009f")},a=function(t,e){var r,e=e||[],n=0;for(r=t.length%8;r>n;++n)e.push(255&t.charCodeAt(n));for(r=t.length;r>n;)e.push(255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++),255&t.charCodeAt(n++));return e},s=function(t,e){return(e||"")+String.fromCharCode.apply(1,t)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=function(){for(var t=[],e=0;c.length>e;e++)t[c.charAt(e)]=e;return t}(),l=function(e,r){if(t.atob)return a(atob(e),r);for(var n,i,o,s,c,l,u,r=r||[],p=0,d=e.length;d>p;)s=h[e.charAt(p++)],c=h[e.charAt(p++)],l=h[e.charAt(p++)],u=h[e.charAt(p++)],n=(s<<2)+(c>>4),i=((15&c)<<4)+(l>>2),o=((3&l)<<6)+u,r.push(n,i,o);return 64==u&&r.pop(),64==l&&r.pop(),r},u=function(e,r){if(t.btoa)return btoa(s(e,r));for(var n,i,o,a,h,l,u,r=r||"",p=0,d=e.length;d>p;)n=e[p++],i=e[p++],o=e[p++],a=n>>2,h=((3&n)<<4)+(i>>4),l=((15&i)<<2)+(o>>6),u=63&o,r+=c.charAt(a)+c.charAt(h)+c.charAt(l)+c.charAt(u);return isNaN(i)?r=r.slice(0,-2)+"==":isNaN(o)&&(r=r.slice(0,-1)+"="),r},p=function(t){for(var e,r=VBCStr(t),n=VBLastAsc(t),i=[],o=0,a=r.length%4;a>o;)i.push(255&(e=r.charCodeAt(o++)),e>>8);for(a=r.length;a>o;)i.push(255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8,255&(e=r.charCodeAt(o++)),e>>8);return n>-1&&i.push(n),i},d=jQuery.ajaxSettings.xhr(),f={binary:d.overrideMimeType?"charset":"responseBody"in d?"responseBody":0},g=function(r,n,i){var s,c;r=e.trim(r),"base64"==i.mode?t.atob?(c=atob(r),s=a(c)):s=l(r):"charset"==i.mode?(c=o(r),s=a(c)):s=p(i.xhr.responseBody),i.responseArray=s,i.responseText=c};d=void 0,e.ajaxPrefilter("binary",function(t,r,n){var o=t.isLocal&&!t.crossDomain&&i?0:f.binary,a=t.xhr;return t.xhr=function(){return n.xhr=a.apply(t)},t.binary=o,n.done(g),t.jsonp=!1,t.jsonpCallback="processBase64Zcode",n.mode="base64",".js"==t.url.slice(-3).toLowerCase()?"jsonp":o&&!t.crossDomain?"text":t.legacy?(t.url=t.legacy,"jsonp"):(t.data="url="+t.url,t.url=parchment.options.proxy_url,o&&e.support.cors?"text":(t.data+="&encode=base64&callback=pproxy",t.jsonpCallback="pproxy","jsonp"))}),e.ajaxPrefilter("text",function(t,e,r){r.mode=t.binary,"charset"==r.mode&&(t.mimeType="text/plain; charset=windows-1252")}),t.file={text_to_array:a,array_to_text:s,base64_decode:l,base64_encode:u,support:f},t.file.download_to_array=r}(t,jQuery),function(t){'<p><a href="'+location.href+"?story=http://mirror.ifarchive.org/",parchment.lib.UI=Object.subClass({init:function(e){this.library=e,this.panels={},this.load_indicator=t('<div class="dialog load"><p>Parchment is loading.<p>&gt; <blink>_</blink></div>')},stylesheet_add:function(){var e,r=arguments;for(e=1;r.length>e;e++)document.createStyleSheet?document.createStyleSheet(r[e]):t("<link>",{rel:"alternate stylesheet",href:r[e],title:r[0],type:"text/css"}).appendTo("head")[0].disabled=!0},stylesheet_switch:function(e,r){t('link[rel*="stylesheet"][title="'+e+'"]').each(function(){this.disabled=!r})},load_panels:function(){var e=parchment.options.panels;-1!=t.inArray("ifdb",e)&&(this.panels.ifdb=t('<p class="panel">Find stories to play at the <a href="http://ifdb.tads.org/">Interactive Fiction Database</a>.')),-1!=t.inArray("url",e)&&(this.panels.url=t('<form class="panel url"><label for="panel_url">You may use Parchment to play any story file on the internet, simply copy its address here:</label><input id="panel_url" name="story"></form>')),this.library.container.append(this.panels[e[0]]),this.panels.active=e[0]}})}(jQuery),function(t,e){var n=/([-\w\s_]+)(\.[\w]+(\.js)?)?$/,i=/\.js$/,o=function(){throw new FatalError("Parchment could not load the story. Check your connection, and that the URL is correct.")},a=function(r){e(".load").detach();var n=t.runner=new(t[r[2].vm.runner]||Runner)(parchment.options,r[2].vm.engine),i=location.hash;n.toParchment=function(t){r[2].library.fromRunner(n,t)},n.fromParchment({code:"load",data:new parchment.lib.Story(r[2].responseArray).data}),i&&"#"!=i?n.fromParchment({code:"restore",data:file.base64_decode(i.slice(1))}):n.fromParchment({code:"restart"})};parchment.lib.Story=IFF.subClass({init:function(t,r){if(this.title=r,9>t[0])this._super(),this.chunks.push({type:"ZCOD",data:t}),this.data=t;else if("Glul"==IFF.text_from(t,0))this._super(),this.chunks.push({type:"GLUL",data:t}),this.data=t;else if("FORM"==IFF.text_from(t,0)&&(this._super(t),"IFRS"==this.type))for(var n=0,i=this.chunks.length;i>n;n++){var o=this.chunks[n].type;if("ZCOD"!=o||this.zcode)if("GLUL"!=o||this.glulx){if("IFmd"==o){this.metadata=file.array_to_text(this.chunks[n].data);var a=e(this.metadata);a&&(e("title",a)&&(this.title=e("title",a).text()),e("ifid",a)&&(this.ifid=e("ifid",a).text()),e("release",a)&&(this.release=e("release",a).text()))}}else this.data=this.chunks[n].data;else this.data=this.chunks[n].data}}});var s=Object.subClass({add:function(t){this[t.ifid]=t,t.url&&(this.url[t.url]=t)},url:{}}),c=Object.subClass({init:function(){this.container=e(parchment.options.container),this.ui=new parchment.lib.UI(this)},load:function(){var i,o,a=this,s=parchment.options,c=r.story,h=r.vm,l=0;if(s.lock_story){if(c=s.default_story,!c)throw new FatalError("Story file not specified")}else{if(!s.default_story&&!c)return this.ui.load_panels();c=c||s.default_story}if(e("#about").remove(),e("body").append(a.ui.load_indicator),e.isArray(c)||(c=[c,0]),o=c[0],a.url=o,i=n.exec(o),i=i?i[1]+" - Parchment":"Parchment",s.page_title&&(t.document.title=i),h)h=parchment.vms[h];else for(;parchment.vms.length>l;l++)if(parchment.vms[l].match.test(o)){h=parchment.vms[l];break}if(!h)throw new FatalError("File type is not supported!");try{this.launch(h,c)}catch(u){throw new FatalError(u)}},launch:function(t,r){var n=this,s=[e.ajax(r[0],{dataType:"binary",legacy:r[1]}).done(function(e,r,i){i.library=n,i.vm=t}).fail(o)],c=[e.Deferred()],h=function(){if(0==t.files.length)return c[0].resolve(),void 0;var r=parchment.options.lib_path+t.files.shift();i.test(r)?e.getScript(r,h):(parchment.library.ui.stylesheet_add(t.id,r),h())};t.loaded||(t.loaded=1,h(),s[1]=e.when.apply(1,c)),e.when.apply(1,s).done(a)},fromRunner:function(t,e){var r=e.code,n=location.hash;"save"==r&&(location.hash=file.base64_encode(e.data)),"restore"==r&&n&&"#"!=n&&(e.data=file.base64_decode(n.slice(1))),t.fromParchment(e)},stories:new s,savefiles:{}});parchment.lib.Library=c,parchment.vms=[],parchment.add_vm=function(t){parchment.vms.push(t),parchment.vms[t.id]=t}}(t,jQuery),parchment.add_vm({id:"quixe",match:/(ulx|glb|(g|glulx.+)(blorb|blb))(.js)?$/i,files:["prototype.min.js","glkote.min.js","quixe.min.js","glkote.min.css"],runner:"QuixeRunner"}),parchment.add_vm({id:"zvm",match:/(z[58]|zlb|(z|zcode.+)(blorb|blb))(.js)?$/i,files:["zvm.min.js"],engine:"ZVM"}),parchment.add_vm({id:"gnusto",match:/(z[1-8]|zlb|(z|zcode.+)(blorb|blb))(.js)?$/i,files:["gnusto.min.js"],runner:"GnustoRunner"}),e(function(){var n;t.parchment_options&&e.extend(parchment.options,parchment_options),!parchment.options.lock_options&&r.options&&e.extend(parchment.options,e.parseJSON(r.options)),parchment.options.debug=r.debug,n=new parchment.lib.Library,parchment.library=n,n.load(),-1!=location.href.indexOf("iplayif.com")&&e.getScript("http://google-analytics.com/ga.js",function(){_gat._getTracker("UA-7949545-3")._trackPageview()})})})(this,jQuery);