/**
 * @author Citta Computing
 * v. 1.11
 */

var vContainer = null;
var vimg112 = null;
var vimg114 = null;

var key1  = 0;
var key2  = 0;
var trans = 0;
var state = 0;
var advancedSim = 0;
var lastState = 0;
var bStrokeDone = true;
var bHalfDone;
var bComp;
var bSftLock;
var bNumLock;
var bLngLock;
//var bAltLock;
//var vNavMenu = null;

var typedText;
var txtPos = 0;


$(function()
{
    $('#img111')
        .mouseover(function() {
            $(this).css({'zIndex': '21'});
            $(this).stop().animate( {top: 100, left: 30, width: 500}, 1000, function() {});
        })
        .mouseout(function() {
            $(this).stop().animate( {opacity: 0.1}, 1000, function() {
                $(this).css({'top': '170px', 'left': '420px', 'width': '100px', 'zIndex': '11', 'opacity': '1.0'});
            });
        });
    $('#img112')
        .mouseover(function() {
            $(this).css({'zIndex': '21'});
            $(this).stop().animate( {top: 100, left: 30, width: 500}, 1000, function() {});
        })
        .mouseout(function() {
            $(this).stop().animate( {opacity: 0.1}, 1000, function() {
                $(this).css({'top': '260px', 'left': '420px', 'width': '100px', 'zIndex': '12', 'opacity': '1.0'});
            });
        });
    $('#img113')
        .mouseover(function() {
            $(this).css({'zIndex': '21'});
            $(this).stop().animate( {top: 100, left: 30, width: 500}, 1000, function() {});
        })
        .mouseout(function() {
            $(this).stop().animate( {opacity: 0.1}, 1000, function() {
                $(this).css({'top': '350px', 'left': '420px', 'width': '100px', 'zIndex': '13', 'opacity': '1.0'});
            });
        });
    $('#img114')
        .mouseover(function() {
            $(this).css({'zIndex': '21'});
            $(this).stop().animate( {top: 150, left: 30, width: 500}, 1000, function() {});
        })
        .mouseout(function() {
            $(this).stop().animate( {opacity: 0.1}, 1000, function() {
                $(this).css({'top': '440px', 'left': '420px', 'width': '100px', 'zIndex': '14', 'opacity': '1.0'});
            });
        });


    $('#charA').click(function() { aniclck($('#akk2')); });
    $('#charB').click(function() { anirock($('#akk4'), $('#akk1')); });
    $('#charC').click(function() { aniroll($('#akk2'), $('#akk4')); });
    $('#charD').click(function() { aniroll($('#akk4'), $('#akk2')); });
    $('#charE').click(function() { aniclck($('#akk3')); });
    $('#charF').click(function() { anirock($('#akk2'), $('#akk3')); });
    $('#charG').click(function() { anirock($('#akk2'), $('#akk4')); });
    $('#charH').click(function() { aniroll($('#akk2'), $('#akk3')); });
    $('#charI').click(function() { aniroll($('#akk1'), $('#akk3')); });
    $('#charJ').click(function() { anirock($('#akk1'), $('#akk4')); });
    $('#charK').click(function() { anirock($('#akk4'), $('#akk2')); });
    $('#charL').click(function() { aniroll($('#akk1'), $('#akk2')); });
    $('#charM').click(function() { anirock($('#akk2'), $('#akk1')); });
    $('#charN').click(function() { anirock($('#akk1'), $('#akk2')); });
    $('#charO').click(function() { aniroll($('#akk2'), $('#akk1')); });
    $('#charP').click(function() { anirock($('#akk1'), $('#akk3')); });
    $('#charQ').click(function() { aniroll($('#akk4'), $('#akk3')); });
    $('#charR').click(function() { anirock($('#akk3'), $('#akk1')); });
    $('#charS').click(function() { anirock($('#akk3'), $('#akk2')); });
    $('#charT').click(function() { aniroll($('#akk3'), $('#akk2')); });
    $('#charU').click(function() { aniroll($('#akk4'), $('#akk1')); });
    $('#charV').click(function() { aniroll($('#akk3'), $('#akk4')); });
    $('#charW').click(function() { aniroll($('#akk1'), $('#akk4')); });
    $('#charX').click(function() { anirock($('#akk3'), $('#akk4')); });
    $('#charY').click(function() { aniroll($('#akk3'), $('#akk1')); });
    $('#charZ').click(function() { anirock($('#akk4'), $('#akk3')); });

    $('#simArea')
        .keypress(function(event)
        {
            event.preventDefault();
        })
        .keydown(function(event)
        {

         // if (event.keyCode == '13') {
               event.preventDefault();
         // }

            var key;
            var scKey = event.keyCode;
         // var scKey = event.which;


         // if (Shift.Contains(ssCtrl))
         //     return;

         // edtScan->Text = IntToStr( scKey );      //     xx


         // ActiveControl = memo;


                 if (scKey == 86 || scKey == 97)
                key = 1;
            else if (scKey == 66 || scKey == 98)
                key = 2;
            else if (scKey == 78 || scKey == 99)
                key = 3;
            else if (scKey == 77 || scKey == 13)
                key = 4;
         // else if (scKey == 13)
         //     key = 4;
            else if (scKey == 90 || scKey == 88 || scKey == 67 || scKey == 32)
            {
                // 'other' key - cancel  (z, x, c, ' ')
                resetMode();
            }
            else
                return;

            if (bStrokeDone)
            {
                key1 = 0;
                key2 = 0;
                bStrokeDone = false;
                bHalfDone = false;
                bComp = false;
            }

            if (key == key1 || key == key2 )
                return;

            if (key1 == 0)
            {
                key1 = key;
                state += key * 100;
            }
            else if (key2 == 0)
            {
                key2 = key;
                state += key * 10;
                bComp = true;
            }
            else
            {
                // third key - cancel/reset
                resetMode();
            }


         // edtKey1->Text = IntToStr( key1 );            xx
         // edtKey2->Text = IntToStr( key2 );            xx
         // edtState->Text = IntToStr( state );          xx


        })
        .keyup(function(event)
        {

            var key;
            var newState;
            var i;
            var selStart;

            var key;
            var scKey = event.keyCode;
         // var scKey = event.which;

     //        event.preventDefault();

                 if (scKey == 86 || scKey == 97)
                key = 1;
            else if (scKey == 66 || scKey == 98)
                key = 2;
            else if (scKey == 78 || scKey == 99)
                key = 3;
            else if (scKey == 77 || scKey == 13)
                key = 4;
         // else if (scKey == 13)
         //     key = 4;
            else
                return;

            // if we are half done - this is what we need
            if (bHalfDone)
            {
                bHalfDone = false;
                bStrokeDone = true;
                return;
            }

            // if we are done do not touch a thing
            if (bStrokeDone || state == 0)
                return;

            // we will be done shortly
            if (bComp)
                bHalfDone = true;
            else
                bStrokeDone = true;

            // if we dont have anything to work with...
            if (state == 0)
                return;

            state += key;

         // edtKey1->Text = IntToStr( key1 );            xx
         // edtKey2->Text = IntToStr( key2 );            xx
         // edtState->Text = IntToStr( state );          xx
         // Sleep( 1000 );

         //  1000  Shift
         //  2000  Num
         //  4000  Lang
         // 10000  Ctrl
         // 20000  Ctrl Lock


            if (state >= 20000 && key != key2)   // ctrlLock and not rocking
            {
                newState = 20000;
            }
            else if (bSftLock)
            {
                newState = 1000;
            }
            else if (bNumLock)
            {
                newState = 2000;
            }
         // else if (bLngLock)
         // {
         //     newState = 4000;
         // }
            else
            {
                newState = 0;
            }


            switch (state)
            {
                case  101:   winner(' ');     break;     //
                case  202:   winner('a');     break;     //
                case  303:   winner('e');     break;     //
                case  404:   if (advancedSim)
                             {
                                newState = 10000; lastState = 0; break;     //
                             }
                             else
                             {
                              //alert("Mode change disabled for Simple Simulator.");
                                hiliteMsg($('#txt135'));

                              //$('#txt135').css('color', '#FF0000');
                             }
                             break;

                case  121:   winner('l');     break;
                case  212:   winner('o');     break;
                case  131:   winner('i');     break;
                case  313:   winner('y');     break;
                case  141:   winner('w');     break;
                case  414:   winner('u');     break;
                case  232:   winner('h');     break;
                case  323:   winner('t');     break;
                case  242:   winner('c');     break;
                case  424:   winner('d');     break;
                case  343:   winner('v');     break;
                case  434:   winner('q');     break;

                case  122:   winner('n');     break;
                case  211:   winner('m');     break;
                case  133:   winner('p');     break;
                case  311:   winner('r');     break;
                case  144:   winner('j');     break;
                case  411:   winner('b');     break;
                case  233:   winner('f');     break;
                case  322:   winner('s');     break;
                case  244:   winner('g');     break;
                case  422:   winner('k');     break;
                case  344:   winner('x');     break;
                case  433:   winner('z');     break;

        // Shift                                         --
                case 1101:   if (!bSftLock)
                             {
                                bSftLock = true;
                                bNumLock = false;
                                newState = 1000;
                             }
                             else
                                winner(' ');
                             break;     //
                case 1202:   winner('A');     break;     //
                case 1303:   winner('E');     break;     //
                case 1404:   newState = 10000; lastState = 1000; break;     //

                case 1121:   winner('L');     break;
                case 1212:   winner('O');     break;
                case 1131:   winner('I');     break;
                case 1313:   winner('Y');     break;
                case 1141:   winner('W');     break;
                case 1414:   winner('U');     break;
                case 1232:   winner('H');     break;
                case 1323:   winner('T');     break;
                case 1242:   winner('C');     break;
                case 1424:   winner('D');     break;
                case 1343:   winner('V');     break;
                case 1434:   winner('Q');     break;

                case 1122:   winner('N');     break;
                case 1211:   winner('M');     break;
                case 1133:   winner('P');     break;
                case 1311:   winner('R');     break;
                case 1144:   winner('J');     break;
                case 1411:   winner('B');     break;
                case 1233:   winner('F');     break;
                case 1322:   winner('S');     break;
                case 1244:   winner('G');     break;
                case 1422:   winner('K');     break;
                case 1344:   winner('X');     break;
                case 1433:   winner('Z');     break;

        // Num                                           --
                case 2101:   winner(' ');     break;     //
                case 2202:   bNumLock = true; bSftLock = false; newState = 2000; break;     //
                case 2303:   winner('=');     break;
                case 2404:   newState = 10000; lastState = 2000; break;     //

                case 2121:   winner('1');     break;
                case 2212:   winner('2');     break;
                case 2131:   winner('3');     break;
                case 2313:   winner('4');     break;
                case 2141:   winner('9');     break;
                case 2414:   winner('0');     break;
                case 2232:   winner('5');     break;
                case 2323:   winner('6');     break;
                case 2242:   winner('7');     break;
                case 2424:   winner('8');     break;
                case 2343:   winner('^');     break;
                case 2434:   winner('@');     break;

                case 2122:   winner('*');     break;
                case 2211:   winner('+');     break;
                case 2133:   winner('\\');    break;
                case 2311:   winner('/');     break;
                case 2144:   winner('-');     break;
                case 2411:   winner('%');     break;
                case 2233:   winner(',');     break;
                case 2322:   winner('.');     break;
                case 2244:   winner('&');     break;
                case 2422:   winner('|');     break;
                case 2344:   winner('#');     break;
                case 2433:   winner('$');     break;

        // Lang                                          --
                case 4101:   winner(' ');     break;     //
                case 4202:   winner('á');     break;
                case 4303:   winner('é');     break;
                case 4404:   newState = 10000; lastState = 4000; break;     //
                case 4121:   winner('l');     break;
                case 4212:   winner('ó');     break;
                case 4131:   winner('í');     break;
                case 4313:   winner('ý');     break;
                case 4141:   winner('w');     break;
                case 4414:   winner('ú');     break;
                case 4232:   winner('h');     break;
                case 4323:   winner('t');     break;
                case 4242:   winner('ç');     break;
                case 4424:   winner('d');     break;
                case 4343:   winner('v');     break;
                case 4434:   winner('q');     break;
                case 4122:   winner('ñ');     break;
                case 4211:   winner('m');     break;
                case 4133:   winner('p');     break;
                case 4311:   winner('r');     break;
                case 4144:   winner('j');     break;
                case 4411:   winner('b');     break;
                case 4233:   winner('f');     break;
                case 4322:   winner('s');     break;
                case 4244:   winner('g');     break;
                case 4422:   winner('k');     break;
                case 4344:   winner('x');     break;
                case 4433:   winner('z');     break;

        // Lang Shift                                         --
             // case 5101:   winner(' ');     break;     //
                case 5101:   if (!bSftLock)
                             {
                                bSftLock = true;
                                bNumLock = false;
                                newState = 1000;
                             }
                             else
                                winner(' ');
                             break;     //
                case 5202:   winner('Á');     break;
                case 5303:   winner('É');     break;
                case 5404:   newState = 10000; lastState = 4000; break;     //
                case 5121:   winner('L');     break;
                case 5212:   winner('Ó');     break;
                case 5131:   winner('Í');     break;
                case 5313:   winner('Ý');     break;
                case 5141:   winner('W');     break;
                case 5414:   winner('Ú');     break;
                case 5232:   winner('H');     break;
                case 5323:   winner('T');     break;
                case 5242:   winner('Ç');     break;
                case 5424:   winner('D');     break;
                case 5343:   winner('V');     break;
                case 5434:   winner('Q');     break;
                case 5122:   winner('Ñ');     break;
                case 5211:   winner('M');     break;
                case 5133:   winner('P');     break;
                case 5311:   winner('R');     break;
                case 5144:   winner('J');     break;
                case 5411:   winner('B');     break;
                case 5233:   winner('F');     break;
                case 5322:   winner('S');     break;
                case 5244:   winner('G');     break;
                case 5422:   winner('K');     break;
                case 5344:   winner('X');     break;
                case 5433:   winner('Z');     break;

        // Ctrl
                case 10101:   newState = (lastState == 4000 ? 5000 : 1000); break;
                case 10202:   newState = 2000; break;
                case 10303:   newState = (lastState == 1000 ? 5000 : 4000); break;
             // case 10303:   newState = 4000; break;
                case 10404:   newState = 20000; break;

                case 10121: case 20121:   winner('\t');        break;                                  // tab
                case 10212: case 20212:   winner('\n');        break;                                  // New line
                case 10131: case 20131:   winnerCurs(3, 1);    break;                                  // word right
                case 10313: case 20313:   winnerCurs(2, 1);    break;                                  // word left
                case 10141: case 20141:   winnerEnd(0);        break;                                  // end
                case 10414: case 20414:   winnerHome(0);       break;                                  // home
                case 10232: case 20232:   winnerDel(0);        break;                                  // Del
                case 10323: case 20323:   winnerBackspace(0);  break;                                  // Backspace
                case 10242: case 20242:   winnerDel(1);        break;                                  // Del word       (ctl Del)
                case 10424: case 20424:   winnerBackspace(1);  break;                                  // Backspace word (ctl Back)
                case 10343: case 20343:   winnerEnd(1);        break;                                  // EOF (ctl End)
                case 10434: case 20434:   winnerHome(1);       break;                                  // BOF (ctl Home)

                case 10122:   winner(':');     break;
                case 10211:   winner(';');     break;
                case 10133:   winner('?');     break;
                case 10311:   winner('!');     break;
                case 10144:   winner('©');     break;     // Alt 1
                case 10411:   winner('\'');    break;
                case 10233:   winner(',');     break;
                case 10322:   winner('.');     break;
                case 10144:   winner('©');     break;     // Alt 2
                case 10422:   winner('"');     break;
                case 10344:   winner('(');     break;
                case 10433:   winner(')');     break;

        // Ctrl Lock  (Alt)                                                     ----

                case 20101:   winnerCurs(1, 0);    break;
                case 20202:   winnerCurs(2, 0);    break;
                case 20303:   winnerCurs(3, 0);    break;
                case 20404:   winnerCurs(4, 0);    break;

                case 20122:                break;     // prev. state
                case 20211:   winner('©'); break;
                case 20133:   winner('©'); break;
                case 20311:   winner('©'); break;
                case 20144:   winner('<'); break;
                case 20411:   winner('>'); break;
                case 20233:   winner('_'); break;
                case 20322:   winner('~'); break;
                case 20244:   winner('['); break;
                case 20422:   winner(']'); break;
                case 20344:   winner('{'); break;
                case 20433:   winner('}'); break;


            }


            state = newState;

            if (advancedSim)
            {
             // $('#charMapNrm').css('zIndex', '2');
                $('#charMapCap').css('zIndex', '1');
                $('#charMapNum').css('zIndex', '1');
                $('#charMapLng').css('zIndex', '1');
             // $('#charMapCaL').css('zIndex', '1');
                $('#charMapCtl').css('zIndex', '1');
                $('#charMapClk').css('zIndex', '1');
            }

            switch (state)
            {
                case  1000: $('#charMapCap').css('zIndex', '3'); break;
                case  2000: $('#charMapNum').css('zIndex', '3'); break;
                case  4000: $('#charMapLng').css('zIndex', '3'); break;
             // case  5000: $('#charMapCaL').css('zIndex', '3'); break;
                case 10000: $('#charMapCtl').css('zIndex', '3'); break;
                case 20000: $('#charMapClk').css('zIndex', '3'); break;
            }

            if (state >= 10000)
            {
                $('#simStatShiftOn').css('zIndex', '1');
                $('#simStatNumOn').css('zIndex', '1');
                $('#simStatLangOn').css('zIndex', '1');
                $('#simStatLShiftOn').css('zIndex', '1');
                $('#simStatLNumOn').css('zIndex', '1');

                $('#simStatCtrlOn').css('zIndex', '3');

                if (state >= 20000)
                    $('#simStatLCtrlOn').css('zIndex', '3');
                else
                    $('#simStatLCtrlOn').css('zIndex', '1');
            }
            else
            {
                $('#simStatCtrlOn').css('zIndex', '1');
                $('#simStatLCtrlOn').css('zIndex', '1');

                if (state == 1000 || state == 5000)
                    $('#simStatShiftOn').css('zIndex', '3');
                else
                    $('#simStatShiftOn').css('zIndex', '1');

                if (state == 2000)
                    $('#simStatNumOn').css('zIndex', '3');
                else
                    $('#simStatNumOn').css('zIndex', '1');

                if (state == 4000 || state == 5000)
                    $('#simStatLangOn').css('zIndex', '3');
                else
                    $('#simStatLangOn').css('zIndex', '1');


                if (bSftLock && (state == 1000 || state == 5000))
                    $('#simStatLShiftOn').css('zIndex', '3');
                else
                    $('#simStatLShiftOn').css('zIndex', '1');

                if (bNumLock && state == 2000)
                    $('#simStatLNumOn').css('zIndex', '3');
                else
                    $('#simStatLNumOn').css('zIndex', '1');

            }


         // if (state == 1000 || state == 5000)
         //     $('#simStatShiftOn').css('zIndex', '3');
         // else
         //     $('#simStatShiftOn').css('zIndex', '1');
         //
         // if (state == 2000)
         //     $('#simStatNumOn').css('zIndex', '3');
         // else
         //     $('#simStatNumOn').css('zIndex', '1');
         //
         // if (state == 4000 || state == 5000)
         //     $('#simStatLangOn').css('zIndex', '3');
         // else
         //     $('#simStatLangOn').css('zIndex', '1');
         //
         // if (state >= 10000)
         //     $('#simStatCtrlOn').css('zIndex', '3');
         // else
         //     $('#simStatCtrlOn').css('zIndex', '1');
         //
         // if (state >= 20000)
         //     $('#simStatLCtrlOn').css('zIndex', '3');
         // else
         //     $('#simStatLCtrlOn').css('zIndex', '1');
         //
         // if (bSftLock)
         //     $('#simStatLShiftOn').css('zIndex', '3');
         // else
         //     $('#simStatLShiftOn').css('zIndex', '1');
         //
         // if (bNumLock)
         //     $('#simStatLNumOn').css('zIndex', '3');
         // else
         //     $('#simStatLNumOn').css('zIndex', '1');


        });

 // $('input[name=sample]:checked').val()
    $("input[name='simType']")
      .change(function()
        {
            if ($("input[name='simType']:checked").val() == '1')
            {

                $('#simStatShiftOn').css('visibility', 'visible');
                $('#simStatNumOn  ').css('visibility', 'visible');
                $('#simStatLangOn ').css('visibility', 'visible');
                $('#simStatCtrlOn ').css('visibility', 'visible');

                $('#simStatLShiftOn').css('visibility', 'visible');
                $('#simStatLNumOn  ').css('visibility', 'visible');
                $('#simStatLLangOn ').css('visibility', 'visible');
                $('#simStatLCtrlOn ').css('visibility', 'visible');

                $('#simStatShiftOff').css('visibility', 'visible');
                $('#simStatNumOff  ').css('visibility', 'visible');
                $('#simStatLangOff ').css('visibility', 'visible');
                $('#simStatCtrlOff ').css('visibility', 'visible');

                $('#simStatLShiftOff').css('visibility', 'visible');
                $('#simStatLNumOff  ').css('visibility', 'visible');
                $('#simStatLLangOff ').css('visibility', 'visible');
                $('#simStatLCtrlOff ').css('visibility', 'visible');

                $('#charMapKey').css('visibility', 'visible');
                $('#charMapNrm').css('visibility', 'visible');
                $('#charMapCap').css('visibility', 'visible');
                $('#charMapNum').css('visibility', 'visible');
                $('#charMapLng').css('visibility', 'visible');
                $('#charMapCtl').css('visibility', 'visible');
                $('#charMapClk').css('visibility', 'visible');

                $('#txt134').css('visibility', 'hidden');
                $('#txt135').css('visibility', 'hidden');
                $('#txt136').css('visibility', 'visible');

                advancedSim = 1;

                document.nSimForm.simArea.focus();

             // alert("in simType.change(1), val = " + $("input[name='simType']:checked").val());

            }
            else
            {

                $('#simStatShiftOn').css('visibility', 'hidden');
                $('#simStatNumOn  ').css('visibility', 'hidden');
                $('#simStatLangOn ').css('visibility', 'hidden');
                $('#simStatCtrlOn ').css('visibility', 'hidden');

                $('#simStatLShiftOn').css('visibility', 'hidden');
                $('#simStatLNumOn  ').css('visibility', 'hidden');
                $('#simStatLLangOn ').css('visibility', 'hidden');
                $('#simStatLCtrlOn ').css('visibility', 'hidden');

                $('#simStatShiftOff').css('visibility', 'hidden');
                $('#simStatNumOff  ').css('visibility', 'hidden');
                $('#simStatLangOff ').css('visibility', 'hidden');
                $('#simStatCtrlOff ').css('visibility', 'hidden');

                $('#simStatLShiftOff').css('visibility', 'hidden');
                $('#simStatLNumOff  ').css('visibility', 'hidden');
                $('#simStatLLangOff ').css('visibility', 'hidden');
                $('#simStatLCtrlOff ').css('visibility', 'hidden');

                $('#charMapKey').css('visibility', 'hidden');
                $('#charMapNrm').css('visibility', 'hidden');
                $('#charMapCap').css('visibility', 'hidden');
                $('#charMapNum').css('visibility', 'hidden');
                $('#charMapLng').css('visibility', 'hidden');
                $('#charMapCtl').css('visibility', 'hidden');
                $('#charMapClk').css('visibility', 'hidden');

                $('#txt134').css('visibility', 'visible');
                $('#txt135').css('visibility', 'visible');
                $('#txt136').css('visibility', 'hidden');

                advancedSim = 0;

             // alert("in simType.change(0), val = " + $("input[name='simType']:checked").val());

                resetMode();

                document.nSimForm.simArea.focus();
            }


         // $(this).blur();
        }
        );


});


