
- Uncaught TypeError: Cannot read properties of undefined (reading 'push') was thrown, if compressed version was loaded - posting.js is compressed (without changes) using https://refresh-sf.com/
1 line
No EOL
14 KiB
JavaScript
1 line
No EOL
14 KiB
JavaScript
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;e<a.length;e++){var g=document.createElementWithAttributes("td",{},j);g.style.backgroundColor=a[e];g.style.width="15px";g.style.height="15px";g.style.fontSize="15px";var f=document.createElementWithAttributes("a",{href:"#",extension:"="+a[e],onclick:function(i){h.insertOptionCode(this);return false}},g);f.classList.add("js-display-block");f.appendChild(document.createTextNode(String.fromCharCode(160)));if((e+1)%7==0){j=document.createElementWithAttributes("tr",{},b)}}this.insertOptionCode=function(l){if(!this.canInsert()){return}var i=this.getButtonGroup();var m=i.getTextArea();var k=this.getCode();m.insertTextRange("["+k+l.extension+"]"+m.getSelection()+"[/"+k+"]");i.getAdditionalOptionsWindow().enableOptionList(false)};this.insertCode=function(l){if(!this.canInsert()){return}var k=this.getButtonGroup();var i=document.getElementPoSi(l);k.getAdditionalOptionsWindow().setOptionList(d);k.getAdditionalOptionsWindow().enableOptionList(true,i)}}function BBCodeOptionButton(a,f,d,g){this.constructor(a);if(!f){return}d=d||false;g=g||"";var e=document.createElement("ul");var k=this;for(var c=0;c<f.length;c++){var b=f[c];var j=document.createElementWithAttributes("li",{},e);var h=document.createElementWithAttributes("a",{href:"#",attribute:b.attribute,onclick:function(i){k.insertOptionCode(this);return false}},j);h.appendChild(document.createTextNode(b.label));e.appendChild(j)}this.insertOptionCode=function(n){if(!this.canInsert()){return}var i=this.getButtonGroup();var m=this.getCode(),l=this.getCode();window.setTimeout(function(){var r=i.getTextArea();var q=r.getSelection();if(n.attribute.toLowerCase()=="inlinecode"){m=l=n.attribute}if(n.attribute.trim()&&n.attribute.toLowerCase()!="inlinecode"){m+="="+n.attribute}if(d&&q==""){var o=window.prompt(d,g);if(o&&o.trim()!=""&&o.trim()!=g){r.insertTextRange("["+m+"]"+o+"[/"+l+"]")}}else{r.insertTextRange("["+m+"]"+q+"[/"+l+"]")}i.getAdditionalOptionsWindow().enableOptionList(false)},150)};this.insertCode=function(m){if(!this.canInsert()){return}var l=this.getButtonGroup();var i=document.getElementPoSi(m);l.getAdditionalOptionsWindow().setOptionList(e);l.getAdditionalOptionsWindow().enableOptionList(true,i)}}function BBCodeListButton(a){this.constructor(a);this.insertCode=function(f){if(!this.canInsert()){return}var c=this.getButtonGroup();var h=c.getTextArea();var g=h.getSelection();var b="";var e=g.split(/(\n|\r|\r\n)+/);for(var d=0;d<e.length;d++){if(e[d].trim()!=""){b+="\r\n[*]"+e[d]}}if(b.trim()==""){b="\r\n[*]...\r\n[*]...\r\n[*]..."}h.insertTextRange("\r\n[list]"+b+"\r\n[/list]\r\n")}}function BBCodeSingleSmilieButton(a){this.constructor(a);this.insertCode=function(c){if(!this.canInsert()){return}var b=this.getButtonGroup();var e=b.getTextArea();var d=e.getSelection();e.insertTextRange(d+this.getCode()+" ")}}function BBCodeSmilieButton(d,f){this.constructor(d,f);var a=this;var c=document.createElementWithAttributes("div",{id:"additional-smilies"},null);for(var b=0;b<f.length;b++){var e=document.createElementWithAttributes("a",{href:"#",title:f[b].title,code:f[b].code,onclick:function(g){a.insertOptionCode(this);return false}},c);e.appendChild(f[b].label)}this.insertOptionCode=function(i){if(!this.canInsert()){return}var g=this.getButtonGroup();var j=g.getTextArea();var h=i.code;j.insertTextRange(j.getSelection()+h+" ");g.getAdditionalOptionsWindow().enableOptionList(false)};this.insertCode=function(i){if(!this.canInsert()){return}var h=this.getButtonGroup();var g=document.getElementPoSi(i);h.getAdditionalOptionsWindow().setOptionList(c);h.getAdditionalOptionsWindow().enableOptionList(true,g)}}function BBCodePopUpButton(c,d,b,a){this.constructor(c);b=typeof(b)!="number"?350:b;a=typeof(a)!="number"?350:a;var f=(screen.width-b)/2;var e=(screen.height-a)/4;this.insertCode=function(h){if(!this.canInsert()){return}var g=window.open(d,"MyLittleForum","height="+a+",width="+b+",left="+f+", top="+e+",scrollbars,resizable");window.mlfBBCodeButton=this;g.focus()}}BBCodeLinkButton.prototype=new BBCodeButton;BBCodeSmilieButton.prototype=new BBCodeButton;BBCodeSingleSmilieButton.prototype=new BBCodeButton;BBCodeColorChooserButton.prototype=new BBCodeButton;BBCodeOptionButton.prototype=new BBCodeButton;BBCodeListButton.prototype=new BBCodeButton;BBCodePopUpButton.prototype=new BBCodeButton;BBCodePromtButton.prototype=new BBCodeButton;function ButtonGroup(i){if(!i){return}var n=i.elements.text;if(!n){n=document.createElementWithAttributes("textarea",{name:"text",id:"text",cols:80,rows:20},i)}var b=false;var k=[];var q=null;var p=this;i.onsubmit=function(r){var f="";if(i.elements.name_required&&i.elements.name&&i.elements.name.value.trim()==""){f+="- "+lang.error_no_name+"\n"}if(i.elements.subject&&i.elements.subject.value.trim()==""){f+="- "+lang.error_no_subject+"\n"}if(i.elements.text_required&&i.elements.text&&i.elements.text.value.trim()==""){f+="- "+lang.error_no_text+"\n"}if(i.elements.terms_of_use_required&&i.elements.terms_of_use_agree&&i.elements.terms_of_use_agree.checked==false){f+="- "+lang.terms_of_use_error_posting+"\n"}if(f){window.alert(f);return false}if(document.getElementById("throbber-submit")){document.getElementById("throbber-submit").classList.remove("js-visibility-hidden")}return true};var o=function(){if(!document.getElementById("smiley-bar")){return}var f=document.getElementById("smiley-bar");if(document.getElementById("smiley-instructions")){var r=document.getElementById("smiley-instructions").firstChild;var t=null;var s=[];while(r!=null){if(r.nodeName&&r.nodeName.toLowerCase()=="dt"){t={code:r.firstChild.nodeValue,title:r.title,classes:r.className,isSmilie:true,childs:[]}}else{if(t&&r.nodeName&&r.nodeName.toLowerCase()=="dd"){t.label=r.firstChild;if(t.classes.search(/default/)!=-1){h(t,f)}else{s.push(t)}t=null}}r=r.nextSibling}if(s&&s.length>0){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<s.length;f++){b=true;s[f].isSmilie=r;l(m(s[f],null),true)}}};var d=function(){n.quote="";if(document.getElementById("quote")&&document.getElementById("quote").value=="true"){n.quote=n.value;n.value=""}n.getQuote=function(){return n.quote.trim()};if(n.getQuote()!=""&&document.getElementById("message")){var t=document.getElementById("message").getElementsByTagName("label");var r=null;for(var s=0;s<t.length;s++){if(t[s].className.search(/textarea/)!=-1){r=t[s];break}}if(r){var f=document.createElementWithAttributes("button",{type:"button",id:"insert-quote",title:lang.quote_title,tabIndex:-1});f.onclick=function(u){n.value=n.getQuote()+"\r\n\r\n"+n.value;this.classList.add("js-display-none");n.focus();return false};f.appendChild(document.createTextNode(lang.quote_label));r.parentNode.insertBefore(f,r.nextSibling)}}n.getSelection=function(){this.focus();if(typeof this.selectionStart=="number"&&typeof this.selectionEnd=="number"){return this.value.substring(this.selectionStart,this.selectionEnd)}else{if(document.selection&&document.selection.createRange){return document.selection.createRange().text}else{return""}}};n.insertTextRange=function(v){this.focus();if(typeof this.selectionStart!="undefined"){var y=this.scrollTop;var x=this.value.substring(0,this.selectionStart);var w=v;var u=this.value.substring(this.selectionEnd,this.textLength);this.value=x+v+u;this.selectionStart=x.length;this.selectionEnd=x.length+v.length;this.scrollTop=y;this.focus()}else{if(document.selection&&document.selection.createRange){var z=document.selection.createRange();z.text=v;z.select()}else{this.value+=v}}}};this.getTextArea=function(){return n};this.getAdditionalOptionsWindow=function(){return q};var c=function(){var f=null;if(!(f=document.getElementById("delete_cookie"))){return}var r=document.getFirstChildByElement(f,"a");r.onclick=function(s){document.cookie=settings.session_prefix+"userdata=; expires=Thu, 01-Jan-70 00:00:01 GMT;";f.innerHTML="";if(i.elements.setcookie){i.elements.setcookie.checked=false}return false}};var g=function(){if(document.getElementById("bbcode-instructions")){var f=document.getElementById("bbcode-instructions");f.parentNode.removeChild(f)}if(document.getElementById("smiley-instructions")){var f=document.getElementById("smiley-instructions");f.parentNode.removeChild(f)}};(function(){q=a();d();e(false);j();e(true);o();c();g()}())}document.addEventListener("DOMContentLoaded",function(a){if(typeof settings=="object"&&typeof lang=="object"){new ButtonGroup(document.getElementById("postingform"))}}); |