// 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 = ''; 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_more'; ed11.display = 'more'; ed11.tagStart = ''; ed11.tagEnd = ''; ed11.access = 't'; var ed12 = new edButton(); ed12.id = 'ed_next'; ed12.display = 'n-page'; ed12.tagStart = ''; ed12.tagEnd = ''; ed12.access = 'p'; 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 = '' + prompt('Enter a description of the image', '') + ''; edInsertContent(myField, myValue); }