function resetMode()   // cancel
{
    key1 = 0;
    key2 = 0;
    bStrokeDone = true;
    bHalfDone = false;
    bComp = false;
    bSftLock = false;
    bNumLock = false;
    bLngLock = false;
 // bAltLock = false;
    state = 0;
    lastState = 0;

    $('#simStatShiftOn').css('zIndex', '1');
    $('#simStatNumOn  ').css('zIndex', '1');
    $('#simStatLangOn ').css('zIndex', '1');
    $('#simStatCtrlOn ').css('zIndex', '1');

    $('#simStatLShiftOn').css('zIndex', '1');
    $('#simStatLNumOn  ').css('zIndex', '1');
    $('#simStatLLangOn ').css('zIndex', '1');
    $('#simStatLCtrlOn ').css('zIndex', '1');

    $('#charMapCap').css('zIndex', '1');
    $('#charMapNum').css('zIndex', '1');
    $('#charMapLng').css('zIndex', '1');
 // $('#charMapCaL').css('zIndex', '1');
    $('#charMapCtl').css('zIndex', '1');
    $('#charMapClk').css('zIndex', '1');

 // setHelp(0);

 // alert("in Reset()");

 // Beep();
    return;
};

function hiliteMsg(msgId)
{
 // msgId.css('visibility', 'visible');
    msgId.css('color', '#FF4444');
    msgId.css('opacity', '0.99');
    msgId.animate(
        {
          opacity: 1.0,
        }, 500, function()
          {
            msgId.css('color', '#FFFFFF');
          //msgId.css('opacity', '1.0');
          }
    );
 // msgId.animate(
 //     {
 //       opacity: 0.01,
 //     }, 2000, function()
 //       {
 //         msgId.css('visibility', 'hidden');
 //         msgId.css('opacity', '1.0');
 //       }
 // );

};

