Get current caret/cursor position

HTML

<textarea id="textarea" style="width:80%;height:100px;">
You can move caret around in this textarea and there should be a position indicator below which tells you what the caret position in this textarea is.
Line break
</textarea><br><input type="text" id="indicator" style="width:30px;">

JavaScript

var indicator	= document.getElementById("indicator");
 var textarea	= document.getElementById("textarea");
 setInterval(function() { indicator.value = caret(textarea);}, 100);

/*
     FILE ARCHIVED ON 3:43:49 Mar 29, 2007 AND RETRIEVED FROM THE
     INTERNET ARCHIVE ON 6:59:16 Nov 12, 2015.
     JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.

     ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
     SECTION 108(a)(3)).
*/
function caret(node) {
 if(node.selectionStart) return node.selectionStart;
 else if(!document.selection) return 0;
 //node.focus();
 var c		= "\001";
 var sel	= document.selection.createRange();
 var txt	= sel.text;
 var dul	= sel.duplicate();
 var len	= 0;
 try{ dul.moveToElementText(node); }catch(e) { return 0; }
 sel.text	= txt + c;
 len		= (dul.text.indexOf(c));
 sel.moveStart('character',-1);
 sel.text	= "";
 return len;
}