Sunteți pe pagina 1din 26

//Assign String typeOf for textF Varialbe.

//textF Variable should assign to your text field.


textF="";

//Determine if new character can stick to previous one


function isStickable(charCode){
if(charCode==""||charCode==String.fromCharCode(0x0041)||
charCode==String.fromCharCode(0x0023)||charCode==String.fromCharCode(0x0042)||
charCode==String.fromCharCode(0x0043)||charCode==String.fromCharCode(0x0044)||
charCode==String.fromCharCode(0x0048)||charCode==String.fromCharCode(0x0049)||
charCode==String.fromCharCode(0x00AF)||charCode==String.fromCharCode(0x00B0)||
charCode==String.fromCharCode(0x00BB)||charCode==String.fromCharCode(0x00BC)||
charCode==String.fromCharCode(0x006A)||charCode==String.fromCharCode(0x006B)||
charCode==String.fromCharCode(0x006C)||charCode==String.fromCharCode(0x006D)||
charCode==String.fromCharCode(0x006E)||charCode==String.fromCharCode(0x006F)||
charCode==String.fromCharCode(0x0070)||charCode==String.fromCharCode(0x0071)||
charCode==String.fromCharCode(0x0072)||charCode==String.fromCharCode(0x0073)||
charCode==String.fromCharCode(0x002F)||charCode==String.fromCharCode(0x003F)||
charCode==String.fromCharCode(0x0021)||charCode==String.fromCharCode(0x0022)||
charCode==String.fromCharCode(0x0025)||charCode==String.fromCharCode(0x0028)||
charCode==String.fromCharCode(0x0029)||charCode==String.fromCharCode(0x002A)||
charCode==String.fromCharCode(0x002B)||charCode==String.fromCharCode(0x002C)||
charCode==String.fromCharCode(0x002D)||charCode==String.fromCharCode(0x002E)||
charCode==String.fromCharCode(0x0030)||charCode==String.fromCharCode(0x0031)||
charCode==String.fromCharCode(0x0032)||charCode==String.fromCharCode(0x0033)||
charCode==String.fromCharCode(0x0034)||charCode==String.fromCharCode(0x0035)||
charCode==String.fromCharCode(0x0036)||charCode==String.fromCharCode(0x0037)||
charCode==String.fromCharCode(0x0038)||charCode==String.fromCharCode(0x0039)||
charCode==String.fromCharCode(0x003A)||charCode==String.fromCharCode(0x003B)||
charCode==String.fromCharCode(0x003C)||charCode==String.fromCharCode(0x003D)||
charCode==String.fromCharCode(0x003E)||charCode==String.fromCharCode(0x0022)){
return false;
}else {
return true;
}
}

function isSuper(charCode){
if(charCode==String.fromCharCode(0x00D1)||
charCode==String.fromCharCode(0x00D2)||charCode==String.fromCharCode(0x00D3)||
charCode==String.fromCharCode(0x00D4)||charCode==String.fromCharCode(0x00D5)||
charCode==String.fromCharCode(0x00D6)||charCode==String.fromCharCode(0x00D7)||
charCode==String.fromCharCode(0x00D8)||charCode==String.fromCharCode(0x00D9)||
charCode==String.fromCharCode(0x00DA)||charCode==String.fromCharCode(0x00DB)||
charCode==String.fromCharCode(0x00DC)||charCode==String.fromCharCode(0x00DE)||
charCode==String.fromCharCode(0x00DF)||charCode==String.fromCharCode(0x00E1)||
charCode==String.fromCharCode(0x00E2)||charCode==String.fromCharCode(0x00E3)||
charCode==String.fromCharCode(0x00E4)||charCode==String.fromCharCode(0x00E5)){
return true;
}else{
return false;
}
};

//Convert character to Small Middle form on Persian Alphabet


