(function($) {
    $.fn.addtocopy=function(d){
        var e={
            htmlcopytxt:'<br>More: <a href="'+window.location.href+'">'+window.location.href+'</a><br>',
            minlen:25,
            addcopyfirst:false
        };
        $.extend(e,d);
        var f=document.createElement('span');
        f.id='ctrlcopy';
        f.innerHTML=e.htmlcopytxt;
        return this.each(
            function(){
                $(this).mousedown(function(){$('#ctrlcopy').remove()});
                $(this).mouseup(
                    function(){
                        if(window.getSelection){
                            var a=window.getSelection();
                            var b=a.toString();
                            if(!b||b.length<e.minlen)
                                return;
                            var c=a.getRangeAt(0);
                            b=c.cloneRange();
                            b.collapse(e.addcopyfirst);
                            b.insertNode(f);
                            if(!e.addcopyfirst)
                                c.setEndAfter(f);
                            a.removeAllRanges();
                            a.addRange(c)
                        } else if(document.selection){
                            var a=document.selection;
                            var c=a.createRange();
                            var b=c.text;
                            if(!b||b.length<e.minlen)
                                return;
                            b=c.duplicate();
                            b.collapse(e.addcopyfirst);
                            b.pasteHTML(f.outerHTML);
                            if(!e.addcopyfirst){
                                c.setEndPoint("EndToEnd",b);
                                c.select();
                            }
                        }
                    }
                );
            }
        );
    }
})(jQuery);
