'use strict';const jsToolBar=function(textarea){if(!document.createElement){return;} if(!textarea){return;} if((typeof(document.selection)=="undefined")&&(typeof(textarea.setSelectionRange)=="undefined")){return;} this.textarea=textarea;this.editor=document.createElement('div');this.editor.className='jstEditor';this.textarea.parentNode.insertBefore(this.editor,this.textarea);this.editor.appendChild(this.textarea);this.toolbar=document.createElement("div");this.toolbar.className='jstElements';if(this.toolbar_bottom){this.editor.parentNode.insertBefore(this.toolbar,this.editor.nextSibling);}else{this.editor.parentNode.insertBefore(this.toolbar,this.editor);} if(navigator.appName=='Microsoft Internet Explorer'){if(this.editor.addEventListener){this.handle=document.createElement('div');this.handle.className='jstHandle';const dragStart=this.resizeDragStart;const This=this;this.handle.addEventListener('mousedown',function(event){dragStart.call(This,event);},false);this.editor.parentNode.insertBefore(this.handle,this.editor.nextSibling);}} this.context=null;this.toolNodes={};};const jsButton=function(title,fn,scope,className,accesskey){this.title=title||null;this.fn=fn||function(){};this.scope=scope||null;this.className=className||null;this.accesskey=accesskey||null;};jsButton.prototype.draw=function(){if(!this.scope)return null;const button=document.createElement('button');button.setAttribute('type','button');if(this.className)button.className=this.className;button.title=this.title;if(this.accesskey)button.accessKey=this.accesskey;const span=document.createElement('span');span.appendChild(document.createTextNode(this.title));button.appendChild(span);if(this.icon!=undefined){button.style.backgroundImage='url('+this.icon+')';} if(typeof(this.fn)=='function'){const This=this;button.onclick=function(){try{This.fn.apply(This.scope,arguments);}catch(e){} return false;};} return button;};const jsSpace=function(id){this.id=id||null;this.width=null;};jsSpace.prototype.draw=function(){const span=document.createElement('span');if(this.id)span.id=this.id;span.appendChild(document.createTextNode(String.fromCharCode(160)));span.className='jstSpacer';if(this.width)span.style.marginRight=this.width+'px';return span;};const jsCombo=function(title,options,scope,fn,className){this.title=title||null;this.options=options||null;this.scope=scope||null;this.fn=fn||function(){};this.className=className||null;};jsCombo.prototype.draw=function(){if(!this.scope||!this.options)return null;const select=document.createElement('select');if(this.className)select.className=this.className;select.title=this.title;for(let o in this.options){const option=document.createElement('option');option.value=o;option.appendChild(document.createTextNode(this.options[o]));select.appendChild(option);} const This=this;select.onchange=function(){try{This.fn.call(This.scope,this.value);}catch(e){window.alert(e);} return false;};return select;};jsToolBar.prototype={base_url:'',mode:'xhtml',elements:{},toolbar_bottom:false,getMode:function(){return this.mode;},setMode:function(mode){this.mode=mode||'xhtml';},switchMode:function(mode){mode=mode||'xhtml';this.draw(mode);},button:function(toolName){const tool=this.elements[toolName];if(typeof tool.fn[this.mode]!='function')return null;const b=new jsButton(tool.title,tool.fn[this.mode],this,'jstb_'+toolName,tool.accesskey);if(tool.icon!=undefined){b.icon=tool.icon;} return b;},space:function(toolName){const tool=new jsSpace(toolName);if(this.elements[toolName].format!=undefined&&!this.elements[toolName].format[this.mode])return null;if(this.elements[toolName].width!==undefined){tool.width=this.elements[toolName].width;} return tool;},combo:function(toolName){const tool=this.elements[toolName];if(tool[this.mode]!=undefined){const length=tool[this.mode].list.length;if(typeof tool[this.mode].fn!='function'||length==0){return null;}else{let options={};for(let i=0;i`,``);}catch(e){} this.toolNodes.blocks.value='nonebis';}},wiki:{list:['nonebis','h3','h4','h5'],fn:function(opt){switch(opt){case'nonebis':this.textarea.focus();break;case'h3':this.encloseSelection('!!!');break;case'h4':this.encloseSelection('!!');break;case'h5':this.encloseSelection('!');break;} this.toolNodes.blocks.value='nonebis';}}};jsToolBar.prototype.elements.space0={type:'space',format:{wysiwyg:true,wiki:true,xhtml:true}};jsToolBar.prototype.elements.strong={type:'button',title:'Strong emphasis',fn:{wiki:function(){this.singleTag('__');},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.em={type:'button',title:'Emphasis',fn:{wiki:function(){this.singleTag("''");},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.ins={type:'button',title:'Inserted',fn:{wiki:function(){this.singleTag('++');},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.del={type:'button',title:'Deleted',fn:{wiki:function(){this.singleTag('--');},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.quote={type:'button',title:'Inline quote',fn:{wiki:function(){this.singleTag('{{','}}');},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.code={type:'button',title:'Code',fn:{wiki:function(){this.singleTag('@@');},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.mark={type:'button',title:'Mark',fn:{wiki:function(){this.singleTag('""');},xhtml:function(){this.singleTag('','');}}};jsToolBar.prototype.elements.space1={type:'space',format:{wysiwyg:true,wiki:true,xhtml:true}};jsToolBar.prototype.elements.br={type:'button',title:'Line break',fn:{wiki:function(){this.encloseSelection("%%%\n",'');},xhtml:function(){this.encloseSelection("
\n",'');}}};jsToolBar.prototype.elements.space2={type:'space',format:{wysiwyg:true,wiki:true,xhtml:true}};jsToolBar.prototype.elements.blockquote={type:'button',title:'Blockquote',fn:{xhtml:function(){this.singleTag('
','
');},wiki:function(){this.encloseSelection("\n",'',function(str){str=str.replace(/\r/g,'');return'> '+str.replace(/\n/g,"\n> ");});}}};jsToolBar.prototype.elements.pre={type:'button',title:'Preformated text',fn:{wiki:function(){this.singleTag("///\n","\n///");},xhtml:function(){this.singleTag('
','
');}}};jsToolBar.prototype.elements.ul={type:'button',title:'Unordered list',fn:{wiki:function(){this.encloseSelection('','',function(str){str=str.replace(/\r/g,'');return'* '+str.replace(/\n/g,"\n* ");});},xhtml:function(){this.encloseSelection('','',function(str){str=str.replace(/\r/g,'');str=str.replace(/\n/g,"\n
  • ");return"";});}}};jsToolBar.prototype.elements.ol={type:'button',title:'Ordered list',fn:{wiki:function(){this.encloseSelection('','',function(str){str=str.replace(/\r/g,'');return'# '+str.replace(/\n/g,"\n# ");});},xhtml:function(){this.encloseSelection('','',function(str){str=str.replace(/\r/g,'');str=str.replace(/\n/g,"
  • \n
  • ");return"
      \n
    1. "+str+"
    2. \n
    ";});}}};jsToolBar.prototype.elements.space3={type:'space',format:{wysiwyg:true,wiki:true,xhtml:true}};jsToolBar.prototype.elements.link={type:'button',title:'Link',fn:{},accesskey:'l',href_prompt:'Please give page URL:',hreflang_prompt:'Language of this page:',default_hreflang:'',prompt:function(href,hreflang){href=href||'';hreflang=hreflang||this.elements.link.default_hreflang;href=window.prompt(this.elements.link.href_prompt,href);if(!href){return false;} hreflang=window.prompt(this.elements.link.hreflang_prompt,hreflang);return{href:this.stripBaseURL(href),hreflang:hreflang};}};jsToolBar.prototype.elements.link.fn.xhtml=function(){var link=this.elements.link.prompt.call(this);if(link){var stag='';var etag='';this.encloseSelection(stag,etag);}};jsToolBar.prototype.elements.link.fn.wiki=function(){var link=this.elements.link.prompt.call(this);if(link){var stag='[';var etag='|'+link.href;if(link.hreflang){etag=etag+'|'+link.hreflang;} etag=etag+']';this.encloseSelection(stag,etag);}};jsToolBar.prototype.elements.img={type:'button',title:'External image',src_prompt:'Please give image URL:',fn:{},prompt:function(src){src=src||'';return this.stripBaseURL(window.prompt(this.elements.img.src_prompt,src));}};jsToolBar.prototype.elements.img.fn.xhtml=function(){var src=this.elements.img.prompt.call(this);if(src){this.encloseSelection('','',function(str){if(str){return`${str}`;}else{return``;}});}};jsToolBar.prototype.elements.img.fn.wiki=function(){var src=this.elements.img.prompt.call(this);if(src){this.encloseSelection('','',function(str){if(str){return`((${src}|${str}))`;}else{return`((${src}))`;}});}};