raw
mp-wp_genesis           1 // new edit toolbar used with permission
mp-wp_genesis 2 // by Alex King
mp-wp_genesis 3 // http://www.alexking.org/
mp-wp_genesis 4
mp-wp_genesis 5 var edButtons = new Array();
mp-wp_genesis 6 var edLinks = new Array();
mp-wp_genesis 7 var edOpenTags = new Array();
mp-wp_genesis 8
mp-wp_genesis 9 function edButton(id, display, tagStart, tagEnd, access, open) {
mp-wp_genesis 10 this.id = id; // used to name the toolbar button
mp-wp_genesis 11 this.display = display; // label on button
mp-wp_genesis 12 this.tagStart = tagStart; // open tag
mp-wp_genesis 13 this.tagEnd = tagEnd; // close tag
mp-wp_genesis 14 this.access = access; // access key
mp-wp_genesis 15 this.open = open; // set to -1 if tag does not need to be closed
mp-wp_genesis 16 }
mp-wp_genesis 17
mp-wp_genesis 18 function zeroise(number, threshold) {
mp-wp_genesis 19 // FIXME: or we could use an implementation of printf in js here
mp-wp_genesis 20 var str = number.toString();
mp-wp_genesis 21 if (number < 0) { str = str.substr(1, str.length) }
mp-wp_genesis 22 while (str.length < threshold) { str = "0" + str }
mp-wp_genesis 23 if (number < 0) { str = '-' + str }
mp-wp_genesis 24 return str;
mp-wp_genesis 25 }
mp-wp_genesis 26
mp-wp_genesis 27 var now = new Date();
mp-wp_genesis 28 var datetime = now.getUTCFullYear() + '-' +
mp-wp_genesis 29 zeroise(now.getUTCMonth() + 1, 2) + '-' +
mp-wp_genesis 30 zeroise(now.getUTCDate(), 2) + 'T' +
mp-wp_genesis 31 zeroise(now.getUTCHours(), 2) + ':' +
mp-wp_genesis 32 zeroise(now.getUTCMinutes(), 2) + ':' +
mp-wp_genesis 33 zeroise(now.getUTCSeconds() ,2) +
mp-wp_genesis 34 '+00:00';
mp-wp_genesis 35
mp-wp_genesis 36 edButtons[edButtons.length] =
mp-wp_genesis 37 new edButton('ed_strong'
mp-wp_genesis 38 ,'b'
mp-wp_genesis 39 ,'<strong>'
mp-wp_genesis 40 ,'</strong>'
mp-wp_genesis 41 ,'b'
mp-wp_genesis 42 );
mp-wp_genesis 43
mp-wp_genesis 44 edButtons[edButtons.length] =
mp-wp_genesis 45 new edButton('ed_em'
mp-wp_genesis 46 ,'i'
mp-wp_genesis 47 ,'<em>'
mp-wp_genesis 48 ,'</em>'
mp-wp_genesis 49 ,'i'
mp-wp_genesis 50 );
mp-wp_genesis 51
mp-wp_genesis 52 edButtons[edButtons.length] =
mp-wp_genesis 53 new edButton('ed_link'
mp-wp_genesis 54 ,'link'
mp-wp_genesis 55 ,''
mp-wp_genesis 56 ,'</a>'
mp-wp_genesis 57 ,'a'
mp-wp_genesis 58 ); // special case
mp-wp_genesis 59
mp-wp_genesis 60 edButtons[edButtons.length] =
mp-wp_genesis 61 new edButton('ed_block'
mp-wp_genesis 62 ,'b-quote'
mp-wp_genesis 63 ,'\n\n<blockquote>'
mp-wp_genesis 64 ,'</blockquote>\n\n'
mp-wp_genesis 65 ,'q'
mp-wp_genesis 66 );
mp-wp_genesis 67
mp-wp_genesis 68
mp-wp_genesis 69 edButtons[edButtons.length] =
mp-wp_genesis 70 new edButton('ed_del'
mp-wp_genesis 71 ,'del'
mp-wp_genesis 72 ,'<del datetime="' + datetime + '">'
mp-wp_genesis 73 ,'</del>'
mp-wp_genesis 74 ,'d'
mp-wp_genesis 75 );
mp-wp_genesis 76
mp-wp_genesis 77 edButtons[edButtons.length] =
mp-wp_genesis 78 new edButton('ed_ins'
mp-wp_genesis 79 ,'ins'
mp-wp_genesis 80 ,'<ins datetime="' + datetime + '">'
mp-wp_genesis 81 ,'</ins>'
mp-wp_genesis 82 ,'s'
mp-wp_genesis 83 );
mp-wp_genesis 84
mp-wp_genesis 85 edButtons[edButtons.length] =
mp-wp_genesis 86 new edButton('ed_img'
mp-wp_genesis 87 ,'img'
mp-wp_genesis 88 ,''
mp-wp_genesis 89 ,''
mp-wp_genesis 90 ,'m'
mp-wp_genesis 91 ,-1
mp-wp_genesis 92 ); // special case
mp-wp_genesis 93
mp-wp_genesis 94 edButtons[edButtons.length] =
mp-wp_genesis 95 new edButton('ed_ul'
mp-wp_genesis 96 ,'ul'
mp-wp_genesis 97 ,'<ul>\n'
mp-wp_genesis 98 ,'</ul>\n\n'
mp-wp_genesis 99 ,'u'
mp-wp_genesis 100 );
mp-wp_genesis 101
mp-wp_genesis 102 edButtons[edButtons.length] =
mp-wp_genesis 103 new edButton('ed_ol'
mp-wp_genesis 104 ,'ol'
mp-wp_genesis 105 ,'<ol>\n'
mp-wp_genesis 106 ,'</ol>\n\n'
mp-wp_genesis 107 ,'o'
mp-wp_genesis 108 );
mp-wp_genesis 109
mp-wp_genesis 110 edButtons[edButtons.length] =
mp-wp_genesis 111 new edButton('ed_li'
mp-wp_genesis 112 ,'li'
mp-wp_genesis 113 ,'\t<li>'
mp-wp_genesis 114 ,'</li>\n'
mp-wp_genesis 115 ,'l'
mp-wp_genesis 116 );
mp-wp_genesis 117
mp-wp_genesis 118 edButtons[edButtons.length] =
mp-wp_genesis 119 new edButton('ed_code'
mp-wp_genesis 120 ,'code'
mp-wp_genesis 121 ,'<code>'
mp-wp_genesis 122 ,'</code>'
mp-wp_genesis 123 ,'c'
mp-wp_genesis 124 );
mp-wp_genesis 125
mp-wp_genesis 126 edButtons[edButtons.length] =
mp-wp_genesis 127 new edButton('ed_more'
mp-wp_genesis 128 ,'more'
mp-wp_genesis 129 ,'<!--more-->'
mp-wp_genesis 130 ,''
mp-wp_genesis 131 ,'t'
mp-wp_genesis 132 ,-1
mp-wp_genesis 133 );
mp-wp_genesis 134 /*
mp-wp_genesis 135 edButtons[edButtons.length] =
mp-wp_genesis 136 new edButton('ed_next'
mp-wp_genesis 137 ,'page'
mp-wp_genesis 138 ,'<!--nextpage-->'
mp-wp_genesis 139 ,''
mp-wp_genesis 140 ,'p'
mp-wp_genesis 141 ,-1
mp-wp_genesis 142 );
mp-wp_genesis 143 */
mp-wp_genesis 144 function edLink() {
mp-wp_genesis 145 this.display = '';
mp-wp_genesis 146 this.URL = '';
mp-wp_genesis 147 this.newWin = 0;
mp-wp_genesis 148 }
mp-wp_genesis 149
mp-wp_genesis 150 edLinks[edLinks.length] = new edLink('WordPress'
mp-wp_genesis 151 ,'http://wordpress.org/'
mp-wp_genesis 152 );
mp-wp_genesis 153
mp-wp_genesis 154 edLinks[edLinks.length] = new edLink('alexking.org'
mp-wp_genesis 155 ,'http://www.alexking.org/'
mp-wp_genesis 156 );
mp-wp_genesis 157
mp-wp_genesis 158 function edShowButton(button, i) {
mp-wp_genesis 159 if (button.id == 'ed_img') {
mp-wp_genesis 160 document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertImage(edCanvas);" value="' + button.display + '" />');
mp-wp_genesis 161 }
mp-wp_genesis 162 else if (button.id == 'ed_link') {
mp-wp_genesis 163 document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(edCanvas, ' + i + ');" value="' + button.display + '" />');
mp-wp_genesis 164 }
mp-wp_genesis 165 else {
mp-wp_genesis 166 document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(edCanvas, ' + i + ');" value="' + button.display + '" />');
mp-wp_genesis 167 }
mp-wp_genesis 168 }
mp-wp_genesis 169
mp-wp_genesis 170 function edShowLinks() {
mp-wp_genesis 171 var tempStr = '<select onchange="edQuickLink(this.options[this.selectedIndex].value, this);"><option value="-1" selected>' + quicktagsL10n.quickLinks + '</option>';
mp-wp_genesis 172 for (i = 0; i < edLinks.length; i++) {
mp-wp_genesis 173 tempStr += '<option value="' + i + '">' + edLinks[i].display + '</option>';
mp-wp_genesis 174 }
mp-wp_genesis 175 tempStr += '</select>';
mp-wp_genesis 176 document.write(tempStr);
mp-wp_genesis 177 }
mp-wp_genesis 178
mp-wp_genesis 179 function edAddTag(button) {
mp-wp_genesis 180 if (edButtons[button].tagEnd != '') {
mp-wp_genesis 181 edOpenTags[edOpenTags.length] = button;
mp-wp_genesis 182 document.getElementById(edButtons[button].id).value = '/' + document.getElementById(edButtons[button].id).value;
mp-wp_genesis 183 }
mp-wp_genesis 184 }
mp-wp_genesis 185
mp-wp_genesis 186 function edRemoveTag(button) {
mp-wp_genesis 187 for (i = 0; i < edOpenTags.length; i++) {
mp-wp_genesis 188 if (edOpenTags[i] == button) {
mp-wp_genesis 189 edOpenTags.splice(i, 1);
mp-wp_genesis 190 document.getElementById(edButtons[button].id).value = document.getElementById(edButtons[button].id).value.replace('/', '');
mp-wp_genesis 191 }
mp-wp_genesis 192 }
mp-wp_genesis 193 }
mp-wp_genesis 194
mp-wp_genesis 195 function edCheckOpenTags(button) {
mp-wp_genesis 196 var tag = 0;
mp-wp_genesis 197 for (i = 0; i < edOpenTags.length; i++) {
mp-wp_genesis 198 if (edOpenTags[i] == button) {
mp-wp_genesis 199 tag++;
mp-wp_genesis 200 }
mp-wp_genesis 201 }
mp-wp_genesis 202 if (tag > 0) {
mp-wp_genesis 203 return true; // tag found
mp-wp_genesis 204 }
mp-wp_genesis 205 else {
mp-wp_genesis 206 return false; // tag not found
mp-wp_genesis 207 }
mp-wp_genesis 208 }
mp-wp_genesis 209
mp-wp_genesis 210 function edCloseAllTags() {
mp-wp_genesis 211 var count = edOpenTags.length;
mp-wp_genesis 212 for (o = 0; o < count; o++) {
mp-wp_genesis 213 edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
mp-wp_genesis 214 }
mp-wp_genesis 215 }
mp-wp_genesis 216
mp-wp_genesis 217 function edQuickLink(i, thisSelect) {
mp-wp_genesis 218 if (i > -1) {
mp-wp_genesis 219 var newWin = '';
mp-wp_genesis 220 if (edLinks[i].newWin == 1) {
mp-wp_genesis 221 newWin = ' target="_blank"';
mp-wp_genesis 222 }
mp-wp_genesis 223 var tempStr = '<a href="' + edLinks[i].URL + '"' + newWin + '>'
mp-wp_genesis 224 + edLinks[i].display
mp-wp_genesis 225 + '</a>';
mp-wp_genesis 226 thisSelect.selectedIndex = 0;
mp-wp_genesis 227 edInsertContent(edCanvas, tempStr);
mp-wp_genesis 228 }
mp-wp_genesis 229 else {
mp-wp_genesis 230 thisSelect.selectedIndex = 0;
mp-wp_genesis 231 }
mp-wp_genesis 232 }
mp-wp_genesis 233
mp-wp_genesis 234 function edSpell(myField) {
mp-wp_genesis 235 var word = '';
mp-wp_genesis 236 if (document.selection) {
mp-wp_genesis 237 myField.focus();
mp-wp_genesis 238 var sel = document.selection.createRange();
mp-wp_genesis 239 if (sel.text.length > 0) {
mp-wp_genesis 240 word = sel.text;
mp-wp_genesis 241 }
mp-wp_genesis 242 }
mp-wp_genesis 243 else if (myField.selectionStart || myField.selectionStart == '0') {
mp-wp_genesis 244 var startPos = myField.selectionStart;
mp-wp_genesis 245 var endPos = myField.selectionEnd;
mp-wp_genesis 246 if (startPos != endPos) {
mp-wp_genesis 247 word = myField.value.substring(startPos, endPos);
mp-wp_genesis 248 }
mp-wp_genesis 249 }
mp-wp_genesis 250 if (word == '') {
mp-wp_genesis 251 word = prompt(quicktagsL10n.wordLookup, '');
mp-wp_genesis 252 }
mp-wp_genesis 253 if (word !== null && /^\w[\w ]*$/.test(word)) {
mp-wp_genesis 254 window.open('http://www.answers.com/' + escape(word));
mp-wp_genesis 255 }
mp-wp_genesis 256 }
mp-wp_genesis 257
mp-wp_genesis 258 function edToolbar() {
mp-wp_genesis 259 document.write('<div id="ed_toolbar">');
mp-wp_genesis 260 for (i = 0; i < edButtons.length; i++) {
mp-wp_genesis 261 edShowButton(edButtons[i], i);
mp-wp_genesis 262 }
mp-wp_genesis 263 document.write('<input type="button" id="ed_spell" class="ed_button" onclick="edSpell(edCanvas);" title="' + quicktagsL10n.dictionaryLookup + '" value="' + quicktagsL10n.lookup + '" />');
mp-wp_genesis 264 document.write('<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags();" title="' + quicktagsL10n.closeAllOpenTags + '" value="' + quicktagsL10n.closeTags + '" />');
mp-wp_genesis 265 // edShowLinks(); // disabled by default
mp-wp_genesis 266 document.write('</div>');
mp-wp_genesis 267 }
mp-wp_genesis 268
mp-wp_genesis 269 // insertion code
mp-wp_genesis 270
mp-wp_genesis 271 function edInsertTag(myField, i) {
mp-wp_genesis 272 //IE support
mp-wp_genesis 273 if (document.selection) {
mp-wp_genesis 274 myField.focus();
mp-wp_genesis 275 sel = document.selection.createRange();
mp-wp_genesis 276 if (sel.text.length > 0) {
mp-wp_genesis 277 sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;
mp-wp_genesis 278 }
mp-wp_genesis 279 else {
mp-wp_genesis 280 if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
mp-wp_genesis 281 sel.text = edButtons[i].tagStart;
mp-wp_genesis 282 edAddTag(i);
mp-wp_genesis 283 }
mp-wp_genesis 284 else {
mp-wp_genesis 285 sel.text = edButtons[i].tagEnd;
mp-wp_genesis 286 edRemoveTag(i);
mp-wp_genesis 287 }
mp-wp_genesis 288 }
mp-wp_genesis 289 myField.focus();
mp-wp_genesis 290 }
mp-wp_genesis 291 //MOZILLA/NETSCAPE support
mp-wp_genesis 292 else if (myField.selectionStart || myField.selectionStart == '0') {
mp-wp_genesis 293 var startPos = myField.selectionStart;
mp-wp_genesis 294 var endPos = myField.selectionEnd;
mp-wp_genesis 295 var cursorPos = endPos;
mp-wp_genesis 296 var scrollTop = myField.scrollTop;
mp-wp_genesis 297
mp-wp_genesis 298 if (startPos != endPos) {
mp-wp_genesis 299 myField.value = myField.value.substring(0, startPos)
mp-wp_genesis 300 + edButtons[i].tagStart
mp-wp_genesis 301 + myField.value.substring(startPos, endPos)
mp-wp_genesis 302 + edButtons[i].tagEnd
mp-wp_genesis 303 + myField.value.substring(endPos, myField.value.length);
mp-wp_genesis 304 cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;
mp-wp_genesis 305 }
mp-wp_genesis 306 else {
mp-wp_genesis 307 if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
mp-wp_genesis 308 myField.value = myField.value.substring(0, startPos)
mp-wp_genesis 309 + edButtons[i].tagStart
mp-wp_genesis 310 + myField.value.substring(endPos, myField.value.length);
mp-wp_genesis 311 edAddTag(i);
mp-wp_genesis 312 cursorPos = startPos + edButtons[i].tagStart.length;
mp-wp_genesis 313 }
mp-wp_genesis 314 else {
mp-wp_genesis 315 myField.value = myField.value.substring(0, startPos)
mp-wp_genesis 316 + edButtons[i].tagEnd
mp-wp_genesis 317 + myField.value.substring(endPos, myField.value.length);
mp-wp_genesis 318 edRemoveTag(i);
mp-wp_genesis 319 cursorPos = startPos + edButtons[i].tagEnd.length;
mp-wp_genesis 320 }
mp-wp_genesis 321 }
mp-wp_genesis 322 myField.focus();
mp-wp_genesis 323 myField.selectionStart = cursorPos;
mp-wp_genesis 324 myField.selectionEnd = cursorPos;
mp-wp_genesis 325 myField.scrollTop = scrollTop;
mp-wp_genesis 326 }
mp-wp_genesis 327 else {
mp-wp_genesis 328 if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
mp-wp_genesis 329 myField.value += edButtons[i].tagStart;
mp-wp_genesis 330 edAddTag(i);
mp-wp_genesis 331 }
mp-wp_genesis 332 else {
mp-wp_genesis 333 myField.value += edButtons[i].tagEnd;
mp-wp_genesis 334 edRemoveTag(i);
mp-wp_genesis 335 }
mp-wp_genesis 336 myField.focus();
mp-wp_genesis 337 }
mp-wp_genesis 338 }
mp-wp_genesis 339
mp-wp_genesis 340 function edInsertContent(myField, myValue) {
mp-wp_genesis 341 //IE support
mp-wp_genesis 342 if (document.selection) {
mp-wp_genesis 343 myField.focus();
mp-wp_genesis 344 sel = document.selection.createRange();
mp-wp_genesis 345 sel.text = myValue;
mp-wp_genesis 346 myField.focus();
mp-wp_genesis 347 }
mp-wp_genesis 348 //MOZILLA/NETSCAPE support
mp-wp_genesis 349 else if (myField.selectionStart || myField.selectionStart == '0') {
mp-wp_genesis 350 var startPos = myField.selectionStart;
mp-wp_genesis 351 var endPos = myField.selectionEnd;
mp-wp_genesis 352 myField.value = myField.value.substring(0, startPos)
mp-wp_genesis 353 + myValue
mp-wp_genesis 354 + myField.value.substring(endPos, myField.value.length);
mp-wp_genesis 355 myField.focus();
mp-wp_genesis 356 myField.selectionStart = startPos + myValue.length;
mp-wp_genesis 357 myField.selectionEnd = startPos + myValue.length;
mp-wp_genesis 358 } else {
mp-wp_genesis 359 myField.value += myValue;
mp-wp_genesis 360 myField.focus();
mp-wp_genesis 361 }
mp-wp_genesis 362 }
mp-wp_genesis 363
mp-wp_genesis 364 function edInsertLink(myField, i, defaultValue) {
mp-wp_genesis 365 if (!defaultValue) {
mp-wp_genesis 366 defaultValue = 'http://';
mp-wp_genesis 367 }
mp-wp_genesis 368 if (!edCheckOpenTags(i)) {
mp-wp_genesis 369 var URL = prompt(quicktagsL10n.enterURL, defaultValue);
mp-wp_genesis 370 if (URL) {
mp-wp_genesis 371 edButtons[i].tagStart = '<a href="' + URL + '">';
mp-wp_genesis 372 edInsertTag(myField, i);
mp-wp_genesis 373 }
mp-wp_genesis 374 }
mp-wp_genesis 375 else {
mp-wp_genesis 376 edInsertTag(myField, i);
mp-wp_genesis 377 }
mp-wp_genesis 378 }
mp-wp_genesis 379
mp-wp_genesis 380 function edInsertImage(myField) {
mp-wp_genesis 381 var myValue = prompt(quicktagsL10n.enterImageURL, 'http://');
mp-wp_genesis 382 if (myValue) {
mp-wp_genesis 383 myValue = '<img src="'
mp-wp_genesis 384 + myValue
mp-wp_genesis 385 + '" alt="' + prompt(quicktagsL10n.enterImageDescription, '')
mp-wp_genesis 386 + '" />';
mp-wp_genesis 387 edInsertContent(myField, myValue);
mp-wp_genesis 388 }
mp-wp_genesis 389 }
mp-wp_genesis 390
mp-wp_genesis 391
mp-wp_genesis 392 // Allow multiple instances.
mp-wp_genesis 393 // Name = unique value, id = textarea id, container = container div.
mp-wp_genesis 394 // Can disable some buttons by passing comma delimited string as 4th param.
mp-wp_genesis 395 var QTags = function(name, id, container, disabled) {
mp-wp_genesis 396 var t = this, cont = document.getElementById(container);
mp-wp_genesis 397
mp-wp_genesis 398 t.Buttons = [];
mp-wp_genesis 399 t.Links = [];
mp-wp_genesis 400 t.OpenTags = [];
mp-wp_genesis 401 t.Canvas = document.getElementById(id);
mp-wp_genesis 402
mp-wp_genesis 403 if ( ! t.Canvas || ! cont )
mp-wp_genesis 404 return;
mp-wp_genesis 405
mp-wp_genesis 406 disabled = ( typeof disabled != 'undefined' ) ? ','+disabled+',' : '';
mp-wp_genesis 407
mp-wp_genesis 408 t.edShowButton = function(button, i) {
mp-wp_genesis 409 if ( disabled && (disabled.indexOf(','+button.display+',') != -1) )
mp-wp_genesis 410 return '';
mp-wp_genesis 411 else if ( button.id == name+'_img' )
mp-wp_genesis 412 return '<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertImage('+name+'.Canvas);" value="' + button.display + '" />';
mp-wp_genesis 413 else if (button.id == name+'_link')
mp-wp_genesis 414 return '<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="'+name+'.edInsertLink('+i+');" value="'+button.display+'" />';
mp-wp_genesis 415 else
mp-wp_genesis 416 return '<input type="button" id="' + button.id + '" accesskey="'+button.access+'" class="ed_button" onclick="'+name+'.edInsertTag('+i+');" value="'+button.display+'" />';
mp-wp_genesis 417 };
mp-wp_genesis 418
mp-wp_genesis 419 t.edAddTag = function(button) {
mp-wp_genesis 420 if ( t.Buttons[button].tagEnd != '' ) {
mp-wp_genesis 421 t.OpenTags[t.OpenTags.length] = button;
mp-wp_genesis 422 document.getElementById(t.Buttons[button].id).value = '/' + document.getElementById(t.Buttons[button].id).value;
mp-wp_genesis 423 }
mp-wp_genesis 424 };
mp-wp_genesis 425
mp-wp_genesis 426 t.edRemoveTag = function(button) {
mp-wp_genesis 427 for ( var i = 0; i < t.OpenTags.length; i++ ) {
mp-wp_genesis 428 if ( t.OpenTags[i] == button ) {
mp-wp_genesis 429 t.OpenTags.splice(i, 1);
mp-wp_genesis 430 document.getElementById(t.Buttons[button].id).value = document.getElementById(t.Buttons[button].id).value.replace('/', '');
mp-wp_genesis 431 }
mp-wp_genesis 432 }
mp-wp_genesis 433 };
mp-wp_genesis 434
mp-wp_genesis 435 t.edCheckOpenTags = function(button) {
mp-wp_genesis 436 var tag = 0;
mp-wp_genesis 437 for ( var i = 0; i < t.OpenTags.length; i++ ) {
mp-wp_genesis 438 if ( t.OpenTags[i] == button )
mp-wp_genesis 439 tag++;
mp-wp_genesis 440 }
mp-wp_genesis 441 if ( tag > 0 ) return true; // tag found
mp-wp_genesis 442 else return false; // tag not found
mp-wp_genesis 443 };
mp-wp_genesis 444
mp-wp_genesis 445 this.edCloseAllTags = function() {
mp-wp_genesis 446 var count = t.OpenTags.length;
mp-wp_genesis 447 for ( var o = 0; o < count; o++ )
mp-wp_genesis 448 t.edInsertTag(t.OpenTags[t.OpenTags.length - 1]);
mp-wp_genesis 449 };
mp-wp_genesis 450
mp-wp_genesis 451 this.edQuickLink = function(i, thisSelect) {
mp-wp_genesis 452 if ( i > -1 ) {
mp-wp_genesis 453 var newWin = '';
mp-wp_genesis 454 if ( Links[i].newWin == 1 ) {
mp-wp_genesis 455 newWin = ' target="_blank"';
mp-wp_genesis 456 }
mp-wp_genesis 457 var tempStr = '<a href="' + Links[i].URL + '"' + newWin + '>'
mp-wp_genesis 458 + Links[i].display
mp-wp_genesis 459 + '</a>';
mp-wp_genesis 460 thisSelect.selectedIndex = 0;
mp-wp_genesis 461 edInsertContent(t.Canvas, tempStr);
mp-wp_genesis 462 } else {
mp-wp_genesis 463 thisSelect.selectedIndex = 0;
mp-wp_genesis 464 }
mp-wp_genesis 465 };
mp-wp_genesis 466
mp-wp_genesis 467 // insertion code
mp-wp_genesis 468 t.edInsertTag = function(i) {
mp-wp_genesis 469 //IE support
mp-wp_genesis 470 if ( document.selection ) {
mp-wp_genesis 471 t.Canvas.focus();
mp-wp_genesis 472 sel = document.selection.createRange();
mp-wp_genesis 473 if ( sel.text.length > 0 ) {
mp-wp_genesis 474 sel.text = t.Buttons[i].tagStart + sel.text + t.Buttons[i].tagEnd;
mp-wp_genesis 475 } else {
mp-wp_genesis 476 if ( ! t.edCheckOpenTags(i) || t.Buttons[i].tagEnd == '' ) {
mp-wp_genesis 477 sel.text = t.Buttons[i].tagStart;
mp-wp_genesis 478 t.edAddTag(i);
mp-wp_genesis 479 } else {
mp-wp_genesis 480 sel.text = t.Buttons[i].tagEnd;
mp-wp_genesis 481 t.edRemoveTag(i);
mp-wp_genesis 482 }
mp-wp_genesis 483 }
mp-wp_genesis 484 t.Canvas.focus();
mp-wp_genesis 485 } else if ( t.Canvas.selectionStart || t.Canvas.selectionStart == '0' ) { //MOZILLA/NETSCAPE support
mp-wp_genesis 486 var startPos = t.Canvas.selectionStart;
mp-wp_genesis 487 var endPos = t.Canvas.selectionEnd;
mp-wp_genesis 488 var cursorPos = endPos;
mp-wp_genesis 489 var scrollTop = t.Canvas.scrollTop;
mp-wp_genesis 490
mp-wp_genesis 491 if ( startPos != endPos ) {
mp-wp_genesis 492 t.Canvas.value = t.Canvas.value.substring(0, startPos)
mp-wp_genesis 493 + t.Buttons[i].tagStart
mp-wp_genesis 494 + t.Canvas.value.substring(startPos, endPos)
mp-wp_genesis 495 + t.Buttons[i].tagEnd
mp-wp_genesis 496 + t.Canvas.value.substring(endPos, t.Canvas.value.length);
mp-wp_genesis 497 cursorPos += t.Buttons[i].tagStart.length + t.Buttons[i].tagEnd.length;
mp-wp_genesis 498 } else {
mp-wp_genesis 499 if ( !t.edCheckOpenTags(i) || t.Buttons[i].tagEnd == '' ) {
mp-wp_genesis 500 t.Canvas.value = t.Canvas.value.substring(0, startPos)
mp-wp_genesis 501 + t.Buttons[i].tagStart
mp-wp_genesis 502 + t.Canvas.value.substring(endPos, t.Canvas.value.length);
mp-wp_genesis 503 t.edAddTag(i);
mp-wp_genesis 504 cursorPos = startPos + t.Buttons[i].tagStart.length;
mp-wp_genesis 505 } else {
mp-wp_genesis 506 t.Canvas.value = t.Canvas.value.substring(0, startPos)
mp-wp_genesis 507 + t.Buttons[i].tagEnd
mp-wp_genesis 508 + t.Canvas.value.substring(endPos, t.Canvas.value.length);
mp-wp_genesis 509 t.edRemoveTag(i);
mp-wp_genesis 510 cursorPos = startPos + t.Buttons[i].tagEnd.length;
mp-wp_genesis 511 }
mp-wp_genesis 512 }
mp-wp_genesis 513 t.Canvas.focus();
mp-wp_genesis 514 t.Canvas.selectionStart = cursorPos;
mp-wp_genesis 515 t.Canvas.selectionEnd = cursorPos;
mp-wp_genesis 516 t.Canvas.scrollTop = scrollTop;
mp-wp_genesis 517 } else {
mp-wp_genesis 518 if ( ! t.edCheckOpenTags(i) || t.Buttons[i].tagEnd == '' ) {
mp-wp_genesis 519 t.Canvas.value += Buttons[i].tagStart;
mp-wp_genesis 520 t.edAddTag(i);
mp-wp_genesis 521 } else {
mp-wp_genesis 522 t.Canvas.value += Buttons[i].tagEnd;
mp-wp_genesis 523 t.edRemoveTag(i);
mp-wp_genesis 524 }
mp-wp_genesis 525 t.Canvas.focus();
mp-wp_genesis 526 }
mp-wp_genesis 527 };
mp-wp_genesis 528
mp-wp_genesis 529 this.edInsertLink = function(i, defaultValue) {
mp-wp_genesis 530 if ( ! defaultValue )
mp-wp_genesis 531 defaultValue = 'http://';
mp-wp_genesis 532
mp-wp_genesis 533 if ( ! t.edCheckOpenTags(i) ) {
mp-wp_genesis 534 var URL = prompt(quicktagsL10n.enterURL, defaultValue);
mp-wp_genesis 535 if ( URL ) {
mp-wp_genesis 536 t.Buttons[i].tagStart = '<a href="' + URL + '">';
mp-wp_genesis 537 t.edInsertTag(i);
mp-wp_genesis 538 }
mp-wp_genesis 539 } else {
mp-wp_genesis 540 t.edInsertTag(i);
mp-wp_genesis 541 }
mp-wp_genesis 542 };
mp-wp_genesis 543
mp-wp_genesis 544 this.edInsertImage = function() {
mp-wp_genesis 545 var myValue = prompt(quicktagsL10n.enterImageURL, 'http://');
mp-wp_genesis 546 if ( myValue ) {
mp-wp_genesis 547 myValue = '<img src="'
mp-wp_genesis 548 + myValue
mp-wp_genesis 549 + '" alt="' + prompt(quicktagsL10n.enterImageDescription, '')
mp-wp_genesis 550 + '" />';
mp-wp_genesis 551 edInsertContent(t.Canvas, myValue);
mp-wp_genesis 552 }
mp-wp_genesis 553 };
mp-wp_genesis 554
mp-wp_genesis 555 t.Buttons[t.Buttons.length] = new edButton(name+'_strong','b','<strong>','</strong>','b');
mp-wp_genesis 556 t.Buttons[t.Buttons.length] = new edButton(name+'_em','i','<em>','</em>','i');
mp-wp_genesis 557 t.Buttons[t.Buttons.length] = new edButton(name+'_link','link','','</a>','a'); // special case
mp-wp_genesis 558 t.Buttons[t.Buttons.length] = new edButton(name+'_block','b-quote','\n\n<blockquote>','</blockquote>\n\n','q');
mp-wp_genesis 559 t.Buttons[t.Buttons.length] = new edButton(name+'_del','del','<del datetime="' + datetime + '">','</del>','d');
mp-wp_genesis 560 t.Buttons[t.Buttons.length] = new edButton(name+'_ins','ins','<ins datetime="' + datetime + '">','</ins>','s');
mp-wp_genesis 561 t.Buttons[t.Buttons.length] = new edButton(name+'_img','img','','','m',-1); // special case
mp-wp_genesis 562 t.Buttons[t.Buttons.length] = new edButton(name+'_ul','ul','<ul>\n','</ul>\n\n','u');
mp-wp_genesis 563 t.Buttons[t.Buttons.length] = new edButton(name+'_ol','ol','<ol>\n','</ol>\n\n','o');
mp-wp_genesis 564 t.Buttons[t.Buttons.length] = new edButton(name+'_li','li','\t<li>','</li>\n','l');
mp-wp_genesis 565 t.Buttons[t.Buttons.length] = new edButton(name+'_code','code','<code>','</code>','c');
mp-wp_genesis 566 t.Buttons[t.Buttons.length] = new edButton(name+'_more','more','<!--more-->','','t',-1);
mp-wp_genesis 567 // t.Buttons[t.Buttons.length] = new edButton(name+'_next','page','<!--nextpage-->','','p',-1);
mp-wp_genesis 568
mp-wp_genesis 569 var tb = document.createElement('div');
mp-wp_genesis 570 tb.id = name+'_qtags';
mp-wp_genesis 571
mp-wp_genesis 572 var html = '<div id="'+name+'_toolbar">';
mp-wp_genesis 573 for (var i = 0; i < t.Buttons.length; i++)
mp-wp_genesis 574 html += t.edShowButton(t.Buttons[i], i);
mp-wp_genesis 575
mp-wp_genesis 576 html += '<input type="button" id="'+name+'_ed_spell" class="ed_button" onclick="edSpell('+name+'.Canvas);" title="' + quicktagsL10n.dictionaryLookup + '" value="' + quicktagsL10n.lookup + '" />';
mp-wp_genesis 577 html += '<input type="button" id="'+name+'_ed_close" class="ed_button" onclick="'+name+'.edCloseAllTags();" title="' + quicktagsL10n.closeAllOpenTags + '" value="' + quicktagsL10n.closeTags + '" /></div>';
mp-wp_genesis 578
mp-wp_genesis 579 tb.innerHTML = html;
mp-wp_genesis 580 cont.parentNode.insertBefore(tb, cont);
mp-wp_genesis 581
mp-wp_genesis 582 };