function winner(nch)
{
    var tarea = document.nSimForm.simArea;
 // var tarea = document.getElementById('simArea');

    typedText = typedText.substring(0, txtPos) + nch + typedText.substring(txtPos, typedText.length);

 // document.nSimForm.simArea.value = typedText;
    tarea.value = typedText;
    txtPos++;

    setCaretToPos(document.nSimForm.simArea, txtPos);

    var scrollHeight = Math.max(tarea.scrollHeight, tarea.clientHeight);
    tarea.scrollTop = scrollHeight - tarea.clientHeight;
};

function winnerBackspace(ctl)
{
    if (ctl)
    {
        // backspace word
        var textA = typedText.substring(0, txtPos);
        var i = txtPos;

        if (i <= 0 || textA.charAt(i-1) == '\n')
            return;

        while (i > 0 && textA.charAt(i-1) == ' ')
            i--;

        while (i > 0 && textA.charAt(i-1) != ' ' && textA.charAt(i-1) != '\n')
            i--;

        typedText = typedText.substring(0, i) + typedText.substring(txtPos, typedText.length);
        txtPos = i;
        document.nSimForm.simArea.value = typedText;
        setCaretToPos(document.nSimForm.simArea, txtPos);
    }
    else
    {
        typedText = typedText.substring(0, txtPos-1) + typedText.substring(txtPos, typedText.length);
        txtPos--;

        document.nSimForm.simArea.value = typedText;
        setCaretToPos(document.nSimForm.simArea, txtPos);
    }

};

