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()+'‮‭');
}
else
{
$('#arabicText').html($('#arabicText').html()+'‬ ');
}
}
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()+'‮‭');
}
else
{
alert('switching to Arabic');
$('#arabicText').html($('#arabicText').html()+'‬');
}
}
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){
...