Frenzyboard QuickEdit

By Hans van de Bruggen Last update Jan 17, 2006 — Installed 377 times. Daily Installs: 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
/*
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]);
}