Bidi Mixed Simple Editor

by Amro Abu-Hmaidan

HTML

<textarea id="arabicEditor"></textarea><br/>
<span id="arabicText"></span>

JavaScript

nn=(document.layers)?true:false;
   ie=(document.all)?true:false;
   lastChar ="";

$(document).ready(function()
{
    $('#arabicEditor').keydown(function(e)
    {
        lastChar = $('#arabicText').text().trim().charCodeAt($('#arabicText').text().trim().length - 1);
        evt=(e)?e:(window.event)?window.event:null;
        
        if(evt.altKey && evt.shiftKey)
          {
             if(lastChar > 1000)
             {
                 $('#arabicText').html($('#arabicText').html()+'&#8238;&#8237;');
             }
             else
             {
                 $('#arabicText').html($('#arabicText').html()+'&#8236;&nbsp;');
             }
          }
        if(evt.which == 8)
        {
            if($('#arabicText').html().length >1)
            {
                $('#arabicText').html($('#arabicText').html().substr(0,$('#arabicText').html().length-1));
            }
            else
            {
                $('#arabicText').html("");
            }
        }
    });
    $('#arabicEditor').keypress(function(e)
    {
      evt=(e)?e:(window.event)?window.event:null;
      console.log(lastChar); 
      if(evt)
      {
          if(evt.altKey && evt.shiftKey)
          {
             if($('#arabicText').text().charCodeAt($('#arabicText').text().length - 1) > 1000)
             {
                 alert('switching to English');
                 $('#arabicText').html($('#arabicText').html()+'&#8238;&#8237;');
             }
             else
             {
                 alert('switching to Arabic');
                 $('#arabicText').html($('#arabicText').html()+'&#8236;');
             }
          }
          else
          {
          $('#arabicText').html($('#arabicText').html()+String.fromCharCode(evt.which));             
          }
      }
  });
});

   //document.onkeydown=keyDown;
/*   $('#arabicEditor').onkeydown = keyDown; 
   if(nn) document.captureEvents(Event.KEYDOWN);*/
/*var evt=(e)?e:(window.event)?window.event:null;
      if(evt){
     ...