
var flag=0;

function bgp(obj,event){
    var keyCode = event.keyCode?event.keyCode:event.which;
    
    if(keyCode>=65 && keyCode<=90){
        flag=1;
    }else if(keyCode>=97 && keyCode<=122){
        flag=0;
    }
    exp=new RegExp("[a-zA-Z`~\\\\\\]\\[|}{]");    
    if(exp.test(String.fromCharCode(keyCode)) == true){
        if(flag==1){
            if(keyCode==96){
                keyCode+=30;
            }else if(keyCode==92 || keyCode==93 || keyCode==91){
                keyCode+=32;
            }
        }
        //alert(obj.selectionStart.toString()+obj.value.length.toString());
        if(document.selection){
            var sel = document.selection.createRange();
            sel.text=convChars(keyCode);
        }else{
            var pos=obj.selectionStart;
            obj.value=obj.value.substring(0, obj.selectionStart)+convChars(keyCode)+obj.value.substring(obj.selectionEnd,obj.value.length );
            obj.selectionStart=pos+1;
            obj.selectionEnd=pos+1;
        }
        return false;
    }else{
        return true;
    }
    return false;
}

function convChars(chcode){
    //alert(chcode);
    ch=String.fromCharCode(chcode);
    switch(ch){
        case 'a':
            return 'а';
            break;
       case 'b':
            return 'б';
            break;
       case 'c':
            return 'ц';
            break;
       case 'd':
            return 'д';
            break;
       case 'e':
            return 'е';
            break;
       case 'f':
            return 'ф';
            break;
       case 'g':
            return 'г';
            break;
       case 'h':
            return 'х';
            break;
       case 'i':
            return 'и';
            break;
       case 'j':
            return 'й';
            break;
       case 'k':
            return 'к';
            break;
       case 'l':
            return 'л';
            break;
       case 'm':
            return 'м';
            break;
       case 'n':
            return 'н';
            break;
       case 'o':
            return 'о';
            break;
       case 'p':
            return 'п';
            break;
       case 'q':
            return 'я';
            break;
       case 'r':
            return 'р';
            break;
       case 's':
            return 'с';
            break;
       case 't':
            return 'т';
            break;
       case 'u':
            return 'у';
            break;
       case 'v':
            return 'ж';
            break;
       case 'w':
            return 'в';
            break;
       case 'x':
            return 'ь';
            break;
       case 'y':
            return 'ъ';
            break;
       case 'z':
            return 'з';
            break;
       case 'A':
            return 'А';
            break;
       case 'B':
            return 'Б';
            break;
       case 'C':
            return 'Ц';
            break;
       case 'D':
            return 'Д';
            break;
       case 'E':
            return 'Е';
            break;
       case 'F':
            return 'Ф';
            break;
       case 'G':
            return 'Г';
            break;
       case 'H':
            return 'Х';
            break;
       case 'I':
            return 'И';
            break;
       case 'J':
            return 'Й';
            break;
       case 'K':
            return 'К';
            break;
       case 'L':
            return 'Л';
            break;
       case 'M':
            return 'М';
            break;
       case 'N':
            return 'Н';
            break;
       case 'O':
            return 'О';
            break;
       case 'P':
            return 'П';
            break;
       case 'Q':
            return 'Я';
            break;
       case 'R':
            return 'Р';
            break;
       case 'S':
            return 'С';
            break;
       case 'T':
            return 'Т';
            break;
       case 'U':
            return 'У';
            break;
       case 'V':
            return 'Ж';
            break;
       case 'W':
            return 'В';
            break;
       case 'X':
            return 'Ь';
            break;
       case 'Y':
            return 'Ъ';
            break;
       case 'Z':
            return 'З';
            break;
        case '~':
            return 'Ч';
            break;
        case '`':
            return 'ч';
            break;
        case '\\':
            return 'ю';
            break;
        case ']':
            return 'щ';
            break;
        case '[':
            return 'ш';
            break;
        case '|':
            return 'Ю';
            break;
        case '}':
            return 'Щ';
            break;
        case '{':
            return 'Ш';
            break;
        default:
            return '';
            break;
    }
    return '';
}