var uagent    = navigator.userAgent.toLowerCase();
var is_webtv  = (uagent.indexOf('webtv') != -1);
var is_opera  = (uagent.indexOf('opera') != -1);
var is_kon    = (uagent.indexOf('konqueror') != -1);
var is_moz    = (navigator.product == 'Gecko');
var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var is_ie     = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
var is_ie4    = ( (is_ie) && (uagent.indexOf("msie 4.") != -1) );
var is_ns     = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) );
var is_ns4    = ( (is_ns) && (parseInt(navigator.appVersion) == 4) );
var is_win    =  ( (uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") !=- 1) );
var is_mac    = ( (uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var ua_vers   = parseInt(navigator.appVersion);

var reduced = 0;

var tra = new Array();
var abc2 = new Array();
var abc1 = new Array();

tra['a'] = new Array ('ы+','Й+','Ы+','й+','Ы','й','ы','Й','','');
abc2['a'] = new Array ('ыа','Йа','Ыа','йа','Я','я','я','Я','а','a');

tra['b'] = new Array ('','');
abc2['b'] = new Array ('б','b');

tra['v'] = new Array ('','');
abc2['v'] = new Array ('в','v');

tra['g'] = new Array ('','');
abc2['g'] = new Array ('г','g');

tra['d'] = new Array ('','');
abc2['d'] = new Array ('д','d');

tra['e'] = new Array ('Й+','й+','Й','й','','');
abc2['e'] = new Array ('Йе','йе','Э','э','е','e');

tra['o'] = new Array ('ы+','Й+','Ы+','й+','Ы','ы','Й','й','','');
abc2['o'] = new Array ('ыо','Йо','Ыо','йо','Ё','ё','Ё','ё','о','о');

//tra['o'] = new Array ('','');
//abc2['o'] = new Array ('ё','o');

tra['h'] = new Array ('сх+','Сх+','з+','Сх','с+','ш+','Ц+','Ш+','С+','сх','ц+','З+','Ш','с','ц','ш','З','С','Ц','з','','');
abc2['h'] = new Array ('схх','Схх','зх','Щ','сх','шх','Цх','Шх','Сх','щ','цх','Зх','Щ','ш','ч','щ','Ж','Ш','Ч','ж','х','h');

tra['z'] = new Array ('','');
abc2['z'] = new Array ('з','z');

tra['i'] = new Array ('','');
abc2['i'] = new Array ('и','i');

tra['j'] = new Array ('','');
abc2['j'] = new Array ('й','j');

tra['k'] = new Array ('','');
abc2['k'] = new Array ('к','k');

tra['l'] = new Array ('','');
abc2['l'] = new Array ('л','l');

tra['m'] = new Array ('','');
abc2['m'] = new Array ('м','m');

tra['n'] = new Array ('','');
abc2['n'] = new Array ('н','n');

tra['p'] = new Array ('','');
abc2['p'] = new Array ('п','p');

tra['r'] = new Array ('','');
abc2['r'] = new Array ('р','r');

tra['s'] = new Array ('','');
abc2['s'] = new Array ('с','s');

tra['t'] = new Array ('','');
abc2['t'] = new Array ('т','t');

tra['u'] = new Array ('ы+','Й+','Ы+','й+','Ы','й','ы','Й','','');
abc2['u'] = new Array ('ыу','Йу','Ыу','йу','Ю','ю','ю','Ю','у','u');

tra['f'] = new Array ('','');
abc2['f'] = new Array ('ф','f');

tra['x'] = new Array ('','');
abc2['x'] = new Array ('х','x');

tra['c'] = new Array ('','');
abc2['c'] = new Array ('ц','c');

tra['w'] = new Array ('','');
abc2['w'] = new Array ('щ','w');

tra['#'] = new Array ('ъ+','ъ','','');
abc2['#'] = new Array ('ъъ','Ъ','ъ','#');

tra['y'] = new Array ('','');
abc2['y'] = new Array ('ы','y');

tra['\''] = new Array ('ь+','ь','','');
abc2['\''] = new Array ('ьь','Ь','ь','\'');

//tra['a'] = new Array ('','');
//abc2['a'] = new Array ('э','a');

//tra['u'] = new Array ('','');
//abc2['u'] = new Array ('ю','u');

tra['A'] = new Array ('Ы+','Й+','Ы','Й','','');
abc2['A'] = new Array ('ЫА','ЙА','Я','Я','А','A');

tra['B'] = new Array ('','');
abc2['B'] = new Array ('Б','B');

tra['V'] = new Array ('','');
abc2['V'] = new Array ('В','V');

tra['G'] = new Array ('','');
abc2['G'] = new Array ('Г','G');

tra['D'] = new Array ('','');
abc2['D'] = new Array ('Д','D');

tra['E'] = new Array ('Й+','Й','','');
abc2['E'] = new Array ('ЙЕ','Э','Е','E');

tra['O'] = new Array ('Ы+','Й+','Ы','Й','','');
abc2['O'] = new Array ('ЫО','ЙО','Ё','Ё','О','O');

//tra['O'] = new Array ('','');
//abc2['O'] = new Array ('Ё','O');

tra['H'] = new Array ('СХ+','Ц+','СХ','С+','З+','Ш+','Ш','Ц','С','З','','');
abc2['H'] = new Array ('СХХ','ЦХ','Щ','СХ','ЗХ','ШХ','Щ','Ч','Ш','Ж','Х','H');

tra['Z'] = new Array ('','');
abc2['Z'] = new Array ('З','Z');

tra['I'] = new Array ('','');
abc2['I'] = new Array ('И','I');

tra['J'] = new Array ('','');
abc2['J'] = new Array ('Й','J');

tra['K'] = new Array ('','');
abc2['K'] = new Array ('К','K');

tra['L'] = new Array ('','');
abc2['L'] = new Array ('Л','L');

tra['M'] = new Array ('','');
abc2['M'] = new Array ('М','M');

tra['N'] = new Array ('','');
abc2['N'] = new Array ('Н','N');

tra['P'] = new Array ('','');
abc2['P'] = new Array ('П','P');

tra['R'] = new Array ('','');
abc2['R'] = new Array ('Р','R');

tra['S'] = new Array ('','');
abc2['S'] = new Array ('С','S');

tra['T'] = new Array ('','');
abc2['T'] = new Array ('Т','T');

tra['U'] = new Array ('Ы+','Й+','Ы','Й','','');
abc2['U'] = new Array ('ЫУ','ЙУ','Ю','Ю','У','U');

tra['F'] = new Array ('','');
abc2['F'] = new Array ('Ф','F');

tra['X'] = new Array ('','');
abc2['X'] = new Array ('Х','X');

tra['C'] = new Array ('','');
abc2['C'] = new Array ('Ц','C');

tra['W'] = new Array ('','');
abc2['W'] = new Array ('Щ','W');

tra['Y'] = new Array ('','');
abc2['Y'] = new Array ('Ы','Y');

//tra['A'] = new Array ('','');
//abc2['A'] = new Array ('Э','A');

//tra['U'] = new Array ('','');
//abc2['U'] = new Array ('Ю','U');

abc1['а'] = 'a';
abc1['б'] = 'b';
abc1['в'] = 'v';
abc1['г'] = 'g';
abc1['д'] = 'd';
abc1['е'] = 'e';
abc1['ё'] = 'jo';
abc1['ж'] = 'zh';
abc1['з'] = 'z';
abc1['и'] = 'i';
abc1['й'] = 'j';
abc1['к'] = 'k';
abc1['л'] = 'l';
abc1['м'] = 'm';
abc1['н'] = 'n';
abc1['о'] = 'o';
abc1['п'] = 'p';
abc1['р'] = 'r';
abc1['с'] = 's';
abc1['т'] = 't';
abc1['у'] = 'u';
abc1['ф'] = 'f';
abc1['х'] = 'h';
abc1['ц'] = 'c';
abc1['ч'] = 'ch';
abc1['ш'] = 'sh';
abc1['щ'] = 'w';
abc1['ъ'] = '#';
abc1['ы'] = 'y';
abc1['ь'] = '\'';
abc1['э'] = 'je';
abc1['ю'] = 'ju';
abc1['я'] = 'ja';
abc1['А'] = 'A';
abc1['Б'] = 'B';
abc1['В'] = 'V';
abc1['Г'] = 'G';
abc1['Д'] = 'D';
abc1['Е'] = 'E';
abc1['Ё'] = 'Jo';
abc1['Ж'] = 'Zh';
abc1['З'] = 'Z';
abc1['И'] = 'I';
abc1['Й'] = 'J';
abc1['К'] = 'K';
abc1['Л'] = 'L';
abc1['М'] = 'M';
abc1['Н'] = 'N';
abc1['О'] = 'O';
abc1['П'] = 'P';
abc1['Р'] = 'R';
abc1['С'] = 'S';
abc1['Т'] = 'T';
abc1['У'] = 'U';
abc1['Ф'] = 'F';
abc1['Х'] = 'H';
abc1['Ц'] = 'C';
abc1['Ч'] = 'Ch';
abc1['Ш'] = 'Sh';
abc1['Щ'] = 'W';
abc1['Ъ'] = '##';
abc1['Ы'] = 'Y';
abc1['Ь'] = '\'\'';
abc1['Э'] = 'Je';
abc1['Ю'] = 'Ju';
abc1['Я'] = 'Ja';

var translit = 1;
var pretranslit = 0;
var processhtmltags = 0;
var processbbcodetags = 0;
var securetext = 0;
//var chartabledirection = 0;
var shiftused = 0;
var current_language = 0;

function add_letter( c )
{  
    translate_letter( false, c );
    if( shiftused )
    {
        shiftused = 0;
        showtable();
    }
}

function press_shift()
{
    shiftused = !shiftused;
    showtable();
}

function press_language()
{
    current_language = !current_language;
    direction_capt_1 = (current_language?direction_capt_lv:direction_capt_ru)
    document.getElementById("directioncapt").innerHTML = translit?direction_capt_2:direction_capt_1;
    document.getElementById("althelp").innerHTML = current_language?help_alt_lv:help_alt_ru;
    document.getElementById("torus").value = current_language?convert_capt_lv:convert_capt_ru;
    showtable();
}


function showtable()
{
    var _sb = '<td><input style="width:100%" type="button" value="' +
                ( current_language ? table_capt_ru : table_capt_lv ) +
                '" onclick="press_language()" />' +
                '</' + 'td>';
    var _st = '<td><input style="width:100%" type="button" value="' + 
                ( shiftused ? 'SHIFT' : 'shift' ) +
                '" onclick="press_shift()" /></' + 'td>';
    var _tidx = shiftused ? 3 : 2;
    var _bidx = shiftused ? 1 : 0;
    var _even = 1;
    var _chset = current_language ? charset_lv : charset;

    for( var i = 0; i < 33; i++ )
    {
        _st += "<td style=\"cursor:pointer;font-weight:bold\" " +
                "onclick=\"add_letter('" + _chset[_bidx][i] + "')\"";
        if( _even ) _st += ' class="even"';
        _st += '>' + _chset[_bidx][i] + "</" + "td>\n";
        _sb += '<td';
        if( _even ) _sb += ' class="even"';
        _sb += '>' + _chset[_tidx][i] + '</' + 'td>';
        _even = !_even;
    }

    var _s = '<table cellspacing="0" cellpadding="0" border="0" id="chartable">\n' + 
            '<tr>' + _sb + '</' + 'tr><tr>' + _st + '</' + 
            'tr></' + 'table>\n';
          
    document.getElementById('chartablediv').innerHTML = _s;
}

/*
function setfoc() 
{
    document.forms[0].subject.focus();
    return false;
}
*/

function highlightall()
{
    document.forms[0].subject.focus(); 
    document.forms[0].subject.select(); 
    return false;
}

function getselectedtext()
{
    document.secondaryform.subject.value = gettextareaval(document.forms[0].subject);
    document.secondaryform.extendedsubject.value = document.forms[0].subject.value;
    return false;
}

function kukish(name,cval) // set cookies
{
    var cexpire = new Date();
    var year = cexpire.getTime() + (365 * 24 * 60 * 60 * 1000);
    cexpire.setTime(year);
    document.cookie = name+"="+cval+"; expires=" + cexpire.toGMTString();
}

function kukishlimited(name,cval,time_days) // set cookies
{
    var cexpire = new Date();
    var year = cexpire.getTime() + (time_days * 24 * 60 * 60 * 1000);
    cexpire.setTime(year);
    document.cookie = name+"="+cval+"; expires=" + cexpire.toGMTString();
}

function changelanguage()
{
    translit = (translit==0?1:0);
    document.getElementById("directioncapt").innerHTML = translit?direction_capt_2:direction_capt_1;
//    chartabledirection=!chartabledirection;
    showtable();
    setfoc();
//    showtable(shift,chartabledirection);
    return false;
}

function setcharset1()
{
    translit=1; 
    document.getElementById("directioncapt").innerHTML = translit?direction_capt_2:direction_capt_1;
    return false;
}

function setcharset2()
{
    translit=0;
    document.getElementById("directioncapt").innerHTML = translit?direction_capt_2:direction_capt_1;
    return false;
}

function setEditorText(txt)
{
    document.forms[0].subject.value=txt;
    return true;
}

function getEditorText()
{
    return document.forms[0].subject.value;
}

function SpellCheck()
{
    getselectedtext();
    setfoc();
    document.secondaryform.action='/tools/spell/';
    document.secondaryform.target='spellch';
    var spellWin=window.open('about:blank','spellch','resizable=yes,scrollbars=yes,status=0,width=600,height=320'); 
    document.secondaryform.submit();
    if(navigator.appName=='Netscape')
    {
        spellWin.focus();
    }
    document.secondaryform.target='_blank';
    document.secondaryform.action='';
    return true;
}

function lettcount()
{   
    var txtt = btcvalue(document.forms[0].subject);
    //alert(document.getElementById('letterscounter').value);
    //document.getElementById('letterscounter').value = txtt.replace(/\r/g,'').length;
    return false;
}

var undotext = new Array();
var undodepth = 10;

function savechanges()
{
    var undotext_last = undotext.length?undotext[undotext.length-1]:'';
    if (undotext_last != document.forms[0].subject.value) 
    {
        undotext.push(document.forms[0].subject.value);
        if (undotext.length > (undodepth+1))
        {
            undotext.shift();
        }
    }
    return false;
}

function recovertext()
{
    if (undotext.length > 1) 
    {
        document.forms[0].subject.value = undotext[undotext.length-2];
        undotext.pop(); 
    }
    return false;
}

function savetext_update()
{
    var stc = window.document.forms[0].setsavetxt.checked?1:0;
    if (stc) {
        document.forms[0].subject.createTextRange().execCommand("Copy");
    }
    kukish("st",escape(stc));
    return false;
}

function addchar(val, evnt) // virtual keys
{
    if (event.shiftKey) val = val.toUpperCase();
    setfoc();
    with(document.selection.createRange()) {text = val; collapse(); select()} 
    setfoc();
    return false;
}

function AkeyIsDown(xxx)
{

    var code = false;
    if( document.captureEvents ) 
    {
        document.captureEvents(Event.KeyPress); 
        code = xxx.which; 
    } 
    else
    {
        code = window.event.keyCode;
    }
    
    if( code==27 || code==123 ) 
    {
        changelanguage();

        if( document.releaseEvents ) 
        {
            xxx.returnValue = false;
            document.releaseEvents(Event.KeyPress); 
        } 
        else 
        {
            event.returnValue = false;
        }

    }
    return false;
}

function gettextareaval(thetextarea)
{
    var cursor_pos_selection = document.selection.createRange();
    if (cursor_pos_selection.text) {
        return cursor_pos_selection.text; 
    } 
    else {
        return thetextarea.value;
    }
}

function btcvalue(thetextarea) 
// count the letters from the beginning of the text until the cursor position
{
    var s2 = document.selection.createRange();
    with (s2) {
        collapse(false); 
        moveStart("textedit",-1);
    }
    var s22 = s2.htmlText.substring(0,s2.htmlText.indexOf("</TEXTAREA>"));
    return (s22.substring(s22.lastIndexOf(">")+1,s22.length));
}

//var prevAlt = false;

/*
function array_search( needle, haystack, strict ) 
{    
    var strict = !!strict;
    for(var key in haystack)
    {
        if( (strict && haystack[key] === needle) || (!strict && haystack[key] == needle) )
        {
            return key;
        }
    }
    return false;
}

function array_key_exists ( key, search ) 
{
    if( !search || (search.constructor !== Array && search.constructor !== Object) )
    {
        return false;
    }
    return search[key] !== undefined;
}
*/

var lv_letters = {'A':"\u0100",'a':"\u0101",'C':"\u010C",'c':"\u010D",'E':"\u0112",'e':"\u0113",'G':"\u0122",'g':"\u0123",'I':"\u012A",'i':"\u012B",'K':"\u0136",'k':"\u0137",'L':"\u013B",'l':"\u013C",'N':"\u0145",'n':"\u0146",'S':"\u0160",'s':"\u0161",'U':"\u016A",'u':"\u016B",'Z':"\u017D",'z':"\u017E"};

function translate_letter(xxx,letter)
{
    var codK = false;
    
    if( letter )
    {
        codK = letter;
    }
    else if( document.captureEvents ) 
    {
        document.captureEvents(Event.KeyPress); 

        if( xxx.which == 35 || xxx.which == 39 )
        {
            codK = xxx.which; 
        }
        else if( !xxx.altKey && !xxx.ctrlKey && !xxx.metaKey && xxx.which > 46)
        {
            codK = xxx.which; 
        }
        else if( xxx.altKey )
        {
//            if( array_key_exists(xxx.which, lv_letters) )
            {
                codK = lv_letters[String.fromCharCode(xxx.which)];
                if( codK )
                {
                    codK = codK.charCodeAt(0);
                }
            }
//            codK = array_search( xxx.which, lv_letters );
        }
    } 
    else if( event && event.keyCode && (event.keyCode == 35 || event.keyCode == 39 || event.keyCode > 46) )
    {   
        if( !event.altKey && !event.ctrlKey && !event.metaKey )
        {
            codK = event.keyCode;
        }
        else if( event.altKey )
        {
            codK = lv_letters[String.fromCharCode(event.keyCode)];
            if( codK )
            {
                codK = codK.charCodeAt(0);
            }
        }
    }

    if( codK )
    {
       
        //============
//      alert('1. translit='+translit+'; keyCode='+codK);
        if( !letter && translit && codK>=1025)
        {
            if(codK==1105||codK==1025)codK=96;
            if(codK==1072)codK=102;  //
            if(codK==1073)codK=44;
            if(codK==1074)codK=100;
            if(codK==1075)codK=117;
            if(codK==1076)codK=108;
            if(codK==1077)codK=116; //e
            if(codK==1078)codK=59;
            if(codK==1079)codK=112;
        }
        /*else
        if(translit&&codK<=122)
        {
        }*/
        //==========
    
        var txt = codK;
        if( !letter )
        {
            txt = String.fromCharCode(codK);// ==(event.keyCode);
        }

        if( document.releaseEvents ) 
        {
            document.releaseEvents(Event.KeyPress);
        } 
        else 
        {
            event.keyCode = 0;
        }

        if (processhtmltags&&(txt=='<')) 
        {
            pretranslit=translit; 
            setcharset1();
        }
        if (processhtmltags&&(txt=='>')) 
        {
            if(pretranslit) setcharset1(); else setcharset2();
        }
        if (processbbcodetags&&(txt=='[')) 
        {
            pretranslit=translit; 
            setcharset1();
        }
        if (processbbcodetags&&(txt==']')) 
        {
            if(pretranslit) setcharset1(); else setcharset2();
        }   
        var obj_ta = document.getElementById('text');

        if( (ua_vers >= 4) && is_ie && is_win )
        {
            obj_ta.focus();
            with(document.selection.createRange()) 
            {
                select();
                text = '';
                collapse(false);
            }
   
//        var c = btcvalue(document.forms[0].subject);
            var c = btcvalue(document.forms[2].text);
            c = c.substring(c.lastIndexOf("\n")+1,c.length);
            var cursor_pos_selection = document.selection.createRange();
            cursor_pos_selection.select();
            cursor_pos_selection.moveStart("character",-(c.length>9?9:c.length));
            pretxt = cursor_pos_selection.text;
            cursor_pos_selection.text = '';
            cursor_pos_selection.collapse(false);
        
            if( translit )
            {
//            result = pretxt+translatesymboltocharset2(txt);
                result = translatesymboltocharset2(pretxt+txt);
            }
            else
            {
//                result = translatesymboltocharset1(pretxt+txt);
                result = pretxt+translatesymboltocharset1(txt);
            }

            with(document.selection.createRange()) 
            {
                select();
                text = result;
                collapse(false);
            }
    }
    else 
    {
        var ss = obj_ta.selectionStart;
        var st = obj_ta.scrollTop;
        var es = obj_ta.selectionEnd;
        
        var start  = (obj_ta.value).substring(0, ss);
        var middle = (obj_ta.value).substring(ss, es);
        var end    = (obj_ta.value).substring(es, obj_ta.textLength);
        
        if( translit )
        {
            result = translatesymboltocharset2(start + txt)
        }
        else
        {
//            result = translatesymboltocharset1(start + txt)
            result = start + translatesymboltocharset1(txt)
        }
        obj_ta.value = result + end;

        var cpos = ss + (txt.length);
        cpos += reduced;
        obj_ta.selectionStart = cpos;
        obj_ta.selectionEnd   = cpos;
        obj_ta.scrollTop      = st;
        obj_ta.focus();
    }
        form_modified = true; 

        return false;
    }
    return true;
}


function key_up_process()
{
  return false;
}

function translatesymboltocharset2(txt)
{
    var pretxt = txt.substr(0,txt.length-1);
    var last = txt.substr(txt.length-1,1);
    var lat = tra[last];
    var rus = abc2[last];

    reduced = 0;

    if(lat)
    {
        for( var ii=0; ii<lat.length; ii++ )
        {
            var pos = pretxt.length>lat[ii].length?(pretxt.length-lat[ii].length):0;

            if(lat[ii]==pretxt.substr(pos,pretxt.length-pos)) 
            {
                var ret = pretxt.substr(0,pretxt.length-lat[ii].length)+rus[ii];
                reduced = ret.length - txt.length;
                return ret;
            }
        }
    }
    return txt;
}

function translatesymboltocharset1(symb)
{
    reduced = 0;
    return abc1[symb]?abc1[symb]:symb;
}

function translatealltocharset2()
{
        var transliterateit = 1;
        var swithchesoff = /\]|\>/;
        var is_selection_flag = 1;
        var userselection = document.selection.createRange();
        var txt = userselection.text;
        if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea") 
        {
            // no text selected, all the text in the textarea is to be processed
            is_selection_flag = 0;
            txt = document.forms[0].subject.value;
        }
        var txtnew = txt.substr(0,1);
        if (((txtnew=="<")&&processhtmltags)||((txtnew=="[")&&processbbcodetags)) transliterateit=0;
        if (txtnew.match(swithchesoff)) transliterateit=1;
        if (transliterateit) {txtnew = translatesymboltocharset2(txtnew);}
        var symb = "";
        for (kk=1;kk<txt.length;kk++)
        {
            symbbb = txt.substr(kk,1);
            if ((symbbb=="<"&&processhtmltags)||(symbbb=="["&&processbbcodetags)) transliterateit=0;
            if (symbbb.match(swithchesoff)) transliterateit=1;
            if (transliterateit)
            {
                symb = translatesymboltocharset2(txtnew.substr(txtnew.length-1,1)+symbbb);
            }
            else
            {
                symb = txtnew.substr(txtnew.length-1,1)+symbbb;
            }
            txtnew = txtnew.substr(0,txtnew.length-1) + symb;
        }
        if (is_selection_flag)
        {
            userselection.text = txtnew; userselection.collapse(); userselection.select();
        }
        else
        {
            document.forms[0].subject.value = txtnew;
            setfoc();
        }
    return false;
}

function translatealltocharset1()
{
        var is_selection_flag = 1;
        var userselection = document.selection.createRange();
        var txt = userselection.text;

        if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea") 
        {
            // no text selected, all the text in the textarea is to be processed
            is_selection_flag = 0;
            txt = document.forms[0].subject.value;
        }
        txtnew="";
        var symb = "";
        for (kk=0;kk<txt.length;kk++)
        {
            symb = translatesymboltocharset1(txt.substr(kk,1));
            txtnew = txtnew.substr(0,txtnew.length) + symb;
        }
        if (is_selection_flag)
        {
            userselection.text = txtnew; userselection.collapse(); userselection.select();
        }
        else
        {
            document.forms[0].subject.value = txtnew;
            setfoc();
        }
    return false;
}

function pastetrans()
{ 
    var savedtext = window.clipboardData.getData("Text");
    setfoc();
    if (savedtext!='null') document.selection.createRange().text = savedtext; 
    document.selection.createRange().select();
    return false;
}

function copytrans()
{
    setfoc(); 
    rr = document.selection.createRange(); 
    if (rr.text!="") {
        rr.execCommand("Copy");
    } 
    else { 
        document.forms[0].subject.createTextRange().execCommand("Copy");
    }
    return false;
}

function cleartrans()
{
    setfoc(); 
    rr = document.selection.createRange(); 
    if (rr.text!="") {
        rr.text=""; 
        rr.collapse(); 
        rr.select();
    } 
    else {
        document.forms[0].subject.value = "";
    }
    return false;
}
