function k2l(text){
var dig=/(гъ|дж|къ|нг)/mgi;
var reg=/([абвгдёжзийклмнопрстфхцчшщыэ])/mgi;
text=text.replace(/И/gm,"İ");
text=text.replace(dig,re);
text=text.replace(reg,re);
while(text.match(/([^у]?)(у+)([^у]?)/mgi)) text=text.replace(/([^у]?)(у+)([^у]?)/mi,reu);
text=text.replace(/[ъь](я|ю|е)/gmi,re2);
text=text.replace(/[ъь]/gmi,"");
text=text.replace(/([bvcgğdjzykqlmnñprstfhçşw])(е|Е)/mgi,re3);
text=text.replace(/е/mg,"ye");
text=text.replace(/Е/mg,"Ye");
text=text.replace(/([bvcgğdjzykqlmnñprstfhçşw])(я|Я)/mgi,re3);
text=text.replace(/я/mg,"ya");
text=text.replace(/Я/mg,"Ya");
text=text.replace(/([aouıie])(ю|Ю)/mgi,re4);
text=text.replace(/([bvcgğdjzykqlmnñprstfhçşw])(ю|Ю)/mgi,re3);
text=text.replace(/ю/mg,"ü");
text=text.replace(/Ю/mg,"Ü");
//text=text.replace(/(ю|Ю)/mgi,re4);
return text;
}
function reu(str,left,token,right){
var cap=function(token, sub){
if(token==token.toUpperCase())return sub.toUpperCase();
else return sub;
};
if(token.length==1){
if(left.match(/[bvcgğdjzykqlmnñprstfhçşw]/gmi)){
return left+cap(token,"u")+right;
}
else if(left.match(/[aeöiouüıяюе]/gmi)) return left+cap(token,"w")+right;
else if(right.match(/[aeöiouı]/gmi)) return left+cap(token,"w")+right;
else if(right.match(/[bvcgğdjzykqlmnñprstfhçşwüяю]/gmi)) return left+cap(token,"u")+right;
else return left+cap(token,"u")+right;
}
else{
if(left.match(/[bvcgğdjzykqlmnñprstfhçşw]/gmi)){
return left+reu(str,cap(token.slice(0,1),"u"),token.slice(1),right);
}
else if(left.match(/[aeöiouüıяюе]/gmi)){
return left+reu(str,cap(token.slice(0,1),"w"),token.slice(1),right);
}
else if(right.match(/[bvcgğdjzykqlmnñprstfhçşwü]/gmi)){
return reu(str,left,token.slice(0,-1),cap(token.slice(-1),"u"))+right;
}
else if(right.match(/[aeöiouıяю]/gmi)){
return reu(str,left,token.slice(0,-1),cap(token.slice(-1),"w"))+right;
}
else return left+reu(str,cap(token.slice(0,1),"u"),token.slice(1),right);
}
};
var re=function(str,token){
if(token[0]==token[0].toUpperCase()) {
var temp = tokens[token.toLowerCase()];
return temp.charAt(0).toUpperCase() + temp.slice(1);
}
return tokens[token];
};
var re2=function(str,token){
if(token[0]==token[0].toUpperCase()) {
var temp = vowels[token.toLowerCase()];
return "y"+temp.charAt(0).toUpperCase() + temp.slice(1);
}
return "y"+vowels[token];
};
var re3=function(str,cons,token){
if(token[0]==token[0].toUpperCase()) {
var temp = cons+aftercons[token.toLowerCase()];
return temp.charAt(0).toUpperCase() + temp.slice(1);
}
return cons+aftercons[token];
};
var re4=function(str,cons,token){
if(token[0]==token[0].toUpperCase()) {
var temp = cons+"Yu";
return temp.charAt(0).toUpperCase() + temp.slice(1);
}
return cons+"yu";
};
var aftercons={
е:"e",
ю:"ü",
я:"â"
};
var vowels={
е:"e",
ю:"u",
я:"a"
};
var tokens={
а:'a',
б:'b',
в:'v',
г:'g',
гъ:'ğ',
д:'d',
дж:'c',
е:'ye',
ё:'ö',
ж:'j',
з:'z',
и:'i',
й:'y',
к:'k',
къ:'q',
л:'l',
м:'m',
н:'n',
нг:'ñ',
о:'o',
п:'p',
р:'r',
с:'s',
т:'t',
ф:'f',
х:'h',
ц:'ts',
ч:'ç',
ш:'ş',
щ:'şç',
ы:'ı',
э:'e',
ю:'ü',
я:'a'
};
document.getElementById('krc-testing').innerHTML="<textarea style='min-height:220px;width:50%; float:left' id='krc-testing-textarea'></textarea><input type='button' value='Go' onclick='krcConvert()'><br clear='all' /><div style='float:left; width:45%' id='krc-result'></div>";
function krcConvert(){
var text=document.getElementById('krc-testing-textarea').value;
text=k2l(text);
document.getElementById('krc-result').innerHTML=text;
}