﻿// Keyboard Auto Pad Reverser RU>EN - EN>RU - Script by Draft - http://www.softers.ru/

function ReverseKeyPad() {
// Определяем ваш браузер
var BrUserAgent = navigator.userAgent.toLowerCase();
var BrUserVersion = parseInt(navigator.appVersion);
if (BrUserAgent.indexOf('opera') != -1) {BrUserAgent = 'opera';}
else if(BrUserAgent.indexOf('msie') != -1) {BrUserAgent = 'ie';}
else if(BrUserAgent.indexOf('mozilla') != -1) {BrUserAgent = 'mozilla';}
else if(BrUserAgent.indexOf('chrome') != -1) {BrUserAgent = 'chrome';}
else{BrUserAgent = 'unknown';}

// Находим выделенное для IE и Оперы и прочие
if(BrUserAgent=='ie' || BrUserAgent=='opera' || BrUserAgent=='unknown') {
var sel = document.selection;
var rng = sel.createRange().text;}

// Находим выделенное для Mozilla
if(BrUserAgent=='mozilla') {
selStart=message.selectionStart;
selEnd=message.selectionEnd
sel=message.value.substring(selStart, selEnd);
rng=sel;
}

// Конфликтующие со скриптом спец-символы
ss_kov2 = '"';
ss_point = '.';
ss_tsl = '[';
ss_tsr = ']';

// Определяем язык по первой букве
ruskey='0'; 
russianl = new Array('й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','c','м','и','т','ь','б','ю','Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь','Б','Ю');
for(k=0;k<russianl.length;k++){
if (rng.substr(1,1)==russianl[k]) {
ruskey='1';}}

// Если язык русский то
if (ruskey=='1') {
rng = rng.replace(/й/g, "q");
rng = rng.replace(/ц/g, "w");
rng = rng.replace(/у/g, "e");
rng = rng.replace(/к/g, "r");
rng = rng.replace(/е/g, "t");
rng = rng.replace(/н/g, "y");
rng = rng.replace(/г/g, "u");
rng = rng.replace(/ш/g, "i");
rng = rng.replace(/щ/g, "o");
rng = rng.replace(/з/g, "p");
rng = rng.replace(/х/g, "[");
rng = rng.replace(/ъ/g, "]");
rng = rng.replace(/ф/g, "a");
rng = rng.replace(/ы/g, "s");
rng = rng.replace(/в/g, "d");
rng = rng.replace(/а/g, "f");
rng = rng.replace(/п/g, "g");
rng = rng.replace(/р/g, "h");
rng = rng.replace(/о/g, "j");
rng = rng.replace(/л/g, "k");
rng = rng.replace(/д/g, "l");
rng = rng.replace(/ж/g, ";");
rng = rng.replace(/э/g, "'");
rng = rng.replace(/я/g, "z");
rng = rng.replace(/ч/g, "x");
rng = rng.replace(/с/g, "c");
rng = rng.replace(/м/g, "v");
rng = rng.replace(/и/g, "b");
rng = rng.replace(/т/g, "n");
rng = rng.replace(/ь/g, "m");
rng = rng.replace(/б/g, ",");
rng = rng.replace(/ю/g, ".");

rng = rng.replace(/Й/g, "Q");
rng = rng.replace(/Ц/g, "W");
rng = rng.replace(/У/g, "E");
rng = rng.replace(/К/g, "R");
rng = rng.replace(/Е/g, "T");
rng = rng.replace(/Н/g, "Y");
rng = rng.replace(/Г/g, "U");
rng = rng.replace(/Ш/g, "I");
rng = rng.replace(/Щ/g, "O");
rng = rng.replace(/З/g, "P");
rng = rng.replace(/Х/g, "{");
rng = rng.replace(/Ь/g, "}");
rng = rng.replace(/Ф/g, "A");
rng = rng.replace(/Ы/g, "S");
rng = rng.replace(/В/g, "D");
rng = rng.replace(/А/g, "F");
rng = rng.replace(/П/g, "G");
rng = rng.replace(/Р/g, "H");
rng = rng.replace(/О/g, "J");
rng = rng.replace(/Л/g, "K");
rng = rng.replace(/Д/g, "L");
rng = rng.replace(/Ж/g, ":");
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Э/g, ss_kov2);
rng = rng.replace(/Я/g, "Z");
rng = rng.replace(/Ч/g, "X");
rng = rng.replace(/С/g, "C");
rng = rng.replace(/М/g, "V");
rng = rng.replace(/И/g, "B");
rng = rng.replace(/Т/g, "N");
rng = rng.replace(/Ь/g, "M");
rng = rng.replace(/Б/g, "<");
rng = rng.replace(/Ю/g, ">");}

