+ // Only focus if input isn't already
+ if (!$el.is(":focus")) {
+ $el.focus();
+ }
+
+ // If this function exists... (IE 9+)
+ if (el.setSelectionRange) {
+ // Double the length because Opera is inconsistent about whether a carriage return is one character or two.
+ var len = $el.val().length * 2;
+
+ // Timeout seems to be required for Blink
+ setTimeout(function() {
+ el.setSelectionRange(len, len);
+ }, 1);
+ } else {
+ // As a fallback, replace the contents with itself
+ // Doesn't work in Chrome, but Chrome supports setSelectionRange
+ $el.val($el.val());
+ }
+
+ // Scroll to the bottom, in case we're in a tall textarea
+ // (Necessary for Firefox and Chrome)
+ this.scrollTop = 999999;
+ });
+};
+
+function commentGetLink(id, prompttext) {
+ reply = prompt(prompttext);
+ if(reply && reply.length) {
+ reply = bin2hex(reply);
+ $.get('parse_url?noAttachment=1&binurl=' + reply, function(data) {
+ addCommentText(data, id);
+ });
+ }
+}
+
+function addCommentText(data, id) {
+ // get the textfield
+ var textfield = document.getElementById("comment-edit-text-" + id);
+ // check if the textfield does have the default-value
+ commentOpenUI(textfield, id);
+ // save already existent content
+ var currentText = $("#comment-edit-text-" + id).val();
+ //insert the data as new value
+ textfield.value = currentText + data;
+ autosize.update($("#comment-edit-text-" + id));
+}
+
+function commentLinkDrop(event, id) {
+ var reply = event.dataTransfer.getData("text/uri-list");
+ event.target.textContent = reply;
+ event.preventDefault();
+ if (reply && reply.length) {
+ reply = bin2hex(reply);
+ $.get('parse_url?noAttachment=1&binurl=' + reply, function(data) {
+ addCommentText(data, id);
+ });
+ }
+}
+
+function commentLinkDropper(event) {
+ var linkFound = event.dataTransfer.types.contains("text/uri-list");
+ if (linkFound) {
+ event.preventDefault();
+ }
+}
+
+
+function insertFormatting(BBcode, id) {