function toSmallMiddle(charCode){
switch (charCode){
//Cable Back Codes:
//space
case String.fromCharCode(0x0023):
return String.fromCharCode(0x0023);
break;

//be
case String.fromCharCode(0x004B):
return String.fromCharCode(0x004C);
break;

//pe
case String.fromCharCode(0x004F):
return String.fromCharCode(0x0050);
break;

//te
case String.fromCharCode(0x0053):
return String.fromCharCode(0x0054);
break;

//se
case String.fromCharCode(0x0057):
return String.fromCharCode(0x0058);
break;

//jim
case String.fromCharCode(0x005B):
return String.fromCharCode(0x005C);
break;

//che
case String.fromCharCode(0x005F):
return String.fromCharCode(0x0060);
break;

//he
case String.fromCharCode(0x0063):
return String.fromCharCode(0x0064);
break;

//khe
case String.fromCharCode(0x0067):
return String.fromCharCode(0x0068);
break;

//sin
case String.fromCharCode(0x0075):
return String.fromCharCode(0x0076);
break;

//shin
case String.fromCharCode(0x0079):
return String.fromCharCode(0x007A);
break;

//sad
case String.fromCharCode(0x007D):
return String.fromCharCode(0x007E);
break;

//zad
case String.fromCharCode(0x201E):
return String.fromCharCode(0x2026);
break;

//ta
case String.fromCharCode(0x02C6):
return String.fromCharCode(0x2030);
break;

//za
case String.fromCharCode(0x0152):
return String.fromCharCode(0x00CA);
break;

//ein
case String.fromCharCode(0x201D):
return String.fromCharCode(0x2022);
break;

//ghein
case String.fromCharCode(0x02DC):
return String.fromCharCode(0x2122);
break;

//fe
case String.fromCharCode(0x0153):
return String.fromCharCode(0x0178);
break;

//ghaf
case String.fromCharCode(0x0A2):
return String.fromCharCode(0x0A3);
break;

//kaf
case String.fromCharCode(0x0A6):
return String.fromCharCode(0x0A7);
break;

//gaf
case String.fromCharCode(0x0AA):
return String.fromCharCode(0x0AB);
break;

//lam
case String.fromCharCode(0x00AE):
return String.fromCharCode(0x00B1);
break;

//mim
case String.fromCharCode(0x00B4):
return String.fromCharCode(0x00B5);
break;
//noon
case String.fromCharCode(0x00B8):
return String.fromCharCode(0x00B9);
break;

//heh
case String.fromCharCode(0x00BE):
return String.fromCharCode(0x00BF);
break;

//ye
case String.fromCharCode(0x00C2):
return String.fromCharCode(0x00C3);
break;

//ye hamzeh
case String.fromCharCode(0x0045):
return String.fromCharCode(0x0046);
break;

//Error
default:
trace("Return N/A Small Middle Form!");
break;
}
}

//Convert character to Small First form on Persian Alphabet


function toSmallFirst(charCode){
switch (charCode){

//be
case String.fromCharCode(0x004A):
return String.fromCharCode(0x004D);
break;

//pe
case String.fromCharCode(0x004E):
return String.fromCharCode(0x0051);
break;

//te
case String.fromCharCode(0x0052):
return String.fromCharCode(0x0055);
break;

//se
case String.fromCharCode(0x0056):
return String.fromCharCode(0x0059);
break;

//jim
case String.fromCharCode(0x005A):
return String.fromCharCode(0x005D);
break;

//che
case String.fromCharCode(0x005E):
return String.fromCharCode(0x0061);
break;

//he
case String.fromCharCode(0x0062):
return String.fromCharCode(0x0065);
break;

//khe
case String.fromCharCode(0x0066):
return String.fromCharCode(0x0069);
break;

//sin
case String.fromCharCode(0x0074):
return String.fromCharCode(0x0077);
break;

//shin
case String.fromCharCode(0x0078):
return String.fromCharCode(0x007B);
break;

//sad
case String.fromCharCode(0x007C):
return String.fromCharCode(0x201A);
break;

//zad
case String.fromCharCode(0x0192):
return String.fromCharCode(0x2020);
break;

//ta
case String.fromCharCode(0x2021):
return String.fromCharCode(0x0160);
break;

//za
case String.fromCharCode(0x2039):
return String.fromCharCode(0x00CB);
break;

//ein
case String.fromCharCode(0x201C):
return String.fromCharCode(0x2013);
break;

//ghein
case String.fromCharCode(0x2014):
return String.fromCharCode(0x0161);
break;

//fe
case String.fromCharCode(0x203A):
return String.fromCharCode(0x00A0);
break;
//ghaf
case String.fromCharCode(0x00A1):
return String.fromCharCode(0x00A4);
break;

//kaf
case String.fromCharCode(0x00A5):
return String.fromCharCode(0x00A8);
break;

//gaf
case String.fromCharCode(0x00A9):
return String.fromCharCode(0x00AC);
break;

//lam
case String.fromCharCode(0x00AD):
return String.fromCharCode(0x00B2);
break;

//mim
case String.fromCharCode(0x00B3):
return String.fromCharCode(0x00B6);
break;

//noon
case String.fromCharCode(0x00B7):
return String.fromCharCode(0x00BA);
break;

//heh
case String.fromCharCode(0x00BD):
return String.fromCharCode(0x00C0);
break;

//ye
case String.fromCharCode(0x00C1):
return String.fromCharCode(0x00C4);
break;

//ye hamzeh
case String.fromCharCode(0x0045):
return String.fromCharCode(0x0047);
break;

//Error
default:
trace("Return N/A Small First Form!");
break;
}
}

