// rk.js
// Copyright © 2006 by akaringo. All rights resetved.
// JavaScript ファイル UTF-8
var RomaKana = [[,{"â":"aa","î":"ii","û":"uu","ê":"ee","ô":"oう","ā":"aa","ī":"ii","ū":"uu","ē":"ee"
,"ō":"oう"},{"kk":"っk","ss":"っs","tt":"っt","hh":"っh","ff":"っf","gg":"っg","zz":"っz","jj":"っj"
,"dd":"っd","bb":"っb","pp":"っp","a-":"aあ","i-":"iい","u-":"uう","e-":"eえ","o-":"oう"}],[,{"a":
"あ","i":"い","u":"う","e":"え","o":"お","n":"ん","'":"っ","m":"ん","t":"っ"},{"ka":"か","ki":"き",
"ku":"く","ke":"け","ko":"こ","sa":"さ","si":"すぃ","su":"す","se":"せ","so":"そ","ta":"た","ti":
"てぃ","tu":"とぅ","te":"て","to":"と","na":"な","ni":"に","nu":"ぬ","ne":"ね","no":"の","ha":"は",
"hi":"ひ","hu":"ふ","he":"へ","ho":"ほ","ma":"ま","mi":"み","mu":"む","me":"め","mo":"も","ya":"や",
"yu":"ゆ","ye":"いぇ","yo":"よ","ra":"ら","ri":"り","ru":"る","re":"れ","ro":"ろ","wa":"わ","wi":
"うぃ","we":"うぇ","wo":"うぉ","fa":"ふぁ","fi":"ふぃ","fu":"ふ","fe":"ふぇ","fo":"ふぉ","ga":"が",
"gi":"ぎ","gu":"ぐ","ge": "げ","go":"ご","za":"ざ","zi":"ずぃ","zu":"ず","ze":"ぜ","zo":"ぞ","da":
"だ","di":"でぃ","du":"どぅ","de":"で","do":"ど","ba":"ば","bi":"び","bu":"ぶ","be":"べ","bo":"ぼ",
"pa":"ぱ","pi":"ぴ","pu":"ぷ","pe":"ぺ","po":"ぽ","ja":"じゃ","ji":"じ","ju":"じゅ","je":"じぇ","jo"
:"じょ","va":"ゔぁ","vi":"ゔぃ","vu":"ゔ","ve":"ゔぇ","vo":"ゔぉ","'a":"あ","'i":"い","'u":"う","'e"
:"え","'o":"お"},{"kya":"きゃ","kyu":"きゅ","kyo":"きょ","kwa":"くゎ","kwi":"くぃ","kwe":"くぇ",
"kwo":"くぉ","sha":"しゃ","shi":"し","shu":"しゅ","she":"しぇ","sho":"しょ","cha":"ちゃ","chi":"ち",
"chu":"ちゅ","che":"ちぇ","cho":"ちょ","tya":"てゃ","tyu":"てゅ","tyo":"てょ","tsa":"つぁ","tsi":
"つぃ","tsu":"つ","tse":"つぇ","tso":"つぉ","nya":"にゃ","nyu":"にゅ","nyo":"にょ","hya":"ひゃ",
"hyu":"ひゅ","hyo": "ひょ","mya":"みゃ","myu":"みゅ","myo":"みょ","rya":"りゃ","ryu":"りゅ","ryo":
"りょ","gya":"ぎゃ","gyu":"ぎゅ","gyo":"ぎょ","dya":"でゃ","dyu":"でゅ","dyo":"でょ","bya":"びゃ",
"byu":"びゅ","byo":"びょ","pya":"ぴゃ","pyu":"ぴゅ","pyo":"ぴゅ","'ya":"や","'yu":"ゆ","'ye":"いぇ",
"'yo":"よ"}]];
var KanaRomaF = {"あ":"a","い":"i","う":"u","え":"e","お":"o","か":"ka","き":"ki","く":"ku","け":
"ke","こ":"ko","さ":"sa","し":"si","す":"su","せ":"se","そ":"so","た":"ta","ち":"ti","つ":"tu","て":
"te","と":"to","な":"na","に":"ni","ぬ":"nu","ね":"ne","の":"no","は":"ha","ひ":"hi","ふ":"hu","へ":
"he","ほ":"ho","ま":"ma","み":"mi","む":"mu","め":"me","も":"mo","や":"ya","ゆ":"yu","よ":"yo","ら":
"r","り":"r","る":"r","れ":"r","ろ":"r","わ":"wa","ん":"n","が":"ka","ぎ":"ki","ぐ":"ku","げ":"ke",
"ご":"ko","ざ":"sa","じ":"si","ず":"su","ぜ":"se","ぞ":"so","だ":"ta","ぢ":"ti","づ":"tu","で":"te",
"ど":"to","ば":"ha","び":"hi","ぶ":"hu","べ":"he","ぼ":"ho","ぱ":"ha","ぴ":"hi","ぷ":"hu","ぺ":"he",
"ぽ":"ho"};
var KanaRoma = [[,{"あ":"a","い":"i","う":"u","え":"e","お":"o","か":"ka","き":"ki","く":"ku","け":
"ke","こ":"ko","さ":"sa","し":"shi","す":"su","せ":"se","そ":"so","た":"ta","ち":"chi","つ":"tsu",
"て":"te","と":"to","な":"na","に":"ni","ぬ":"nu","ね":"ne","の":"no","は":"ha","ひ":"hi","ふ":"fu",
"へ":"he","ほ":"ho","ま":"ma","み":"mi","む":"mu","め":"me","も":"mo","や":"ya","ゆ":"yu","よ":"yo",
"ら":"ra","り":"ri","る":"ru","れ":"re","ろ":"ro","わ":"wa","が":"ga","ぎ":"gi","ぐ":"gu","げ":"ge",
"ご":"go","ざ":"za","じ":"ji","ず":"zu","ぜ":"ze","ぞ":"zo","だ":"da","ぢ":"ji","づ":"zu","で":"de",
"ど":"do","ば":"ba","び":"bi","ぶ":"bu","べ":"be","ぼ":"bo","ぱ":"pa","ぴ":"pi","ぷ":"pu","ぺ":"pe",
"ぽ":"po","－":"ー","・":""},{"きゃ":"kya","きゅ":"kyu","きょ":"kyo","しゃ":"sha","しゅ":"shu",
"しぇ":"she","しょ":"sho","ちゃ":"cha","ちゅ":"chu","ちぇ":"che","ちょ":"cho","つぁ":"tsa","つぃ":
"tsi","つぇ":"tse","つぉ":"tso","てぃ":"ti","とぅ":"tu","にゃ":"nya","にゅ":"nyu","にょ":"nyo",
"ひゃ":"hya","ひゅ":"hyu","ひょ":"hyo","ふぁ":"fa","ふぃ":"fi","ふぇ":"fe","ふぉ":"fo","ひゃ":"hya",
"ひゅ":"hyu","ひょ":"hyo","みゃ":"mya","みゅ":"myu","みょ":"myo","りゃ":"rya","りゅ":"ryu","りょ":
"ryo","ぎゃ":"gya","ぎゅ":"gyu","ぎょ":"gyo","じゃ":"ja","じゅ":"ju","じぇ":"je","じょ":"jo","ずぃ":
"zi","ぢゃ":"ja","ぢゅ":"ju","ぢぇ":"je","ぢょ":"jo","でぃ":"di","どぅ":"du","びゃ":"bya","びゅ":
"byu","びょ":"byo","ぴゃ":"pya","ぴゅ":"pyu","ぴょ":"pyo"}],[,{"っ":"'","ん":"n"},{"っk":"kk","っs":
"ss","っt":"tt","っn":"nn","っh":"hh","っg":"gg","っz":"zz","っj":"jj","っd":"dd","っb":"bb","っp":
"pp","っc":"tc","んm":"mm","んb":"mb","んp":"mp","んa":"n'a","んi":"n'i","んu":"n'u","んe":"n'e",
"んo":"n'o","んy":"n'y","aー":"a-","iー":"ii","uー":"u-","eー":"e-","ee":"e-","ou":"o-","oー":"oo"}]
];

