jQuery.fn.textNodes = function() {
    var ret = [];
    this.contents().each(function() {
        var fn = arguments.callee;
        if(this.nodeType == 3) {
            ret.push(this);
        } else if(this.nodeType==1 &&!(
        this.tagName.toLowerCase()=='script' ||
        this.tagName.toLowerCase()=='head' ||
        this.tagName.toLowerCase()=='iframe' ||
        this.tagName.toLowerCase()=='textarea' ||
        this.tagName.toLowerCase()=='option' ||
        this.tagName.toLowerCase()=='style' ||
        this.tagName.toLowerCase()=='title' ||
        this.tagName.toLowerCase()=='a')){
            jQuery(this).contents().each(fn);
        }
    });
    return ret;
}

jQuery.fn.hfautolink = function() {
    var fileHosts = new Array(
        'netload.in','fileserve.com','rapidshare.com','megaupload.com','filesonic.com','uploading.com',
        'depositfiles.com','filefactory.com','ugotfile.com','easy-share.com','zshare.net','jiffyupload.com',
        'extabit.com','2shared.com','4shared.com','adrive.com','badongo.com','crazyupload.com',
        'hotfile.com','filesplash.com','filesovermiles.com','fileserver.cc','filerama.com',
        'filemojo.com','filefront.com','fileflyer.com','filedropper.com','filedip.com',
        'filebox.com','filebase.to','file2box.com','evilshare.com','enterupload.com',
        'egoshare.com','earthfilez.com','duckload.com','dualshare.com','divxden.com',
        'filehook.com','bitshare.com','box.net','bitroad.net','axifile.com',
        'filepost.com', 'hostuje.net', 'gigasize.com', 'flyupload.com', 'files.to', 'uploaded.to','ul.to', 'depositfiles.com', 'mediafire.com',
        'filejungle.com', 'uploadstation.com', 'wupload.com', 'videobb.com', 'ul.to', 'uploaded.to','megashares.com','crocko.com','zshare.net',
        'imdb.com','platinumw.org','tvrage.com'
    );
    var regexCache = new Array();

    for(var i = 0; i < fileHosts.length; i++) {
        regexCache[i] = new RegExp('(https?://(?:[A-Z0-9]\.)*(?:' + fileHosts[i] + ')[-()A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|])', "ig");
    }

    this.each(function(i){
        jQuery.each($(this).textNodes(), function(i, node){ 
            text = node.nodeValue;
            for(var i = 0; i < regexCache.length; i++) {
                if(regexCache[i].test(text)) {
                    newNode = document.createElement('span');
                    text = jQuery('<div/>').text(text).html();
                    newNode.innerHTML = text.replace(regexCache[i], '<a href="$1" class="filehostLink" target="_blank" rel="nofollow" >$1</a>');
                    node.parentNode.replaceChild(newNode, node);
                }
            }
        });
    });
}

$(function() {
    $("div").hfautolink();
});

/* credits to Gavo for the code & images in front of the link, we all love you 
        credits to pi0tr3k for making unique 16x16 images ;)  
            credits to Orantham for recoding the whole script - http://platinumw.org */ 
