t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)a($|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)/gi, '$1\u064E$2');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)a($|\s|\.|\?|\!|,|;|\)|\]|\}|\(|\[|\{|")/gi, '$1\u064E\u0647\u0652$2');
t = t.replace(/(^|\s)a/gi, '$1\u0623\u064E');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)u($|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)/gi, '$1\u064F$2');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)u($|\s|\.|\?|\!|,|;|\)|\]|\}|\(|\[|\{|")/gi, '$1\u064F\u0647\u0652$2');
t = t.replace(/(^|\s)u/gi, '$1\u0623\u064F');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)i($|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)/gi, '$1\u0650$2');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)i($|\s|\.|\?|\!|,|;|\)|\]|\}|\(|\[|\{|")/gi, '$1\u0650\u0647\u0652$2');
t = t.replace(/(^|\s)i/gi, '$1\u0625\u0650');
//Glottal Stop
t = t.replace(/(^|[A-Z]|_|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ā|â|ū|û|o|ë|ī|î|ü|ḅ|ṇ|ṃ|ḷ)(')($|\s|\.|\?|\!|,|;|\)|\]|\})/gi, '$1\u0621$3');
t = t.replace(/([^#])(')($|ū|û)/gi, '$1\u0626\u064F\u0648');
t = t.replace(/([^#])(')($|ī|î)/gi, '$1\u0626\u0650\u064A');
t = t.replace(/([^#])(')($|ā|â)/gi, '$1\u0626\u064E\u0627');
t = t.replace(/([^#])(')($|o)/gi, '$1\u0626\u0657\u0648');
t = t.replace(/([^#])(')($|ë)/gi, '$1\u0626\u065d\u0648');
t = t.replace(/([^#])(')($|ü)/gi, '$1\u0626\u065e\u064a');
t = t.replace(/([^#])(')/gi, '$1\u0626');
//Long Vowels
t = t.replace(/(^|\s)(ā|â)/gi, '$1\u0622');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)(ā|â)/gi, '$1\u064E\u0627');
t = t.replace(/(^|\s)(ū|û)/gi, '$1\u0623\u064f\u0648');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)(ū|û)/gi, '$1\u064F\u0648');
t = t.replace(/(^|\s)(o)/gi, '$1\u0623\u0657\u0648');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)(o)/gi, '$1\u0657\u0648');
t = t.replace(/(^|\s)(ë)/gi, '$1\u0623\u065d\u0648');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)(ë)/gi, '$1\u065d\u0648');
t = t.replace(/(^|\s)(ī|î)/gi, '$1\u0625\u0650\u064a');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)(ī|î)/gi, '$1\u0650\u064A');
t = t.replace(/(^|\s)(ü)/gi, '$1\u0625\u065e\u064a');
t = t.replace(/(^|[A-Z]|_|'|ħ|°|\-|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ḅ|ṇ|ṃ|ḷ)(ü)/gi, '$1\u065e\u064A');
//Consonants
t = t.replace(/([^#])b/gi, '$1\u0628');
t = t.replace(/([^#])t/gi, '$1\u062A');
t = t.replace(/([^#])(ṭ|t°|ţ)/gi, '$1\u0637');
t = t.replace(/([^#])(ŧ|t_h)/gi, '$1\u062B');
t = t.replace(/([^#])ç/gi, '$1\u0627');
t = t.replace(/([^#])à/gi, '$1\u0621');
t = t.replace(/([^#])ñ/gi, '$1\u06bc');
t = t.replace(/([^#])ä/gi, '$1\u0649');
t = t.replace(/([^#])ħ/gi, '$1\u0629');
t = t.replace(/([^#])j/gi, '$1\u062c');
t = t.replace(/([^#])(ḥ|ḩ|h°)/gi, '$1\u062d');
t = t.replace(/([^#])x/gi, '$1\u062e');
t = t.replace(/([^#])d/gi, '$1\u062f');
t = t.replace(/([^#])(ḍ|ḑ|d°)/gi, '$1\u0636');
t = t.replace(/([^#])(đ|d_h)/gi, '$1\u0630');
t = t.replace(/([^#])r/gi, '$1\u0631');
t = t.replace(/([^#])(ŗ|r°|ṛ)/gi, '$1\u0695');
t = t.replace(/([^#])z/gi, '$1\u0632');
t = t.replace(/([^#])ḓ/gi, '$1\u0638');
t = t.replace(/([^#])(z°|ẓ)/gi, '$1\u0698');
t = t.replace(/([^#])s/gi, '$1\u0633');
t = t.replace(/([^#])(ṣ|ş|s°)/gi, '$1\u0635');
t = t.replace(/([^#])(c|š|s_h)/gi, '$1\u0634');
t = t.replace(/([^#])(ģ|g°|ô|ɛ|e)/gi, '$1\u0639');
t = t.replace(/([^#])(ġ|ğ|g_h|ɣ)/gi, '$1\u063a');
t = t.replace(/([^#])f/gi, '$1\u0641');
t = t.replace(/([^#])q/gi, '$1\u0642');
t = t.replace(/([^#])k/gi, '$1\u0643');
t = t.replace(/([^#])l/gi, '$1\u0644');
t = t.replace(/([^#])m/gi, '$1\u0645');
t = t.replace(/([^#])n/gi, '$1\u0646');
t = t.replace(/([^#])h/gi, '$1\u0647');
t = t.replace(/([^#])v/gi, '$1\u06A5');
t = t.replace(/([^#])p/gi, '$1\u067e');
t = t.replace(/([^#])g/gi, '$1\u06a8');
t = t.replace(/([^#])w/gi, '$1\u0648');
t = t.replace(/([^#])y/gi, '$1\u064a');
t = t.replace(/([^#])ḅ/gi, '$1\u0755');
t = t.replace(/([^#])ṇ/gi, '$1\u0769');
t = t.replace(/([^#])ṃ/gi, '$1\u0766');
t = t.replace(/([^#])ḷ/gi, '$1\u076a');
//special characters
t = t.replace(/([^#\s])([A-Z]|ħ|ẓ|ç|ṛ|ṭ|ô|ṣ|ḍ|ŧ|đ|ġ|ḥ|ŗ|ţ|ş|ḑ|ģ|ğ|ɛ|e|ɣ|ḩ|ḓ|ñ|ā|â|ū|û|o|ë|ī|î|ü|ḅ|ṇ|ṃ|ḷ)/gi, '$1\u0651');
t = t.replace(/([^#])'(.)/gi, '$1\u0654$2'); //Glottal Stop
t = t.replace(/([^#])\u0654(.)/g, "'$1$2");
t = t.replace(/([^#])\-( )/gi, '$1\u0640$2'); //Tatweel
}
//punctuation
t = t.replace(/([^#])\?/gi, '$1\u061F');
t = t.replace(/([^#]),/gi, '$1\u060C');
t = t.replace(/([^#]);/gi, '$1\u061B');
//Remove escapes
t = t.replace(/#/g, '');
t = t.replace(/\n/g, "<br>");
return t;
}
function biien(textAreaId)
{
var textArea = document.getElementById(textAreaId);
if (typeof document.selection != 'undefined')
{
//For old version of IE
unsupportedBrowserNotification();
}else if (typeof textArea.selectionStart != 'undefined'){
//For firefox and browsers that respect the standards
var start = textArea.selectionStart;
var end = textArea.selectionEnd;
var insertText = textArea.value.substring(start, end).replace(/#/g, "");
Use <code>il-</code> or <code>iC-</code> (<i>Such as C is a Sun Consonant</i>).
<h3>Short Vowels</h3>
Use <code> a, u, i</code> (<i>Add a space or a period if it's at the end of the word</i>).
<h3>Long Vowels</h3>
Use <code>ā, â, ū, û, ī, î</code>.
<h3>Consonants</h3>
Use the consonants described in <i>Deutsche Morgenländische Gesellschaft Transkription</i> including all pharyngealized graphs and excepting <code>c</code> (<code><font color="blue">[ʃ]</font></code>), <code>ɛ</code> or <code>e</code> (<code><font color="blue">[ʕ]</font></code>)
and <code>ḓ</code> for the dhah.<h3>Prepositions like L-, B-...</h3>
Use the form <i>Letter+Hyphen</i>.
<h3>Glottal Stop</h3>
Use <code>'</code> for the Glottal Stop.
<h3>Other characters</h3>
Use <code>ä</code> for Alif Maqsura, <code>ñ</code> after a short vowel to denote that it is a nasal and <code>ħ</code> for Ta Marbūţa<br>
<center><i style="margin-top:30px;"><br />Developed By: <b>Emad Adel</b>, Sbikha 1979 High School, Sbikha, Kairouan, Tunisia and <b>Houcemeddine Turki</b>, B.Sc. Student, Faculty of Medicine of Sfax, University of Sfax, Sfax, Tunisia.<br />Inspired from Ktbdarija Code.</i></center>