function KataToHira(s) {
    var h = "";
    for (var i = 0; i < s.length; i++) {
        var c = s.charCodeAt(i);
        h += String.fromCharCode((c > 0x30a0 && c <= 0x30f4) ? c - 0x60 : c);
    }
    return h;
}

function RomaToKana(s) {
    var k = "";
    for (var m = 0; m < RomaKana.length; m++) {
        for (var i = 0; i < s.length; ) {
            var l, t, rk = RomaKana[m];
            for (l = rk.length - 1; l; l--) {
                t = s.substr(i, l);
                if (t in rk[l]) {
                    k += rk[l][t];
                    i += l;
                    break;
                }
            }
            if (l == 0) {
              k += t;
              i++;
            }
        }
        s = k;
        k = "";
    }
    return s;
}

function KanaToRoma(s) {
    s = KataToHira(s);
    var k = "";
    for (var m = 0; m < KanaRoma.length; m++) {
        for (var i = 0; i < s.length; ) {
            var l, t, rk = KanaRoma[m];
            for (l = rk.length - 1; l; l--) {
                t = s.substr(i, l);
                if (t in rk[l]) {
                    k += rk[l][t];
                    i += l;
                    break;
                }
            }
            if (l == 0) {
              k += t;
              i++;
            }
        }
        s = k;
        k = "";
    }
    return s;
}

