Skip to content
Snippets Groups Projects
vplutil.min.js 19.4 KiB
Newer Older
define(["jquery","jqueryui","core/log"],function(a,b,c){var d;if("undefined"!=typeof e)return e;var e={};e.doNothing=function(){},e.returnFalse=function(){return!1},e.returnTrue=function(){return!0};var f=!1;return e.log=function(a,b){(f||b)&&c.debug(a)},e.scrollBarWidth=function(){var b,c,d;return b=a('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),c=b.children(),d=c.innerWidth()-c.height(99).innerWidth(),b.remove(),d},e.sanitizeHTML=function(b){return"undefined"==typeof b||""==b.replace("/^s+|s+$/g","")?"":a("<div>"+b+"</div>").html()},e.sanitizeText=function(a){return"undefined"==typeof a||""==a.replace("/^s+|s+$/g","")?"":a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},e.setProtocol=function(a){var b;switch(a.wsProtocol){case"always_use_wss":b=!0;break;case"always_use_ws":b=!1;break;default:b="https:"==window.location.protocol}var c=(b?"wss://":"ws://")+a.server;a.secure=b,a.portToUse=b?a.securePort:a.port,c+=":"+a.portToUse+"/",a.monitorURL=c+a.monitorPath,a.executionURL=c+a.executionPath},e.ArrayBuffer2String=function(a){for(var b=new Uint8Array(a),c=[],d=32e3,e=0,f=b.length;e<f;e+=d)c.push(String.fromCharCode.apply(String,b.subarray(e,Math.min(e+d,f))));return c.join("")},e.String2ArrayBuffer=function(a){for(var b=a.length,c=new ArrayBuffer(b),d=new Uint8Array(c),e=0;e<b;e++)d[e]=a.charCodeAt(e);return c},function(){var a=0;e.getUniqueId=function(){return a++}}(),function(){var a=/\.([^.]*)$/,b=/^(gif|jpg|jpeg|png|ico)$/i,c=/^(zip|jar|pdf|tar|bin|7z|arj|deb|gzip|rar|rpm|dat|db|rtf|doc|docx|odt)$/i,d=/^blockly[0123]?$/;e.fileExtension=function(b){var c=a.exec(b);return null!==c?c[1]:""},e.isImage=function(a){return b.test(e.fileExtension(a))},e.isBinary=function(a){return e.isImage(a)||c.test(e.fileExtension(a))},e.isBlockly=function(a){return d.test(e.fileExtension(a))};var f=/[\cA-\cZ]|[:-@]|[{-~]|\\|\[|\]|[\/\^]|^\-|^ | $|\.\./;e.validFileName=function(a){return!(a.length<1)&&(!(a.length>128)&&!f.test(a))}}(),e.getCurrentTime=function(){return parseInt((new Date).valueOf()/1e3)},e.encodeBinary=function(a,b){return e.isBinary(a)?btoa(e.ArrayBuffer2String(b)):btoa(unescape(encodeURIComponent(b)))},e.decodeBinary=function(a,b){var c=atob(b);return e.isBinary(a)?e.String2ArrayBuffer(c):decodeURIComponent(escape(c))},e.validPath=function(a){if(a.length>256)return!1;for(var b=a.split("/"),c=0;c<b.length;c++)if(!e.validFileName(b[c]))return!1;return!0},e.getFileName=function(a){var b=a.split("/");return b[b.length-1]},e.dataFromURLData=function(a){return a.substr(a.indexOf(",")+1)},e.readZipFile=function(a,b,c,d){function f(a){if(a>=i||c.isClosed())return void(d&&d());var g,j=h.entries[a],k=j.fileName;if(k.match(/\/$/))f(a+1);else{c.processFile(k);var l="";if(0===j.compressionMethod?l=j.data:8===j.compressionMethod&&(l=JSInflate.inflate(j.data)),g=e.String2ArrayBuffer(l),e.isBinary(k))b({name:k,contents:btoa(l),encoding:1})||(a=i),f(a+1),c.endFile();else{var m=new Blob([g],{type:"text/plain"}),n=new FileReader;n.onload=function(d){b({name:k,contents:d.target.result,encoding:0})||(a=i),f(a+1),c.endFile()},n.readAsText(m)}}}if("undefined"==typeof JUnzip)return void e.loadScript(["../editor/zip/inflate.js","../editor/zip/unzip.js"],function(){e.readZipFile(a,b,c,d)});var g=e.ArrayBuffer2String(a),h=new JUnzip(g);if(h.isZipFile()){h.readEntries();var i=h.entries.length;f(0)}},e.readSelectedFiles=function(a,b,c){function d(c){if(!(c>=a.length||f.isClosed())){var g=a[c];f.processFile(g.name);var h=e.isBinary(g.name),i=new FileReader,j=e.fileExtension(g.name).toLowerCase();i.onload=function(a){var i=!1;if(h)if("zip"==j)try{e.readZipFile(a.target.result,b,f,function(){d(c+1)})}catch(k){e.showErrorMessage(k+" : "+g.name)}else{var l=e.dataFromURLData(a.target.result);i=b({name:g.name,contents:l,encoding:1})}else i=b({name:g.name,contents:a.target.result,encoding:0});i&&d(c+1),f.endFile()},h?"zip"==j?i.readAsArrayBuffer(g):i.readAsDataURL(g):i.readAsText(g)}}var f=new e.progressBar("import","import"),g=0;c||(c=e.doNothing),f.processFile=function(a){f.setLabel(a),g++},f.endFile=function(){g--,0===g&&(c(),f.close())},d(0)},function(){var a={gif:"image/gif",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",ico:"image/vnd.microsoft.icon",pdf:"application/pdf"};e.getMIME=function(b){var c=e.fileExtension(b);return c in a?a[c]:"application/octet-stream"},e.getTimeLeft=function(a){var b="",c=60,d=60*c,e=24*d;a<0&&(b+="-",a=-a);var f=parseInt(a/e);a-=f*e,0!==f&&(b+=f+"T");var g=parseInt(a/d);a-=g*d;var h=parseInt(a/c);a-=h*c;var i=parseInt(a);return b+=("00"+g).substr(-2)+":",b+=("00"+h).substr(-2),0===f&&(b+=":"+("00"+i).substr(-2)),b}}(),function(){var a={abap:"abap",abc:"abc",ada:"ada",ads:"ada",adb:"ada",as:"actionscript",as3:"actionscript",asm:"assembly_x86",bash:"sh",bat:"batchfile",c:"c_cpp",C:"c_cpp",cc:"c_cpp",cpp:"c_cpp",hxx:"c_cpp",h:"c_cpp",cases:"cases",cbl:"cobol",cob:"cobol",coffee:"coffee",clj:"clojure",cs:"csharp",css:"css",d:"d",dart:"dart",e:"eiffel",erl:"erlang",hrl:"erlang",f:"fortran",f77:"fortran",go:"go",groovy:"groovy",hs:"haskell",htm:"html",html:"html",hx:"haxe",java:"java",js:"javascript",json:"json",jsp:"jsp",jsx:"jsx",kt:"kotlin",kts:"kotlin",m:"matlab",md:"markdown",less:"less",lisp:"lisp",lsp:"lisp",lua:"lua",mod:"opl",pas:"pascal",p:"pascal",perl:"perl",prl:"perl",php:"php",pro:"prolog",pl:"prolog",py:"python",r:"r",rb:"ruby",ruby:"ruby",sass:"sass",scala:"scala",scm:"scheme",s:"scheme",scss:"scss",sh:"sh",swift:"swift",sql:"sql",svg:"svg",tex:"tex",tcl:"tcl",twig:"twig",v:"verilog",vhd:"vhdl",vhdl:"vhdl",xml:"xml",xsl:"xml",yaml:"yaml"};e.langType=function(b){return b in a?a[b]:"plain_text"}}(),function(){var a={};e.str=function(b){return a[b]?a[b]:"{"+b+"}"},e.setStr=function(b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);e.dialogbaseOptions={autoOpen:!1,width:"auto",closeText:e.str("cancel"),modal:!0,dialogClass:"vpl_ide vpl_ide_dialog"}}}(),function(){var a={},b=20,c=100;e.delay=function(c,d,e,f){"undefined"!=typeof a[c]&&a[c]===!1||clearTimeout(a[c]),a[c]=setTimeout(function(){d(e,f),a[c]=!1},b)},e.longDelay=function(b,d,e,f){"undefined"!=typeof a[b]&&a[b]===!1||clearTimeout(a[b]),a[b]=setTimeout(function(){d(e,f),a[b]=!1},c)}}(),e.iconModified=function(){var a='<span title="'+e.str("modified")+'" class="vpl_ide_charicon">';return a+='<i class="fa fa-star"></i></span> '},e.iconDelete=function(){var a=' <span title="'+e.str("delete")+'" class="vpl_ide_charicon vpl_ide_delicon">';return a+='<i class="fa fa-trash"></i></span> '},e.iconClose=function(){var a=' <span title="'+e.str("closebuttontitle");return a+='" class="vpl_ide_charicon vpl_ide_closeicon"><i class="fa fa-remove"></i></span> '},e.iconRequired=function(){var a=' <span title="'+e.str("required")+'" class="vpl_ide_charicon">';return a+='<i class="fa fa-shield"></i></span> '},e.iconFolder=function(){return'<i class="fa fa-folder-open-o"></i>'},function(){var a={filelist:"folder",filelistclose:"folder-open","new":"file",rename:"pencil","delete":"trash",multidelete:"trash|list",close:"remove",comments:"commenting","import":"upload",print:"print",edit:"edit",undo:"undo",redo:"repeat",select_all:"location-arrow",find:"search",find_replace:"exchange",next:"search-plus",resetfiles:"refresh",correctedfiles:"graduation-cap",download:"download",fullscreen:"expand",regularscreen:"compress",save:"save",sort:"list-ol",run:"rocket",debug:"bug",evaluate:"check-square-o",console:"terminal",about:"question",info:"info-circle",alert:"warning",trash:"trash",retrieve:"download",spinner:"refresh fa-spin",keyboard:"keyboard-o",clipboard:"clipboard",timeleft:"clock-o",copy:"copy",paste:"paste",more:"plus-square",less:"minus-square",resize:"arrows-alt",graphic:"picture-o",send:"send",acetheme:"code|paint-brush",user:"user",fontsize:"text-height"};e.genIcon=function(b,c){if(!a[b])return"";var d="fa fa-";d+=c?c:"lg";for(var e=a[b].split("|"),f="",g=0;g<e.length;g++)f+="<i class='"+d+" fa-"+e[g]+"'></i>";return f}}(),e.setTitleBar=function(b,c,d,f,g){function h(a){var b="<a id='vpl_"+c+"_"+a+"' href='#' title='"+e.str(a)+"'>";return b+=e.genIcon(a,"fw")+"</a>"}var i=a(b).parent().find("span.ui-dialog-title"),j=e.genIcon(d);j+=" <span class='"+c+"-title-buttons'></span>",j+="<span class='"+c+"-title-text'></span>",i.html(j);var k=i.find("span."+c+"-title-buttons"),l=i.find("span."+c+"-title-text");j="";for(var m=0;m<f.length;m++)j+=h(f[m]);k.html(j);for(var n=0;n<g.length;n++){var o=i.find("#vpl_"+c+"_"+f[n]);o.button().click(g[n]),o.css("padding","1px 3px")}return k.on("focus","*",function(){a(this).blur()}),l},e.progressBar=function(b,c,d){var f='<span class="vpl_ide_progressbarlabel"></span>',g='<div class="vpl_ide_progressbaricon">'+e.genIcon("spinner")+"</div>",h=' <div class="vpl_ide_progressbar">'+g+f+"</div>",i='<div class="vpl_ide_dialog" style="display:none;">'+h+"</div>",j=a(i);a("body").append(j);var k=j.find(".vpl_ide_progressbar"),l=k.find(".vpl_ide_progressbarlabel");j.dialog({title:e.str(b),resizable:!1,autoOpen:!1,width:200,height:20,minHeight:20,modal:!0,dialogClass:"vpl_ide vpl_ide_dialog",close:function(a){j&&(d&&a.originalEvent&&d(),d=!1)}}),this.setLabel=function(a,b){j&&(l.text(a),b&&l.html(e.genIcon(b)+" "+l.html()))},this.close=function(){j&&(j.dialog("destroy"),a(j).remove(),j=!1)},this.isClosed=function(){return j===!1};var m=j.siblings().find(".ui-dialog-title");m.html(e.genIcon(b)+" "+m.html()),this.setLabel(e.str(c)),j.dialog("open"),j.dialog("option","height","auto")},e.showMessage=function(b,c){var d=a.extend({},c),f=a('<div class="vpl_ide_dialog"></div>');d||(d={}),d.icon||(d.icon="info"),d.title||(d.title=e.str("warning")),f.html(e.genIcon(d.icon)+' <span class="dmessage">'+b+"</span>"),a("body").append(f);var g={};return d.ok?(g[e.str("ok")]=function(){a(this).dialog("close"),d.ok()},g[e.str("cancel")]=function(){a(this).dialog("close")}):g[e.str("ok")]=function(){a(this).dialog("close")},d.next&&(g[e.str("next")]=function(){a(this).dialog("close"),d.next()}),d.close&&(d.oldClose=d.close),f.dialog(a.extend({},e.dialogbaseOptions,{title:d.title,buttons:g,close:function(){a(this).remove(),d.oldClose&&d.oldClose()}})),f.dialog("open"),f.setMessage=function(b){a(f).find(".dmessage").html(b)},f},e.showErrorMessage=function(b,c){var d=a.extend({},e.dialogbaseOptions,{title:e.str("error"),icon:"alert"});return c&&(d=a.extend(d,c)),e.showMessage(b,d)},e.requestAction=function(b,c,d,g){"undefined"!=typeof e.get_absolute_path()&&(g=e.get_absolute_path()+g);var h=a.Deferred(),i=null,j=!1;""===c&&(c="connecting");var k=new e.progressBar(b,c,function(){4!=i.readyState&&j&&j.abort&&j.abort()});return i=a.ajax({beforeSend:function(a){return j=a,!0},async:!0,type:"POST",url:g+b,data:JSON.stringify(d),contentType:"application/json; charset=utf-8",dataType:"json"}).always(function(){k.close()}).done(function(a){a.success?h.resolve(a.response):h.reject(a.error)}).fail(function(a,b,c){var d=e.str("connection_fail")+": "+b;f&&(d+="<br>"+c.message,d+="<br>"+a.responseText.substr(0,80)),e.log(d),h.reject(d)}),h},e.supportWebSocket=function(){return"WebSocket"in window},e.isAndroid=function(){return window.navigator.userAgent.indexOf("Android")>-1},e.isFirefox=function(){return window.navigator.userAgent.indexOf("Firefox")>-1},e.isMac=function(){return window.navigator.userAgent.indexOf("Mac")>-1},e.clickServer=function(b){var c=550,d=450,f=screen.width/2-c/2,g=screen.height/2-d/2;try{var h="toolbar=no, location=no, directories=no, status=no, menubar=no";h+=", resizable=yes, scrollbars=yes, copyhistory=no, width="+c,h+=", height="+d+", top="+g+", left="+f;var i=window.open(a(this).attr("href"),"_blank",h);if(!i)return!0}catch(j){return e.log(j),!0}return b.preventDefault(),a(this).parent().hide(),!1},e.acceptCertificates=function(b,c){if(b.length>0){var d=e.str("acceptcertificatesnote");d+="<ol>";for(var f in b)if(b.hasOwnProperty(f)){var g=1+f;d+='<li><a href="'+b[f]+'" target="_blank">Server ',d+=g+"</a><br /></ul>"}d+="</ol>";var h=e.showMessage(d,{ok:function(){var a=c();a&&a()},icon:"unlocked",title:e.str("acceptcertificates")});a(h).find("a").on("click keypress",e.clickServer)}else e.log("servers.length == 0"),e.showErrorMessage(e.str("connection_fail"))},e.webSocketMonitor=function(b,c,d,f){e.setProtocol(b);var g=null,h=null,i=a.Deferred(),j=function(a){i.reject(a)},k=!1,l={message:function(a){var b=/^([^:]*):?(.*)/i.exec(a),c=b[1],g=b[2];"running"==c&&(c=d);var i=e.str(c);g>""&&(i+=": "+g),f.getConsole&&f.getConsole().isOpen()?f.getConsole().setMessage(i):h.setLabel(i)},compilation:function(a){f.setResult&&f.setResult({compilation:a},!1)},retrieve:function(){h.close(),k=!0,e.requestAction("retrieve","","",f.ajaxurl).done(function(a){i.resolve(),f.setResult&&f.setResult(a,!0)}).fail(j)},run:function(a){h.close(),f.run(a,b,g)},close:function(){e.log("ws close message from jail"),g.close(),f.close&&f.close()}};try{if(!e.supportWebSocket())return e.log("ws not available"),i.reject(e.str("browserupdate")),i;g=new WebSocket(b.monitorURL)}catch(m){return e.log("ws new say "+m),i.reject(m.message),i}return h=new e.progressBar(c,"connecting",function(){i.reject("Stopped by user"),g.close()}),g.notOpen=!0,g.onopen=function(){g.notOpen=!1,h.setLabel(e.str("connected"))},g.onerror=function(a){e.log("ws error "+a),h.close(),b.secure&&g.notOpen?e.requestAction("getjails","retrieve",{},f.ajaxurl).done(function(a){e.acceptCertificates(a.servers,function(){return f.getLastAction()})}).fail(j):i.reject(e.str("connection_fail"))},g.onclose=function(){f.getConsole&&f.getConsole().disconnect(),g.notOpen||(h.close(),k||"rejected"==i.state()||i.resolve())},g.onmessage=function(a){var b=/^([^:]+):/i.exec(a.data);if(null!==b){var c=b[1],d=a.data.substr(c.length+1);l[c]&&l[c](d)}else h.setLabel(e.str("error")+": "+a.data)},i},e.processResult=function(a,b,c,d,f){function g(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/,"\\$&")}function h(a){return"undefined"==typeof c[a].getTagId?'href="#" ':'href="#'+c[a].getTagId()+'" '}function i(a,d){for(var f=!1,g=0;g<x.length;g++)for(var i,j=x[g];null!==(i=j.exec(a));){var k=c[g].getAnnotations();z=g,f=!0;var l=a.search(r)==-1?"error":"warning";y={row:i[2]-1,column:i[3],type:l,text:d},k.push(y);var m=b[g],n=h(g),o=e.sanitizeText(m),p='data-file="'+m+'" data-line="'+i[2]+'"';a=a.replace(j,"$1<a "+n+' class="vpl_fl" '+p+">"+o+":$2$3</a>"),c[g].setAnnotations(k)}return!f&&y&&(""!==d?(y.text+="\n"+d,c[z].setAnnotations(c[z].getAnnotations())):y=!1),a}function j(a){y=!1,a=a.substr(1);var b=o.exec(a);null!==b&&(a=a.substr(0,a.length-b[0].length));var c="";return f&&(c+='<a href="javascript:void(0)" onclick="VPLUtil.showHideDiv(this)">[+]</a>'),c+='<b class="ui-widget-header ui-corner-all">'+e.sanitizeText(a)+"</b><br />",c=i(c,a)}function k(){y=!1;var a=u;return u="",a}function l(a){var b=e.sanitizeText(a);u+=i(b,a)+"<br />"}function m(a){var b=e.sanitizeText(a);v+=i(b,a)+"\n"}function n(){y=!1;var a=v;return v="","<pre><i>"+a+"</i></pre>"}if("undefined"==typeof a||""==a.replace("/^s+|s+$/gm",""))return"";for(var o=/\([-]?[\d]+[\.]?[\d]*\)\s*$/,p=/^-/,q=/^\s*\>/,r=new RegExp("warning|"+g(e.str("warning")),"i"),s="",t="",u="",v="",w=a.split(/\r\n|\n|\r/),x=[],y=!1,z=!1,A=!1,B=0;B<b.length;B++){var C=g(b[B]),D="(^| |/)"+C+"[:(](\\d+)([:,](\\d+)\\)?)?";x[B]=new RegExp(D,"")}for(B=0;B<w.length;B++){var E=w[B];if(d)t+=i(e.sanitizeText(E),E)+"\n";else{var F=q.exec(E),G=q.test(E);if(null!==F!=G&&e.log("error"),p.test(E)){switch(s){case"comment":t+=k();break;case"case":t+=n()}A&&(t+="</div>"),t+=j(E),t+=f?'<div style="display:none">':"<div>",A=!0,s=""}else G?("comment"==s&&(t+=k()),m(E.substr(F[0].length)),s="case"):("case"==s&&(t+=n()),l(E),s="comment")}}switch(s){case"comment":t+=k();break;case"case":t+=n()}return A&&(t+="</div>"),t},function(){var a=[];e.loadScript=function(b,c){if(0==b.length)return void c();var d=b[0];if("undefined"==typeof a[d]){b.shift(),a[d]=1;var f=document.createElement("script");f.type="text/javascript",f.src=e.options.scriptPath+d,f.onload=function(){a[d]=2,e.loadScript(b,c)},document.head.appendChild(f)}else 2==a[d]?(b.shift(),e.loadScript(b,c)):setTimeout(function(){e.loadScript(b,c)},50)},e.isScriptLoading=function(b){return"undefined"!=typeof a[b]&&1==a[b]},e.isScriptLoaded=function(b){return"undefined"!=typeof a[b]&&2==a[b]}}(),e.adjustBlockly=function(a,b,c){for(var d=a.getAllBlocks(),e=2e4,f=-2e4,g=2e4,h=-2e4,i=0;i<d.length;i++){var j=d[i].getRelativeToSurfaceXY();e=Math.min(e,j.y),f=Math.max(f,j.y),g=Math.min(g,j.x),h=Math.max(h,j.x)}d=a.getTopBlocks();for(var i=0;i<d.length;i++)d[i].moveBy(b-g,c-e);return f-e+100+c},function(){function b(a,b){var c=this;this.files=a,this.results=b,setTimeout(function(){c.highlight()},10)}var c=[],d=[],f=[];b.prototype.highlightBlockly=function(b){e.loadScript(["../editor/blockly/blockly_compressed.js","../editor/blockly/msg/js/en.js","../editor/blockly/blocks_compressed.js"],function(){var c=a("#"+b),d=c.html();a("#"+b+"load").remove(),c.html(""),c.show(),d=a("<div />").html(d).text().replace(/\n/g,"");var f=Blockly.Xml.textToDom(d);c.html("").height(300).width(c.parent().width());var g={toolbox:"",readOnly:!0,media:"../editor/blockly/media/"},h=Blockly.inject(b,g);Blockly.Xml.domToWorkspace(f,h);var i=e.adjustBlockly(h,10,10);c.height(i),c.width("100%"),Blockly.svgResize(h),Blockly.resizeSvgContents(h);var j=c.html();h.dispose(),c.html(j)})},b.prototype.highlight=function(){var b=this;if("undefined"==typeof ace){var c;return c="undefined"!=typeof e.get_absolute_path()?e.get_absolute_path()+"/editor/ace9/ace.js":"../editor/ace9/ace.js",void e.loadScript([c],function(){b.highlight()})}for(var d=this.files,g=this.results,h=[],i=[],j=0;j<d.length;j++){var k=d[j],l="code"+k.tagId;if(e.isBlockly(k.fileName))b.highlightBlockly(l);else{var m=e.fileExtension(k.fileName),n=e.langType(m);a("#"+l).show(),a("#"+l+"load").remove();var o=ace.edit(l);o.setTheme("ace/theme/"+k.theme),o.getSession().setMode("ace/mode/"+n),o.renderer.setShowGutter(k.showln),o.setReadOnly(!0),o.setHighlightActiveLine(!1),o.setAutoScrollEditorIntoView(!0),o.setOption("maxLines",k.nl),o.getAnnotations=function(){return this.getSession().getAnnotations()},o.setAnnotations=function(a){return this.getSession().setAnnotations(a)},o.getTagId=function(){return this.vplTagId},o.vplTagId=k.tagId,h.push(o),i.push(k.fileName),f[k.tagId]=o}}for(var p=0;p<g.length;p++){var q=document.getElementById(g[p].tagId),r=q.textContent||q.innerText;q.innerHTML=e.processResult(r,i,h,g[p].noFormat,g[p].folding)}setTimeout(function(){for(var b=0;b<h.length;b++){var c=h[b],e=c.getTagId(),f=a("#"+e).html();c.destroy(),a("#"+e).html(f)}d=null,g=null,h=null,i=null},1e3)},e.addResults=function(a,b,c){d.push({tagId:a,noFormat:b,folding:c})},e.syntaxHighlightFile=function(a,b,d,e,f){c.push({tagId:a,fileName:b,theme:d,showln:e,nl:f})},e.syntaxHighlight=function(){var a=this;if("undefined"==typeof ace){var f;return f="undefined"!=typeof e.get_absolute_path()?e.get_absolute_path()+"/editor/ace9/ace.js":"../editor/ace9/ace.js",void e.loadScript([f],function(){a.syntaxHighlight()})}new b(c,d),c=[],d=[]},e.flEventHandler=function(a){var b=a.target.getAttribute("href").substring(1),c=a.target.getAttribute("data-line"),d=f[b];d.gotoLine(c,0),d.scrollToLine(c,!0)},e.setflEventHandler=function(){for(var a=document.getElementsByClassName("vpl_fl"),b=0;b<a.length;b++)a[b].onclick=e.flEventHandler},e.showHideDiv=function(a){var b=a,c=a;for(c.nextSibling||(c=c.parentNode),c=c.nextSibling;"DIV"!=c.nodeName&&"PRE"!=c.nodeName;)if(c=c.nextSibling,!c)return;b&&("[+]"==b.innerHTML?(c.savedDisplay?c.style.display=c.savedDisplay:c.style.display="",b.innerHTML="[-]"):(c.savedDisplay=c.style.display,c.style.display="none",b.innerHTML="[+]"))}}(),e.options={scriptPath:""},e.get_absolute_path=function(){return d},e.set_absolute_path=function(a){d=a},e.init=function(b){a.extend(e.options,b)},window.VPLUtil=e,e});