// Если язык английский то
if (ruskey=='0') {
rng = rng.replace(/q/g, "й");
rng = rng.replace(/w/g, "ц");
rng = rng.replace(/e/g, "у");
rng = rng.replace(/r/g, "к");
rng = rng.replace(/t/g, "е");
rng = rng.replace(/y/g, "н");
rng = rng.replace(/u/g, "г");
rng = rng.replace(/i/g, "ш");
rng = rng.replace(/o/g, "щ");
rng = rng.replace(/p/g, "з");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsl, "х");
rng = rng.replace(ss_tsr, "ъ");
rng = rng.replace(ss_tsr, "ъ");
rng = rng.replace(ss_tsr, "ъ");
rng = rng.replace(ss_tsr, "ъ");
rng = rng.replace(ss_tsr, "ъ");
rng = rng.replace(ss_tsr, "ъ");
rng = rng.replace(/a/g, "ф");
rng = rng.replace(/s/g, "ы");
rng = rng.replace(/d/g, "в");
rng = rng.replace(/f/g, "а");
rng = rng.replace(/g/g, "п");
rng = rng.replace(/h/g, "р");
rng = rng.replace(/j/g, "о");
rng = rng.replace(/k/g, "л");
rng = rng.replace(/l/g, "д");
rng = rng.replace(/;/g, "ж");
rng = rng.replace(/'/g, "э");
rng = rng.replace(/z/g, "я");
rng = rng.replace(/x/g, "ч");
rng = rng.replace(/c/g, "с");
rng = rng.replace(/v/g, "м");
rng = rng.replace(/b/g, "и");
rng = rng.replace(/n/g, "т");
rng = rng.replace(/m/g, "ь");
rng = rng.replace(/,/g, "б");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");
rng = rng.replace(ss_point, "ю");

rng = rng.replace(/Q/g, "Й");
rng = rng.replace(/W/g, "Ц");
rng = rng.replace(/E/g, "У");
rng = rng.replace(/R/g, "К");
rng = rng.replace(/T/g, "Е");
rng = rng.replace(/Y/g, "Н");
rng = rng.replace(/U/g, "Г");
rng = rng.replace(/I/g, "Ш");
rng = rng.replace(/O/g, "Щ");
rng = rng.replace(/P/g, "З");
rng = rng.replace(/{/g, "X");
rng = rng.replace(/}/g, "Ъ");
rng = rng.replace(/A/g, "Ф");
rng = rng.replace(/S/g, "Ы");
rng = rng.replace(/D/g, "В");
rng = rng.replace(/F/g, "А");
rng = rng.replace(/G/g, "П");
rng = rng.replace(/H/g, "Р");
rng = rng.replace(/J/g, "О");
rng = rng.replace(/K/g, "Л");
rng = rng.replace(/L/g, "Д");
rng = rng.replace(/:/g, "Ж");
rng = rng.replace(/"/g, "Э");
rng = rng.replace(/Z/g, "Я");
rng = rng.replace(/X/g, "Ч");
rng = rng.replace(/C/g, "С");
rng = rng.replace(/V/g, "М");
rng = rng.replace(/B/g, "И");
rng = rng.replace(/N/g, "Т");
rng = rng.replace(/M/g, "Ь");
rng = rng.replace(/>/g, "Б");
rng = rng.replace(/</g, "Ю");}

// Меняем выделенное на полученное для Оперы IE и других 
if(BrUserAgent=='ie' || BrUserAgent=='opera' || BrUserAgent=='chrome' ||  BrUserAgent=='unknown') {
sel.createRange().text = rng;
rng = document.selection;
}

// Выводим в алерте полученное для Mozilla
if(BrUserAgent=='mozilla') {
prompt('Ваш текст', rng);}
}