function winnerDel(ctl)
{
    if (ctl)
    {
        // del word

        var i = txtPos;
        var txtLen = typedText.length;
        if (i == txtLen || typedText.charAt(i) == '\n')
            return;

        while (i < txtLen && typedText.charAt(i) == ' ')
            i++;

        while (i < txtLen && typedText.charAt(i) != ' ' && typedText.charAt(i) != '\n')
            i++;

        typedText = typedText.substring(0, txtPos) + typedText.substring(i, typedText.length);
        document.nSimForm.simArea.value = typedText;
        setCaretToPos(document.nSimForm.simArea, txtPos);
    }
    else
    {
        if (txtPos == typedText.length)
            return;

        typedText = typedText.substring(0, txtPos) + typedText.substring(txtPos+1, typedText.length);

        document.nSimForm.simArea.value = typedText;
        setCaretToPos(document.nSimForm.simArea, txtPos);
    }

};

function winnerHome(ctl)
{
    if (ctl)
    {
        // BOF
        txtPos = 0;
        setCaretToPos(document.nSimForm.simArea, txtPos);

        var tarea = document.nSimForm.simArea;
        tarea.scrollTop = 0;
    }
    else
    {

        // Home
        var textA = typedText.substring(0, txtPos);

        txtPos = textA.lastIndexOf('\n') + 1;
        setCaretToPos(document.nSimForm.simArea, txtPos);
    }

};

