function BBCodeButton(c){if(!c){return}var b=null;var a=this;var d=null;this.canInsert=function(){return b&&b.getTextArea()};this.getCode=function(){return d.name};this.getButtonGroup=function(){return b};this.addButtonGroup=function(e){b=e};this.insertCode=function(e){if(!this.canInsert()){return}var g=b.getTextArea();var f=g.getSelection();g.insertTextRange("["+this.getCode()+"]"+f+"[/"+this.getCode()+"]")};this.setHTMLElement=function(e){d=e;d.onclick=function(f){a.insertCode(this);return false}};this.getHTMLElement=function(e){return d};this.setHTMLElement(c)}function BBCodeLinkButton(b){this.constructor(b);var a="link";var c=new RegExp(/[http|https|ftp|ftps]:\/\/[a-zA-Z0-9-.][a-zA-Z0-9-.]+(S+)?/);this.insertCode=function(e){if(!this.canInsert()){return}var d=this.getButtonGroup();window.setTimeout(function(){var h=d.getTextArea();var g=h.getSelection().trim();var f=(c.test(g))?window.prompt(lang.bbcode_link_url,g):window.prompt(lang.bbcode_link_url,"https://");if(!f||f==""||f=="https://"||f=="http://"||f=="ftp://"||f=="ftps://"){return}if(g==""||c.test(g)){g=window.prompt(lang.bbcode_link_text,"")}if(g!=null){if(g!=""){h.insertTextRange("["+a+"="+f+"]"+g+"[/"+a+"]")}else{h.insertTextRange("["+a+"]"+f+"[/"+a+"]")}}},150)}}function BBCodePromtButton(c,a,b){this.constructor(c);b=b||"";this.insertCode=function(f){if(!this.canInsert()){return}var d=this.getButtonGroup();var e=this.getCode();window.setTimeout(function(){var i=d.getTextArea();var h=i.getSelection().trim();if(h==""){var g=window.prompt(a,b);if(g&&g.trim()!=""&&g.trim()!=b){i.insertTextRange("["+e+"]"+g+"[/"+e+"]")}}else{i.insertTextRange("["+e+"]"+h+"[/"+e+"]")}},150)}}function BBCodeColorChooserButton(c){this.constructor(c);var a=["#fff","#ccc","#c0c0c0","#999","#666","#333","#000","#fcc","#f66","#f00","#c00","#900","#600","#300","#fc9","#f96","#f90","#f60","#c60","#930","#630","#ff9","#ff6","#fc6","#fc3","#c93","#963","#633","#ffc","#ff3","#ff0","#fc0","#990","#660","#330","#9f9","#6f9","#3f3","#3c0","#090","#060","#030","#9ff","#3ff","#6cc","#0cc","#399","#366","#033","#cff","#6ff","#3cf","#36f","#33f","#009","#006","#ccf","#99f","#66c","#63f","#60c","#339","#309","#fcf","#f9f","#c6c","#c3c","#939","#636","#303"];var d=document.createElement("table");var b=document.createElementWithAttributes("tbody",{},d);var h=this;var j=document.createElementWithAttributes("tr",{},b);for(var e=0;e0){t={code:"",title:lang.more_smilies_title,label:lang.more_smilies_label,classes:"more-smilies",isSmilie:true,childs:s};h(t,f)}}};var j=function(){if(!document.getElementById("bbcode-bar")){return}var f=document.getElementById("bbcode-bar");if(document.getElementById("bbcode-instructions")){var r=document.getElementById("bbcode-instructions").firstChild;var t=null;while(r!=null){if(r.nodeName&&r.nodeName.toLowerCase()=="dt"){if(t){h(t,f)}t={code:r.id,label:r.title,title:r.firstChild.nodeValue,classes:r.className,childs:[]}}else{if(t&&r.nodeName&&r.nodeName.toLowerCase()=="dd"){var s={attribute:r.id,label:r.title};t.childs.push(s)}}r=r.nextSibling}if(t){h(t,f)}}};var l=function(s,r){r=r||false;if(s instanceof BBCodeButton){s.addButtonGroup(p);if(r||!b){k[s.getCode()]=s}else{if(k[s.getCode()]){var u=k[s.getCode()].getHTMLElement();var f=s.getHTMLElement();s.setHTMLElement(u);f.parentNode.removeChild(f);k[s.getCode()]=s}else{if(!r&&b){var t=s.getHTMLElement();t.parentNode.removeChild(t)}}}}};var h=function(u,s){var t={className:u.classes,name:u.code,type:"button",title:u.title,tabIndex:-1};var v=u.code.trim()==""?"bbcodebutton":"bbcodebutton-"+u.code;if(u.isSmilie){t.isSmilie=u.isSmilie}else{t.id=v}var f=document.createElementWithAttributes("button",t,s);var r=document.createElement("span");if(typeof u.label=="string"){r.appendChild(document.createTextNode(u.label))}else{r.appendChild(u.label)}f.appendChild(r);l(m(f,u.childs))};var m=function(r,s){var f=null;var t=r&&r.name?r.name.toLowerCase():"";switch(t){case"link":f=new BBCodeLinkButton(r);break;case"img":if(s&&s.length>1){f=new BBCodeOptionButton(r,s,lang.bbcode_image_url,"https://")}else{f=new BBCodePromtButton(r,lang.bbcode_image_url,"https://")}break;case"color":f=new BBCodeColorChooserButton(r);break;case"list":f=new BBCodeListButton(r);break;case"upload":f=new BBCodePopUpButton(r,"index.php?mode=upload_image",settings.upload_popup_width,settings.upload_popup_height);break;case"tex":f=new BBCodePromtButton(r,lang.bbcode_tex_code);break;default:if(r.isSmilie&&s&&s.length>0){f=new BBCodeSmilieButton(r,s)}else{if(r.isSmilie){f=new BBCodeSingleSmilieButton(r)}else{if(s&&s.length>1){f=new BBCodeOptionButton(r,s)}else{f=new BBCodeButton(r)}}}break}return f};var a=function(){var f=document.createElementWithAttributes("div",{id:"bbcode-options"},document.body);var r=document.createElementWithAttributes("div",{},f);f.classList.add("js-display-none");var t=null;f.onmouseover=function(u){if(t){window.clearTimeout(t)}};f.onmouseout=function(w){w=w||window.event;var u=w.relatedTarget||w.toElement||false;var v=this;if(!this.contains(u)){t=window.setTimeout(function(){v.enableOptionList(false)},125)}return false};f.setOptionList=function(u){if(!r.firstChild){r.appendChild(u)}else{r.replaceChild(u,r.firstChild)}};f.enableOptionList=function(u,v){if(v){this.style.left=v.left+"px";this.style.top=v.top+"px"}if(u){this.classList.remove("js-display-none")}else{this.classList.add("js-display-none")}};var s=window.document.onmousedown;window.document.onkeypress=function(u){if(u.key=="Esc"){p.enableOptionList(false)}if(typeof s=="function"){s(u)}};return f};var e=function(r){r=r||false;b=false;var t=r?"smiley-bar":"bbcode-bar";if(!document.getElementById(t)){return}var s=document.getElementById(t).getElementsByTagName("button");if(s&&s.length>0){for(var f=0;f