//Convert character to Capital Stickable form on Persian Alphabet


function toCapitalSticked(charCode){
switch (charCode){

//be
case String.fromCharCode(0x004C):
return String.fromCharCode(0x004B);
break;

//pe
case String.fromCharCode(0x0050):
return String.fromCharCode(0x004F);
break;

//te
case String.fromCharCode(0x0054):
return String.fromCharCode(0x0053);
break;

//se
case String.fromCharCode(0x0058):
return String.fromCharCode(0x0057);
break;

//jim
case String.fromCharCode(0x005C):
return String.fromCharCode(0x005B);
break;

//che
case String.fromCharCode(0x0060):
return String.fromCharCode(0x005F);
break;

//he
case String.fromCharCode(0x0064):
return String.fromCharCode(0x0063);
break;

//khe
case String.fromCharCode(0x0068):
return String.fromCharCode(0x0067);
break;

//sin
case String.fromCharCode(0x0076):
return String.fromCharCode(0x0075);
break;

//shin
case String.fromCharCode(0x007A):
return String.fromCharCode(0x0079);
break;

//sad
case String.fromCharCode(0x007E):
return String.fromCharCode(0x007D);
break;

//zad
case String.fromCharCode(0x2026):
return String.fromCharCode(0x201E);
break;
//ta
case String.fromCharCode(0x2030):
return String.fromCharCode(0x02C6);
break;

//za
case String.fromCharCode(0x00CA):
return String.fromCharCode(0x0152);
break;

//ein
case String.fromCharCode(0x2022):
return String.fromCharCode(0x201D);
break;

//ghein
case String.fromCharCode(0x2122):
return String.fromCharCode(0x02DC);
break;

//fe
case String.fromCharCode(0x0178):
return String.fromCharCode(0x0153);
break;

//ghaf
case String.fromCharCode(0x00A3):
return String.fromCharCode(0x00A2);
break;

//kaf
case String.fromCharCode(0x00A7):
return String.fromCharCode(0x00A6);
break;

//gaf
case String.fromCharCode(0x00AB):
return String.fromCharCode(0x00AA);
break;

//lam
case String.fromCharCode(0x00B1):
return String.fromCharCode(0x00AE);
break;

//mim
case String.fromCharCode(0x00B5):
return String.fromCharCode(0x00B4);
break;

//noon
case String.fromCharCode(0x00B9):
return String.fromCharCode(0x00B8);
break;

//heh
case String.fromCharCode(0x00BF):
return String.fromCharCode(0x00BE);
break;

//ye
case String.fromCharCode(0x00C3):
return String.fromCharCode(0x00C2);
break;

//ye hamzeh
case String.fromCharCode(0x0046):
return String.fromCharCode(0x0045);
break;

//Error
default:
trace("Return N/A Capital Stickable Form!");
break;
}
}

//Convert character to Capital Lonely form on Persian Alphabet


function toCapitalLonely(charCode){
switch (charCode){

//be
case String.fromCharCode(0x004D):
return String.fromCharCode(0x004A);
break;

//pe
case String.fromCharCode(0x0051):
return String.fromCharCode(0x004E);
break;

//te
case String.fromCharCode(0x0055):
return String.fromCharCode(0x0052);
break;

//se
case String.fromCharCode(0x0059):
return String.fromCharCode(0x0056);
break;

//jim
case String.fromCharCode(0x005D):
return String.fromCharCode(0x005A);
break;

//che
case String.fromCharCode(0x0061):
return String.fromCharCode(0x005E);
break;

//he
case String.fromCharCode(0x0065):
return String.fromCharCode(0x0062);
break;
//khe
case String.fromCharCode(0x0069):
return String.fromCharCode(0x0066);
break;

//sin
case String.fromCharCode(0x0077):
return String.fromCharCode(0x0074);
break;

//shin
case String.fromCharCode(0x007B):
return String.fromCharCode(0x0078);
break;

//sad
case String.fromCharCode(0x201A):
return String.fromCharCode(0x007C);
break;

//zad
case String.fromCharCode(0x2020):
return String.fromCharCode(0x0192);
break;

//ta
case String.fromCharCode(0x0160):
return String.fromCharCode(0x2021);
break;

//za
case String.fromCharCode(0x00CB):
return String.fromCharCode(0x2039);
break;

//ein
case String.fromCharCode(0x2013):
return String.fromCharCode(0x201C);
break;

//ghein
case String.fromCharCode(0x0161):
return String.fromCharCode(0x2014);
break;

//fe
case String.fromCharCode(0x00A0):
return String.fromCharCode(0x203A);
break;

//ghaf
case String.fromCharCode(0x00A4):
return String.fromCharCode(0x00A1);
break;

//kaf
case String.fromCharCode(0x00A8):
return String.fromCharCode(0x00A5);
break;

//gaf
case String.fromCharCode(0x0AC):
return String.fromCharCode(0x0A9);
break;

//lam
case String.fromCharCode(0x00B2):
return String.fromCharCode(0x00AD);
break;

//mim
case String.fromCharCode(0x00B6):
return String.fromCharCode(0x00B3);
break;

//noon
case String.fromCharCode(0x00BA):
return String.fromCharCode(0x00B7);
break;

//heh
case String.fromCharCode(0x00C0):
return String.fromCharCode(0x00BD);
break;

//ye
case String.fromCharCode(0x00C4):
return String.fromCharCode(0x00C1);
break;

//ye hamzeh
case String.fromCharCode(0x0047):
return String.fromCharCode(0x0045);
break;

//Error
default:
trace("Return N/A Capital Lonely Form!");
break;
}
}