function winnerEnd(ctl)
{
    if (ctl)
    {
        // EOF
        txtPos = typedText.length;
        setCaretToPos(document.nSimForm.simArea, txtPos);

        var tarea = document.nSimForm.simArea;
        var scrollHeight = Math.max(tarea.scrollHeight, tarea.clientHeight);
        tarea.scrollTop = scrollHeight - tarea.clientHeight;
    }
    else
    {

        // End
        var textA = typedText.substring(0, txtPos);

        var lineEnd = typedText.indexOf('\n', txtPos);
        if (lineEnd == -1)
            lineEnd = typedText.length;

        txtPos = lineEnd;
        setCaretToPos(document.nSimForm.simArea, txtPos);
    }

};




function winnerCurs(dir, ctl)
    {
        if (dir == 1)          // up
        {
            var textA = typedText.substring(0, txtPos);
            var lastNl = textA.lastIndexOf('\n');
            if (lastNl != -1)
            {
                var textB = textA.substring(0, lastNl);
                var aftSecLastNl = textB.lastIndexOf('\n') + 1;
                txtPos = Math.min(aftSecLastNl - 1 + (textA.length - lastNl), lastNl);
            }
        }
        if (dir == 2)
        {
            if (ctl)
            {
                // word left

                var textA = typedText.substring(0, txtPos);
                var i = txtPos;

                if (i <= 0 || textA.charAt(i-1) == '\n')
                    return;

                while (i > 0 && textA.charAt(i-1) == ' ')
                    i--;

                while (i > 0 && textA.charAt(i-1) != ' ' && textA.charAt(i-1) != '\n')
                    i--;

                txtPos = i;
                setCaretToPos(document.nSimForm.simArea, txtPos);
            }
            else
            {
                // left
                if (txtPos > 0)
                    txtPos--;
            }
        }
        else if (dir == 3)     // right
        {
            if (ctl)
            {
                // word right

                var i = txtPos;
                var txtLen = typedText.length;
                if (i == txtLen || typedText.charAt(i) == '\n')
                    return;

                while (i < txtLen && typedText.charAt(i) != ' ' && typedText.charAt(i) != '\n')
                    i++;

                while (i < txtLen && typedText.charAt(i) == ' ')
                    i++;

                txtPos = i;
                setCaretToPos(document.nSimForm.simArea, txtPos);
            }
            else
            {
                // right
                if (txtPos < typedText.length)
                    txtPos++;
            }
        }
        else if (dir == 4)          // down
        {
            var textA = typedText.substring(0, txtPos);
            var textB = typedText.substring(txtPos, typedText.length);
            var aftLastNlA = textA.lastIndexOf('\n') + 1;
            var firstNlB = typedText.indexOf('\n', txtPos);
            if (firstNlB != -1)
            {
                var secondNlB = typedText.indexOf('\n', firstNlB + 1);
                if (secondNlB == -1)
                    secondNlB = typedText.length;
                var nextLineLen = secondNlB - firstNlB - 1;

                txtPos = firstNlB + 1 + Math.min(txtPos - aftLastNlA, nextLineLen);

             // alert("txtPos = " + txtPos + " nextLineLen = " + nextLineLen + " firstNlB = " + firstNlB + " secondNlB = " + secondNlB );
            }
        }


        setCaretToPos(document.nSimForm.simArea, txtPos);

    };


