// Global range object variable
var rng;

// Return TextRange.findText( ) third parameter arguments
function getArgs(caseSensitive, wholeWord) {
    var isCaseSensitive = (caseSensitive) ? 4 : 0;
    var isWholeWord = (wholeWord) ? 2 : 0;
    return isCaseSensitive ^ isWholeWord;
}

// Unprompted search and replace
function srBatch(container, url) {
    if (url) {
        var args = getArgs(false, true);
        rng = document.body.createTextRange( );
        rng.moveToElementText(container);
        for (var i = 0; rng.findText(url, 1000000, args); i++) {
                var replace = '<a href="' + url + '">' + url + '</a>';
            rng.pasteHTML(replace);
            rng.collapse(true);
        }
    }
}

function autolinkzz(s)
{
        var hlink = /(ht|f)tp:\/\/([^ \,\;\:\!\)\(\"\'\<\>\f\n\r\t\v])+/gi;
    var ketemu = s.match(hlink);

    if(ketemu != null)
            for(i=0; i<ketemu.length; i++)
                        srBatch(document.body, ketemu[i]);
}

var bodycontent = document.body.innerHTML;
autolinkzz(bodycontent);