Flip Text

by itzmeamar

HTML

<h1>Flip Text</h1>
        <form name="f">
            <label>Original:</label><textarea rows="5" cols="50" name="original" id="txtOriginal"></textarea>
            <br>
            <label>Flipped:</label><textarea rows="5" cols="50" name="flipped" id="txtFlipped"></textarea>
        </form>

CSS

textarea {
                font-family: "Arial Unicode MS", Batang;
                float: left;
                display: block;
            }
            
            label {
                width: 70px;
                float: left;
                clear: both;
                display: block;
            }

JavaScript

$(document).ready(function() {
                $("#txtOriginal")
                    .focus()
                    .keyup(flip);
            });
            
            function flip() {
                $("#txtFlipped").val(flipString($("#txtOriginal").val().toLowerCase()));
            }

            function flipString(aString) {
                var last = aString.length - 1;
                //Thanks to Brook Monroe for the
                //suggestion to use Array.join
                var result = new Array(aString.length)
                for (var i = last; i >= 0; --i) {
                    var c = aString.charAt(i)
                    var r = flipTable[c]
                    result[last - i] = r != undefined ? r : c
                }
                return result.join('')
            }

            var flipTable = {
                a : '\u0250',
                b : 'q',
                c : '\u0254', //open o -- from pne
                d : 'p',
                e : '\u04D9',
                //e : '\u01DD',
                f : '\u025F', //from pne
                g : '\u0183',
                h : '\u0265',
                i : '\u0131', //from pne
                j : '\u027E',
                k : '\u029E',
                //l : '\u0283',
                m : '\u026F',
                n : 'u',
                r : '\u0279',
                t : '\u0287',
                v : '\u028C',
                w : '\u028D',
                y : '\u028E',
                '.' : '\u02D9',
                '[' : ']',
                '(' : ')',
                '{' : '}',
                '?' : '\u00BF', //from pne
                '!' : '\u00A1',
                "\'" : ',',
                '<' : '>',
                '_' : '\u203E',
                ';' : '\u061B',
                '\u203F' : '\u2040',
                '\u2045' : '\u2046',
                '\u2234' : '\u2235',
                '\r' : '\n'
            }

            for (i in flipTable) {
               ...