function clearTypedText()
    {
        typedText = "";
        txtPos = 0;
        document.nSimForm.simArea.value = typedText;
        document.nSimForm.simArea.focus();
    };

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function setCaretToPos (input, pos) {
  setSelectionRange(input, pos, pos);
}






function aniclck(kk) {
    kk.animate({top: 10}, {duration: 500, complete:function()
    {
        kk.animate({top: 0}, {duration: 500});
    }});
    };

function anirock(kk1, kk2) {
    kk1.animate({top: 10}, {duration: 500, complete:function()
    {
      kk2.animate({top: 10}, {duration: 500, complete:function()
      {
        kk2.animate({top: 0}, {duration: 500, complete:function()
        {
          kk1.animate({top: 0}, {duration: 500});
        }});
      }});
    }});
    };

function aniroll(kk1, kk2) {
    kk1.animate({top: 10}, {duration: 500, complete:function()
    {
      kk2.animate({top: 10}, {duration: 500, complete:function()
      {
        kk1.animate({top: 0}, {duration: 500, complete:function()
        {
          kk2.animate({top: 0}, {duration: 500});
        }});
      }});
    }});
    };


 // function posNavMenu()
 // {
 //
 //     var coords = $(vContainer).offset();
 //     var newLeft = (coords.left - 20) + 'px';
 //
 //  // alert("cont left = " + coords.left);
 //  // alert("cont left = " + (coords.left - 20));
 //  // alert("cont left = " + (coords.left - 20) + 'px');
 //
 //     $(vNavMenu).css('left', newLeft);
 //
 //  // vNavMenu.style.zIndex = '21';
 //
 // };


