|
|
/*
|
|
|
@licstart The following is the entire license notice for the
|
|
|
JavaScript code in this page.
|
|
|
|
|
|
|
|
|
Copyright (C) 2013 neko259
|
|
|
|
|
|
The JavaScript code in this page is free software: you can
|
|
|
redistribute it and/or modify it under the terms of the GNU
|
|
|
General Public License (GNU GPL) as published by the Free Software
|
|
|
Foundation, either version 3 of the License, or (at your option)
|
|
|
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
|
|
without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
|
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
|
|
|
|
|
As additional permission under GNU GPL version 3 section 7, you
|
|
|
may distribute non-source (e.g., minimized or compacted) forms of
|
|
|
that code without the copy of the GNU GPL normally required by
|
|
|
section 4, provided you include this license notice and a URL
|
|
|
through which recipients can access the Corresponding Source.
|
|
|
|
|
|
@licend The above is the entire license notice
|
|
|
for the JavaScript code in this page.
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Add the desired characters to the start and end of selection.
|
|
|
*
|
|
|
* @param start Start (left) text
|
|
|
* @param end End (right) text
|
|
|
*/
|
|
|
function addMarkToMsg(start, end) {
|
|
|
if (end.length == 0) {
|
|
|
return addTextToEachLineOfSelection(start);
|
|
|
}
|
|
|
|
|
|
var textareas = $('textarea');
|
|
|
|
|
|
for (var i = 0; i < textareas.length; i++) {
|
|
|
var textarea = textareas[i];
|
|
|
|
|
|
if (document.selection) {
|
|
|
textarea.focus();
|
|
|
|
|
|
var sel = document.selection.createRange();
|
|
|
sel.text = start + sel.text + end;
|
|
|
} else if (textarea.selectionStart || textarea.selectionStart == '0') {
|
|
|
textarea.focus();
|
|
|
|
|
|
var startPos = textarea.selectionStart;
|
|
|
var endPos = textarea.selectionEnd;
|
|
|
|
|
|
var oldValue = textarea.value;
|
|
|
textarea.value = oldValue.substring(0, startPos) + start +
|
|
|
oldValue.substring(startPos, endPos) + end +
|
|
|
oldValue.substring(endPos, oldValue.length);
|
|
|
} else {
|
|
|
textarea.value += start + end;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Add text to the beginning of each selected line. Partially selected lines
|
|
|
* are included
|
|
|
*
|
|
|
* @param textToAdd Text to add to the each line
|
|
|
*/
|
|
|
function addTextToEachLineOfSelection(textToAdd) {
|
|
|
var textareas = $('textarea');
|
|
|
|
|
|
for (var i = 0; i < textareas.length; i++) {
|
|
|
var textarea = textareas[i];
|
|
|
|
|
|
if (document.selection) {
|
|
|
textarea.focus();
|
|
|
|
|
|
var sel = document.selection.createRange();
|
|
|
sel.text = start + sel.text + end;
|
|
|
} else if (textarea.selectionStart || textarea.selectionStart == '0') {
|
|
|
textarea.focus();
|
|
|
|
|
|
var startPos = textarea.selectionStart;
|
|
|
var endPos = textarea.selectionEnd;
|
|
|
|
|
|
var oldValue = textarea.value;
|
|
|
|
|
|
var textBeforeSelection = oldValue.substring(0, startPos);
|
|
|
var selectionText = oldValue.substring(startPos, endPos)
|
|
|
.replace(/\n/g, '\n' + textToAdd);
|
|
|
textarea.value = textBeforeSelection + textToAdd +
|
|
|
selectionText +
|
|
|
oldValue.substring(endPos, oldValue.length);
|
|
|
} else {
|
|
|
textarea.value += textToAdd;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
}
|
|
|
|