in kitsune/sumo/static/sumo/js/markup.js [169:243]
handleClick: function(e) {
var selText, selStart, selEnd, splitText, range,
textarea = this.textarea,
scrollTop = $(textarea).scrollTop(),
editor = window.highlighting && window.highlighting.editor;
if (window.codemirror && window.highlighting && window.highlighting.isEnabled()) {
selText = (editor.somethingSelected()) ? editor.getSelection() : this.defaultText;
selText = this.openTag + selText + this.closeTag;
editor.replaceSelection(selText);
editor.focus();
e.preventDefault();
return false;
}
textarea.focus();
if (document.selection && document.selection.createRange) {
// IE/Opera
range = document.selection.createRange();
selText = range.text;
if (!selText.length) {
selText = this.defaultText;
}
if (this.everyline && -~selText.indexOf('\n')) {
splitText = this._applyEveryLine(this.openTag, this.closeTag,
selText);
range.text = splitText.join('\n');
} else {
range.text = this.openTag + selText + this.closeTag;
if (range.moveStart) {
range.moveStart('character', (-1 * this.openTag.length) -
selText.length);
range.moveEnd('character', (-1 * this.closeTag.length));
}
}
range.select();
} else if (textarea.selectionStart || parseInt(textarea.selectionStart) === 0) {
// Firefox/Safari/Chrome/etc.
selStart = textarea.selectionStart;
selEnd = textarea.selectionEnd;
selText = textarea.value.substring(selStart, selEnd);
if (!selText.length) {
selText = this.defaultText;
}
if (this.everyline && -~selText.indexOf('\n')) {
splitText = this._applyEveryLine(this.openTag, this.closeTag,
selText).join('\n');
textarea.value =
textarea.value.substring(0, textarea.selectionStart) +
splitText +
textarea.value.substring(textarea.selectionEnd);
textarea.selectionStart = selStart;
textarea.selectionEnd = textarea.selectionStart +
splitText.length;
} else {
textarea.value =
textarea.value.substring(0, textarea.selectionStart) +
this.openTag + selText + this.closeTag +
textarea.value.substring(textarea.selectionEnd);
textarea.selectionStart = selStart + this.openTag.length;
textarea.selectionEnd = textarea.selectionStart +
selText.length;
}
}
$(textarea).scrollTop(scrollTop);
e.preventDefault();
return false;
},