tinymce.PluginManager.add("autolink", function(a){function b(a){e(a, - 1, "(", !0)}function c(a){e(a, 0, "", !0)}function d(a){e(a, - 1, "", !1)}function e(a, b, c){function d(a, b){if (0 > b && (b = 0), 3 == a.nodeType){var c = a.data.length; b > c && (b = c)}return b}function e(a, b){1 != a.nodeType || a.hasChildNodes()?h.setStart(a, d(a, b)):h.setStartBefore(a)}function f(a, b){1 != a.nodeType || a.hasChildNodes()?h.setEnd(a, d(a, b)):h.setEndAfter(a)}var h, i, j, k, l, m, n, o, p, q; if ("A" != a.selection.getNode().tagName){if (h = a.selection.getRng(!0).cloneRange(), h.startOffset < 5){if (o = h.endContainer.previousSibling, !o){if (!h.endContainer.firstChild || !h.endContainer.firstChild.nextSibling)return; o = h.endContainer.firstChild.nextSibling}if (p = o.length, e(o, p), f(o, p), h.endOffset < 5)return; i = h.endOffset, k = o} else{if (k = h.endContainer, 3 != k.nodeType && k.firstChild){for (; 3 != k.nodeType && k.firstChild; )k = k.firstChild; 3 == k.nodeType && (e(k, 0), f(k, k.nodeValue.length))}i = 1 == h.endOffset?2:h.endOffset - 1 - b}j = i; do e(k, i >= 2?i - 2:0), f(k, i >= 1?i - 1:0), i -= 1, q = h.toString(); while (" " != q && "" !== q && 160 != q.charCodeAt(0) && i - 2 >= 0 && q != c); h.toString() == c || 160 == h.toString().charCodeAt(0)?(e(k, i), f(k, j), i += 1):0 === h.startOffset?(e(k, 0), f(k, j)):(e(k, i), f(k, j)), m = h.toString(), "." == m.charAt(m.length - 1) && f(k, j - 1), m = h.toString(), n = m.match(g), n && ("www." == n[1]?n[1] = "http://www.":/@$/.test(n[1]) && !/^mailto:/.test(n[1]) && (n[1] = "mailto:" + n[1]), l = a.selection.getBookmark(), a.selection.setRng(h), a.execCommand("createlink", !1, n[1] + n[2]), a.selection.moveToBookmark(l), a.nodeChanged())}}var f, g = /^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i; return a.settings.autolink_pattern && (g = a.settings.autolink_pattern), a.on("keydown", function(b){return 13 == b.keyCode?d(a):void 0}), tinymce.Env.ie?void a.on("focus", function(){if (!f){f = !0; try{a.execCommand("AutoUrlDetect", !1, !0)} catch (b){}}}):(a.on("keypress", function(c){return 41 == c.keyCode?b(a):void 0}), void a.on("keyup", function(b){return 32 == b.keyCode?c(a):void 0}))});
|