//Base Object Defining


PTypist = new Object();
shiftDetect = new Object();

//Main Typist Function that Trap User Keys and find specified Persian Character
PTypist.onKeyDown = function () {
//CodeViewer
trace(Key.getCode());
c=0;
if(isSuper(textF.charAt(0))){
for(i=1;i<textF.length;i++){
c++;
if(!isSuper(textF.charAt(c))){ break; }
}
};
//trace("Super is: "+c);
switch(Key.getCode()){

//Controls
case 8:
if(textF.charAt(0)==String.fromCharCode(0x00AF)){
//Testing "LA" first form
textF=String.fromCharCode(0x00AD)+textF.substr(1);
}else if(textF.charAt(0)==String.fromCharCode(0x00B0)){
//Testing "LA" second form
textF=String.fromCharCode(0x00AE)+textF.substr(1);
}else{
//Testing other Stickable form
textF=textF.substr(1);
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
if(toCapitalSticked(textF.charAt(0))==undefined){
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}
textF=toCapitalSticked(textF.charAt(0))+textF.substr(1);
}else{
//small first
if(toCapitalLonely(textF.charAt(0))==undefined){
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
textF=toCapitalLonely(textF.charAt(0))+textF.substr(1);
}
}
}
break;

//Symbols
case 191:
if(isShift){
textF=String.fromCharCode(0x003F)+textF;
}else{
textF=String.fromCharCode(0x002F)+textF;
}
break;

case 49:
if(isShift){
textF=String.fromCharCode(0x0021)+textF;
}else{
textF=String.fromCharCode(0x0031)+textF;
}
break;

case 50:
textF=String.fromCharCode(0x0032)+textF;
break;

case 51:
textF=String.fromCharCode(0x0033)+textF;
break;
case 52:
textF=String.fromCharCode(0x0034)+textF;
break;

case 53:
if(isShift){
textF=String.fromCharCode(0x0025)+textF;
}else{
textF=String.fromCharCode(0x0035)+textF;
}
break;

case 54:
textF=String.fromCharCode(0x0036)+textF;
break;

case 55:
textF=String.fromCharCode(0x0037)+textF;
break;

case 56:
if(isShift){
textF=String.fromCharCode(0x002A)+textF;
}else{
textF=String.fromCharCode(0x0038)+textF;
}
break;

case 57:
if(isShift){
textF=String.fromCharCode(0x0028)+textF;
}else{
textF=String.fromCharCode(0x0039)+textF;
}
break;

case 48:
if(isShift){
textF=String.fromCharCode(0x0029)+textF;
}else{
textF=String.fromCharCode(0x0030)+textF;
}
break;

case 187:
if(isShift){
textF=String.fromCharCode(0x002B)+textF;
}else{
textF=String.fromCharCode(0x003D)+textF;
}
break;

case 189:
if(isShift){

if(isStickable(textF.charAt(0))&&textF.charAt(0)!=String.fromCharCode(0x0040)){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
}
textF=String.fromCharCode(0x0040)+textF;
}else{
textF=String.fromCharCode(0x002D)+textF;
}
break;

//Dot
case 190:
textF=String.fromCharCode(0x002E)+textF;
break;

//shift
case 16:
trace("Shift Status:");
break;

//space
case 32:
textF=String.fromCharCode(0x0023)+textF;
break;

//Alphabets

//alef:
case 72:
if(isShift){
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0042)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0041)+textF;
}
}else{
if(textF.charAt(0)==String.fromCharCode(0x00AD)||
textF.charAt(0)==String.fromCharCode(0x00B2)){
textF=String.fromCharCode(0x00AF)+textF.substr(1);
} else if(textF.charAt(0)==String.fromCharCode(0x00AE)||
textF.charAt(0)==String.fromCharCode(0x00B1)){
textF=String.fromCharCode(0x00B0)+textF.substr(1);
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0049)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0048)+textF;
}
}
}
break;

