Emoji text for Twitter

HTML

<input type="button" onclick="getimg()" value="Do"/>
<span class="small" title="Turn REGIONAL INDICATOR SYMBOL LETTER and DIGIT + COMBINING ENCLOSING KEYCAP into emoji images">
<input type="checkbox" id="emotext" checked="checked" onclick="getimg()"/><label for="emotext">Emojify txt</label></span>
<span class="small" title="Insert zero-width non-joiner between every RIS pair to prevent flag combinations on Twitter/etc.">
<input type="checkbox" id="break" checked="checked" onclick="getimg()"/><label for="break">Breakup flags</label></span>
&nbsp;&nbsp;<a class="small" href="http://pastebin.com/raw/sYUpYx7Y">v2 list</a>
&nbsp;&nbsp;Length: <span id="len"></span><br>
Text goes in:
<textarea id="inp" onkeyup="getimg()"></textarea>
Tweet this: <input type="button" value="Select all" onclick="selecty()"/><input type="button" value="popout selection" onclick="selecty(true)"/>
<textarea id="out"></textarea>

<div id="preview"></div>

CSS

textarea {width:100%;height:6em;display:block;}
.small {font-size:75%;}
img {width:1.25em;height:1.25em;padding:0 0.05em 0 0.1em;vertical-align:-0.2em;border:0 none;}
#preview {margin:2px;padding:2px;border:1px solid black;white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:18px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}

JavaScript

var textsub = [
  //symbols
  ['!!','\u203c'],  ['!?','\u2049'],  ['?','\u2753'],  ['!','\u2757'],
  //misc letter groups
  ['abc','\uD83D\uDD24'],  ['ab','\uD83C\uDD8E'],  ['atm','\uD83C\uDFE7'],  ['cl','\uD83C\uDD91'],
  ['cool','\uD83C\uDD92'],  ['free','\uD83C\uDD93'],  ['id','\uD83C\uDD94'],  ['new','\uD83C\uDD95'],
  ['ng','\uD83C\uDD96'],  ['ok','\uD83C\uDD97'],  ['sos','\uD83C\uDD98'],  ['up','\uD83C\uDD99'],
  ['vs','\uD83C\uDD9A'],  
  //numbers, #
  ['100','\uD83D\uDCAF'],  ['10','\uD83D\uDD1F'],  ['18','\uD83D\uDD1E'],  ['0','0\u20E3'],  ['1','1\u20E3'],  ['2','2\u20E3'],
  ['3','3\u20E3'],  ['4','4\u20E3'],  ['5','5\u20E3'],  ['6','6\u20E3'],  ['777','\uD83C\uDFB0'],  ['7','7\u20E3'],
  ['8','8\u20E3'],  ['9','9\u20E3'],  ['*','*\u20E3'],  ['#','#\u20E3'],
  //letters
  ['A','\uD83C\uDDE6'],  ['B','\uD83C\uDDE7'],  ['C','\uD83C\uDDE8'],  ['D','\uD83C\uDDE9'],
  ['E','\uD83C\uDDEA'],  ['F','\uD83C\uDDEB'],  ['G','\uD83C\uDDEC'],  ['H','\uD83C\uDDED'],
  ['I','\uD83C\uDDEE'],  ['J','\uD83C\uDDEF'],  ['K','\uD83C\uDDF0'],  ['L','\uD83C\uDDF1'],
  ['M','\uD83C\uDDF2'],  ['N','\uD83C\uDDF3'],  ['O','\uD83C\uDDF4'],  ['P','\uD83C\uDDF5'],
  ['Q','\uD83C\uDDF6'],  ['R','\uD83C\uDDF7'],  ['S','\uD83C\uDDF8'],  ['T','\uD83C\uDDF9'],
  ['U','\uD83C\uDDFA'],  ['V','\uD83C\uDDFB'],  ['W','\uD83C\uDDFC'],  ['X','\uD83C\uDDFD'],
  ['Y','\uD83C\uDDFE'],  ['Z','\uD83C\uDDFF']
];

var combo = [
  '1f469-200d-2764-fe0f-200d-1f48b-200d-1f469',  '1f468-200d-2764-fe0f-200d-1f48b-200d-1f468',  '1f469-200d-2764-fe0f-200d-1f48b-200d-1f468',
  '1f469-200d-1f469-200d-1f467-200d-1f467',  '1f469-200d-1f469-200d-1f467-200d-1f466',  '1f469-200d-1f469-200d-1f466-200d-1f466',
  '1f468-200d-1f469-200d-1f466-200d-1f466',  '1f468-200d-1f468-200d-1f467-200d-1f467',  '1f468-200d-1f468-200d-1f467-200d-1f466',
  '1f468-200d-1f469-200d-1f467-200d-1f467',  '1f468-200d-1f469-200d-1f467-200d-1f466',  '1f468-200d-1f468-200d-1f466-200d-1f466',
  '1f469-200d-2764-fe0f-200d-1f469', ...