// new edit toolbar used with permission
// by Alex King
// http://www.alexking.org/
function edButton() {
this.id = ''; // used to name the toolbar button
this.display = ''; // label on button
this.tagStart = ''; // open tag
this.tagEnd = ''; // close tag
this.open = 0; // set to -1 if tag does not need to be closed
this.access = ''; // access key
}
var edOpenTags = new Array();
function edAddTag(button) {
if (eval('ed' + button + '.tagEnd') != '') {
edOpenTags[edOpenTags.length] = button;
document.getElementById(eval('ed' + button + '.id')).value = '/' + document.getElementById(eval('ed' + button + '.id')).value;
}
}
function edRemoveTag(button) {
for (i = 0; i < edOpenTags.length; i++) {
if (edOpenTags[i] == button) {
edOpenTags.splice(i, 1);
document.getElementById(eval('ed' + button + '.id')).value = document.getElementById(eval('ed' + button + '.id')).value.replace('/', '');
}
}
}
function edCheckOpenTags(button) {
var tag = 0;
for (i = 0; i < edOpenTags.length; i++) {
if (edOpenTags[i] == button) {
tag++;
}
}
if (tag > 0) {
return true; // tag found
}
else {
return false; // tag not found
}
}
function edCloseAllTags() {
var count = edOpenTags.length;
for (o = 0; o < count; o++) {
edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
}
}
/*
** TODO: Make it so ins and del have proper datetime attributes, formatted as so: **
1999-02-22T16:03:30-08:00
** Here's my start **
var now = new Date();
var datetime = now.getFullYear() + '-' +
*/
var ed0 = new edButton();
ed0.id = 'ed_strong';
ed0.display = 'B';
ed0.tagStart = '';
ed0.tagEnd = '';
ed0.access = 'b';
var ed1 = new edButton();
ed1.id = 'ed_em';
ed1.display = 'i';
ed1.tagStart = '';
ed1.tagEnd = '';
ed1.access = 'i';
var ed2 = new edButton();
ed2.id = 'ed_del';
ed2.display = 'del';
ed2.tagStart = '';
ed2.tagEnd = '';
ed2.access = 'd';
var ed3 = new edButton();
ed3.id = 'ed_ins';
ed3.display = 'ins';
ed3.tagStart = '';
ed3.tagEnd = '';
ed3.access = 'n';
var ed4 = new edButton();
ed4.id = 'ed_link';
ed4.display = 'link';
ed4.tagStart = ''; // special case
ed4.tagEnd = '';
ed4.access = 'a';
var ed5 = new edButton();
ed5.id = 'ed_img';
ed5.display = 'img';
ed5.tagStart = ''; // special case
ed5.tagEnd = '';
ed5.open = -1;
ed5.access = 'm';
var ed6 = new edButton();
ed6.id = 'ed_ul';
ed6.display = 'ul';
ed6.tagStart = '
\n';
ed6.tagEnd = '
';
ed6.access = 'u';
var ed7 = new edButton();
ed7.id = 'ed_ol';
ed7.display = 'ol';
ed7.tagStart = '\n';
ed7.tagEnd = '';
ed7.access = 'o';
var ed8 = new edButton();
ed8.id = 'ed_li';
ed8.display = 'li';
ed8.tagStart = '\t
';
ed8.tagEnd = '
\n';
ed8.access = 'l';
var ed9 = new edButton();
ed9.id = 'ed_block';
ed9.display = 'b-quote';
ed9.tagStart = '
';
ed9.tagEnd = '
';
ed9.access = 'q';
var ed10 = new edButton();
ed10.id = 'ed_pre';
ed10.display = 'pre';
ed10.tagStart = '
';
ed10.tagEnd = '
';
ed10.access = '';
var ed11 = new edButton();
ed11.id = 'ed_spa';
ed11.display = 'spanleft';
ed11.tagStart = '';
ed11.tagEnd = '';
ed11.access = '';
var ed12 = new edButton();
ed12.id = 'ed_span';
ed12.display = 'spanright';
ed12.tagStart = '';
ed12.tagEnd = '';
ed12.access = '';
var edButtonCount = 13;
function edShowButton(button, i) {
if (button.id == 'ed_img') {
document.write('');
}
else if (button.id == 'ed_link') {
document.write('');
}
else {
document.write('');
}
}
function edLink() {
this.display = '';
this.URL = '';
this.newWin = 0;
}
var edLink0 = new edLink;
edLink0.display = 'WordPress';
edLink0.URL = 'http://wordpress.org/';
var edLink1 = new edLink;
edLink1.display = 'alexking.org';
edLink1.URL = 'http://www.alexking.org/';
var edLinkCount = 2;
function edShowLinks() {
var tempStr = '';
document.write(tempStr);
}
function edQuickLink(i, thisSelect) {
if (i > -1) {
var newWin = '';
if (eval('edLink' + i + '.newWin') == 1) {
newWin = ' target="_blank"';
}
var tempStr = '' + eval('edLink' + i + '.display') + '';
edInsertContent(edCanvas, tempStr);
}
thisSelect.selectedIndex = 0;
}
function edSpell(myField) {
var word = '';
if (document.selection) {
myField.focus();
var sel = document.selection.createRange();
if (sel.text.length > 0) {
word = sel.text;
}
}
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
if (startPos != endPos) {
word = myField.value.substring(startPos, endPos);
}
}
if (word == '') {
word = prompt('Enter a word to look up:', '');
}
if (word != '') {
window.open('http://dictionary.reference.com/search?q=' + word);
}
}
function edToolbar() {
document.write('
');
for (i = 0; i < edButtonCount; i++) {
edShowButton(eval('ed' + i), i);
}
document.write('');
document.write('');
// edShowLinks(); // disabled by default
document.write('
');
}
// insertion code
function edInsertTag(myField, i) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
if (sel.text.length > 0) {
sel.text = eval('ed' + i + '.tagStart') + sel.text + eval('ed' + i + '.tagEnd');
}
else {
if (!edCheckOpenTags(i) || eval('ed' + i + '.tagEnd') == '') {
sel.text = eval('ed' + i + '.tagStart');
edAddTag(i);
}
else {
sel.text = eval('ed' + i + '.tagEnd');
edRemoveTag(i);
}
}
myField.focus();
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var cursorPos;
if (startPos != endPos) {
myField.value = myField.value.substring(0, startPos)
+ eval('ed' + i + '.tagStart')
+ myField.value.substring(startPos, endPos)
+ eval('ed' + i + '.tagEnd')
+ myField.value.substring(endPos, myField.value.length);
cursorPos = endPos + eval('ed' + i + '.tagStart').length + eval('ed' + i + '.tagEnd').length;
}
else {
if (!edCheckOpenTags(i) || eval('ed' + i + '.tagEnd') == '') {
myField.value = myField.value.substring(0, startPos)
+ eval('ed' + i + '.tagStart')
+ myField.value.substring(endPos, myField.value.length);
edAddTag(i);
cursorPos = startPos + eval('ed' + i + '.tagStart').length;
}
else {
myField.value = myField.value.substring(0, startPos)
+ eval('ed' + i + '.tagEnd')
+ myField.value.substring(endPos, myField.value.length);
edRemoveTag(i);
cursorPos = startPos + eval('ed' + i + '.tagEnd').length;
}
}
myField.focus();
myField.selectionStart = cursorPos;
myField.selectionEnd = cursorPos;
}
else {
if (!edCheckOpenTags(i) || eval('ed' + i + '.tagEnd') == '') {
myField.value += eval('ed' + i + '.tagStart');
edAddTag(i);
}
else {
myField.value += eval('ed' + i + '.tagEnd');
edRemoveTag(i);
}
myField.focus();
}
}
function edInsertContent(myField, myValue) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
myField.focus();
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
myField.focus();
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
} else {
myField.value += myValue;
myField.focus();
}
}
function edInsertLink(myField, i) {
if (!edCheckOpenTags(i)) {
eval('ed' + i + '.tagStart = \'\'');
}
edInsertTag(myField, i);
}
function edInsertImage(myField) {
var myValue = '';
edInsertContent(myField, myValue);
}
function bblink(formObj, bbtype )
{
current_url = prompt("URL:","http://");
if(current_url == null)
{
current_url = "";
return;
}
var re = new RegExp ('http%3A//', 'gi') ;
var current_url = current_url.replace(re, 'http://') ;
if(current_url == "http://")
{
current_url = "";
return;
}
if( bbtype == 'img' )
{ // IMAGE
current_alt = prompt("ALTernate text:","ALT");
if((current_alt == null) || (current_alt == "") || (current_alt == "ALT")) {
alttag = ' alt=""';
} else {
alttag = ' alt="' + current_alt + '"';
}
}
current_title = prompt("Title:","External - English");
if((current_title == null) || (current_title == "") )
{
title = '';
} else {
title = unescape(current_title);
}
if( bbtype == 'a' )
{
final_link = '';
bbinsert( formObj, final_link, '' );
}
else
{
final_img = '';
bbinsert( formObj, '', final_img );
}
}
function bbinsert(formObj, strIns, strInsClose )
{ // fplanque: added function
theSelection = false;
if (document.selection)
{
formObj.content.focus();
theSelection = document.selection.createRange().text; // Get text selection
// Add tags around selection
document.selection.createRange().text = strIns + theSelection + strInsClose;
formObj.content.focus();
theSelection = false;
return;
}
formObj.content.value += strIns + strInsClose;
formObj.content.focus();
return;
}