/*
version: 0.5
*/
// ==UserScript==
// @name Frenzyboard QuickEdit
// @author Hans van de Bruggen <pintong@gmail.com>
// @description Adds links for Quoting, Italics, Bold, Underlining, Links and Images to text areas at Frenzyboard.
// @include http://*frenzyboard.com/*
// ==/UserScript==
// New in 0.5:
// First version (also, my first ever script!)
// Based off Jason Rhyley's "Flickr Rich Edit" script at http://www.rhyley.org/gm/
// (available under Creative Commons Attribution-NonCommercial-ShareAlike 2.0)
//
// TODO:
// Automatically remove 'http://' from links and images if the user does not.
// Add keyboard shortcuts?
unsafeWindow.tagIt = function (tagOpen,tagClose,i) {
var v = unsafeWindow.textArray[i].value;
var selLength = unsafeWindow.textArray[i].textLength;
var selStart = unsafeWindow.textArray[i].selectionStart;
var selEnd = unsafeWindow.textArray[i].selectionEnd;
if (selEnd==1 || selEnd==2) selEnd=selLength;
var start = (v).substring(0,selStart);
var middle = (v).substring(selStart, selEnd)
var end = (v).substring(selEnd, selLength);
unsafeWindow.textArray[i].value = start + tagOpen + middle + tagClose + end;
unsafeWindow.textArray[i].selectionStart = selStart + tagOpen.length;
unsafeWindow.textArray[i].selectionEnd = (selEnd - 1) + tagClose.length;
unsafeWindow.textArray[i].focus();
}
unsafeWindow.linkIt = function (i) {
var myLink = prompt("Enter URL:","REMOVE http://");
if (myLink != null) {
unsafeWindow.tagIt('[link=' +myLink+ ']','[/link]', i);
}
}
unsafeWindow.imgIt = function (i) {
var myImg = prompt("Enter image URL:","REMOVE http://");
if (myImg != null) {
unsafeWindow.tagIt('[image]' +myImg+ '[/image]','', i);
}
}
textareas = document.evaluate("//textarea",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
unsafeWindow.textArray = new Array();
for (i=0; i<textareas.snapshotLength; i++) {
unsafeWindow.textArray[i] = textareas.snapshotItem(i);
var accessBar = document.createElement("div");
accessBar.setAttribute('style','');
accessBar.innerHTML = "<a href=\"javascript:tagIt('[quote]','[/quote]',"+ i +")\">Quote</a> | " +
"<a href=\"javascript:tagIt('[i]','[/i]',"+ i +")\"><i>Italic</i></a> | " +
"<a href=\"javascript:tagIt('[b]','[/b]',"+ i +")\"><b>Bold</b></a> | " +
"<a href=\"javascript:tagIt('[u]','[/u]',"+ i +")\"><u>Underline</u></a> | " +
"<a href=\"javascript:linkIt("+i+")\">Link</a> | " +
"<a href=\"javascript:imgIt("+i+")\">Image</a>";
unsafeWindow.textArray[i].parentNode.insertBefore(accessBar, unsafeWindow.textArray[i]);
}