

  //
  //  Generic letters (no final forms)
  //
  var LG_NONE = 0;  // none
  var LG_ALEPH = 1;
  var LG_BET = 2;
  var LG_GIMEL = 3;
  var LG_DALED = 4;
  var LG_HEH = 5;
  var LG_VAV = 6;
  var LG_ZAIN = 7;
  var LG_CHET = 8;
  var LG_TET = 9;
  var LG_YUD = 10;
  var LG_CAPH = 11;
  var LG_LAMED = 12;
  var LG_MEM = 13;
  var LG_NUN = 14;
  var LG_SAMECH = 15;
  var LG_AYN = 16;
  var LG_PE = 17;
  var LG_TSADIK = 18;
  var LG_KUPH = 19;
  var LG_RESH = 20;
  var LG_SHIN = 21;
  var LG_TAPH = 22;
  var LG_MAX = 23;  // max
  var LG_SPACE = 24;
  var LG_PERIOD = 25;
  
  
  //
  //  Plain Hebrew Character images
  //
  var GenLetterToImg = new Array(); 
  GenLetterToImg[LG_ALEPH] = "images/hebplain/aleph.gif";
  GenLetterToImg[LG_BET] = "images/hebplain/bet.gif";
  GenLetterToImg[LG_GIMEL] = "images/hebplain/gimel.gif";
  GenLetterToImg[LG_DALED] = "images/hebplain/daled.gif";
  GenLetterToImg[LG_HEH] = "images/hebplain/heh.gif";
  GenLetterToImg[LG_VAV] = "images/hebplain/vav.gif";
  GenLetterToImg[LG_ZAIN] = "images/hebplain/zain.gif";
  GenLetterToImg[LG_CHET] = "images/hebplain/chet.gif";
  GenLetterToImg[LG_TET] = "images/hebplain/tet.gif";
  GenLetterToImg[LG_YUD] = "images/hebplain/yud.gif";
  GenLetterToImg[LG_CAPH] = "images/hebplain/caph.gif";
  GenLetterToImg[LG_LAMED] = "images/hebplain/lamed.gif";
  GenLetterToImg[LG_MEM] = "images/hebplain/mem.gif";
  GenLetterToImg[LG_NUN] = "images/hebplain/nun.gif";
  GenLetterToImg[LG_SAMECH] = "images/hebplain/samech.gif";
  GenLetterToImg[LG_AYN] = "images/hebplain/ayn.gif";
  GenLetterToImg[LG_PE] = "images/hebplain/pe.gif";
  GenLetterToImg[LG_TSADIK] = "images/hebplain/tsadik.gif";
  GenLetterToImg[LG_KUPH] = "images/hebplain/kuph.gif";
  GenLetterToImg[LG_RESH] = "images/hebplain/resh.gif";
  GenLetterToImg[LG_SHIN] = "images/hebplain/shin.gif";
  GenLetterToImg[LG_TAPH] = "images/hebplain/taph.gif";

  GenLetterToImg[LG_SPACE] = "images/hebplain/space.gif";
  GenLetterToImg[LG_PERIOD] = "images/hebplain/period.gif";
  GenLetterToImg[LG_NONE] = "images/hebplain/none.gif";

  //
  //  A few Hebrew letters have final forms,
  //  used when they appear at the end of a word.
  //
  var GenLetterToFinalLetterImg = new Array(); 
  GenLetterToFinalLetterImg[LG_CAPH] = "images/hebplain/caph_f.gif";
  GenLetterToFinalLetterImg[LG_MEM] = "images/hebplain/mem_f.gif";
  GenLetterToFinalLetterImg[LG_NUN] = "images/hebplain/nun_f.gif";
  GenLetterToFinalLetterImg[LG_PE] = "images/hebplain/pe_f.gif";
  GenLetterToFinalLetterImg[LG_TSADIK] = "images/hebplain/tsadik_f.gif";

  var LETTER_WIDTH_ORIG = 100;
  var LETTER_HEIGHT_ORIG = 130;
  var LETTER_WIDTH_MENU = Math.floor(LETTER_WIDTH_ORIG/4);
  var LETTER_HEIGHT_MENU = Math.floor(LETTER_HEIGHT_ORIG/4);
  var LETTER_WIDTH_TEXT = Math.floor(LETTER_WIDTH_ORIG/6);
  var LETTER_HEIGHT_TEXT = Math.floor(LETTER_HEIGHT_ORIG/6);

  //
  //  Display constants
  //
  var DISPLAY_WIDTH_PIXELS = 640;
  var DISPLAY_TEXT_LETTERS_PER_ROW = Math.floor(DISPLAY_WIDTH_PIXELS/LETTER_WIDTH_TEXT);
  var DISPLAY_TEXT_MAX_ROWS = 25;

  var DISPLAY_TEXT_MAX_LETTERS = DISPLAY_TEXT_LETTERS_PER_ROW*DISPLAY_TEXT_MAX_ROWS;
  

  //
  //  Map between ascii text character representations of Hebrew letters
  //  and the actual Hebrew letters.
  //
  var AsciiTextChars = ")BGDHWZX+YKLMNS(PCQR$T";
  var TextCharToGenLetter = new Array(); 
  TextCharToGenLetter[')'] = LG_ALEPH;
  TextCharToGenLetter['B'] = LG_BET;
  TextCharToGenLetter['G'] = LG_GIMEL;
  TextCharToGenLetter['D'] = LG_DALED;
  TextCharToGenLetter['H'] = LG_HEH;
  TextCharToGenLetter['W'] = LG_VAV;
  TextCharToGenLetter['Z'] = LG_ZAIN;
  TextCharToGenLetter['X'] = LG_CHET;
  TextCharToGenLetter['+'] = LG_TET;
  TextCharToGenLetter['Y'] = LG_YUD;
  TextCharToGenLetter['K'] = LG_CAPH;
  TextCharToGenLetter['L'] = LG_LAMED;
  TextCharToGenLetter['M'] = LG_MEM;
  TextCharToGenLetter['N'] = LG_NUN;
  TextCharToGenLetter['S'] = LG_SAMECH;
  TextCharToGenLetter['('] = LG_AYN;
  TextCharToGenLetter['P'] = LG_PE;
  TextCharToGenLetter['C'] = LG_TSADIK;
  TextCharToGenLetter['Q'] = LG_KUPH;
  TextCharToGenLetter['R'] = LG_RESH;
  TextCharToGenLetter['$'] = LG_SHIN;
  TextCharToGenLetter['T'] = LG_TAPH;

  TextCharToGenLetter[' '] = LG_SPACE;
  TextCharToGenLetter['.'] = LG_PERIOD;

  var GenLetterToTextChar = new Array(); 
  GenLetterToTextChar[LG_ALEPH] = ')';
  GenLetterToTextChar[LG_BET] = 'B';
  GenLetterToTextChar[LG_GIMEL] = 'G';
  GenLetterToTextChar[LG_DALED] = 'D';
  GenLetterToTextChar[LG_HEH] = 'H';
  GenLetterToTextChar[LG_VAV] = 'W';
  GenLetterToTextChar[LG_ZAIN] = 'Z';
  GenLetterToTextChar[LG_CHET] = 'X';
  GenLetterToTextChar[LG_TET] = '+';
  GenLetterToTextChar[LG_YUD] = 'Y';
  GenLetterToTextChar[LG_CAPH] = 'K';
  GenLetterToTextChar[LG_LAMED] = 'L';
  GenLetterToTextChar[LG_MEM] = 'M';
  GenLetterToTextChar[LG_NUN] = 'N';
  GenLetterToTextChar[LG_SAMECH] = 'S';
  GenLetterToTextChar[LG_AYN] = '(';
  GenLetterToTextChar[LG_PE] = 'P';
  GenLetterToTextChar[LG_TSADIK] = 'C';
  GenLetterToTextChar[LG_KUPH] = 'Q';
  GenLetterToTextChar[LG_RESH] = 'R';
  GenLetterToTextChar[LG_SHIN] = '$';
  GenLetterToTextChar[LG_TAPH] = 'T';
  GenLetterToTextChar[LG_SPACE] = ' ';
  GenLetterToTextChar[LG_PERIOD] = '.';