//be:
case 70:
if(isShift){
textF=String.fromCharCode(0x00D8)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x004B)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x004A)+textF;
}
}
break;

//pe:
case 192:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x004F)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x004E)+textF;
}
break;

//te:
case 74:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0053)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0052)+textF;
}
break;

//se:
case 69:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0057)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0056)+textF;
}
break;

//jim:
case 219:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x005B)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x005A)+textF;
}
break;

//che:
case 221:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x005F)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x005E)+textF;
}
break;

//he:
case 80:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0063)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0062)+textF;
}
break;

//khe:
case 79:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0067)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0066)+textF;
}
break;

//dal:
case 78:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x006B)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x006A)+textF;
}
break;

//zal:
case 66:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x006D)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x006C)+textF;
}
break;

//re:
case 86:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x006F)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x006E)+textF;
}
break;

//ze:
case 67:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0071)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0070)+textF;
}
break;

//zhe:
case 220:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0073)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0072)+textF;
}
break;

//sin:
case 83:
if(isShift){
textF=String.fromCharCode(0x00D4)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0075)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0074)+textF;
}
}
break;

//shin:
case 65:
if(isShift){
textF=String.fromCharCode(0x00D2)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0079)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0078)+textF;
}
}
break;

//sad:
case 87:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x007D)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x007C)+textF;
}
break;

//zad:
case 81:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x201E)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0192)+textF;
}
break;

//ta:
case 88:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x02C6)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x2021)+textF;
}
break;

//za:
case 90:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0152)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x2039)+textF;
}
break;

//ein:
case 85:
if(isShift){
textF=String.fromCharCode(0x002C)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x201D)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x201C)+textF;
}
}
break;

//ghein:
case 89:
if(isShift){
textF=String.fromCharCode(0x003B)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x02DC)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x2014)+textF;
}
}
break;

//fe:
case 84:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0153)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x203A)+textF;
}
break;

//ghaf:
case 82:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00A2)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00A1)+textF;
}
break;

//kaf:
case 186:
if(isShift){
textF=String.fromCharCode(0x003A)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00A6)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00A5)+textF;
}
}
break;

//gaf:
case 222:
if(isShift){
textF=String.fromCharCode(0x0022)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00AA)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00A9)+textF;
}
}
break;

//lam:
case 71:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00AE)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00AD)+textF;
}
break;

//mim:
case 76:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00B4)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00B3)+textF;
}
break;

//noon:
case 75:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00B8)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00B7)+textF;
}
break;

//vav:
case 188:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00BC)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00BB)+textF;
}
break;

//heh:
case 73:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00BE)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00BD)+textF;
}
break;

//ye:
case 68:
if(isShift){
textF=String.fromCharCode(0x00DF)+textF;
}else{
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x00C2)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x00C1)+textF;
}
}
break;

//ye hamzeh:
case 77:
if(isStickable(textF.charAt(0))){
if(isStickable(textF.charAt(1))){
//small middle
textF=toSmallMiddle(textF.charAt(0))+textF.substr(1);
}else{
//small first
textF=toSmallFirst(textF.charAt(0))+textF.substr(1);
}
//Capital Sticked
textF=String.fromCharCode(0x0045)+textF;
}else{
//Lonely Capital
textF=String.fromCharCode(0x0045)+textF;
}
break;

default:
trace("Error: Unknown Key Code Recieved!");
break;
}
};

//Shift Detectors
shiftDetect.onKeyDown = function () {
if(Key.getCode()==16){
isShift=true;
trace("shifted");
}
};

shiftDetect.onKeyUp = function () {
if(Key.getCode()==16){
isShift=false;
trace("unshifted");
}
};

//Assign listener to specified Objects:


Key.addListener(PTypist);
Key.addListener(shiftDetect);

//This .as file should attack to specified .fla file to work with an Text field
and variable,

S-ar putea să vă placă și