//////////////////////////////////////////////////////////////////////////////////////////////
//	RIPARU CX ^C KTP POR ESPERANTO
//	(de A. Irvine 2007, beta-versio)
//	http://traduku.net/eoriparu.js
//
//////////////////////////////////////////////////////////////////////////////////////////////

function riparu(kiu)
{
	var teksto = document.getElementById(kiu).value;

	teksto = teksto.replace(/([Xx][Xx])/g,"__$1__");
	teksto = teksto.replace(/C[Xx]/g,"\u0108");
	teksto = teksto.replace(/c[Xx]/g,"\u0109");
	teksto = teksto.replace(/G[Xx]/g,"\u011C");
	teksto = teksto.replace(/g[Xx]/g,"\u011D");
	teksto = teksto.replace(/H[Xx]/g,"\u0124");
	teksto = teksto.replace(/h[Xx]/g,"\u0125");
	teksto = teksto.replace(/J[Xx]/g,"\u0134");
	teksto = teksto.replace(/j[Xx]/g,"\u0135");
	teksto = teksto.replace(/S[Xx]/g,"\u015C");
	teksto = teksto.replace(/s[Xx]/g,"\u015D");
	teksto = teksto.replace(/([AaEe])U[Xx]/g,"$1\u016C");
	teksto = teksto.replace(/([AaEe])u[Xx]/g,"$1\u016D");
	teksto = teksto.replace(/V[Xx]/g,"\u016C");
	teksto = teksto.replace(/v[Xx]/g,"\u016D");
	teksto = teksto.replace(/__([Xx][Xx])__/g,"$1");

	teksto = teksto.replace(/\^C/g,"\u0108");
	teksto = teksto.replace(/\^c/g,"\u0109");
	teksto = teksto.replace(/\^G/g,"\u011C");
	teksto = teksto.replace(/\^g/g,"\u011D");
	teksto = teksto.replace(/\^H/g,"\u0124");
	teksto = teksto.replace(/\^h/g,"\u0125");
	teksto = teksto.replace(/\^J/g,"\u0134");
	teksto = teksto.replace(/\^j/g,"\u0135");
	teksto = teksto.replace(/\^S/g,"\u015C");
	teksto = teksto.replace(/\^s/g,"\u015D");
	teksto = teksto.replace(/~U/g,"\u016C");
	teksto = teksto.replace(/~u/g,"\u016D");
	teksto = teksto.replace(/\)U/g,"\u016C");
	teksto = teksto.replace(/\)u/g,"\u016D");

	teksto = teksto.replace(/C\^/g,"\u0108");
	teksto = teksto.replace(/c\^/g,"\u0109");
	teksto = teksto.replace(/G\^/g,"\u011C");
	teksto = teksto.replace(/g\^/g,"\u011D");
	teksto = teksto.replace(/H\^/g,"\u0124");
	teksto = teksto.replace(/h\^/g,"\u0125");
	teksto = teksto.replace(/J\^/g,"\u0134");
	teksto = teksto.replace(/j\^/g,"\u0135");
	teksto = teksto.replace(/S\^/g,"\u015C");
	teksto = teksto.replace(/s\^/g,"\u015D");
	teksto = teksto.replace(/U~/g,"\u016C");
	teksto = teksto.replace(/u~/g,"\u016D");
	teksto = teksto.replace(/U\(/g,"\u016C");
	teksto = teksto.replace(/u\(/g,"\u016D");

	teksto = teksto.replace(/'C/g,"\u0108");
	teksto = teksto.replace(/'c/g,"\u0109");
	teksto = teksto.replace(/'G/g,"\u011C");
	teksto = teksto.replace(/'g/g,"\u011D");
	teksto = teksto.replace(/'H/g,"\u0124");
	teksto = teksto.replace(/'h/g,"\u0125");
	teksto = teksto.replace(/'J/g,"\u0134");
	teksto = teksto.replace(/'j/g,"\u0135");
	teksto = teksto.replace(/'S/g,"\u015C");
	teksto = teksto.replace(/'s/g,"\u015D");
	teksto = teksto.replace(/'U/g,"\u016C");
	teksto = teksto.replace(/'u/g,"\u016D");

	teksto = teksto.replace(/C'(\S)/g,"\u0108$1");
	teksto = teksto.replace(/c'(\S)/g,"\u0109$1");
	teksto = teksto.replace(/G'(\S)/g,"\u011C$1");
	teksto = teksto.replace(/g'(\S)/g,"\u011D$1");
	teksto = teksto.replace(/H'(\S)/g,"\u0124$1");
	teksto = teksto.replace(/h'(\S)/g,"\u0125$1");
	teksto = teksto.replace(/J'(\S)/g,"\u0134$1");
	teksto = teksto.replace(/j'(\S)/g,"\u0135$1");
	teksto = teksto.replace(/S'(\S)/g,"\u015C$1");
	teksto = teksto.replace(/s'(\S)/g,"\u015D$1");
	teksto = teksto.replace(/U'(\S)/g,"\u016C$1");
	teksto = teksto.replace(/u'(\S)/g,"\u016D$1");

	teksto = teksto.replace(/\u00C4\u0088/g,"\u0108");
	teksto = teksto.replace(/\u00C4\u02C6/g,"\u0108"); // char 88 ighemas ^
	teksto = teksto.replace(/\u00C4\u0089/g,"\u0109");
	teksto = teksto.replace(/\u00C4\u2030/g,"\u0109"); // char 89 ighemas o/oo
	teksto = teksto.replace(/\u00C4\u009C/g,"\u011C");
	teksto = teksto.replace(/\u00C4\u0153/g,"\u011C"); // char 9C ighemas oe
	teksto = teksto.replace(/\u00C4\u009D/g,"\u011D");
	//teksto = teksto.replace(/\u00C4\u????/g,"\u011D"); // char 9D ighemas ?
	teksto = teksto.replace(/\u00C4\u00A4/g,"\u0124");
	teksto = teksto.replace(/\u00C4\u00A5/g,"\u0125");
	teksto = teksto.replace(/\u00C4\u00B4/g,"\u0134");
	teksto = teksto.replace(/\u00C4\u00B5/g,"\u0135");
	teksto = teksto.replace(/\u00C5\u009C/g,"\u015C");
	teksto = teksto.replace(/\u00C5\u0153/g,"\u015C"); // char 9C ighemas oe
	teksto = teksto.replace(/\u00C5\u009D/g,"\u015D");
	//teksto = teksto.replace(/\u00C5\u????/g,"\u015D"); // char 9D ighemas ?
	teksto = teksto.replace(/\u00C5\u00AC/g,"\u016C");
	teksto = teksto.replace(/\u00C5\u00AD/g,"\u016D");
	teksto = teksto.replace(/([AaEe])\u00C5/g,"$1\u016D"); // char shy perdita

	while (teksto.match(/&#x(\w+);/i))
	{
		var litero = String.fromCharCode(parseInt(RegExp.$1,16));
		teksto = teksto.replace(/&#x\w+;/i,litero);
	}
	while (teksto.match(/&#(\d+);/i))
	{
		var litero = String.fromCharCode(parseInt(RegExp.$1,10));
		teksto = teksto.replace(/&#\d+;/i,litero);
	}

	document.getElementById(kiu).value=teksto;
}

