您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds BBCode button support to Plaintext editor mode.
// ==UserScript== // @name IP.Board - Plaintext BBCode // @namespace Makaze // @include * // @grant none // @version 5.0.2 // @description Adds BBCode button support to Plaintext editor mode. // ==/UserScript== var MakazeScriptStyles, styleElem; function fade(elem, type, speed) { function defaultStyle(tag) { var defaultStyles = {}, testElem = document.createElement(tag), getStyle = 'getComputedStyle' in window, styles; document.body.appendChild(testElem); styles = (getStyle) ? window.getComputedStyle(testElem) : testElem.currentStyle; for (var prop in styles) { defaultStyles[prop] = styles[prop]; } document.body.removeChild(testElem); return defaultStyles; } var defaults = defaultStyle(elem.tagName), defaultOpacity, defaultDisplay, currentDisplay = (elem.style.display.length) ? elem.style.display : window.getComputedStyle(elem).display; if (elem.style.display.length) { elem.style.display = ''; } defaultDisplay = (window.getComputedStyle(elem).display === 'none') ? defaults.display : window.getComputedStyle(elem).display; elem.style.display = currentDisplay; if (elem.style.display.length) { elem.style.opacity = ''; } defaultOpacity = (window.getComputedStyle(elem).opacity === '0') ? defaults.opacity : window.getComputedStyle(elem).opacity; elem.style.opacity = 0; // Default values: switch (arguments.length) { case 1: type = 'toggle'; case 2: speed = 300; break; } switch (type) { case 'in': elem.style.display = defaultDisplay; setTimeout(function() { elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = defaultOpacity; setTimeout(function() { elem.style.transition = ''; }, speed + 10); }, 0); break; case 'out': elem.style.transition = 'none'; elem.style.opacity = defaultOpacity; elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = 0; setTimeout(function() { elem.style.display = 'none'; elem.style.transition = ''; elem.style.opacity = ''; }, speed + 10); break; case 'toggle': default: if (currentDisplay === 'none') { elem.style.display = defaultDisplay; setTimeout(function() { elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = defaultOpacity; setTimeout(function() { elem.style.transition = ''; }, speed + 10); }, 0); } else { elem.style.transition = 'none'; elem.style.opacity = defaultOpacity; elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = 0; setTimeout(function() { elem.style.display = 'none'; elem.style.transition = ''; elem.style.opacity = ''; }, speed + 10); } } } function empty(elem) { while (elem.hasChildNodes()) { elem.removeChild(elem.lastChild); } } function createElement(type, callback) { var element = document.createElement(type); callback(element); return element; } function getPosition(element) { var xPosition = 0, yPosition = 0; while (element) { xPosition += (element.offsetLeft + element.clientLeft); yPosition += (element.offsetTop + element.clientTop); element = element.offsetParent; } return {x: xPosition, y: yPosition}; } function runInGlobal(code) { var scripts = document.createElement('script'); scripts.type = 'text/javascript'; scripts.id = 'runInGlobal'; scripts.appendChild(document.createTextNode( '(function() { ' + code + '})();' + '\n\n' + 'document.getElementById(\'runInGlobal\').remove();' )); (document.head || document.body || document.documentElement).appendChild(scripts); } // Classes constructor function ClassHandler() { var self = this; this.classList = function(elem) { return elem.className.trim().split(/[\b\s]/); }; this.hasClass = function(elem, className) { var classes = self.classList(elem), has = false, i = 0; for (i = 0; i < classes.length; i++) { if (classes[i] === className) { has = true; break; } } return (has); }; this.addClass = function(elem, className) { var classes; if (!self.hasClass(elem, className)) { classes = self.classList(elem); classes.push(className); elem.className = classes.join(' ').trim(); } return self; }; this.removeClass = function(elem, className) { var classes = self.classList(elem), i = 0; for (i = 0; i < classes.length; i++) { if (classes[i] === className) { classes.splice(i, 1); } } elem.className = classes.join(' ').trim(); return self; }; this.toggleClass = function(elem, className) { var classes; if (self.hasClass(elem, className)) { self.removeClass(elem, className); } else { classes = self.classList(elem); classes.push(className); elem.className = classes.join(' ').trim(); } return self; }; } // Initilize var Classes = new ClassHandler(); // End Classes constructor // Event handler constructor function EventHandler() { var events = [], matchedEvents = [], selector = document, self = this; this.selector = function(toSelect) { selector = toSelect; return self; }; this.add = function(types, namespace, listener, useCapture) { var type, event, i = 0; types = types.split(/[\b\s]/); events.push({'selector': selector, 'namespace': namespace, 'types': types, 'listener': listener, 'useCapture': useCapture}); event = events[events.length - 1]; for (i = 0; i < event.types.length; i++) { type = event.types[i]; selector.addEventListener(type, listener, useCapture); } return self; }; this.remove = function(types, namespace, listener, useCapture) { var event, eventType, eventTypes, type, i = 0, j = 0, k = 0; if (!arguments.length) { if (matchedEvents.length) { for (i = 0; i < matchedEvents.length; i++) { event = matchedEvents[i]; for (j = 0; j < event.types.length; j++) { type = event.types[j]; event.selector.removeEventListener(type, event.listener, event.useCapture); } } } else { self.getEventsBySelector(selector).remove(); } } else { types = types.split(/[\b\s]/); for (i = 0; i < events.length; i++) { event = events[i]; if (event.selector == selector && event.namespace === namespace && event.useCapture === useCapture && event.listener === listener) { eventTypes = event.types; for (j = 0; j < eventTypes.length; j++) { eventType = eventTypes[j]; for (k = 0; k < event.types.length; k++) { type = types[k]; if (type === eventType) { selector.removeEventListener(type, event.listener, event.useCapture); } } } break; } } } matchedEvents = []; return self; }; this.output = function() { if (!matchedEvents.length) { self.getAllEvents().output(); } else { var output = matchedEvents; matchedEvents = []; return output; } }; this.getAllEvents = function() { matchedEvents = events; return self; }; this.getEventsBySelector = function(getSelector) { var event, i = 0; if (matchedEvents.length) { for (i = 0; i < matchedEvents.length; i++) { event = matchedEvents[i]; if (event.selector != getSelector) { matchedEvents.splice(i, 1); } } } else { for (i = 0; i < events.length; i++) { event = events[i]; if (event.selector == getSelector) { matchedEvents.push(event); } } } return self; }; this.getEventsByType = function(types) { var eventTypes, eventType, event, type, hasType = false, i = 0, j = 0, k = 0; types = types.split(/[\b\s]/); if (matchedEvents.length) { for (i = 0; i < matchedEvents.length; i++) { event = matchedEvents[i]; for (j = 0; j < eventTypes.length; j++) { eventType = eventTypes[j]; for (k = 0; k < event.types.length; k++) { type = types[k]; if (type === eventType) { hasType = true; break; } } if (hasType) { break; } } if (hasType) { matchedEvents.splice(i, 1); } } } else { for (i = 0; i < events.length; i++) { event = events[i]; for (j = 0; j < eventTypes.length; j++) { eventType = eventTypes[j]; for (k = 0; k < event.types.length; k++) { type = types[k]; if (type === eventType) { hasType = true; break; } } if (hasType) { break; } } if (hasType) { matchedEvents.push(event); } } } return self; }; this.getEventsByName = function(namespace) { var event, i = 0; if (matchedEvents.length) { for (i = 0; i < matchedEvents.length; i++) { event = matchedEvents[i]; if (event.namespace !== namespace) { matchedEvents.splice(i, 1); } } } else { for (i = 0; i < events.length; i++) { event = events[i]; if (event.namespace === namespace) { matchedEvents.push(event); } } } return self; }; this.getEventsByListener = function(listener) { var event, i = 0; if (matchedEvents.length) { for (i = 0; i < matchedEvents.length; i++) { event = matchedEvents[i]; if (event.listener !== listener) { matchedEvents.splice(i, 1); } } } else { for (i = 0; i < events.length; i++) { event = events[i]; if (event.listener === listener) { matchedEvents.push(event); } } } return self; }; } // Initialize var Events = new EventHandler(); // End Event handler constructor function isChildOf(selector, element) { switch (selector.charAt(0)) { case '.': if (document.getElementsByClassName(selector.slice(1))[0] == null) { return false; } while (element.getElementsByClassName(selector.slice(1))[0] == null && element.parentNode) { if (Classes.hasClass(element, selector.slice(1))) { return true; } element = element.parentNode; } break; case '#': if (document.getElementById(selector.slice(1)) == null) { return false; } while (element.parentNode) { if (element.id === selector.slice(1)) { return true; } element = element.parentNode; } break; default: if (document.getElementsByTagName(selector)[0] == null) { return false; } while (element.getElementsByTagName(selector) == null && element.parentNode) { if (element.tagName === selector.toUpperCase()) { return true; } element = element.parentNode; } } return false; } function getParent(selector, element) { switch (selector.charAt(0)) { case '.': if (document.getElementsByClassName(selector.slice(1))[0] == null) { return false; } while (element.getElementsByClassName(selector.slice(1))[0] == null && element.parentNode) { if (Classes.hasClass(element, selector.slice(1))) { return element; } element = element.parentNode; } break; case '#': if (document.getElementById(selector.slice(1)) == null) { return false; } while (element.parentNode) { if (element.id === selector.slice(1)) { return element; } element = element.parentNode; } break; default: if (document.getElementsByTagName(selector)[0] == null) { return false; } while (element.getElementsByTagName(selector) == null && element.parentNode) { if (element.tagName === selector.toUpperCase()) { return element; } element = element.parentNode; } } } function getSubmit(request) { var i, select; for (i = 0; i < request.getElementsByClassName('cke_dialog_ui_button').length; i++) { select = request.getElementsByClassName('cke_dialog_ui_button')[i]; if (select.title === 'OK') { return select; } } } function getCancel(request) { var i, select; for (i = 0; i < request.getElementsByClassName('cke_dialog_ui_button').length; i++) { select = request.getElementsByClassName('cke_dialog_ui_button')[i]; if (select.title === 'Cancel') { return select; } } } function getClose(request) { return request.getElementsByClassName('cke_dialog_close_button')[0]; } function getSelection(elem) { var start = elem.selectionStart, end = elem.selectionEnd, selectedText = elem.value.substring(start, end); return selectedText; } function selectRange(elem, start, end) { var range; if (elem.setSelectionRange) { elem.focus(); elem.setSelectionRange(start, end); } else if (elem.createTextRange) { range = elem.createTextRange(); range.collapse(true); range.moveEnd('character', end); range.moveStart('character', start); range.select(); } } function wrapText(elementSelector, openTag, closeTag, contentField) { var textArea = elementSelector, len = textArea.value.length, start = textArea.selectionStart, end = textArea.selectionEnd, selectedText = textArea.value.substring(start, end), replacement, paste = document.createEvent('TextEvent'); if (contentField != null) { replacement = openTag + contentField.value + closeTag; } else { replacement = openTag + selectedText + closeTag; } if (paste.initTextEvent) { paste.initTextEvent('textInput', true, true, null, replacement); textArea.dispatchEvent(paste); } else { textArea.value = textArea.value.substring(0, start) + replacement + textArea.value.substring(end, len); } selectRange(textArea, start + openTag.length, start + replacement.length - closeTag.length); } function removeListeners(element, callback, deleteElement) { var elementClone = element.cloneNode(true), elementParent = element.parentNode, fullValue = element.value, start = element.selectionStart, end = element.selectionEnd, newElement, thisChild, i = 0; callback(element, elementClone); elementClone.setAttribute('data-listenersRemoved', ''); elementParent.insertBefore(elementClone, element); element.style.display = 'none'; if (deleteElement) { elementParent.replaceChild(elementClone, element); } for (i = 0; i < elementParent.childNodes.length; i++) { thisChild = elementParent.childNodes[i]; if (thisChild.hasAttribute('data-listenersRemoved')) { newElement = thisChild; thisChild.removeAttribute('data-listenersRemoved'); break; } } newElement.focus(); newElement.value = fullValue; selectRange(newElement, start, end); } Events.selector(document).add('keydown', 'plaintext_shortcuts', function(event) { var element = event.target; if (!element.className || !Classes.hasClass(element, 'cke_source')) { return false; } if (!element.hasAttribute('data-shortcutsenabled')) { removeListeners(element, function(element, removed) { var postFormParent = element.parentNode, inputs, thisInput, i = 0; removed.setAttribute('data-shortcutsenabled', ''); Events.selector(removed).add('input propertychange', 'edit', function() { element.value = removed.value; }, false); while (postFormParent.getElementsByClassName('input_submit')[0] == null && postFormParent.parentNode) { postFormParent = postFormParent.parentNode; } inputs = postFormParent.getElementsByClassName('input_submit'); // On submits var deleteCloneListener = function() { var texts = postFormParent.getElementsByTagName('textarea'), thisOne, i = 0; for (i = 0; i < texts.length; i++) { thisOne = texts[i]; if (thisOne.hasAttribute('data-shortcutsenabled')) { thisOne.remove(); break; } } element.style.display = ''; Events.selector(this).remove('click', 'deleteClone', deleteCloneListener, false); }; for (i = 0; i < inputs.length; i++) { thisInput = inputs[i]; Events.selector(thisInput).add('click', 'deleteClone', deleteCloneListener, false); } }, false); } if (event.ctrlKey || event.metaKey) { switch (event.keyCode) { case 66: event.preventDefault(); wrapText(element, '[b]', '[/b]'); break; case 73: event.preventDefault(); wrapText(element, '[i]', '[/i]'); break; case 85: event.preventDefault(); wrapText(element, '[u]', '[/u]'); break; } } }, false); // Styling if (document.getElementById('MakazeScriptStyles') == null) { MakazeScriptStyles = createElement('style', function(style) { style.id = 'MakazeScriptStyles'; style.type = 'text/css'; }); document.head.appendChild(MakazeScriptStyles); } styleElem = document.getElementById('MakazeScriptStyles'); if (styleElem.hasChildNodes()) { styleElem.childNodes[0].nodeValue += '\n\n'; } else { styleElem.appendChild(document.createTextNode('')); } styleElem.childNodes[0].nodeValue += '#request-background {\n' + 'position: fixed;\n' + 'z-index: 9999998;\n' + 'top: 0px;\n' + 'left: 0px;\n' + 'opacity: 0.5;\n' + 'width: 100%;\n' + 'height: 100%;\n' + 'display: none;\n' + '}\n\n' + '.plaintextBBCodeRequest {\n' + 'z-index: 9999999;\n' + '}\n\n' + '.sp_BBCode_desc {\n' + 'color: #666 ! important;\n' + 'white-space: normal ! important;\n' + 'word-wrap: break-word;\n' + '}\n\n' + '.plaintextBBCode-dropdown {\n' + 'position: absolute;\n' + 'z-index: 9999;\n' + 'overflow-y: auto;\n' + 'background-color: #fff;\n' + 'border-top-left-radius: 0px;\n' + 'border-top-right-radius: 3px;\n' + 'border-bottom-right-radius: 3px;\n' + 'border-bottom-left-radius: 3px;\n' + 'border: 1px solid #aaa;\n' + 'color: #222;\n' + 'font-family: \'Helvetica Neue\', Arial, Verdana, sans-serif;\n' + 'display: none;\n' + '}\n\n' + '#font-dropdown {\n' + 'width: 300px;\n' + 'height: 170px;\n' + '}\n\n' + '#size-dropdown {\n' + 'width: 120px;\n' + 'height: 170px;\n' + '}\n\n' + '#color-dropdown {\n' + 'width: 154px;\n' + 'height: 134px;\n' + '}\n\n' + '.dropdown-link {\n' + 'padding: 2px;\n' + 'display: block;\n' + 'border: 1px solid #fff;\n' + 'color: inherit !important;\n' + 'text-decoration: none;\n' + 'overflow: hidden;\n' + 'text-overflow: ellipsis;\n' + '}'; function getBackgroundColor(elem) { var bg; function hex(x) { return ("0" + parseInt(x).toString(16)).slice(-2); } if (elem.currentStyle) { bg = elem.currentStyle.backgroundColor; } else if (window.getComputedStyle) { bg = document.defaultView.getComputedStyle(elem, null).getPropertyValue("background-color"); if (bg.search("rgb") == -1) { return bg; } else { bg = bg.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); return "#" + hex(bg[1]) + hex(bg[2]) + hex(bg[3]); } } } function createDialogCSS() { var dialogcss = false, dialogStyle, links = document.getElementsByTagName('link'), i = 0; for (i = 0; i < links.length; i++) { if (links[i].href.match(/dialog\.css/)) { dialogcss = true; break; } } if (!dialogcss) { dialogStyle = createElement('link', function(css) { css.setAttribute('rel', 'stylesheet'); css.setAttribute('media', 'screen,print'); css.type = 'text/css'; css.href = 'public/js/3rd_party/ckeditor/skins/ips/dialog.css'; }); document.head.appendChild(dialogStyle); } } function createRequestBackground() { if (document.getElementById('request-background') == null) { var requestbackground = createElement('div', function(bg) { bg.id = 'request-background'; bg.className = 'cke_dialog_background_cover'; }); document.body.appendChild(requestbackground); } } function createRequest() { createDialogCSS(); var requestDialog = createElement('div', function(request) { request.className = 'cke_skin_ips plaintextBBCodeRequest'; request.id = 'plaintext-request'; request.style.display = 'none'; request.style.position = 'fixed'; request.style.top = '0px'; request.style.left = '0px'; request.style.width = '400px'; request.style.backgroundColor = '#fff'; request.appendChild(createElement('div', function(body) { body.className = 'cke_dialog_body'; body.appendChild(createElement('div', function(handle) { handle.className = 'request-type cke_dialog_title'; handle.appendChild(document.createTextNode('Link')); })); body.appendChild(createElement('a', function(close) { close.className = 'cke_dialog_close_button'; close.href = 'javascript:void(0)'; close.title = 'Close'; close.appendChild(createElement('span', function(label) { label.className = 'cke_label'; label.appendChild(document.createTextNode('X')); })); })); body.appendChild(createElement('div', function(contents) { contents.className = 'cke_dialog_contents'; contents.appendChild(createElement('div', function(spec) { spec.className = 'spec'; spec.style.marginTop = '5px'; spec.appendChild(document.createTextNode('URL')); })); contents.appendChild(createElement('div', function(fields) { fields.className = 'fields'; fields.style.lineHeight = '14px'; fields.style.verticalAlign = 'middle'; fields.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); })); contents.appendChild(createElement('div', function(footer) { footer.className = 'cke_dialog_footer cke_dialog_footer_buttons'; footer.style.float = 'right'; footer.style.marginRight = '0px'; footer.style.marginTop = '10px'; footer.appendChild(createElement('a', function(okay) { okay.className = 'cke_dialog_ui_button'; okay.setAttribute('hidefocus', 'true'); okay.title = 'OK'; okay.href = 'javascript:void(0)'; okay.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_button'; span.style.marginBottom = '5px'; span.appendChild(document.createTextNode('OK')); })); })); footer.appendChild(createElement('a', function(cancel) { cancel.className = 'cke_dialog_ui_button'; cancel.setAttribute('hidefocus', 'true'); cancel.title = 'Cancel'; cancel.href = 'javascript:void(0)'; cancel.style.marginLeft = '10px'; cancel.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_button'; span.style.marginBottom = '5px'; span.appendChild(document.createTextNode('Cancel')); })); })); })); })); })); }); document.body.appendChild(requestDialog); runInGlobal('requestDrag = new Draggable(\'plaintext-request\', { handle: \'request-type\', starteffect: null, endeffect: null });'); createRequestBackground(); var requestClickHandler = function() { fade(document.getElementById('plaintext-request'), 'out'); fade(document.getElementById('request-background'), 'out'); }; Events.selector(document.getElementById('plaintext-request').getElementsByClassName('cke_dialog_close_button')[0]).add('click', 'plaintextRequest_fade', requestClickHandler, false); Events.selector(document.getElementById('plaintext-request').getElementsByClassName('cke_dialog_footer')[0].getElementsByTagName('a')[0]).add('click', 'plaintextRequest_fade', requestClickHandler, false); Events.selector(document.getElementById('plaintext-request').getElementsByClassName('cke_dialog_footer')[0].getElementsByTagName('a')[1]).add('click', 'plaintextRequest_fade', requestClickHandler, false); } function createFontDropdown() { function createFont(name, family) { return createElement('li', function(font) { font.className = 'cke_panel_listItem'; font.appendChild(createElement('a', function(link) { link.className = 'dropdown-link'; link.href = 'javascript:void(\'' + name + '\')'; link.title = name; link.appendChild(createElement('span', function(span) { span.style.fontSize = '14px'; span.style.fontFamily = family; span.appendChild(document.createTextNode(name)); })); })); }); } var fontDropdown = createElement('div', function(dropdown) { dropdown.id = 'font-dropdown'; dropdown.className = 'cke_panel cke_ltr cke_rcombopanel font-dropdown plaintextBBCode-dropdown'; dropdown.appendChild(createElement('div', function(block) { block.className = 'cke_panel_block'; block.appendChild(createElement('h1', function(title) { title.className = 'cke_panel_grouptitle'; title.appendChild(document.createTextNode('Font Name')); })); block.appendChild(createElement('ul', function(list) { list.className = 'cke_panel_list'; list.appendChild(createFont('Arial', 'arial,helvetica,sans-serif')); list.appendChild(createFont('Comic Sans MS', 'comic sans ms,cursive')); list.appendChild(createFont('Courier New', 'courier new,courier,monospace')); list.appendChild(createFont('Georgia', 'georgia,serif')); list.appendChild(createFont('Lucida Sans Unicode', 'lucida sans unicode,lucida grande,sans-serif')); list.appendChild(createFont('Tahoma', 'tahoma,geneva,sans-serif')); list.appendChild(createFont('Times New Roman', 'times new roman,times,serif')); list.appendChild(createFont('Trebuchet MS', 'trebuchet ms,helvetica,sans-serif')); list.appendChild(createFont('Verdana', 'verdana,geneva,sans-serif')); })); })); }); document.body.appendChild(fontDropdown); } function createSizeDropdown() { function createSize(size, id) { return createElement('li', function(font) { font.className = 'cke_panel_listItem'; font.appendChild(createElement('a', function(link) { link.className = 'dropdown-link'; link.href = 'javascript:void(\'' + size.toString() + '\')'; link.title = size.toString(); link.id = 'Size_' + id; link.appendChild(createElement('span', function(span) { span.style.fontSize = size + 'px'; span.appendChild(document.createTextNode(size.toString())); })); })); }); } var sizeDropdown = createElement('div', function(dropdown) { dropdown.id = 'size-dropdown'; dropdown.className = 'cke_panel cke_ltr cke_rcombopanel size-dropdown plaintextBBCode-dropdown'; dropdown.appendChild(createElement('div', function(block) { block.className = 'cke_panel_block'; block.appendChild(createElement('h1', function(title) { title.className = 'cke_panel_grouptitle'; title.appendChild(document.createTextNode('Font Size')); })); block.appendChild(createElement('ul', function(list) { list.className = 'cke_panel_list'; list.appendChild(createSize(8, 1)); list.appendChild(createSize(10, 2)); list.appendChild(createSize(12, 3)); list.appendChild(createSize(14, 4)); list.appendChild(createSize(18, 5)); list.appendChild(createSize(24, 6)); list.appendChild(createSize(36, 7)); list.appendChild(createSize(48, 8)); })); })); }); document.body.appendChild(sizeDropdown); } function createColorDropdown() { function createColor(name, color) { return createElement('td', function(cell) { cell.style.padding = '0px'; cell.appendChild(createElement('a', function(link) { link.className = 'cke_colorbox'; link.title = name; link.href = 'javascript:void(\'' + name + '\')'; link.appendChild(createElement('span', function(value) { value.className = 'cke_colorbox'; value.style.backgroundColor = color; })); })); }); } var colors = [ { 'title': 'Black', 'color': '#000000' }, { 'title': 'Maroon', 'color': '#800000' }, { 'title': 'Saddle Brown', 'color': '#8b4513' }, { 'title': 'Dark Slate Gray', 'color': '#2f4f4f' }, { 'title': 'Teal', 'color': '#008080' }, { 'title': 'Navy', 'color': '#000080' }, { 'title': 'Indigo', 'color': '#4b0082' }, { 'title': 'Dark Gray', 'color': '#696969' }, { 'title': 'Fire Brick', 'color': '#b22222' }, { 'title': 'Brown', 'color': '#a52a2a' }, { 'title': 'Golden Rod', 'color': '#daa520' }, { 'title': 'Dark Green', 'color': '#006400' }, { 'title': 'Turquoise', 'color': '#40e0d0' }, { 'title': 'Medium Blue', 'color': '#0000cd' }, { 'title': 'Purple', 'color': '#800080' }, { 'title': 'Gray', 'color': '#808080' }, { 'title': 'Red', 'color': '#ff0000' }, { 'title': 'Dark Orange', 'color': '#ff8c00' }, { 'title': 'Gold', 'color': '#ffd700' }, { 'title': 'Green', 'color': '#008000' }, { 'title': 'Cyan', 'color': '#00ffff' }, { 'title': 'Blue', 'color': '#0000ff' }, { 'title': 'Violet', 'color': '#ee82ee' }, { 'title': 'Dim Gray', 'color': '#a9a9a9' }, { 'title': 'Light Salmon', 'color': '#ffa07a' }, { 'title': 'Orange', 'color': '#ffa500' }, { 'title': 'Yellow', 'color': '#ffff00' }, { 'title': 'Lime', 'color': '#00ff00' }, { 'title': 'Pale Turquoise', 'color': '#afeeee' }, { 'title': 'Light Blue', 'color': '#add8e6' }, { 'title': 'Plum', 'color': '#dda0dd' }, { 'title': 'Light Gray', 'color': '#d3d3d3' }, { 'title': 'Lavender Blush', 'color': '#fff0f5' }, { 'title': 'Antique White', 'color': '#faebd7' }, { 'title': 'Light Yellow', 'color': '#ffffe0' }, { 'title': 'Honeydew', 'color': '#f0fff0' }, { 'title': 'Azure', 'color': '#f0ffff' }, { 'title': 'Alice Blue', 'color': '#f0f8ff' }, { 'title': 'Lavender', 'color': '#e6e6fa' }, { 'title': 'White', 'color': '#ffffff' } ], buffer = [0, 8], i = 0; var colorDropdown = createElement('div', function(dropdown) { dropdown.id = 'color-dropdown'; dropdown.className = 'cke_panel cke_ltr color-dropdown plaintextBBCode-dropdown'; dropdown.appendChild(createElement('div', function(block) { block.className = 'cke_panel_block cke_colorblock cke_frameLoaded'; block.appendChild(createElement('a', function(auto) { auto.className = 'cke_colorauto'; auto.title = 'Automatic'; auto.href = 'javascript:void(\'Automatic\')'; auto.appendChild(createElement('table', function(table) { table.setAttribute('cellspacing', 0); table.setAttribute('cellpadding', 0); table.width = '100%'; table.appendChild(createElement('tbody', function(tbody) { tbody.appendChild(createElement('tr', function(row) { row.appendChild(createElement('td', function(color) { color.style.padding = '0px'; color.appendChild(createElement('span', function(span) { span.className = 'cke_colorbox'; span.style.backgroundColor = '#222222'; })); })); row.appendChild(createElement('td', function(name) { name.style.padding = '0px'; name.setAttribute('colspan', 7); name.align = 'center'; name.appendChild(document.createTextNode('Automatic')); })); })); })); })); })); block.appendChild(createElement('table', function(colorstable) { colorstable.setAttribute('cellspacing', 0); colorstable.setAttribute('cellpadding', 0); colorstable.width = '100%'; colorstable.appendChild(createElement('tbody', function(body) { body.appendChild(createElement('tr', function(row) { for (i = buffer[0]; i < buffer[1]; i++) { row.appendChild(createColor(colors[i].title, colors[i].color)); } })); buffer[0] += 8; buffer[1] += 8; body.appendChild(createElement('tr', function(row) { for (i = buffer[0]; i < buffer[1]; i++) { row.appendChild(createColor(colors[i].title, colors[i].color)); } })); buffer[0] += 8; buffer[1] += 8; body.appendChild(createElement('tr', function(row) { for (i = buffer[0]; i < buffer[1]; i++) { row.appendChild(createColor(colors[i].title, colors[i].color)); } })); buffer[0] += 8; buffer[1] += 8; body.appendChild(createElement('tr', function(row) { for (i = buffer[0]; i < buffer[1]; i++) { row.appendChild(createColor(colors[i].title, colors[i].color)); } })); buffer[0] += 8; buffer[1] += 8; body.appendChild(createElement('tr', function(row) { for (i = buffer[0]; i < buffer[1]; i++) { row.appendChild(createColor(colors[i].title, colors[i].color)); } })); body.appendChild(createElement('tr', function(row) { row.appendChild(createElement('td', function(colormore) { colormore.style.padding = '0px'; colormore.setAttribute('colspan', 8); colormore.align = 'center'; colormore.appendChild(createElement('a', function(link) { link.className = 'cke_colormore'; link.title = 'More Colors...'; link.href = 'javascript:void(\'More Colors...\')'; link.appendChild(document.createTextNode('More Colors...')); })); })); })); })); })); })); }); document.body.appendChild(colorDropdown); } function createColorMoreRequest() { function createColorMore(color) { return createElement('td', function(colorMore) { colorMore.className = 'ColorCell'; colorMore.style.backgroundColor = color; colorMore.style.border = '1px solid ' + color; colorMore.style.width = '14px'; colorMore.style.height = '14px'; colorMore.appendChild(createElement('span', function(value) { value.className = 'cke_voice_label'; value.appendChild(document.createTextNode(color)); })); }); } createDialogCSS(); var colors = [ { 'color': '#000000' }, { 'color': '#003300' }, { 'color': '#006600' }, { 'color': '#009900' }, { 'color': '#00cc00' }, { 'color': '#00ff00' }, { 'color': '#330000' }, { 'color': '#333300' }, { 'color': '#336600' }, { 'color': '#339900' }, { 'color': '#33cc00' }, { 'color': '#33ff00' }, { 'color': '#660000' }, { 'color': '#663300' }, { 'color': '#666600' }, { 'color': '#669900' }, { 'color': '#66cc00' }, { 'color': '#66ff00' }, { 'color': '#000033' }, { 'color': '#003333' }, { 'color': '#006633' }, { 'color': '#009933' }, { 'color': '#00cc33' }, { 'color': '#00ff33' }, { 'color': '#330033' }, { 'color': '#333333' }, { 'color': '#336633' }, { 'color': '#339933' }, { 'color': '#33cc33' }, { 'color': '#33ff33' }, { 'color': '#660033' }, { 'color': '#663333' }, { 'color': '#666633' }, { 'color': '#669933' }, { 'color': '#66cc33' }, { 'color': '#66ff33' }, { 'color': '#000066' }, { 'color': '#003366' }, { 'color': '#006666' }, { 'color': '#009966' }, { 'color': '#00cc66' }, { 'color': '#00ff66' }, { 'color': '#330066' }, { 'color': '#333366' }, { 'color': '#336666' }, { 'color': '#339966' }, { 'color': '#33cc66' }, { 'color': '#33ff66' }, { 'color': '#660066' }, { 'color': '#663366' }, { 'color': '#666666' }, { 'color': '#669966' }, { 'color': '#66cc66' }, { 'color': '#66ff66' }, { 'color': '#000099' }, { 'color': '#003399' }, { 'color': '#006699' }, { 'color': '#009999' }, { 'color': '#00cc99' }, { 'color': '#00ff99' }, { 'color': '#330099' }, { 'color': '#333399' }, { 'color': '#336699' }, { 'color': '#339999' }, { 'color': '#33cc99' }, { 'color': '#33ff99' }, { 'color': '#660099' }, { 'color': '#663399' }, { 'color': '#666699' }, { 'color': '#669999' }, { 'color': '#66cc99' }, { 'color': '#66ff99' }, { 'color': '#0000cc' }, { 'color': '#0033cc' }, { 'color': '#0066cc' }, { 'color': '#0099cc' }, { 'color': '#00cccc' }, { 'color': '#00ffcc' }, { 'color': '#3300cc' }, { 'color': '#3333cc' }, { 'color': '#3366cc' }, { 'color': '#3399cc' }, { 'color': '#33cccc' }, { 'color': '#33ffcc' }, { 'color': '#6600cc' }, { 'color': '#6633cc' }, { 'color': '#6666cc' }, { 'color': '#6699cc' }, { 'color': '#66cccc' }, { 'color': '#66ffcc' }, { 'color': '#0000ff' }, { 'color': '#0033ff' }, { 'color': '#0066ff' }, { 'color': '#0099ff' }, { 'color': '#00ccff' }, { 'color': '#00ffff' }, { 'color': '#3300ff' }, { 'color': '#3333ff' }, { 'color': '#3366ff' }, { 'color': '#3399ff' }, { 'color': '#33ccff' }, { 'color': '#33ffff' }, { 'color': '#6600ff' }, { 'color': '#6633ff' }, { 'color': '#6666ff' }, { 'color': '#6699ff' }, { 'color': '#66ccff' }, { 'color': '#66ffff' }, { 'color': '#990000' }, { 'color': '#993300' }, { 'color': '#996600' }, { 'color': '#999900' }, { 'color': '#99cc00' }, { 'color': '#99ff00' }, { 'color': '#cc0000' }, { 'color': '#cc3300' }, { 'color': '#cc6600' }, { 'color': '#cc9900' }, { 'color': '#cccc00' }, { 'color': '#ccff00' }, { 'color': '#ff0000' }, { 'color': '#ff3300' }, { 'color': '#ff6600' }, { 'color': '#ff9900' }, { 'color': '#ffcc00' }, { 'color': '#ffff00' }, { 'color': '#990033' }, { 'color': '#993333' }, { 'color': '#996633' }, { 'color': '#999933' }, { 'color': '#99cc33' }, { 'color': '#99ff33' }, { 'color': '#cc0033' }, { 'color': '#cc3333' }, { 'color': '#cc6633' }, { 'color': '#cc9933' }, { 'color': '#cccc33' }, { 'color': '#ccff33' }, { 'color': '#ff0033' }, { 'color': '#ff3333' }, { 'color': '#ff6633' }, { 'color': '#ff9933' }, { 'color': '#ffcc33' }, { 'color': '#ffff33' }, { 'color': '#990066' }, { 'color': '#993366' }, { 'color': '#996666' }, { 'color': '#999966' }, { 'color': '#99cc66' }, { 'color': '#99ff66' }, { 'color': '#cc0066' }, { 'color': '#cc3366' }, { 'color': '#cc6666' }, { 'color': '#cc9966' }, { 'color': '#cccc66' }, { 'color': '#ccff66' }, { 'color': '#ff0066' }, { 'color': '#ff3366' }, { 'color': '#ff6666' }, { 'color': '#ff9966' }, { 'color': '#ffcc66' }, { 'color': '#ffff66' }, { 'color': '#990099' }, { 'color': '#993399' }, { 'color': '#996699' }, { 'color': '#999999' }, { 'color': '#99cc99' }, { 'color': '#99ff99' }, { 'color': '#cc0099' }, { 'color': '#cc3399' }, { 'color': '#cc6699' }, { 'color': '#cc9999' }, { 'color': '#cccc99' }, { 'color': '#ccff99' }, { 'color': '#ff0099' }, { 'color': '#ff3399' }, { 'color': '#ff6699' }, { 'color': '#ff9999' }, { 'color': '#ffcc99' }, { 'color': '#ffff99' }, { 'color': '#9900cc' }, { 'color': '#9933cc' }, { 'color': '#9966cc' }, { 'color': '#9999cc' }, { 'color': '#99cccc' }, { 'color': '#99ffcc' }, { 'color': '#cc00cc' }, { 'color': '#cc33cc' }, { 'color': '#cc66cc' }, { 'color': '#cc99cc' }, { 'color': '#cccccc' }, { 'color': '#ccffcc' }, { 'color': '#ff00cc' }, { 'color': '#ff33cc' }, { 'color': '#ff66cc' }, { 'color': '#ff99cc' }, { 'color': '#ffcccc' }, { 'color': '#ffffcc' }, { 'color': '#9900ff' }, { 'color': '#9933ff' }, { 'color': '#9966ff' }, { 'color': '#9999ff' }, { 'color': '#99ccff' }, { 'color': '#99ffff' }, { 'color': '#cc00ff' }, { 'color': '#cc33ff' }, { 'color': '#cc66ff' }, { 'color': '#cc99ff' }, { 'color': '#ccccff' }, { 'color': '#ccffff' }, { 'color': '#ff00ff' }, { 'color': '#ff33ff' }, { 'color': '#ff66ff' }, { 'color': '#ff99ff' }, { 'color': '#ffccff' }, { 'color': '#ffffff' }, { 'color': '#000000' }, { 'color': '#333333' }, { 'color': '#666666' }, { 'color': '#999999' }, { 'color': '#cccccc' }, { 'color': '#ffffff' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' }, { 'color': '#000000' } ], buffer = [0, 18], i = 0; var colorMoreRequest = createElement('div', function(request) { request.className = 'cke_skin_ips plaintextBBCodeRequest'; request.id = 'colorMore-request'; request.style.display = 'none'; request.style.position = 'fixed'; request.style.top = '0px'; request.style.left = '0px'; request.style.width = '400px'; request.style.backgroundColor = '#fff'; request.appendChild(createElement('div', function(body) { body.className = 'cke_dialog_body'; body.appendChild(createElement('div', function(handle) { handle.className = 'request-type cke_dialog_title'; handle.appendChild(document.createTextNode('Select color')); })); body.appendChild(createElement('a', function(close) { close.className = 'cke_dialog_close_button'; close.href = 'javascript:void(0)'; close.title = 'Close'; close.appendChild(createElement('span', function(span) { span.className = 'cke_label'; span.appendChild(document.createTextNode('X')); })); })); body.appendChild(createElement('div', function(content_table) { content_table.className = 'cke_dialog_contents'; content_table.appendChild(createElement('tbody', function(content_tbody) { content_tbody.appendChild(createElement('tr', function(content_row) { content_row.appendChild(createElement('td', function(content_cell) { content_cell.className = 'cke_dialog_contents'; content_cell.style.width = '360px'; content_cell.style.height = '220px'; content_cell.appendChild(createElement('div', function(content_page) { content_page.className = 'cke_dialog_ui_vbox cke_dialog_page_contents'; content_page.style.width = '100%'; content_page.style.height = '100%'; content_page.appendChild(createElement('table', function(content_page_table) { content_page_table.align = 'left'; content_page_table.border = '0'; content_page_table.setAttribute('cellspacing', '0'); content_page_table.style.width = '100%'; content_page_table.appendChild(createElement('tbody', function(content_page_tbody) { content_page_tbody.appendChild(createElement('tr', function(content_page_row) { content_page_row.appendChild(createElement('td', function(content_page_cell) { content_page_cell.className = 'cke_dialog_ui_vbox_child'; content_page_cell.appendChild(createElement('table', function(content_page_cell_table) { content_page_cell_table.className = 'cke_dialog_ui_hbox'; content_page_cell_table.appendChild(createElement('tbody', function(content_page_cell_tbody) { content_page_cell_tbody.appendChild(createElement('tr', function(content_page_cell_row) { content_page_cell_row.className = 'cke_dialog_ui_hbox'; content_page_cell_row.appendChild(createElement('td', function(content_page_cell_cell) { content_page_cell_cell.className = 'cke_dialog_ui_hbox_first'; content_page_cell_cell.style.width = '70%'; content_page_cell_cell.style.padding = '0'; content_page_cell_cell.appendChild(createElement('div', function(content_page_cell_cell_box) { content_page_cell_cell_box.className = 'cke_dialog_ui_html'; content_page_cell_cell_box.appendChild(createElement('table', function(content_page_cell_cell_table) { content_page_cell_cell_table.setAttribute('cellspacing', '0'); content_page_cell_cell_table.setAttribute('style', 'border-collapse: separate;'); content_page_cell_cell_table.appendChild(createElement('caption', function(caption) { caption.className = 'cke_voice_label'; caption.appendChild(document.createTextNode('Color Options')); })); content_page_cell_cell_table.appendChild(createElement('tbody', function(content_page_cell_cell_tbody) { content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); buffer[0] += 18; buffer[1] += 18; content_page_cell_cell_tbody.appendChild(createElement('tr', function(color_row) { for (i = buffer[0]; i < buffer[1]; i++) { color_row.appendChild(createColorMore(colors[i].color)); } })); })); })); })); })); content_page_cell_row.appendChild(createElement('td', function(content_page_cell_cell) { content_page_cell_cell.className = 'cke_dialog_ui_hbox_child'; content_page_cell_cell.style.width = '10%'; content_page_cell_cell.style.padding = '0'; content_page_cell_cell.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_html'; span.appendChild(document.createTextNode('\u00a0')); })); })); content_page_cell_row.appendChild(createElement('td', function(content_page_cell_cell) { content_page_cell_cell.className = 'cke_dialog_ui_hbox_last'; content_page_cell_cell.style.width = '30%'; content_page_cell_cell.style.padding = '0'; content_page_cell_cell.appendChild(createElement('div', function(content_page_cell_cell_box) { content_page_cell_cell_box.className = 'cke_dialog_ui_vbox'; content_page_cell_cell_box.appendChild(createElement('table', function(content_page_cell_cell_table) { content_page_cell_cell_table.align = 'left'; content_page_cell_cell_table.border = '0'; content_page_cell_cell_table.setAttribute('cellspacing', '0'); content_page_cell_cell_table.style.width = '100%'; content_page_cell_cell_table.appendChild(createElement('tbody', function(content_page_cell_cell_tbody) { content_page_cell_cell_tbody.appendChild(createElement('tr', function(content_page_cell_cell_row) { content_page_cell_cell_row.appendChild(createElement('td', function(content_page_cell_cell_cell) { content_page_cell_cell_cell.className = 'cke_dialog_ui_vbox_child'; content_page_cell_cell_cell.style.padding = '0'; content_page_cell_cell_cell.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_html'; span.appendChild(document.createTextNode('Highlight')); })); content_page_cell_cell_cell.appendChild(createElement('div', function(previewbox) { previewbox.className = 'color-preview'; previewbox.style.border = '1px solid'; previewbox.style.width = '74px'; previewbox.style.height = '74px'; previewbox.style.backgroundColor = '#000'; })); content_page_cell_cell_cell.appendChild(createElement('div', function(previewvalue) { previewvalue.id = 'colorMore-preview-value'; previewvalue.appendChild(document.createTextNode('#000000')); })); content_page_cell_cell_cell.appendChild(createElement('span', function(span) { span.appendChild(document.createTextNode('Selected Color')); })); content_page_cell_cell_cell.appendChild(createElement('div', function(selectedbox) { selectedbox.className = 'selected-preview'; selectedbox.style.border = '1px solid'; selectedbox.style.width = '74px'; selectedbox.style.height = '20px'; })); })); })); content_page_cell_cell_tbody.appendChild(createElement('tr', function(content_page_cell_cell_row) { content_page_cell_cell_row.appendChild(createElement('td', function(content_page_cell_cell_cell) { content_page_cell_cell_cell.className = 'cke_dialog_ui_vbox_child'; content_page_cell_cell_cell.style.padding = '0'; content_page_cell_cell_cell.appendChild(createElement('div', function(selectedcont) { selectedcont.className = 'cke_dialog_ui_text'; selectedcont.style.width = '74px'; selectedcont.appendChild(createElement('label', function(selectedlabel) { selectedlabel.className = 'cke_dialog_ui_labeled_label'; selectedlabel.style.display = 'none'; selectedlabel.appendChild(document.createTextNode('Selected Color')); })); selectedcont.appendChild(createElement('div', function(labelcontent) { labelcontent.className = 'cke_dialog_ui_labeled_content'; labelcontent.appendChild(createElement('div', function(inputcont) { inputcont.className = 'cke_dialog_ui_input_text'; inputcont.appendChild(createElement('input', function(input) { input.id = 'colorMore-input'; input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); })); })); })); })); content_page_cell_cell_tbody.appendChild(createElement('tr', function(content_page_cell_cell_row) { content_page_cell_cell_row.appendChild(createElement('td', function(content_page_cell_cell_cell) { content_page_cell_cell_cell.className = 'cke_dialog_ui_vbox_child'; content_page_cell_cell_cell.style.padding = '0'; content_page_cell_cell_cell.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_html'; span.appendChild(document.createTextNode('\u00a0')); })); })); })); content_page_cell_cell_tbody.appendChild(createElement('tr', function(content_page_cell_cell_row) { content_page_cell_cell_row.appendChild(createElement('td', function(content_page_cell_cell_cell) { content_page_cell_cell_cell.className = 'cke_dialog_ui_vbox_child'; content_page_cell_cell_cell.style.padding = '0'; content_page_cell_cell_cell.appendChild(createElement('a', function(clear) { clear.className = 'cke_dialog_ui_button clear_button'; clear.href = 'javascript:void(0)'; clear.style.marginTop = '5px'; clear.title = 'Clear'; clear.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_button'; span.appendChild(document.createTextNode('Clear')); })); })); })); })); })); })); })); })); })); })); })); })); })); })); })); })); })); })); content_tbody.appendChild(createElement('tr', function(content_row) { content_row.appendChild(createElement('td', function(content_cell) { content_cell.className = 'cke_dialog_footer'; content_cell.appendChild(createElement('table', function(footer) { footer.className = 'cke_dialog_ui_hbox cke_dialog_footer_buttons'; footer.appendChild(createElement('tbody', function(footer_tbody) { footer_tbody.appendChild(createElement('tr', function(footer_row) { footer_row.className = 'cke_dialog_ui_hbox'; footer_row.appendChild(createElement('td', function(okay) { okay.className = 'cke_dialog_ui_hbox_first'; okay.style.paddingRight = '10px'; okay.appendChild(createElement('a', function(button) { button.className = 'cke_dialog_ui_button cke_dialog_ui_button_ok'; button.href = 'javascript:void(0)'; button.title = 'OK'; button.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_button'; span.appendChild(document.createTextNode('OK')); })); })); })); footer_row.appendChild(createElement('td', function(cancel) { cancel.className = 'cke_dialog_ui_hbox_first'; cancel.appendChild(createElement('a', function(button) { button.className = 'cke_dialog_ui_button cke_dialog_ui_button_cancel'; button.href = 'javascript:void(0)'; button.title = 'Cancel'; button.appendChild(createElement('span', function(span) { span.className = 'cke_dialog_ui_button'; span.appendChild(document.createTextNode('Cancel')); })); })); })); })); })); })); })); })); })); })); })); }); // Prepend document.body.appendChild(colorMoreRequest); runInGlobal('colorMoreRequestDrag = new Draggable(\'colorMore-request\', { handle: \'request-type\', starteffect: null, endeffect: null });'); createRequestBackground(); var ColorCellHightlightHandler = function() { var colorPreview = document.getElementById('colorMore-request').getElementsByClassName('color-preview')[0], color = this.getElementsByTagName('span')[0].childNodes[0].nodeValue; colorPreview.style.backgroundColor = color; colorPreview.nextSibling.childNodes[0].nodeValue = color; }; var ColorCellSelectHandler = function() { var selectedCell = document.getElementById('colorMore-request').getElementsByClassName('selected-cell')[0] || null, newColor = this.getElementsByTagName('span')[0].childNodes[0].nodeValue; if (selectedCell != null) { selectedCell.style.border = '1px solid ' + selectedCell.style.backgroundColor; Classes.removeClass(selectedCell, 'selected-cell'); } document.getElementById('colorMore-request').getElementsByClassName('selected-preview')[0].style.backgroundColor = newColor; document.getElementById('colorMore-input').value = newColor; this.style.border = '1px dotted #fff'; Classes.addClass(this, 'selected-cell'); this.focus(); }; var clearHandler = function() { var selectedCell = document.getElementById('colorMore-request').getElementsByClassName('selected-cell')[0]; selectedCell.style.border = '1px solid ' + selectedCell.style.backgroundColor; selectedCell.blur(); Classes.removeClass(selectedCell, 'selected-cell'); document.getElementById('colorMore-request').getElementsByClassName('selected-preview')[0].style.backgroundColor = ''; document.getElementById('colorMore-input').value = ''; }; var cells = document.getElementById('colorMore-request').getElementsByClassName('ColorCell'), cell; for (i = 0; i < cells.length; i++) { cell = cells[i]; Events.selector(cell).add('mouseenter', 'highlightColor', ColorCellHightlightHandler, false); Events.selector(cell).add('click', 'selectColor', ColorCellSelectHandler, false); } Events.selector(document.getElementById('colorMore-request').getElementsByClassName('clear_button')[0]).add('click', 'clearColor', clearHandler, false); var requestClickHandler = function() { fade(document.getElementById('colorMore-request'), 'out'); fade(document.getElementById('request-background'), 'out'); }; Events.selector(document.getElementById('colorMore-request').getElementsByClassName('cke_dialog_close_button')[0]).add('click', 'colorMoreRequest_fade', requestClickHandler, false); Events.selector(document.getElementById('colorMore-request').getElementsByClassName('cke_dialog_footer')[0].getElementsByTagName('a')[0]).add('click', 'colorMoreRequest_fade', requestClickHandler, false); Events.selector(document.getElementById('colorMore-request').getElementsByClassName('cke_dialog_footer')[0].getElementsByTagName('a')[1]).add('click', 'colorMoreRequest_fade', requestClickHandler, false); } function plaintextParser(editor) { var buttons = editor.getElementsByClassName('cke_button'), dropdowns = editor.getElementsByClassName('cke_rcombo'), i = 0; var plaintextBBCodeHandler = function() { if (editor.getElementsByClassName('cke_source')[0] != null) { var top = '0px', self = this, request, dropdown, buttonOffset, buttonHeight, windowScroll, windowHeight, dropdownHeight, textArea = editor.getElementsByClassName('cke_source')[0], selectedText; switch (self.title) { case 'Special BBCode': if (request == null) { createRequest(); } request = document.getElementById('plaintext-request'); request.getElementsByClassName('request-type')[0].childNodes[0].nodeValue = 'Special BBCode'; request.getElementsByClassName('spec')[0].childNodes[0].nodeValue = 'BBCode'; empty(request.getElementsByClassName('fields')[0]); // Make fields var specialSelect = createElement('select', function(select) { select.className = 'cke_dialog_ui_input_select sp_BBCode'; select.options[0] = new Option(' Please select', 'Default', true); select.options[1] = new Option(' Acronym', 'Acronym'); select.options[2] = new Option(' Background-color', 'Background-color'); select.options[3] = new Option(' Horizontal Rule', 'Horizontal Rule'); select.options[4] = new Option(' Media', 'Media'); select.options[5] = new Option(' Member', 'Member'); select.options[6] = new Option(' Post Link', 'Post Link'); select.options[7] = new Option(' Spoiler', 'Spoiler'); select.options[8] = new Option(' Topic Link', 'Topic Link'); select.options[9] = new Option(' Twitter', 'Twitter'); }), specialFields = createElement('div', function(fields) { fields.className = 'sp_BBCode_fields'; fields.style.paddingTop = '5px'; }); request.getElementsByClassName('fields')[0].appendChild(specialSelect); request.getElementsByClassName('fields')[0].appendChild(specialFields); // Event var selectSpecialBBCodeHandler = function() { var select = this; empty(select.nextSibling); switch (select.options[select.selectedIndex].value) { case 'Acronym': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('Allows you to make an acronym that will display a description when moused over.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Enter the description for this acronym (EG: Laugh Out Loud)')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Enter the acronym (EG: lol)')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); select.nextSibling.appendChild(textbox); })(); break; case 'Background-color': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('Adds a background color behind the text.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Option')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Content')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); select.nextSibling.appendChild(textbox); })(); break; case 'Horizontal Rule': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('Adds a horizontal rule to separate text.')); }); select.nextSibling.appendChild(descript); })(); break; case 'Media': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('Allows a user to post media content from certain common media sites.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Dimensions (Flash Only)')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Media URL')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); select.nextSibling.appendChild(textbox); })(); break; case 'Member': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('Given a member name, a link is automatically generated to the member\'s profile.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Member Name')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); })(); break; case 'Post Link': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('This tag provides an easy way to link to a post.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Enter the Post ID')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Enter the title for this link')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); select.nextSibling.appendChild(textbox); })(); break; case 'Spoiler': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('Spoiler tag.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Option')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Enter the text to be masked')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); select.nextSibling.appendChild(textbox); })(); break; case 'Topic Link': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('This tag provides an easy way to link to a topic.')); }), inputbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.appendChild(document.createTextNode('Enter the Topic ID')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_text'; cont.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Enter the title for this link')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(inputbox); select.nextSibling.appendChild(textbox); })(); break; case 'Twitter': (function () { var descript = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child sp_BBCode_desc'; el.appendChild(document.createTextNode('A tag to link to a user\'s twitter account.')); }), textbox = createElement('div', function(el) { el.className = 'cke_dialog_ui_vbox_child'; el.style.paddingBottom = '0px'; el.appendChild(document.createTextNode('Twitter Username')); el.appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_input_textarea'; cont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea'; text.rows = 5; text.cols = 20; })); })); }); select.nextSibling.appendChild(descript); select.nextSibling.appendChild(textbox); })(); break; } selectedText = getSelection(editor.getElementsByClassName('cke_source')[0]); if (select.nextSibling.getElementsByTagName('textarea')[0] != null && selectedText.length) { select.nextSibling.getElementsByTagName('textarea')[0].value = selectedText; } }; Events.selector(request.getElementsByClassName('sp_BBCode')[0]).add('change', 'selectSpecialBBCode', selectSpecialBBCodeHandler, false); var SpecialBBCodeSubmitHandler = function() { var select = request.getElementsByClassName('sp_BBCode')[0], fields = select.nextSibling, input, textarea; switch (select.options[select.selectedIndex].value) { case 'Acronym': input = fields.getElementsByTagName('input')[0].value; textarea = fields.getElementsByTagName('textarea')[0]; wrapText(editor.getElementsByClassName('cke_source')[0], '[acronym=' + input + ']', '[/acronym]', textarea); break; case 'Background-color': input = fields.getElementsByTagName('input')[0].value; textarea = fields.getElementsByTagName('textarea')[0]; wrapText(editor.getElementsByClassName('cke_source')[0], '[background=' + input + ']', '[/background]', textarea); break; case 'Horizontal Rule': wrapText(editor.getElementsByClassName('cke_source')[0], '[hr]', ''); break; case 'Media': input = fields.getElementsByTagName('input')[0].value; textarea = fields.getElementsByTagName('textarea')[0]; wrapText(editor.getElementsByClassName('cke_source')[0], '[media=' + input + ']', '[/media]', textarea); break; case 'Member': input = fields.getElementsByTagName('input')[0].value; wrapText(editor.getElementsByClassName('cke_source')[0], '[member=' + input + ']', ''); break; case 'Post Link': input = fields.getElementsByTagName('input')[0].value; textarea = fields.getElementsByTagName('textarea')[0]; wrapText(editor.getElementsByClassName('cke_source')[0], '[post=' + input + ']', '[/post]', textarea); break; case 'Spoiler': input = fields.getElementsByTagName('input')[0].value; textarea = fields.getElementsByTagName('textarea')[0]; if (input.length) { wrapText(editor.getElementsByClassName('cke_source')[0], '[spoiler=' + input + ']', '[/spoiler]', textarea); } else { wrapText(editor.getElementsByClassName('cke_source')[0], '[spoiler]', '[/spoiler]', textarea); } break; case 'Topic Link': input = fields.getElementsByTagName('input')[0].value; textarea = fields.getElementsByTagName('textarea')[0]; wrapText(editor.getElementsByClassName('cke_source')[0], '[topic=' + input + ']', '[/topic]', textarea); break; case 'Twitter': textarea = fields.getElementsByTagName('textarea')[0]; wrapText(editor.getElementsByClassName('cke_source')[0], '[twitter]', '[/twitter]', textarea); break; } Events.getEventsByName('submitSpecialBBCode').remove(); Events.getEventsByName('removeSpecialBBCodeSubmit').remove(); }; var removeSpecialBBCodeHandlers = function() { Events.getEventsByName('submitSpecialBBCode').remove(); Events.getEventsByName('removeSpecialBBCodeSubmit').remove(); }; Events.selector(getSubmit(request)).add('click', 'submitSpecialBBCode', SpecialBBCodeSubmitHandler, false); Events.selector(getCancel(request)).add('click', 'removeSpecialBBCodeSubmit', removeSpecialBBCodeHandlers, false); Events.selector(getClose(request)).add('click', 'removeSpecialBBCodeSubmit', removeSpecialBBCodeHandlers, false); fade(document.getElementById('request-background'), 'in'); fade(document.getElementById('plaintext-request'), 'in'); if (window.innerHeight > request.offsetHeight) { top = (window.innerHeight / 2) - (request.offsetHeight / 2) + 'px'; } request.style.top = top; request.style.left = (window.innerWidth / 2) - 200 + 'px'; request.style.width = '400px'; request.getElementsByClassName('sp_BBCode')[0].focus(); break; case 'Font Name': if (document.getElementById('font-dropdown') == null) { createFontDropdown(); } dropdown = document.getElementById('font-dropdown'); var fonts = dropdown.getElementsByTagName('a'); var applyFontHandler = function() { wrapText(editor.getElementsByClassName('cke_source')[0], '[font=' + this.getElementsByTagName('span')[0].style.fontFamily.replace(/'/g, "").replace(/, /g, ",") + ']', '[/font]'); Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applyFont').remove(); dropdown.style.display = 'none'; document.getElementById('dropdown-click-background').remove(); }; if (window.getComputedStyle(dropdown).display === 'none') { Classes.removeClass(self.parentNode, 'cke_off'); Classes.addClass(self.parentNode, 'cke_on'); for (i = 0; i < fonts.length; i++) { Events.selector(fonts[i]).add('click', 'applyFont', applyFontHandler, false); } dropdown.style.display = 'block'; document.body.appendChild(createElement('div', function(click) { click.id = 'dropdown-click-background'; click.style.position = 'fixed'; click.style.width = '100%'; click.style.height = '100%'; click.style.top = '0px'; click.style.left = '0px'; click.style.zIndex = '9998'; click.onclick = function() { Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applyFont').remove(); dropdown.style.display = 'none'; this.remove(); editor.getElementsByClassName('cke_source')[0].focus(); }; })); } buttonOffset = getPosition(self).y; buttonHeight = self.offsetHeight; windowScroll = window.scrollY; windowHeight = window.innerHeight; dropdownHeight = dropdown.offsetHeight; if ((windowScroll + windowHeight) - (buttonOffset + buttonHeight - 1) >= dropdownHeight) { top = buttonOffset + buttonHeight - 1 + 'px'; } else if ((windowScroll + windowHeight) - (buttonOffset + buttonHeight - 1) < dropdownHeight && (buttonOffset + buttonHeight - 1) - windowScroll > dropdownHeight) { top = buttonOffset + buttonHeight - 1 - dropdownHeight + 'px'; } else { top = windowScroll + 'px'; } dropdown.style.top = top; dropdown.style.left = getPosition(self).x + 'px'; break; case 'Font Size': if (document.getElementById('size-dropdown') == null) { createSizeDropdown(); } dropdown = document.getElementById('size-dropdown'); var sizes = dropdown.getElementsByTagName('a'); var applySizeHandler = function() { wrapText(editor.getElementsByClassName('cke_source')[0], '[size=' + this.id.split('Size_')[1] + ']', '[/size]'); Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applySize').remove(); dropdown.style.display = 'none'; document.getElementById('dropdown-click-background').remove(); }; if (window.getComputedStyle(dropdown).display === 'none') { Classes.removeClass(self.parentNode, 'cke_off'); Classes.addClass(self.parentNode, 'cke_on'); for (i = 0; i < sizes.length; i++) { Events.selector(sizes[i]).add('click', 'applySize', applySizeHandler, false); } dropdown.style.display = 'block'; document.body.appendChild(createElement('div', function(click) { click.id = 'dropdown-click-background'; click.style.position = 'fixed'; click.style.width = '100%'; click.style.height = '100%'; click.style.top = '0px'; click.style.left = '0px'; click.style.zIndex = '9998'; click.onclick = function() { Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applySize').remove(); dropdown.style.display = 'none'; this.remove(); editor.getElementsByClassName('cke_source')[0].focus(); }; })); } buttonOffset = getPosition(self).y; buttonHeight = self.offsetHeight; windowScroll = window.scrollY; windowHeight = window.innerHeight; dropdownHeight = dropdown.offsetHeight; if ((windowScroll + windowHeight) - (buttonOffset + buttonHeight - 1) >= dropdownHeight) { top = buttonOffset + buttonHeight - 1 + 'px'; } else if ((windowScroll + windowHeight) - (buttonOffset + buttonHeight - 1) < dropdownHeight && (buttonOffset + buttonHeight - 1) - windowScroll > dropdownHeight) { top = buttonOffset + buttonHeight - 1 - dropdownHeight + 'px'; } else { top = windowScroll + 'px'; } dropdown.style.top = top; dropdown.style.left = getPosition(self).x + 'px'; break; case 'Text Color': if (document.getElementById('color-dropdown') == null) { createColorDropdown(); } dropdown = document.getElementById('color-dropdown'); var colors = dropdown.getElementsByClassName('cke_colorbox'); var colorBoxHandler = function() { wrapText(editor.getElementsByClassName('cke_source')[0], '[color=' + getBackgroundColor(this.getElementsByTagName('span')[0]) + ']', '[/color]'); Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applyColor').remove(); dropdown.style.display = 'none'; document.getElementById('dropdown-click-background').remove(); }; var colorMoreHandler = function() { if (document.getElementById('colorMore-request') == null) { createColorMoreRequest(); } var request = document.getElementById('colorMore-request'); var submitColorMoreHandler = function() { var color = document.getElementById('colorMore-input').value; wrapText(editor.getElementsByClassName('cke_source')[0], '[color=' + color + ']', '[/color]'); Events.getEventsByName('submitColorMore').remove(); Events.getEventsByName('removeColorMoreSubmit').remove(); }; var removeColorMoreHandlers = function() { Events.getEventsByName('submitColorMore').remove(); Events.getEventsByName('removeColorMoreSubmit').remove(); }; Events.selector(getSubmit(request)).add('click', 'submitColorMore', submitColorMoreHandler, false); Events.selector(getCancel(request)).add('click', 'removeColorMoreSubmit', removeColorMoreHandlers, false); Events.selector(getClose(request)).add('click', 'removeColorMoreSubmit', removeColorMoreHandlers, false); fade(document.getElementById('request-background'), 'in'); fade(document.getElementById('colorMore-request'), 'in'); if (window.innerHeight > request.offsetHeight) { top = (window.innerHeight / 2) - (request.offsetHeight / 2) + 'px'; } request.style.top = top; request.style.left = (window.innerWidth / 2) - 190 + 'px'; if (request.getElementsByClassName('selected-cell')[0] != null) { request.getElementsByClassName('selected-cell')[0].style.border = '1px solid ' + request.getElementsByClassName('selected-cell')[0].style.backgroundColor; request.getElementsByClassName('selected-cell')[0].blur(); Classes.removeClass(request.getElementsByClassName('selected-cell')[0], 'selected-cell'); } request.getElementsByClassName('ColorCell')[0].style.border = '1px dotted #fff'; Classes.addClass(request.getElementsByClassName('ColorCell')[0], 'selected-cell'); request.getElementsByClassName('ColorCell')[0].focus(); Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applyColor').remove(); dropdown.style.display = 'none'; document.getElementById('dropdown-click-background').remove(); }; if (window.getComputedStyle(dropdown).display === 'none') { Classes.removeClass(self.parentNode, 'cke_off'); Classes.addClass(self.parentNode, 'cke_on'); Events.selector(dropdown.getElementsByClassName('cke_colorauto')[0]).add('click', 'applyColor', colorBoxHandler, false); for (i = 0; i < colors.length; i++) { if (colors[i].tagName === 'A') { Events.selector(colors[i]).add('click', 'applyColor', colorBoxHandler, false); } } Events.selector(dropdown.getElementsByClassName('cke_colormore')[0]).add('click', 'applyColor', colorMoreHandler, false); dropdown.style.display = 'block'; document.body.appendChild(createElement('div', function(click) { click.id = 'dropdown-click-background'; click.style.position = 'fixed'; click.style.width = '100%'; click.style.height = '100%'; click.style.top = '0px'; click.style.left = '0px'; click.style.zIndex = '9998'; click.onclick = function() { Classes.removeClass(self.parentNode, 'cke_on'); Classes.addClass(self.parentNode, 'cke_off'); Events.getEventsByName('applyColor').remove(); dropdown.style.display = 'none'; this.remove(); editor.getElementsByClassName('cke_source')[0].focus(); }; })); } buttonOffset = getPosition(self).y; buttonHeight = self.offsetHeight; windowScroll = window.scrollY; windowHeight = window.innerHeight; dropdownHeight = dropdown.offsetHeight; if ((windowScroll + windowHeight) - (buttonOffset + buttonHeight - 1) >= dropdownHeight) { top = buttonOffset + buttonHeight - 1 + 'px'; } else if ((windowScroll + windowHeight) - (buttonOffset + buttonHeight - 1) < dropdownHeight && (buttonOffset + buttonHeight - 1) - windowScroll > dropdownHeight) { top = buttonOffset + buttonHeight - 1 - dropdownHeight + 'px'; } else { top = windowScroll + 'px'; } dropdown.style.top = top; dropdown.style.left = getPosition(self).x + 'px'; break; case 'Smiley': var smileyTray; if (editor.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('ipsSmileyTray')[0] == null) { var restoreContent = textArea.value, RestoreStart = textArea.selectionStart, RestoreEnd = textArea.selectionEnd; editor.getElementsByClassName('cke_button_ipssource')[0].click(); var smileyMain = setInterval(function() { if (editor.getElementsByClassName('cke_button_ipssource')[0].getAttribute('aria-pressed') !== 'true' && !Classes.hasClass(editor.getElementsByClassName('cke_button_removeFormat')[0], 'cke_disabled')) { editor.getElementsByClassName('cke_button_ipsemoticon')[0].click(); var smiliesHandler = function(event) { if (event.target.nodeType !== 1 || event.target.tagName !== 'IMG') { return false; } wrapText(editor.getElementsByClassName('cke_source')[0], event.target.title, ''); }; smileyTray = editor.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('ipsSmileyTray')[0]; Events.selector(smileyTray).add('click', 'addSmiley', smiliesHandler, false); editor.getElementsByClassName('cke_button_ipssource')[0].click(); smileyTray.nextSibling.remove(); var checker = setInterval(function() { if (editor.getElementsByClassName('cke_button_ipssource')[0].getAttribute('aria-pressed') === 'true' && Classes.hasClass(editor.getElementsByClassName('cke_button_removeFormat')[0], 'cke_disabled')) { Classes.removeClass(editor.getElementsByClassName('cke_button_ipsbbcode')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_font')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_fontSize')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_textcolor')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipsemoticon')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_bold')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_italic')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_underline')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_strike')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_subscript')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_superscript')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_bulletedlist')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_numberedlist')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_link')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_image')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipscode')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipsquote')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_indent')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_justifycenter')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_justifyright')[0], 'cke_disabled'); fade(smileyTray, 'in', 100); clearTimeout(checker); } }, 1000); if (editor.getElementsByClassName('cke_source')[0] != null) { editor.getElementsByClassName('cke_source')[0].focus(); editor.getElementsByClassName('cke_source')[0].value = restoreContent; selectRange(editor.getElementsByClassName('cke_source')[0], RestoreStart, RestoreEnd); } clearTimeout(smileyMain); } }, 1000); } else { smileyTray = editor.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('ipsSmileyTray')[0]; fade(smileyTray, 'toggle', 100); } break; case 'Bold': wrapText(editor.getElementsByClassName('cke_source')[0], '[b]', '[/b]'); break; case 'Italic': wrapText(editor.getElementsByClassName('cke_source')[0], '[i]', '[/i]'); break; case 'Underline': wrapText(editor.getElementsByClassName('cke_source')[0], '[u]', '[/u]'); break; case 'Strike Through': wrapText(editor.getElementsByClassName('cke_source')[0], '[s]', '[/s]'); break; case 'Subscript': wrapText(editor.getElementsByClassName('cke_source')[0], '[sub]', '[/sub]'); break; case 'Superscript': wrapText(editor.getElementsByClassName('cke_source')[0], '[sup]', '[/sup]'); break; case 'Insert/Remove Bulleted List': wrapText(editor.getElementsByClassName('cke_source')[0], '[list]\n[*]', '[/*]\n[/list]'); break; case 'Insert/Remove Numbered List': wrapText(editor.getElementsByClassName('cke_source')[0], '[list=1]\n[*]', '[/*]\n[/list]'); break; case 'Link': selectedText = getSelection(textArea); if (selectedText.length && selectedText.substr(0, 4) === 'http') { wrapText(editor.getElementsByClassName('cke_source')[0], '[url=' + selectedText + ']', '[/url]'); } else { if (document.getElementById('plaintext-request') == null) { createRequest(); } request = document.getElementById('plaintext-request'); request.getElementsByClassName('request-type')[0].childNodes[0].nodeValue = 'Link'; empty(request.getElementsByClassName('spec')[0]); request.getElementsByClassName('spec')[0].appendChild(createElement('span', function(el) { el.style.fontWeight = 'bolder'; el.appendChild(document.createTextNode('URL')); })); empty(request.getElementsByClassName('fields')[0]); request.getElementsByClassName('fields')[0].appendChild(createElement('div', function(el) { el.className = 'cke_dialog_ui_input_text'; el.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); var submitLinkHandler = function() { var link = request.getElementsByClassName('fields')[0].getElementsByTagName('input')[0].value; selectedText = getSelection(textArea); if (selectedText.length) { wrapText(editor.getElementsByClassName('cke_source')[0], '[url=' + link + ']', '[/url]'); } else { wrapText(editor.getElementsByClassName('cke_source')[0], '[url=' + link + ']' + link, '[/url]'); } Events.getEventsByName('applyLinkRequest').remove(); Events.getEventsByName('removeLinkSubmit').remove(); }; var removeLinkHandlers = function() { Events.getEventsByName('applyLinkRequest').remove(); Events.getEventsByName('removeLinkSubmit').remove(); }; Events.selector(getSubmit(request)).add('click', 'applyLinkRequest', submitLinkHandler, false); Events.selector(getCancel(request)).add('click', 'removeLinkSubmit', removeLinkHandlers, false); Events.selector(getClose(request)).add('click', 'removeLinkSubmit', removeLinkHandlers, false); fade(document.getElementById('request-background'), 'in'); fade(document.getElementById('plaintext-request'), 'in'); if (window.innerHeight > request.offsetHeight) { top = (window.innerHeight / 2) - (request.offsetHeight / 2) + 'px'; } request.style.top = top; request.style.left = (window.innerWidth / 2) - 200 + 'px'; request.style.width = '400px'; request.getElementsByClassName('fields')[0].getElementsByTagName('input')[0].focus(); } break; case 'Image': selectedText = getSelection(textArea); if (selectedText.length && selectedText.substr(0, 4) === 'http') { wrapText(editor.getElementsByClassName('cke_source')[0], '[img=', ']'); } else { if (document.getElementById('plaintext-request') == null) { createRequest(); } request = document.getElementById('plaintext-request'); request.getElementsByClassName('request-type')[0].childNodes[0].nodeValue = 'Image'; empty(request.getElementsByClassName('spec')[0]); request.getElementsByClassName('spec')[0].appendChild(createElement('span', function(el) { el.style.fontWeight = 'bolder'; el.appendChild(document.createTextNode('URL')); })); empty(request.getElementsByClassName('fields')[0]); request.getElementsByClassName('fields')[0].appendChild(createElement('div', function(el) { el.className = 'cke_dialog_ui_input_text'; el.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text'; input.type = 'text'; })); })); var submitImageHandler = function() { var link = request.getElementsByClassName('fields')[0].getElementsByTagName('input')[0].value; selectedText = getSelection(textArea); wrapText(editor.getElementsByClassName('cke_source')[0], '[img=' + link + ']', ''); Events.getEventsByName('applyImageRequest').remove(); Events.getEventsByName('removeImageSubmit').remove(); }; var removeImageHandlers = function() { Events.getEventsByName('applyImageRequest').remove(); Events.getEventsByName('removeImageSubmit').remove(); }; Events.selector(getSubmit(request)).add('click', 'applyImageRequest', submitImageHandler, false); Events.selector(getCancel(request)).add('click', 'removeImageSubmit', removeImageHandlers, false); Events.selector(getClose(request)).add('click', 'removeImageSubmit', removeImageHandlers, false); fade(document.getElementById('request-background'), 'in'); fade(document.getElementById('plaintext-request'), 'in'); if (window.innerHeight > request.offsetHeight) { top = (window.innerHeight / 2) - (request.offsetHeight / 2) + 'px'; } request.style.top = top; request.style.left = (window.innerWidth / 2) - 200 + 'px'; request.style.width = '400px'; request.getElementsByClassName('fields')[0].getElementsByTagName('input')[0].focus(); } break; case 'Code': selectedText = getSelection(textArea); if (selectedText.length) { wrapText(editor.getElementsByClassName('cke_source')[0], '[code=auto:0]', '[/code]'); } else { if (document.getElementById('plaintext-request') == null) { createRequest(); } request = document.getElementById('plaintext-request'); request.getElementsByClassName('request-type')[0].childNodes[0].nodeValue = 'Code'; empty(request.getElementsByClassName('spec')[0]); request.getElementsByClassName('spec')[0].appendChild(createElement('span', function(el) { el.style.fontWeight = 'bolder'; el.appendChild(document.createTextNode('Code Type')); })); empty(request.getElementsByClassName('fields')[0]); request.getElementsByClassName('fields')[0].appendChild(createElement('select', function(select) { select.className = 'cke_dialog_ui_input_select'; select.options[0] = new Option(' PHP/Generic/Auto Detect', 'auto', true); select.options[1] = new Option(' Javascript', 'js'); select.options[2] = new Option(' HTML', 'html'); select.options[3] = new Option(' SQL', 'sql'); select.options[4] = new Option(' CSS', 'css'); select.options[5] = new Option(' XML', 'xml'); select.options[6] = new Option(' None', 'nocode'); })); request.getElementsByClassName('fields')[0].appendChild(createElement('div', function(cont) { cont.className = 'cke_dialog_ui_vbox_child'; cont.appendChild(document.createTextNode('Starting Line Number')); cont.appendChild(createElement('div', function(box) { box.className = 'cke_dialog_ui_input_text'; box.appendChild(createElement('input', function(input) { input.className = 'cke_dialog_ui_input_text code-line-number'; input.type = 'text'; })); })); cont.appendChild(createElement('div', function(box) { box.className = 'cke_dialog_ui_vbox_child'; box.style.paddingBottom = '0px'; box.appendChild(createElement('div', function(textcont) { textcont.className = 'cke_dialog_ui_input_textarea'; textcont.appendChild(createElement('textarea', function(text) { text.className = 'cke_dialog_ui_input_textarea code-body'; text.rows = 5; text.cols = 20; text.style.height = '240px'; text.style.direction = 'ltr'; text.style.fontFamily = 'monospace'; text.style.fontSize = '13px'; })); })); })); })); var submitCodeHandler = function() { var type = request.getElementsByClassName('fields')[0].getElementsByTagName('select')[0].options[request.getElementsByClassName('fields')[0].getElementsByTagName('select')[0].selectedIndex].value, line = request.getElementsByClassName('fields')[0].getElementsByClassName('code-line-number')[0].value, body = request.getElementsByClassName('fields')[0].getElementsByClassName('code-body')[0].value; if (!line.length) { line = 0; } wrapText(editor.getElementsByClassName('cke_source')[0], '[code=' + type + ':' + line + ']' + body + '[/code]', ''); Events.getEventsByName('applyCodeRequest').remove(); Events.getEventsByName('removeCodeSubmit').remove(); }; var removeCodeHandlers = function() { Events.getEventsByName('applyCodeRequest').remove(); Events.getEventsByName('removeCodeSubmit').remove(); }; Events.selector(getSubmit(request)).add('click', 'applyCodeRequest', submitCodeHandler, false); Events.selector(getCancel(request)).add('click', 'removeCodeSubmit', removeCodeHandlers, false); Events.selector(getClose(request)).add('click', 'removeCodeSubmit', removeCodeHandlers, false); fade(document.getElementById('request-background'), 'in'); fade(document.getElementById('plaintext-request'), 'in'); if (window.innerHeight > request.offsetHeight) { top = (window.innerHeight / 2) - (request.offsetHeight / 2) + 'px'; } request.style.top = top; request.style.left = (window.innerWidth / 2) - 385 + 'px'; request.style.width = '770px'; request.getElementsByClassName('fields')[0].getElementsByClassName('code-body')[0].focus(); } break; case 'Quote': wrapText(editor.getElementsByClassName('cke_source')[0], '[quote]', '[/quote]'); break; case 'Increase Indent': wrapText(editor.getElementsByClassName('cke_source')[0], '[indent=1]', '[/indent]'); break; case 'Center': wrapText(editor.getElementsByClassName('cke_source')[0], '[center]', '[/center]'); break; case 'Align Right': wrapText(editor.getElementsByClassName('cke_source')[0], '[right]', '[/right]'); break; default: return false; } } }; for (i = 0; i < buttons.length; i++) { Events.selector(buttons[i].getElementsByTagName('a')[0]).add('click', 'Plaintext_BBCode', plaintextBBCodeHandler, false); } for (i = 0; i < dropdowns.length; i++) { Events.selector(dropdowns[i].getElementsByTagName('a')[0]).add('click', 'Plaintext_BBCode', plaintextBBCodeHandler, false); } Classes.addClass(editor.getElementsByClassName('cke_button_ipssource')[0], 'bbcode-parsed'); } function plaintextBBCode(editor) { if (Classes.hasClass(editor.getElementsByClassName('cke_button_ipssource')[0], 'cke_on')) { Classes.removeClass(editor.getElementsByClassName('cke_button_ipsbbcode')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_font')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_fontSize')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_textcolor')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipsemoticon')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_bold')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_italic')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_underline')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_strike')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_subscript')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_superscript')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_bulletedlist')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_numberedlist')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_link')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_image')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipscode')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipsquote')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_indent')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_justifycenter')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_justifyright')[0], 'cke_disabled'); if (!Classes.hasClass(editor.getElementsByClassName('cke_button_ipssource')[0], 'bbcode-parsed')) { plaintextParser(editor); } } var buttonParseHandler = function() { setTimeout(function() { var checker = setInterval(function() { if (Classes.hasClass(editor.getElementsByClassName('cke_button_ipssource')[0], 'cke_on')) { Classes.removeClass(editor.getElementsByClassName('cke_button_ipsbbcode')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_font')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_fontSize')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_textcolor')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipsemoticon')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_bold')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_italic')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_underline')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_strike')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_subscript')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_superscript')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_bulletedlist')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_numberedlist')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_link')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_image')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipscode')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_ipsquote')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_indent')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_justifycenter')[0], 'cke_disabled'); Classes.removeClass(editor.getElementsByClassName('cke_button_justifyright')[0], 'cke_disabled'); if (!Classes.hasClass(editor.getElementsByClassName('cke_button_ipssource')[0], 'bbcode-parsed')) { plaintextParser(editor); } clearTimeout(checker); } }, 10); }, 100); var smileyTray = editor.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('ipsSmileyTray')[0]; if (smileyTray != null) { fade(smileyTray, 'out', 100); } }; Events.selector(editor.getElementsByClassName('cke_button_ipssource')[0]).add('click', 'parseBBCode', buttonParseHandler, false); } var initBBCodeHandler = function(event) { var instance; if (isChildOf('.cke_editor', event.target)) { instance = getParent('.cke_editor', event.target); } else { return false; } if (Classes.hasClass(instance, 'plaintextBBCode')) { return false; } if (Classes.hasClass(instance.getElementsByClassName('cke_button_ipssource')[0], 'cke_on') && Classes.hasClass(instance.getElementsByClassName('cke_button_bold')[0], 'cke_disabled')) { plaintextBBCode(instance); console.log('Plaintext BBCode initilized on:', instance); Classes.addClass(instance, 'plaintextBBCode'); } }; if (document.body.id === 'ipboard_body') { Events.selector(document).add('mouseover', 'initBBCode', initBBCodeHandler, false); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址