/* Reversible Unicode-to-Roman transliteration for Cree projects (on the Web)
   Radu Luchian, for the www.eastcree.org project
   use according to the OSI Free Academic License */

var phosyl=new Array(
// phonetic mapping
"z::s", "j::ch", "b::p", "d::t", "g::k", "o::u", "f::v", "q::k"
);

function rtou(txt){
 var a=new Array(),re;
 for(i=0;i<phosyl.length;i++){
  a=phosyl[i].split('::');
  re=new RegExp(a[0],"ig");
  txt=txt.replace(re,a[1]);
 }
 for(i=0;i<rtous.length;i++){
  a=rtous[i].split('::');
  re=new RegExp(a[0],"ig");
  txt=txt.replace(re,a[1]);
 }
 
 var j=txt.indexOf(' ');
 while (j>=0) {
   if (txt.charAt(j-1)=='ᐅ')
     txt=txt.substring(0,j-1)+"ᐤ"+txt.substring(j);
   j=txt.indexOf(' ',j+1);
 }
 if (txt.charAt(txt.length-1)=='ᐅ')
   txt=txt.substring(0,txt.length-1)+"ᐤ";
   
 txt=' '+txt+' ';
 txt=txt.replace(' ᐤ ',' ᐅ ');
 txt=txt.substring(1,txt.length-1);
 
 return txt;
}

function utor(txt){
 var a=new Array(),re;
 for(i=0;i<rtous.length;i++){
  a=rtous[i].split('::');
  re=new RegExp(a[1],"ig");
  txt=txt.replace(re,a[0]);
 }
 txt=txt.replace('ᐤ','u');
 return txt;
}
var rtous=new Array(
// hacks
"t-h::ᑦᐦ", "\\.\\.\\.::…", 

// main syllabary
"pe::ᐯ","pwe::ᐧᐯ","pii::ᐲ","pi::ᐱ","puu::ᐴ","pu::ᐳ","pwaa::ᐧᐹ","paa::ᐹ","pa::ᐸ","p::ᑉ",

"the::ᕞ","thwe::ᐧᕞ","thii::ᕢ","thi::ᕠ","thuu::ᕥ","thu::ᕤ","thwaa::ᐧᕧ","thaa::ᕧ","tha::ᕦ","th::ᕪ",

"te::ᑌ","twe::ᐧᑌ","tii::ᑏ","ti::ᑎ","tuu::ᑑ","tu::ᑐ","taa::ᑖ","ta::ᑕ","twaa::ᐧᑖ","t::ᑦ",

"ke::ᑫ","kwe::ᐧᑫ","kii::ᑮ","ki::ᑭ","kuu::ᑰ","ku::ᑯ","kwaa::ᐧᑳ","kaa::ᑳ","ka::ᑲ","kw::ᒄ","k::ᒃ",

"che::ᒉ","chwe::ᐧᒉ","chii::ᒌ","chi::ᒋ","chuu::ᒎ","chu::ᒍ","chwaa::ᐧᒑ","chaa::ᒑ","cha::ᒐ","ch::ᒡ",

"me::ᒣ","mwe::ᐧᒣ","mii::ᒦ","mi::ᒥ","muu::ᒨ","mu::ᒧ","mwaa::ᐧᒫ","maa::ᒫ","ma::ᒪ","mw::ᒽ","m::ᒻ",

"ne::ᓀ","nwe::ᐧᓀ","nii::ᓃ","ni::ᓂ","nuu::ᓅ","nu::ᓄ","nwaa::ᐧᓈ","naa::ᓈ","na::ᓇ","n::ᓐ",

"le::ᓓ","lwe::ᐧᓓ","lii::ᓖ","li::ᓕ","luu::ᓘ","lu::ᓗ","lwaa::ᐧᓛ","laa::ᓛ","la::ᓚ","l::ᓪ",

"she::ᔐ","shwe::ᐧᔐ","shii::ᔒ","shi::ᔑ","shuu::ᔔ","shu::ᔓ","shwaa::ᐧᔖ","shaa::ᔖ","sha::ᔕ","sh::ᔥ",

"se::ᓭ","swe::ᐧᓭ","sii::ᓰ","si::ᓯ","suu::ᓲ","su::ᓱ","swaa::ᐧᓵ","saa::ᓵ","sa::ᓴ","s::ᔅ",

"ye::ᔦ","ywe::ᐧᔦ","yii::ᔩ","yi::ᔨ","yuu::ᔫ","yu::ᔪ","ywaa::ᐧᔮ","yaa::ᔮ","ya::ᔭ","y::ᔾ",

"re::ᕃ","rwe::ᐧᕃ","rii::ᕇ","ri::ᕆ","ruu::ᕉ","ru::ᕈ","rwaa::ᐧᕌ","raa::ᕌ","ra::ᕋ","r::ᕐ",

"ve::ᕓ","vwe::ᐧᕓ","vii::ᕖ","vi::ᕕ","vuu::ᕘ","vu::ᕗ","vwaa::ᐧᕚ","vaa::ᕚ","va::ᕙ","v::ᕝ",

"e::ᐁ","ii::ᐄ","i::ᐃ","uu::ᐆ","u::ᐅ","aa::ᐋ","a::ᐊ","h::ᐦ",

"we::ᐧᐁ","wii::ᐧᐄ","wi::ᐧᐃ","wuu::ᐧᐆ","wu::ᐧᐅ","waa::ᐧᐋ","wa::ᐧᐊ",

"w::ᐧ",

"\\.::᙮");

