- // ==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);
- }