memory_doc.txt:

documentation of JavaScript memory by Bernhard Abmayr

***************************************************************************
*                                History:                                 *
***************************************************************************
2002-04-17: V1.0: base version
2002-04-25: V1.1: replace array.push() and "new Option" for generating new
                     entries in select boxes as IE 5.0 in Hetzles does not like it
                  add user manual
2002-05-31: V1.2: more user manual
                  function to show all defined images
2002-06-06: V1.3: spelling corrected user manual
                  bildernamen.js: new variable max_matching_images (lost
                                  compatibility to previous versions!)
                  focus to manual window if it is already open
2014-12-01: V2.1: First publishing of calculation memory
                  As this memory does not work with a fix set of images,
				  it works different from the old ones. However, I added
				  some features, which would be useful for the old ones too.
				  But the source is now fairly incompatible and I would 
				  have to add those features manually for games that are
				  rarely played. (It is only a better optical appearance.)
				  
					Am 24.11.14 beginne ich mit dem Rechenmemory:
					Damit Rechnungen mit 5-stelligen Ergebnissen mglich sind, setze ich jedes Bild aus 5 Teilbildern zusammen:
					Aufgabenbild: abOcd (a,b,c,d,e sind Ziffern, O ein Operator)
					Lsungsbild : abcde
					verdeckt    : hhhhh (h=hidden)
					Bevor ich umsortiere, berechne ich die Aufgaben, wobei folgendes eingestellt werden kann:
					- Bereich fr die 1. Zahl der Aufgabe
					- Bereich fr die 2. Zahl der Aufgabe
					- Operator
					- Zahl der Aufgaben

					Beim normalen Memory speichere ich einfach die Bildernamen und merke mir anhand der Position, welche zusammengehren. 
					Beim Rechenmemory merke ich mir einen String mit 5 Zeichen, der fr jedes der 5 Teilbilder den Namen kodiert:
					- 0...9 sind die Ziffern, aus denen die Zahlen zusammengesetzt werden.
					- asmd  steht fr Addition, Subtraktion, Multiplikation, Division
					- b     blank picture

					Beim normalen Memory schreibe ich alle Bilder in eine Zeile und lasse den Browser den Umbruch machen. 
					Beim Rechenmemory geht das nicht so einfach. Dort mu man Bereiche definieren (<nobr>), wo nicht umgebrochen werden darf.


					Die Zeichen fr die einzelnen Bilder erstelle ich mit der Schriftart Algerian, Gre 48. Bildbreite = 45, Hhe = 75
					Als Kartenrckseite nehme ich hbsche Sumpfdotterblumen, wobei ich aus einem groen Bild hidden_all.jpg 5 kleinere mache, 
					   die nebeneinander ein komplettes Bild ergeben. Diese Bilder speichere ich mit Hhe 300. Wrde ich diese mit Hhe 75
					   speichern, wrden sie bei einer Vergrerung unschn aussehen. Alle Rckseitenbilder (und nur diese) haben einen 
					   Dateinamen, der mit "hidden_" beginnt. Auf diese Weise wird geprft, ob ein Bild offen oder verdeckt daliegt.


***************************************************************************
*                (incomplete) function tree                               *
***************************************************************************
the global JS section starts
ask_for_game_settings  (draws game settings page and sets event functions)
   - write_html_head_lines


   following functions are called by events from the game settings page
   - number_of_copies_changed
   - number_of_players_changed
   - number_of_used_images_changed
   - number_of_matching_images_changed
   - image_width_changed
   - start_game

start_game
   - init_new_game
       -- generate_math_problems
          --- make_string_from_number
       -- draw_html_for_game
          --- write_html_head_lines
          --- draw_new_image
              ---- get_img_name
       -- generate_mixed_image_array
          --- mix_array
       -- init_variables_before_new_game
       -- output_actual_game_standings
          --- replace_sub_images_of_number
   - mix_images
       -- mix_array

   following functions are called by events from the game page
   - stop_game
   - show_hidden_image
      -- output_actual_game_standings
         --- replace_sub_images_of_number
      -- replace_sub_images