function init() {

 // vNavMenu = document.getElementById('navMenu');
    vContainer = document.getElementById('container');

    // posNavMenu();

    $('#glassCover').css('opacity', '0.60');

    $('.navMenuItem').css('opacity', '0.5');

    vimg111b = document.getElementById('img111b');
    vimg111b.style.top   = '170px';
    vimg111b.style.left  = '420px';
    vimg111b.style.width = '100px';

    vimg111 = document.getElementById('img111');
    vimg111.style.top   = '170px';
    vimg111.style.left  = '420px';
    vimg111.style.width = '100px';

    vimg112b = document.getElementById('img112b');
    vimg112b.style.top   = '260px';
    vimg112b.style.left  = '420px';
    vimg112b.style.width = '100px';

    vimg112 = document.getElementById('img112');
    vimg112.style.top   = '260px';
    vimg112.style.left  = '420px';
    vimg112.style.width = '100px';

    vimg113b = document.getElementById('img113b');
    vimg113b.style.top   = '350px';
    vimg113b.style.left  = '420px';
    vimg113b.style.width = '100px';

    vimg113 = document.getElementById('img113');
    vimg113.style.top   = '350px';
    vimg113.style.left  = '420px';
    vimg113.style.width = '100px';

    vimg114b = document.getElementById('img114b');
    vimg114b.style.top   = '440px';
    vimg114b.style.left  = '420px';
    vimg114b.style.width = '100px';

    vimg114 = document.getElementById('img114');
    vimg114.style.top   = '440px';
    vimg114.style.left  = '420px';
    vimg114.style.width = '100px';

    // clear tst area but do not focus
    typedText = "";
    txtPos = 0;
    document.nSimForm.simArea.value = typedText;


 // $("input[name='simType']")[0].checked = true;

    $('input[name=simType]:checked').removeAttr('checked');
    $('input[name=simType]:eq(0)').attr('checked','checked');

    advancedSim = 0;

    $('#simStatShiftOn').css('visibility', 'hidden');
    $('#simStatNumOn  ').css('visibility', 'hidden');
    $('#simStatLangOn ').css('visibility', 'hidden');
    $('#simStatCtrlOn ').css('visibility', 'hidden');

    $('#simStatLShiftOn').css('visibility', 'hidden');
    $('#simStatLNumOn  ').css('visibility', 'hidden');
    $('#simStatLLangOn ').css('visibility', 'hidden');
    $('#simStatLCtrlOn ').css('visibility', 'hidden');

    $('#simStatShiftOff').css('visibility', 'hidden');
    $('#simStatNumOff  ').css('visibility', 'hidden');
    $('#simStatLangOff ').css('visibility', 'hidden');
    $('#simStatCtrlOff ').css('visibility', 'hidden');

    $('#simStatLShiftOff').css('visibility', 'hidden');
    $('#simStatLNumOff  ').css('visibility', 'hidden');
    $('#simStatLLangOff ').css('visibility', 'hidden');
    $('#simStatLCtrlOff ').css('visibility', 'hidden');

    $('#charMapKey').css('visibility', 'hidden');
    $('#charMapNrm').css('visibility', 'hidden');
    $('#charMapCap').css('visibility', 'hidden');
    $('#charMapNum').css('visibility', 'hidden');
    $('#charMapLng').css('visibility', 'hidden');
    $('#charMapCtl').css('visibility', 'hidden');
    $('#charMapClk').css('visibility', 'hidden');

    $('#txt134').css('visibility', 'visible');
    $('#txt135').css('visibility', 'visible');
    $('#txt136').css('visibility', 'hidden');

    resetMode();

};


window.onload = init;



