]> git.mxchange.org Git - shipsimu-docs.git/commitdiff
Cleaned up .gitattributes + converted CRLF -> LF (Uni* style on some files) master
authorRoland Haeder <roland@mxchange.org>
Sat, 13 Feb 2016 21:05:21 +0000 (22:05 +0100)
committerRoland Haeder <roland@mxchange.org>
Sat, 13 Feb 2016 21:06:16 +0000 (22:06 +0100)
Signed-off-by: Roland Haeder <roland@mxchange.org>
.gitattributes
shipsimu-docs/Browser-Game.html_files/marktree.js
shipsimu-docs/Browser-Game.html_files/treestyles.css
shipsimu-docs/Payment-System.html_files/marktree.js
shipsimu-docs/Payment-System.html_files/treestyles.css
shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/marktree.js
shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/treestyles.css
shipsimu-docs/Tech-Tree_v1.html_files/marktree.js
shipsimu-docs/Tech-Tree_v1.html_files/treestyles.css

index f6d35ba68d0d4b4e11d0be332fb73089c098d6b5..dfe0770424b2a19faf507a501ebfc23be8f54e7b 100644 (file)
@@ -1,173 +1,2 @@
-* text=auto !eol
-shipsimu-docs/Browser-Game.html -text svneol=unset#text/html
-shipsimu-docs/Browser-Game.html_files/icons/Mail.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/attach.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/back.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/bell.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/bookmark.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/button_cancel.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/button_ok.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/clanbomber.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/desktop_new.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/flag.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/forward.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-1.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-2.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-3.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-4.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-5.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-6.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/full-7.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/gohome.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/help.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/idea.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/kaddressbook.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/knotify.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/korn.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/ksmiletris.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/licq.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/messagebox_warning.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/password.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/pencil.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/penguin.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/stop.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/wizard.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/icons/xmag.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/marktree.js -text svneol=unset#text/javascript
-shipsimu-docs/Browser-Game.html_files/minus.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/plus.png -text svneol=unset#image/png
-shipsimu-docs/Browser-Game.html_files/treestyles.css -text svneol=unset#text/css
-shipsimu-docs/Browser-Game.mm -text
-shipsimu-docs/COPYING -text svneol=unset#text/plain
-shipsimu-docs/Conception[!!-~]-[!!-~]Ship-Simu[!!-~]0.0.1.odt -text
-shipsimu-docs/NEWS -text svneol=unset#text/plain
-shipsimu-docs/ObjectFactory[!!-~]Benchmark[!!-~]-[!!-~]20080609.gnumeric -text
-shipsimu-docs/Payment-System.html -text svneol=unset#text/html
-shipsimu-docs/Payment-System.html_files/icons/Mail.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/attach.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/back.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/bell.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/bookmark.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/button_cancel.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/button_ok.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/clanbomber.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/desktop_new.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/flag.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/forward.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-1.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-2.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-3.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-4.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-5.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-6.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/full-7.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/gohome.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/help.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/idea.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/kaddressbook.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/knotify.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/korn.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/ksmiletris.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/licq.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/messagebox_warning.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/password.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/pencil.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/penguin.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/stop.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/wizard.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/icons/xmag.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/marktree.js -text svneol=unset#text/javascript
-shipsimu-docs/Payment-System.html_files/minus.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/plus.png -text svneol=unset#image/png
-shipsimu-docs/Payment-System.html_files/treestyles.css -text svneol=unset#text/css
-shipsimu-docs/Payment-System.mm -text
-shipsimu-docs/Promoter.txt -text svneol=unset#text/plain
-shipsimu-docs/README -text svneol=unset#text/plain
-shipsimu-docs/Ship-Simu[!!-~]ArgoUML[!!-~]Diagram.zargo -text
-shipsimu-docs/Ship-Simu-Ship-Simulator.html -text svneol=unset#text/html
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/Mail.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/attach.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/back.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/bell.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/bookmark.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/button_cancel.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/button_ok.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/clanbomber.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/desktop_new.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/flag.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/forward.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-1.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-2.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-3.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-4.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-5.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-6.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/full-7.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/gohome.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/help.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/idea.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/kaddressbook.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/knotify.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/korn.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/ksmiletris.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/licq.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/messagebox_warning.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/password.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/pencil.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/penguin.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/stop.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/wizard.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/icons/xmag.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/marktree.js -text svneol=unset#text/javascript
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/minus.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/plus.png -text svneol=unset#image/png
-shipsimu-docs/Ship-Simu-Ship-Simulator.html_files/treestyles.css -text svneol=unset#text/css
-shipsimu-docs/Ship-Simu-Ship-Simulator.mm -text
-shipsimu-docs/THANKS -text svneol=unset#text/plain
-shipsimu-docs/Tech-Tree_v1.html -text svneol=unset#text/html
-shipsimu-docs/Tech-Tree_v1.html_files/icons/Mail.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/attach.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/back.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/bell.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/bookmark.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/button_cancel.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/button_ok.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/clanbomber.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/desktop_new.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/flag.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/forward.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-1.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-2.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-3.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-4.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-5.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-6.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/full-7.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/gohome.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/help.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/idea.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/kaddressbook.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/knotify.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/korn.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/ksmiletris.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/licq.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/messagebox_warning.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/password.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/pencil.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/penguin.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/stop.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/wizard.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/icons/xmag.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/marktree.js -text svneol=unset#text/javascript
-shipsimu-docs/Tech-Tree_v1.html_files/minus.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/plus.png -text svneol=unset#image/png
-shipsimu-docs/Tech-Tree_v1.html_files/treestyles.css -text svneol=unset#text/css
-shipsimu-docs/Tech-Tree_v1.mm -text
-shipsimu-docs/historical/mindmap_20080517.html -text
-shipsimu-docs/historical/mindmap_20080522.html -text
-shipsimu-docs/historical/mindmap_20080523.html -text
-shipsimu-docs/historical/mindmap_20080524.html -text
-shipsimu-docs/historical/mindmap_20080606.html -text
-shipsimu-docs/historical/mindmap_20080611.html -text
-shipsimu-docs/historical/mindmap_20080705.html -text
-shipsimu-docs/historical/mindmap_20081002.html -text
+# Auto detect text files and perform LF normalization
+* text=auto
index 10bba606f238ad486ec3d045cac43dde957ca369..aa31b4deec243eaa2c1c1572184e826499a0a7c4 100644 (file)
-/* MarkTree JavaScript code\r
- * \r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License. You may obtain a copy of the License at\r
- * http://www.mozilla.org/MPL/\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- * \r
- * Miika Nurminen, 12.7.2004.\r
- */\r
-\r
-/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */\r
-function get_keycode(evt) {\r
-  // IE\r
-    code = document.layers ? evt.which\r
-           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!\r
-           : evt.keyCode;\r
-\r
-  if (code==0) \r
-    code=evt.which; // for NS\r
-  return code;\r
-}\r
-\r
-var lastnode=null;\r
-var listnodes = null;\r
-var list_index=1;\r
-var lastnodetype=''; // determines if node is a link, input or text;\r
-\r
-// up, left, down, right, keypress codes\r
-//ijkl\r
-//var keys = new Array(105,106,107,108);\r
-//num arrows\r
-//var keys = new Array(56,52,50,54);\r
-//wasd\r
-// var press2 = new Array(119,97,115,100);\r
- var press = new Array(47,45,42,43);\r
-\r
-// keydown codes\r
-  //  var keys2=new Array(87,65,83,68);\r
-  var keys= new Array(38,37,40,39);\r
-\r
-  // keyset 1 = keydown, otherwise press\r
-function checkup(keyset,n) {\r
-  if (keyset==1) return (n==keys[0]);\r
-  return ((n==press[0]) /*|| (n==press2[0])*/)\r
-}\r
-\r
-function checkdn(keyset,n) {\r
-  if (keyset==1) return (n==keys[2]);\r
-  return ((n==press[2]) /*|| (n==press2[2])*/)\r
-}\r
-\r
-function checkl(keyset,n) {\r
-  if (keyset==1) return (n==keys[1]);\r
-  return ((n==press[1]) /*|| (n==press2[1])*/)\r
-}\r
-\r
-function checkr(keyset,n) {\r
-  if (keyset==1) return (n==keys[3]);\r
-  return ((n==press[3]) /*|| (n==press2[3])*/)\r
-}\r
-\r
-\r
-\r
-\r
-\r
-function is_exp(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='exp') || (n.className=='exp_active'));\r
-}\r
-\r
-function is_col(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='col') || (n.className=='col_active'));\r
-}\r
-\r
-function is_basic(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='basic') || (n.className=='basic_active'));\r
-}\r
-\r
-\r
-\r
-/* returns i>=0 if true */\r
-function is_active(node) {\r
-  if (node.className==null) return false\r
-  return node.className.indexOf('_active');\r
-}\r
-\r
-function toggle_class(node) {\r
-  if ((node==null) || (node.className==null)) return;\r
-  str=node.className;\r
-  result="";\r
-  i = str.indexOf('_active');\r
-  if (i>0)\r
-    result= str.substr(0,i);\r
-  else\r
-    result= str+"_active";\r
-  node.className=result; \r
-  return node;\r
-}\r
-\r
-function activate(node) {\r
-  node.style.backgroundColor='#eeeeff';\r
-}\r
-\r
-function deactivate(node) {\r
-   node.style.backgroundColor='#ffffff';\r
-}\r
-\r
-function is_list_node(n) {\r
-  if (n==null) return false;\r
-  if (n.className==null) return false;\r
-  if ( (is_exp(n)) || \r
-       (is_col(n)) ||\r
-       (is_basic(n)) )\r
-   return true; else return false;\r
-}\r
-\r
-\r
-function get_href(n) {\r
-  alist=n.attributes;\r
-  if (alist!=null) {\r
-    hr = alist.getNamedItem('href');\r
-    if (hr!=null) return hr.nodeValue;\r
-  }\r
-  if (n.childNodes.length==0) return '';\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_href(n.childNodes[i]);\r
-    if (s!='') return s;\r
-  }\r
-  return '';\r
-}\r
-\r
-function get_link(n) {\r
-  if (n==null) return null;\r
-  if (n.style==null) return null;\r
-\r
- // disabling uncontrolled recursion to prevent error messages on IE\r
- // when trying to focus to invisible links (readonly mode)\r
-//    alert(n.nodeName+' '+n.className);\r
-  if ((n.nodeName=='UL') && (n.className=='sub')) return null;\r
-\r
-  if (n.nodeName=='A') return n;\r
-  if (n.childNodes.length==0) return null;\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_link(n.childNodes[i]);\r
-    if (s!=null) return s;\r
-  }\r
-  return null;\r
-}\r
-\r
-function set_lastnode(n) {\r
-/*var d = new Date();\r
-var t_mil = d.getMilliseconds();*/\r
-// testattu nopeuksia explorerilla, ei merkittäviä eroja\r
-  if (lastnode==n) return; \r
-/*  deactivate(lastnode)\r
-  lastnode=n;\r
-  activate(lastnode);*/\r
-\r
-  if (is_active(lastnode)>=0)\r
-    toggle_class(lastnode);\r
-  lastnode=n;\r
-  if (!(is_active(lastnode)>=0))\r
-    toggle_class(lastnode);\r
-\r
-\r
-/*var d2 = new Date();\r
-var t_mil2 = d2.getMilliseconds();\r
-  window.alert(t_mil2-t_mil);*/\r
-}\r
-\r
-function next_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex<listnodes.length-1) {\r
-    tempIndex++;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-function prev_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex>0) {\r
-    tempIndex--;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-\r
-\r
-function getsub (li) {\r
-  if (li.childNodes.length==0) return null;\r
-  for (var c = 0; c < li.childNodes.length; c++)\r
-    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) \r
-      return li.childNodes[c];\r
-}\r
-\r
-function find_listnode_recursive (li) {\r
-  if (is_list_node(li)) return li; \r
-  if (li.childNodes.length==0) return null;\r
-  result=null;\r
-  for (var c = 0; c < li.childNodes.length; c++) {\r
-    result=find_listnode_recursive(li.childNodes[c]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;\r
-}\r
-\r
-function next_child_listnode(li) {\r
-  var result=null;\r
-  for (var i=0; i<li.childNodes.length; i++) {\r
-    result=find_listnode_recursive(li.childNodes[i]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;  \r
-}\r
-\r
-function next_actual_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function next_sibling_listnode(li) {\r
-if (li==null) return null; \r
- var result=null;\r
-  var temp=li;\r
-  if (is_col(temp)) return next_child_listnode(temp);\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function last_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var last=null;\r
-  while(1) {\r
-    var n = temp.nextSibling;\r
-    if (is_list_node(temp)) \r
-      last = temp;\r
-    if (n==null) {\r
-      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));\r
-      else return last;\r
-    }\r
-    temp = n;\r
-  }\r
-}\r
-\r
-function prev_sibling_listnode(li) { \r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var n = null;\r
-  while (1) { \r
-    n = temp.previousSibling;\r
-    if (n==null) {\r
-      return parent_listnode(li);\r
-    }\r
-    if (is_list_node(n)) {\r
-      if (is_col(n)) { \r
-        return last_sibling_listnode(next_child_listnode(n));\r
-      }\r
-      else {\r
-        return n;\r
-      }\r
-    }\r
-    temp=n;\r
-  }\r
-}\r
-\r
-\r
-function parent_listnode(li) {\r
-  // added 12.7.2004 to prevent IE error when readonly mode==true\r
-  if (li==null) return null;\r
-  n=li;\r
-  while (1) {\r
-    n=n.parentNode;\r
-    if (n==null) return null;\r
-    if (is_list_node(n)) return n;\r
-  }\r
-}\r
-\r
-function getVisibleParents(id) {\r
-  var n = document.getElementById(id);\r
-  while(1) {\r
-    expand(n);\r
-    n = parent_listnode(n);\r
-    if (n==null) return;\r
-  }\r
-}\r
-\r
-function onClickHandler (evt) {\r
-if (lastnode==null) \r
-{\r
-listnodes = document.getElementsByTagName('li');\r
-lastnode=listnodes[1];\r
-temp=listnodes[1];\r
-}\r
-\r
-\r
-  var target = evt ? evt.target : event.srcElement;\r
-  if (!is_list_node(target)) return;\r
-  toggle(target);\r
-  set_lastnode(target);\r
-}\r
-\r
-\r
-function expand(node) {\r
-    if (!is_exp(node)) return;\r
-    if (node.className=='exp_active') \r
-      node.className='col_active';\r
-    else \r
-        node.className='col';\r
-    setSubClass(node,'subexp');\r
-    //    getsub(node).className='subexp';\r
-}\r
-\r
-function collapse(node) {\r
-  if (!is_col(node)) return;\r
-  \r
-if (node.className=='col_active')\r
-    node.className='exp_active'\r
-  else \r
-    node.className='exp';\r
-\r
- setSubClass(node,'sub');\r
-//  getsub(node).className='sub';\r
-\r
-}\r
-\r
-function setSubClass(node,name) {\r
-  sub = getsub(node);\r
-  if (sub==null) return;\r
-  sub.className=name;  \r
-}\r
-\r
-function toggle(target) {\r
-  if (!is_list_node(target)) return;\r
-    if (is_col(target)) {\r
-      target.className='exp';\r
-      setSubClass(target,'sub');\r
-      //      getsub(target).className='sub';\r
-    }\r
-    else if (is_exp(target)) {\r
-      target.className='col';\r
-      setSubClass(target,'subexp');\r
-      //      getsub(target).className='subexp';\r
-    }\r
\r
-}\r
-\r
-function expandAll(node) {\r
-    if (node.className=='exp') {\r
-        node.className='col';\r
-        setSubClass(node,'subexp');\r
-//        getsub(node).className='subexp';\r
-    }\r
-    var i;\r
-    if (node.childNodes!=null) \r
-//    if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            expandAll(node.childNodes[i]);\r
-}\r
-\r
-function collapseAll(node) {\r
-    if  (node.className=='col') {\r
-        node.className='exp';\r
-        setSubClass(node,'sub');\r
-//        getsub(node).className='sub';\r
-    }\r
-    var i;        \r
-    if (node.childNodes!=null) \r
-// for opera   if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            collapseAll(node.childNodes[i]);\r
-}\r
-\r
-\r
-\r
-function unFocus(node) {\r
-     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).\r
-     // tested with mozilla 1.7, 12.7.2004. /mn (\r
-      intemp=parent_listnode(node);  \r
-      a = get_link(intemp);     // added 6.4. to get keyboard working with\r
-      // moved before collapse to prevent an error message with IE when readonly==true      \r
-      if (a!=null) a.blur(); // netscape after collapsing a focused node\r
-      return intemp;\r
-}\r
-\r
-// mode: 0==keypress, 1==keyup\r
-function keyfunc(evt,mode) {\r
- var c = get_keycode(evt);\r
- var temp = null;\r
- var a = null;\r
-\r
-  if (lastnode==null) {\r
-    listnodes = document.getElementsByTagName('li');\r
-    lastnode=listnodes[1];\r
-    temp=listnodes[1];\r
-  }\r
-\r
-  //window.alert(c);\r
-  if (checkup(mode,c)) { // i \r
-   temp=prev_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkdn(mode,c)) { // k\r
-    temp=next_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkr(mode,c)) { // l\r
-    expand(lastnode);\r
-    //  temp=next_child_listnode(lastnode);\r
-    // if (temp==null) {\r
-      a = get_link(lastnode);\r
-        if (a!=null) a.focus(); else self.focus(); \r
-      //}\r
-  }\r
-  else if (checkl(mode,c)) { // j\r
-    if (is_col(lastnode)) {\r
-      unFocus(lastnode);\r
-      collapse(lastnode);\r
-    }\r
-    else {\r
-      temp=unFocus(lastnode);\r
-      collapse(temp);\r
-    }\r
-   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)\r
-  }\r
-  else return;\r
-  if (temp!=null) set_lastnode(temp);\r
-\r
-  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');\r
-  return true;\r
-}\r
-\r
-\r
-function keytest (evt) {\r
-  return keyfunc(evt,1);\r
-};\r
-\r
-\r
-function presstest (evt) {\r
-  return keyfunc(evt,0);\r
-};\r
-\r
-\r
-  document.onclick = onClickHandler;\r
-  document.onkeypress = presstest;\r
-  document.onkeyup = keytest;\r
+/* MarkTree JavaScript code
+ * 
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ * 
+ * Miika Nurminen, 12.7.2004.
+ */
+
+/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
+function get_keycode(evt) {
+  // IE
+    code = document.layers ? evt.which
+           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!
+           : evt.keyCode;
+
+  if (code==0) 
+    code=evt.which; // for NS
+  return code;
+}
+
+var lastnode=null;
+var listnodes = null;
+var list_index=1;
+var lastnodetype=''; // determines if node is a link, input or text;
+
+// up, left, down, right, keypress codes
+//ijkl
+//var keys = new Array(105,106,107,108);
+//num arrows
+//var keys = new Array(56,52,50,54);
+//wasd
+// var press2 = new Array(119,97,115,100);
+ var press = new Array(47,45,42,43);
+
+// keydown codes
+  //  var keys2=new Array(87,65,83,68);
+  var keys= new Array(38,37,40,39);
+
+  // keyset 1 = keydown, otherwise press
+function checkup(keyset,n) {
+  if (keyset==1) return (n==keys[0]);
+  return ((n==press[0]) /*|| (n==press2[0])*/)
+}
+
+function checkdn(keyset,n) {
+  if (keyset==1) return (n==keys[2]);
+  return ((n==press[2]) /*|| (n==press2[2])*/)
+}
+
+function checkl(keyset,n) {
+  if (keyset==1) return (n==keys[1]);
+  return ((n==press[1]) /*|| (n==press2[1])*/)
+}
+
+function checkr(keyset,n) {
+  if (keyset==1) return (n==keys[3]);
+  return ((n==press[3]) /*|| (n==press2[3])*/)
+}
+
+
+
+
+
+function is_exp(n) {
+  if (n==null) return false;
+  return ((n.className=='exp') || (n.className=='exp_active'));
+}
+
+function is_col(n) {
+  if (n==null) return false;
+  return ((n.className=='col') || (n.className=='col_active'));
+}
+
+function is_basic(n) {
+  if (n==null) return false;
+  return ((n.className=='basic') || (n.className=='basic_active'));
+}
+
+
+
+/* returns i>=0 if true */
+function is_active(node) {
+  if (node.className==null) return false
+  return node.className.indexOf('_active');
+}
+
+function toggle_class(node) {
+  if ((node==null) || (node.className==null)) return;
+  str=node.className;
+  result="";
+  i = str.indexOf('_active');
+  if (i>0)
+    result= str.substr(0,i);
+  else
+    result= str+"_active";
+  node.className=result; 
+  return node;
+}
+
+function activate(node) {
+  node.style.backgroundColor='#eeeeff';
+}
+
+function deactivate(node) {
+   node.style.backgroundColor='#ffffff';
+}
+
+function is_list_node(n) {
+  if (n==null) return false;
+  if (n.className==null) return false;
+  if ( (is_exp(n)) || 
+       (is_col(n)) ||
+       (is_basic(n)) )
+   return true; else return false;
+}
+
+
+function get_href(n) {
+  alist=n.attributes;
+  if (alist!=null) {
+    hr = alist.getNamedItem('href');
+    if (hr!=null) return hr.nodeValue;
+  }
+  if (n.childNodes.length==0) return '';
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_href(n.childNodes[i]);
+    if (s!='') return s;
+  }
+  return '';
+}
+
+function get_link(n) {
+  if (n==null) return null;
+  if (n.style==null) return null;
+
+ // disabling uncontrolled recursion to prevent error messages on IE
+ // when trying to focus to invisible links (readonly mode)
+//    alert(n.nodeName+' '+n.className);
+  if ((n.nodeName=='UL') && (n.className=='sub')) return null;
+
+  if (n.nodeName=='A') return n;
+  if (n.childNodes.length==0) return null;
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_link(n.childNodes[i]);
+    if (s!=null) return s;
+  }
+  return null;
+}
+
+function set_lastnode(n) {
+/*var d = new Date();
+var t_mil = d.getMilliseconds();*/
+// testattu nopeuksia explorerilla, ei merkittäviä eroja
+  if (lastnode==n) return; 
+/*  deactivate(lastnode)
+  lastnode=n;
+  activate(lastnode);*/
+
+  if (is_active(lastnode)>=0)
+    toggle_class(lastnode);
+  lastnode=n;
+  if (!(is_active(lastnode)>=0))
+    toggle_class(lastnode);
+
+
+/*var d2 = new Date();
+var t_mil2 = d2.getMilliseconds();
+  window.alert(t_mil2-t_mil);*/
+}
+
+function next_list_node() {
+  tempIndex = list_index;
+  while (tempIndex<listnodes.length-1) {
+    tempIndex++;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+function prev_list_node() {
+  tempIndex = list_index;
+  while (tempIndex>0) {
+    tempIndex--;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+
+
+function getsub (li) {
+  if (li.childNodes.length==0) return null;
+  for (var c = 0; c < li.childNodes.length; c++)
+    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) 
+      return li.childNodes[c];
+}
+
+function find_listnode_recursive (li) {
+  if (is_list_node(li)) return li; 
+  if (li.childNodes.length==0) return null;
+  result=null;
+  for (var c = 0; c < li.childNodes.length; c++) {
+    result=find_listnode_recursive(li.childNodes[c]);
+    if (result!=null) return result;
+  }
+  return null;
+}
+
+function next_child_listnode(li) {
+  var result=null;
+  for (var i=0; i<li.childNodes.length; i++) {
+    result=find_listnode_recursive(li.childNodes[i]);
+    if (result!=null) return result;
+  }
+  return null;  
+}
+
+function next_actual_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function next_sibling_listnode(li) {
+if (li==null) return null; 
+ var result=null;
+  var temp=li;
+  if (is_col(temp)) return next_child_listnode(temp);
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function last_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  var last=null;
+  while(1) {
+    var n = temp.nextSibling;
+    if (is_list_node(temp)) 
+      last = temp;
+    if (n==null) {
+      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
+      else return last;
+    }
+    temp = n;
+  }
+}
+
+function prev_sibling_listnode(li) { 
+  if (li==null) return null;
+  var temp=li;
+  var n = null;
+  while (1) { 
+    n = temp.previousSibling;
+    if (n==null) {
+      return parent_listnode(li);
+    }
+    if (is_list_node(n)) {
+      if (is_col(n)) { 
+        return last_sibling_listnode(next_child_listnode(n));
+      }
+      else {
+        return n;
+      }
+    }
+    temp=n;
+  }
+}
+
+
+function parent_listnode(li) {
+  // added 12.7.2004 to prevent IE error when readonly mode==true
+  if (li==null) return null;
+  n=li;
+  while (1) {
+    n=n.parentNode;
+    if (n==null) return null;
+    if (is_list_node(n)) return n;
+  }
+}
+
+function getVisibleParents(id) {
+  var n = document.getElementById(id);
+  while(1) {
+    expand(n);
+    n = parent_listnode(n);
+    if (n==null) return;
+  }
+}
+
+function onClickHandler (evt) {
+if (lastnode==null) 
+{
+listnodes = document.getElementsByTagName('li');
+lastnode=listnodes[1];
+temp=listnodes[1];
+}
+
+
+  var target = evt ? evt.target : event.srcElement;
+  if (!is_list_node(target)) return;
+  toggle(target);
+  set_lastnode(target);
+}
+
+
+function expand(node) {
+    if (!is_exp(node)) return;
+    if (node.className=='exp_active') 
+      node.className='col_active';
+    else 
+        node.className='col';
+    setSubClass(node,'subexp');
+    //    getsub(node).className='subexp';
+}
+
+function collapse(node) {
+  if (!is_col(node)) return;
+  
+if (node.className=='col_active')
+    node.className='exp_active'
+  else 
+    node.className='exp';
+
+ setSubClass(node,'sub');
+//  getsub(node).className='sub';
+
+}
+
+function setSubClass(node,name) {
+  sub = getsub(node);
+  if (sub==null) return;
+  sub.className=name;  
+}
+
+function toggle(target) {
+  if (!is_list_node(target)) return;
+    if (is_col(target)) {
+      target.className='exp';
+      setSubClass(target,'sub');
+      //      getsub(target).className='sub';
+    }
+    else if (is_exp(target)) {
+      target.className='col';
+      setSubClass(target,'subexp');
+      //      getsub(target).className='subexp';
+    }
+}
+
+function expandAll(node) {
+    if (node.className=='exp') {
+        node.className='col';
+        setSubClass(node,'subexp');
+//        getsub(node).className='subexp';
+    }
+    var i;
+    if (node.childNodes!=null) 
+//    if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            expandAll(node.childNodes[i]);
+}
+
+function collapseAll(node) {
+    if  (node.className=='col') {
+        node.className='exp';
+        setSubClass(node,'sub');
+//        getsub(node).className='sub';
+    }
+    var i;        
+    if (node.childNodes!=null) 
+// for opera   if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            collapseAll(node.childNodes[i]);
+}
+
+
+
+function unFocus(node) {
+     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
+     // tested with mozilla 1.7, 12.7.2004. /mn (
+      intemp=parent_listnode(node);  
+      a = get_link(intemp);     // added 6.4. to get keyboard working with
+      // moved before collapse to prevent an error message with IE when readonly==true      
+      if (a!=null) a.blur(); // netscape after collapsing a focused node
+      return intemp;
+}
+
+// mode: 0==keypress, 1==keyup
+function keyfunc(evt,mode) {
+ var c = get_keycode(evt);
+ var temp = null;
+ var a = null;
+
+  if (lastnode==null) {
+    listnodes = document.getElementsByTagName('li');
+    lastnode=listnodes[1];
+    temp=listnodes[1];
+  }
+
+  //window.alert(c);
+  if (checkup(mode,c)) { // i 
+   temp=prev_sibling_listnode(lastnode);
+  }
+  else if (checkdn(mode,c)) { // k
+    temp=next_sibling_listnode(lastnode);
+  }
+  else if (checkr(mode,c)) { // l
+    expand(lastnode);
+    //  temp=next_child_listnode(lastnode);
+    // if (temp==null) {
+      a = get_link(lastnode);
+        if (a!=null) a.focus(); else self.focus(); 
+      //}
+  }
+  else if (checkl(mode,c)) { // j
+    if (is_col(lastnode)) {
+      unFocus(lastnode);
+      collapse(lastnode);
+    }
+    else {
+      temp=unFocus(lastnode);
+      collapse(temp);
+    }
+   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
+  }
+  else return;
+  if (temp!=null) set_lastnode(temp);
+
+  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
+  return true;
+}
+
+
+function keytest (evt) {
+  return keyfunc(evt,1);
+};
+
+
+function presstest (evt) {
+  return keyfunc(evt,0);
+};
+
+
+  document.onclick = onClickHandler;
+  document.onkeypress = presstest;
+  document.onkeyup = keytest;
index aecb6e18a7b637c7e8e42aa9a55b00c88dc67b11..df6e8a14ac077afde0bd0a912a8cd14965c14d38 100644 (file)
-\r
-body {\r
-       background-color: #eeeeee;\r
-       color: #000000;\r
-       font-family:sans-serif;\r
-}\r
-\r
-:link { color: #0000ff; text-decoration:none;}\r
-:visited { color: #6666ff; text-decoration:none; }\r
-a:active { color: #0000ff; text-decoration:none;}\r
-a:hover {color: #0000ff; text-decoration:underline; }\r
-\r
-div.basetext {\r
-    background-color:#ffffff;\r
-        margin-top:11px;\r
-        margin-bottom:11px;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:11px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:11px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-div.basetop {\r
-  position: fixed;\r
-  width:auto;\r
-  height:auto;\r
-  right:0em;\r
-  top:0em;\r
-  left:auto; \r
-  top:0;\r
-    background-color:#ffffff;\r
-        margin-top:0;\r
-        margin-bottom:0;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:2px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:2px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-text-align:right;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-h1 {\r
-    text-align:center;\r
-}\r
-\r
-span.h2 {\r
-    font-family:sans-serif;\r
-    font-weight:bold;\r
-}\r
-\r
-div.year {\r
-       margin-right:2%;\r
-       background-color:#eeeeee;\r
-}\r
-\r
-div.form {\r
-}\r
-\r
-span.cpt {\r
-       color:#005500;\r
-       font-weight:bold;\r
-}\r
-\r
-span.cm {\r
-       color:#666666;\r
-}\r
-\r
-.fl {\r
-       color:#0000FF;  \r
-       font-style:italic;\r
-}\r
-\r
-ul {\r
-       margin-top:1px;\r
-        margin-bottom:1px;\r
-       margin-left:0px;\r
-       padding-left:3%;\r
-}\r
-\r
-li {\r
-       list-style:outside;\r
-  margin-top:10px;   \r
-  margin-bottom:10px;\r
-}\r
-\r
-ul li {\r
-       list-style:square;\r
-       font-family:sans-serif;\r
-       font-weight:normal;\r
-}\r
-\r
-li.basic {\r
-       list-style:square;\r
-       list-style-image:none;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
-\r
-span.links {\r
-}\r
-\r
-\r
-\r
-\r
-.sub { display: none; }\r
-.subexp {display: block; }\r
-.sub { display: none; } \r
-\r
-.subexp {display: block; } \r
-\r
-li.exp {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.exp_active {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;  \r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col_active {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer; /* if not included, bullets are not shown right in moz*/\r
-}\r
-\r
-\r
-li.basic_active {\r
-  list-style:square;\r
-  list-style-image:none;\r
-  background-color:#eeeeff;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
+
+body {
+       background-color: #eeeeee;
+       color: #000000;
+       font-family:sans-serif;
+}
+
+:link { color: #0000ff; text-decoration:none;}
+:visited { color: #6666ff; text-decoration:none; }
+a:active { color: #0000ff; text-decoration:none;}
+a:hover {color: #0000ff; text-decoration:underline; }
+
+div.basetext {
+    background-color:#ffffff;
+        margin-top:11px;
+        margin-bottom:11px;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:11px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:11px;
+       text-align:left;
+       font-weight:normal;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+div.basetop {
+  position: fixed;
+  width:auto;
+  height:auto;
+  right:0em;
+  top:0em;
+  left:auto; 
+  top:0;
+    background-color:#ffffff;
+        margin-top:0;
+        margin-bottom:0;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:2px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:2px;
+       text-align:left;
+       font-weight:normal;
+text-align:right;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+h1 {
+    text-align:center;
+}
+
+span.h2 {
+    font-family:sans-serif;
+    font-weight:bold;
+}
+
+div.year {
+       margin-right:2%;
+       background-color:#eeeeee;
+}
+
+div.form {
+}
+
+span.cpt {
+       color:#005500;
+       font-weight:bold;
+}
+
+span.cm {
+       color:#666666;
+}
+
+.fl {
+       color:#0000FF;  
+       font-style:italic;
+}
+
+ul {
+       margin-top:1px;
+        margin-bottom:1px;
+       margin-left:0px;
+       padding-left:3%;
+}
+
+li {
+       list-style:outside;
+  margin-top:10px; 
+  margin-bottom:10px;
+}
+
+ul li {
+       list-style:square;
+       font-family:sans-serif;
+       font-weight:normal;
+}
+
+li.basic {
+       list-style:square;
+       list-style-image:none;
+  margin-top:2px;
+  margin-bottom:2px;
+}
+
+span.links {
+}
+
+
+
+
+.sub { display: none; }
+.subexp {display: block; }
+.sub { display: none; } 
+
+.subexp {display: block; } 
+
+li.exp {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.col {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.exp_active {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer;
+}
+
+li.col_active {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer; /* if not included, bullets are not shown right in moz*/
+}
+
+
+li.basic_active {
+  list-style:square;
+  list-style-image:none;
+  background-color:#eeeeff;
+  margin-top:2px;
+  margin-bottom:2px;
+}
index 10bba606f238ad486ec3d045cac43dde957ca369..aa31b4deec243eaa2c1c1572184e826499a0a7c4 100644 (file)
-/* MarkTree JavaScript code\r
- * \r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License. You may obtain a copy of the License at\r
- * http://www.mozilla.org/MPL/\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- * \r
- * Miika Nurminen, 12.7.2004.\r
- */\r
-\r
-/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */\r
-function get_keycode(evt) {\r
-  // IE\r
-    code = document.layers ? evt.which\r
-           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!\r
-           : evt.keyCode;\r
-\r
-  if (code==0) \r
-    code=evt.which; // for NS\r
-  return code;\r
-}\r
-\r
-var lastnode=null;\r
-var listnodes = null;\r
-var list_index=1;\r
-var lastnodetype=''; // determines if node is a link, input or text;\r
-\r
-// up, left, down, right, keypress codes\r
-//ijkl\r
-//var keys = new Array(105,106,107,108);\r
-//num arrows\r
-//var keys = new Array(56,52,50,54);\r
-//wasd\r
-// var press2 = new Array(119,97,115,100);\r
- var press = new Array(47,45,42,43);\r
-\r
-// keydown codes\r
-  //  var keys2=new Array(87,65,83,68);\r
-  var keys= new Array(38,37,40,39);\r
-\r
-  // keyset 1 = keydown, otherwise press\r
-function checkup(keyset,n) {\r
-  if (keyset==1) return (n==keys[0]);\r
-  return ((n==press[0]) /*|| (n==press2[0])*/)\r
-}\r
-\r
-function checkdn(keyset,n) {\r
-  if (keyset==1) return (n==keys[2]);\r
-  return ((n==press[2]) /*|| (n==press2[2])*/)\r
-}\r
-\r
-function checkl(keyset,n) {\r
-  if (keyset==1) return (n==keys[1]);\r
-  return ((n==press[1]) /*|| (n==press2[1])*/)\r
-}\r
-\r
-function checkr(keyset,n) {\r
-  if (keyset==1) return (n==keys[3]);\r
-  return ((n==press[3]) /*|| (n==press2[3])*/)\r
-}\r
-\r
-\r
-\r
-\r
-\r
-function is_exp(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='exp') || (n.className=='exp_active'));\r
-}\r
-\r
-function is_col(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='col') || (n.className=='col_active'));\r
-}\r
-\r
-function is_basic(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='basic') || (n.className=='basic_active'));\r
-}\r
-\r
-\r
-\r
-/* returns i>=0 if true */\r
-function is_active(node) {\r
-  if (node.className==null) return false\r
-  return node.className.indexOf('_active');\r
-}\r
-\r
-function toggle_class(node) {\r
-  if ((node==null) || (node.className==null)) return;\r
-  str=node.className;\r
-  result="";\r
-  i = str.indexOf('_active');\r
-  if (i>0)\r
-    result= str.substr(0,i);\r
-  else\r
-    result= str+"_active";\r
-  node.className=result; \r
-  return node;\r
-}\r
-\r
-function activate(node) {\r
-  node.style.backgroundColor='#eeeeff';\r
-}\r
-\r
-function deactivate(node) {\r
-   node.style.backgroundColor='#ffffff';\r
-}\r
-\r
-function is_list_node(n) {\r
-  if (n==null) return false;\r
-  if (n.className==null) return false;\r
-  if ( (is_exp(n)) || \r
-       (is_col(n)) ||\r
-       (is_basic(n)) )\r
-   return true; else return false;\r
-}\r
-\r
-\r
-function get_href(n) {\r
-  alist=n.attributes;\r
-  if (alist!=null) {\r
-    hr = alist.getNamedItem('href');\r
-    if (hr!=null) return hr.nodeValue;\r
-  }\r
-  if (n.childNodes.length==0) return '';\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_href(n.childNodes[i]);\r
-    if (s!='') return s;\r
-  }\r
-  return '';\r
-}\r
-\r
-function get_link(n) {\r
-  if (n==null) return null;\r
-  if (n.style==null) return null;\r
-\r
- // disabling uncontrolled recursion to prevent error messages on IE\r
- // when trying to focus to invisible links (readonly mode)\r
-//    alert(n.nodeName+' '+n.className);\r
-  if ((n.nodeName=='UL') && (n.className=='sub')) return null;\r
-\r
-  if (n.nodeName=='A') return n;\r
-  if (n.childNodes.length==0) return null;\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_link(n.childNodes[i]);\r
-    if (s!=null) return s;\r
-  }\r
-  return null;\r
-}\r
-\r
-function set_lastnode(n) {\r
-/*var d = new Date();\r
-var t_mil = d.getMilliseconds();*/\r
-// testattu nopeuksia explorerilla, ei merkittäviä eroja\r
-  if (lastnode==n) return; \r
-/*  deactivate(lastnode)\r
-  lastnode=n;\r
-  activate(lastnode);*/\r
-\r
-  if (is_active(lastnode)>=0)\r
-    toggle_class(lastnode);\r
-  lastnode=n;\r
-  if (!(is_active(lastnode)>=0))\r
-    toggle_class(lastnode);\r
-\r
-\r
-/*var d2 = new Date();\r
-var t_mil2 = d2.getMilliseconds();\r
-  window.alert(t_mil2-t_mil);*/\r
-}\r
-\r
-function next_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex<listnodes.length-1) {\r
-    tempIndex++;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-function prev_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex>0) {\r
-    tempIndex--;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-\r
-\r
-function getsub (li) {\r
-  if (li.childNodes.length==0) return null;\r
-  for (var c = 0; c < li.childNodes.length; c++)\r
-    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) \r
-      return li.childNodes[c];\r
-}\r
-\r
-function find_listnode_recursive (li) {\r
-  if (is_list_node(li)) return li; \r
-  if (li.childNodes.length==0) return null;\r
-  result=null;\r
-  for (var c = 0; c < li.childNodes.length; c++) {\r
-    result=find_listnode_recursive(li.childNodes[c]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;\r
-}\r
-\r
-function next_child_listnode(li) {\r
-  var result=null;\r
-  for (var i=0; i<li.childNodes.length; i++) {\r
-    result=find_listnode_recursive(li.childNodes[i]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;  \r
-}\r
-\r
-function next_actual_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function next_sibling_listnode(li) {\r
-if (li==null) return null; \r
- var result=null;\r
-  var temp=li;\r
-  if (is_col(temp)) return next_child_listnode(temp);\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function last_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var last=null;\r
-  while(1) {\r
-    var n = temp.nextSibling;\r
-    if (is_list_node(temp)) \r
-      last = temp;\r
-    if (n==null) {\r
-      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));\r
-      else return last;\r
-    }\r
-    temp = n;\r
-  }\r
-}\r
-\r
-function prev_sibling_listnode(li) { \r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var n = null;\r
-  while (1) { \r
-    n = temp.previousSibling;\r
-    if (n==null) {\r
-      return parent_listnode(li);\r
-    }\r
-    if (is_list_node(n)) {\r
-      if (is_col(n)) { \r
-        return last_sibling_listnode(next_child_listnode(n));\r
-      }\r
-      else {\r
-        return n;\r
-      }\r
-    }\r
-    temp=n;\r
-  }\r
-}\r
-\r
-\r
-function parent_listnode(li) {\r
-  // added 12.7.2004 to prevent IE error when readonly mode==true\r
-  if (li==null) return null;\r
-  n=li;\r
-  while (1) {\r
-    n=n.parentNode;\r
-    if (n==null) return null;\r
-    if (is_list_node(n)) return n;\r
-  }\r
-}\r
-\r
-function getVisibleParents(id) {\r
-  var n = document.getElementById(id);\r
-  while(1) {\r
-    expand(n);\r
-    n = parent_listnode(n);\r
-    if (n==null) return;\r
-  }\r
-}\r
-\r
-function onClickHandler (evt) {\r
-if (lastnode==null) \r
-{\r
-listnodes = document.getElementsByTagName('li');\r
-lastnode=listnodes[1];\r
-temp=listnodes[1];\r
-}\r
-\r
-\r
-  var target = evt ? evt.target : event.srcElement;\r
-  if (!is_list_node(target)) return;\r
-  toggle(target);\r
-  set_lastnode(target);\r
-}\r
-\r
-\r
-function expand(node) {\r
-    if (!is_exp(node)) return;\r
-    if (node.className=='exp_active') \r
-      node.className='col_active';\r
-    else \r
-        node.className='col';\r
-    setSubClass(node,'subexp');\r
-    //    getsub(node).className='subexp';\r
-}\r
-\r
-function collapse(node) {\r
-  if (!is_col(node)) return;\r
-  \r
-if (node.className=='col_active')\r
-    node.className='exp_active'\r
-  else \r
-    node.className='exp';\r
-\r
- setSubClass(node,'sub');\r
-//  getsub(node).className='sub';\r
-\r
-}\r
-\r
-function setSubClass(node,name) {\r
-  sub = getsub(node);\r
-  if (sub==null) return;\r
-  sub.className=name;  \r
-}\r
-\r
-function toggle(target) {\r
-  if (!is_list_node(target)) return;\r
-    if (is_col(target)) {\r
-      target.className='exp';\r
-      setSubClass(target,'sub');\r
-      //      getsub(target).className='sub';\r
-    }\r
-    else if (is_exp(target)) {\r
-      target.className='col';\r
-      setSubClass(target,'subexp');\r
-      //      getsub(target).className='subexp';\r
-    }\r
\r
-}\r
-\r
-function expandAll(node) {\r
-    if (node.className=='exp') {\r
-        node.className='col';\r
-        setSubClass(node,'subexp');\r
-//        getsub(node).className='subexp';\r
-    }\r
-    var i;\r
-    if (node.childNodes!=null) \r
-//    if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            expandAll(node.childNodes[i]);\r
-}\r
-\r
-function collapseAll(node) {\r
-    if  (node.className=='col') {\r
-        node.className='exp';\r
-        setSubClass(node,'sub');\r
-//        getsub(node).className='sub';\r
-    }\r
-    var i;        \r
-    if (node.childNodes!=null) \r
-// for opera   if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            collapseAll(node.childNodes[i]);\r
-}\r
-\r
-\r
-\r
-function unFocus(node) {\r
-     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).\r
-     // tested with mozilla 1.7, 12.7.2004. /mn (\r
-      intemp=parent_listnode(node);  \r
-      a = get_link(intemp);     // added 6.4. to get keyboard working with\r
-      // moved before collapse to prevent an error message with IE when readonly==true      \r
-      if (a!=null) a.blur(); // netscape after collapsing a focused node\r
-      return intemp;\r
-}\r
-\r
-// mode: 0==keypress, 1==keyup\r
-function keyfunc(evt,mode) {\r
- var c = get_keycode(evt);\r
- var temp = null;\r
- var a = null;\r
-\r
-  if (lastnode==null) {\r
-    listnodes = document.getElementsByTagName('li');\r
-    lastnode=listnodes[1];\r
-    temp=listnodes[1];\r
-  }\r
-\r
-  //window.alert(c);\r
-  if (checkup(mode,c)) { // i \r
-   temp=prev_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkdn(mode,c)) { // k\r
-    temp=next_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkr(mode,c)) { // l\r
-    expand(lastnode);\r
-    //  temp=next_child_listnode(lastnode);\r
-    // if (temp==null) {\r
-      a = get_link(lastnode);\r
-        if (a!=null) a.focus(); else self.focus(); \r
-      //}\r
-  }\r
-  else if (checkl(mode,c)) { // j\r
-    if (is_col(lastnode)) {\r
-      unFocus(lastnode);\r
-      collapse(lastnode);\r
-    }\r
-    else {\r
-      temp=unFocus(lastnode);\r
-      collapse(temp);\r
-    }\r
-   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)\r
-  }\r
-  else return;\r
-  if (temp!=null) set_lastnode(temp);\r
-\r
-  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');\r
-  return true;\r
-}\r
-\r
-\r
-function keytest (evt) {\r
-  return keyfunc(evt,1);\r
-};\r
-\r
-\r
-function presstest (evt) {\r
-  return keyfunc(evt,0);\r
-};\r
-\r
-\r
-  document.onclick = onClickHandler;\r
-  document.onkeypress = presstest;\r
-  document.onkeyup = keytest;\r
+/* MarkTree JavaScript code
+ * 
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ * 
+ * Miika Nurminen, 12.7.2004.
+ */
+
+/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
+function get_keycode(evt) {
+  // IE
+    code = document.layers ? evt.which
+           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!
+           : evt.keyCode;
+
+  if (code==0) 
+    code=evt.which; // for NS
+  return code;
+}
+
+var lastnode=null;
+var listnodes = null;
+var list_index=1;
+var lastnodetype=''; // determines if node is a link, input or text;
+
+// up, left, down, right, keypress codes
+//ijkl
+//var keys = new Array(105,106,107,108);
+//num arrows
+//var keys = new Array(56,52,50,54);
+//wasd
+// var press2 = new Array(119,97,115,100);
+ var press = new Array(47,45,42,43);
+
+// keydown codes
+  //  var keys2=new Array(87,65,83,68);
+  var keys= new Array(38,37,40,39);
+
+  // keyset 1 = keydown, otherwise press
+function checkup(keyset,n) {
+  if (keyset==1) return (n==keys[0]);
+  return ((n==press[0]) /*|| (n==press2[0])*/)
+}
+
+function checkdn(keyset,n) {
+  if (keyset==1) return (n==keys[2]);
+  return ((n==press[2]) /*|| (n==press2[2])*/)
+}
+
+function checkl(keyset,n) {
+  if (keyset==1) return (n==keys[1]);
+  return ((n==press[1]) /*|| (n==press2[1])*/)
+}
+
+function checkr(keyset,n) {
+  if (keyset==1) return (n==keys[3]);
+  return ((n==press[3]) /*|| (n==press2[3])*/)
+}
+
+
+
+
+
+function is_exp(n) {
+  if (n==null) return false;
+  return ((n.className=='exp') || (n.className=='exp_active'));
+}
+
+function is_col(n) {
+  if (n==null) return false;
+  return ((n.className=='col') || (n.className=='col_active'));
+}
+
+function is_basic(n) {
+  if (n==null) return false;
+  return ((n.className=='basic') || (n.className=='basic_active'));
+}
+
+
+
+/* returns i>=0 if true */
+function is_active(node) {
+  if (node.className==null) return false
+  return node.className.indexOf('_active');
+}
+
+function toggle_class(node) {
+  if ((node==null) || (node.className==null)) return;
+  str=node.className;
+  result="";
+  i = str.indexOf('_active');
+  if (i>0)
+    result= str.substr(0,i);
+  else
+    result= str+"_active";
+  node.className=result; 
+  return node;
+}
+
+function activate(node) {
+  node.style.backgroundColor='#eeeeff';
+}
+
+function deactivate(node) {
+   node.style.backgroundColor='#ffffff';
+}
+
+function is_list_node(n) {
+  if (n==null) return false;
+  if (n.className==null) return false;
+  if ( (is_exp(n)) || 
+       (is_col(n)) ||
+       (is_basic(n)) )
+   return true; else return false;
+}
+
+
+function get_href(n) {
+  alist=n.attributes;
+  if (alist!=null) {
+    hr = alist.getNamedItem('href');
+    if (hr!=null) return hr.nodeValue;
+  }
+  if (n.childNodes.length==0) return '';
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_href(n.childNodes[i]);
+    if (s!='') return s;
+  }
+  return '';
+}
+
+function get_link(n) {
+  if (n==null) return null;
+  if (n.style==null) return null;
+
+ // disabling uncontrolled recursion to prevent error messages on IE
+ // when trying to focus to invisible links (readonly mode)
+//    alert(n.nodeName+' '+n.className);
+  if ((n.nodeName=='UL') && (n.className=='sub')) return null;
+
+  if (n.nodeName=='A') return n;
+  if (n.childNodes.length==0) return null;
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_link(n.childNodes[i]);
+    if (s!=null) return s;
+  }
+  return null;
+}
+
+function set_lastnode(n) {
+/*var d = new Date();
+var t_mil = d.getMilliseconds();*/
+// testattu nopeuksia explorerilla, ei merkittäviä eroja
+  if (lastnode==n) return; 
+/*  deactivate(lastnode)
+  lastnode=n;
+  activate(lastnode);*/
+
+  if (is_active(lastnode)>=0)
+    toggle_class(lastnode);
+  lastnode=n;
+  if (!(is_active(lastnode)>=0))
+    toggle_class(lastnode);
+
+
+/*var d2 = new Date();
+var t_mil2 = d2.getMilliseconds();
+  window.alert(t_mil2-t_mil);*/
+}
+
+function next_list_node() {
+  tempIndex = list_index;
+  while (tempIndex<listnodes.length-1) {
+    tempIndex++;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+function prev_list_node() {
+  tempIndex = list_index;
+  while (tempIndex>0) {
+    tempIndex--;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+
+
+function getsub (li) {
+  if (li.childNodes.length==0) return null;
+  for (var c = 0; c < li.childNodes.length; c++)
+    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) 
+      return li.childNodes[c];
+}
+
+function find_listnode_recursive (li) {
+  if (is_list_node(li)) return li; 
+  if (li.childNodes.length==0) return null;
+  result=null;
+  for (var c = 0; c < li.childNodes.length; c++) {
+    result=find_listnode_recursive(li.childNodes[c]);
+    if (result!=null) return result;
+  }
+  return null;
+}
+
+function next_child_listnode(li) {
+  var result=null;
+  for (var i=0; i<li.childNodes.length; i++) {
+    result=find_listnode_recursive(li.childNodes[i]);
+    if (result!=null) return result;
+  }
+  return null;  
+}
+
+function next_actual_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function next_sibling_listnode(li) {
+if (li==null) return null; 
+ var result=null;
+  var temp=li;
+  if (is_col(temp)) return next_child_listnode(temp);
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function last_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  var last=null;
+  while(1) {
+    var n = temp.nextSibling;
+    if (is_list_node(temp)) 
+      last = temp;
+    if (n==null) {
+      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
+      else return last;
+    }
+    temp = n;
+  }
+}
+
+function prev_sibling_listnode(li) { 
+  if (li==null) return null;
+  var temp=li;
+  var n = null;
+  while (1) { 
+    n = temp.previousSibling;
+    if (n==null) {
+      return parent_listnode(li);
+    }
+    if (is_list_node(n)) {
+      if (is_col(n)) { 
+        return last_sibling_listnode(next_child_listnode(n));
+      }
+      else {
+        return n;
+      }
+    }
+    temp=n;
+  }
+}
+
+
+function parent_listnode(li) {
+  // added 12.7.2004 to prevent IE error when readonly mode==true
+  if (li==null) return null;
+  n=li;
+  while (1) {
+    n=n.parentNode;
+    if (n==null) return null;
+    if (is_list_node(n)) return n;
+  }
+}
+
+function getVisibleParents(id) {
+  var n = document.getElementById(id);
+  while(1) {
+    expand(n);
+    n = parent_listnode(n);
+    if (n==null) return;
+  }
+}
+
+function onClickHandler (evt) {
+if (lastnode==null) 
+{
+listnodes = document.getElementsByTagName('li');
+lastnode=listnodes[1];
+temp=listnodes[1];
+}
+
+
+  var target = evt ? evt.target : event.srcElement;
+  if (!is_list_node(target)) return;
+  toggle(target);
+  set_lastnode(target);
+}
+
+
+function expand(node) {
+    if (!is_exp(node)) return;
+    if (node.className=='exp_active') 
+      node.className='col_active';
+    else 
+        node.className='col';
+    setSubClass(node,'subexp');
+    //    getsub(node).className='subexp';
+}
+
+function collapse(node) {
+  if (!is_col(node)) return;
+  
+if (node.className=='col_active')
+    node.className='exp_active'
+  else 
+    node.className='exp';
+
+ setSubClass(node,'sub');
+//  getsub(node).className='sub';
+
+}
+
+function setSubClass(node,name) {
+  sub = getsub(node);
+  if (sub==null) return;
+  sub.className=name;  
+}
+
+function toggle(target) {
+  if (!is_list_node(target)) return;
+    if (is_col(target)) {
+      target.className='exp';
+      setSubClass(target,'sub');
+      //      getsub(target).className='sub';
+    }
+    else if (is_exp(target)) {
+      target.className='col';
+      setSubClass(target,'subexp');
+      //      getsub(target).className='subexp';
+    }
+}
+
+function expandAll(node) {
+    if (node.className=='exp') {
+        node.className='col';
+        setSubClass(node,'subexp');
+//        getsub(node).className='subexp';
+    }
+    var i;
+    if (node.childNodes!=null) 
+//    if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            expandAll(node.childNodes[i]);
+}
+
+function collapseAll(node) {
+    if  (node.className=='col') {
+        node.className='exp';
+        setSubClass(node,'sub');
+//        getsub(node).className='sub';
+    }
+    var i;        
+    if (node.childNodes!=null) 
+// for opera   if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            collapseAll(node.childNodes[i]);
+}
+
+
+
+function unFocus(node) {
+     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
+     // tested with mozilla 1.7, 12.7.2004. /mn (
+      intemp=parent_listnode(node);  
+      a = get_link(intemp);     // added 6.4. to get keyboard working with
+      // moved before collapse to prevent an error message with IE when readonly==true      
+      if (a!=null) a.blur(); // netscape after collapsing a focused node
+      return intemp;
+}
+
+// mode: 0==keypress, 1==keyup
+function keyfunc(evt,mode) {
+ var c = get_keycode(evt);
+ var temp = null;
+ var a = null;
+
+  if (lastnode==null) {
+    listnodes = document.getElementsByTagName('li');
+    lastnode=listnodes[1];
+    temp=listnodes[1];
+  }
+
+  //window.alert(c);
+  if (checkup(mode,c)) { // i 
+   temp=prev_sibling_listnode(lastnode);
+  }
+  else if (checkdn(mode,c)) { // k
+    temp=next_sibling_listnode(lastnode);
+  }
+  else if (checkr(mode,c)) { // l
+    expand(lastnode);
+    //  temp=next_child_listnode(lastnode);
+    // if (temp==null) {
+      a = get_link(lastnode);
+        if (a!=null) a.focus(); else self.focus(); 
+      //}
+  }
+  else if (checkl(mode,c)) { // j
+    if (is_col(lastnode)) {
+      unFocus(lastnode);
+      collapse(lastnode);
+    }
+    else {
+      temp=unFocus(lastnode);
+      collapse(temp);
+    }
+   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
+  }
+  else return;
+  if (temp!=null) set_lastnode(temp);
+
+  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
+  return true;
+}
+
+
+function keytest (evt) {
+  return keyfunc(evt,1);
+};
+
+
+function presstest (evt) {
+  return keyfunc(evt,0);
+};
+
+
+  document.onclick = onClickHandler;
+  document.onkeypress = presstest;
+  document.onkeyup = keytest;
index aecb6e18a7b637c7e8e42aa9a55b00c88dc67b11..a640cadef3dfc677ad9f24302668ea9f52bc59c4 100644 (file)
-\r
-body {\r
-       background-color: #eeeeee;\r
-       color: #000000;\r
-       font-family:sans-serif;\r
-}\r
-\r
-:link { color: #0000ff; text-decoration:none;}\r
-:visited { color: #6666ff; text-decoration:none; }\r
-a:active { color: #0000ff; text-decoration:none;}\r
-a:hover {color: #0000ff; text-decoration:underline; }\r
-\r
-div.basetext {\r
-    background-color:#ffffff;\r
-        margin-top:11px;\r
-        margin-bottom:11px;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:11px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:11px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-div.basetop {\r
-  position: fixed;\r
-  width:auto;\r
-  height:auto;\r
-  right:0em;\r
-  top:0em;\r
-  left:auto; \r
-  top:0;\r
-    background-color:#ffffff;\r
-        margin-top:0;\r
-        margin-bottom:0;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:2px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:2px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-text-align:right;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-h1 {\r
-    text-align:center;\r
-}\r
-\r
-span.h2 {\r
-    font-family:sans-serif;\r
-    font-weight:bold;\r
-}\r
-\r
-div.year {\r
-       margin-right:2%;\r
-       background-color:#eeeeee;\r
-}\r
-\r
-div.form {\r
-}\r
-\r
-span.cpt {\r
-       color:#005500;\r
-       font-weight:bold;\r
-}\r
-\r
-span.cm {\r
-       color:#666666;\r
-}\r
-\r
-.fl {\r
-       color:#0000FF;  \r
-       font-style:italic;\r
-}\r
-\r
-ul {\r
-       margin-top:1px;\r
-        margin-bottom:1px;\r
-       margin-left:0px;\r
-       padding-left:3%;\r
-}\r
-\r
-li {\r
-       list-style:outside;\r
-  margin-top:10px;   \r
-  margin-bottom:10px;\r
-}\r
-\r
-ul li {\r
-       list-style:square;\r
-       font-family:sans-serif;\r
-       font-weight:normal;\r
-}\r
-\r
-li.basic {\r
-       list-style:square;\r
-       list-style-image:none;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
-\r
-span.links {\r
-}\r
-\r
-\r
-\r
-\r
-.sub { display: none; }\r
-.subexp {display: block; }\r
-.sub { display: none; } \r
-\r
-.subexp {display: block; } \r
-\r
-li.exp {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.exp_active {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;  \r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col_active {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer; /* if not included, bullets are not shown right in moz*/\r
-}\r
-\r
-\r
-li.basic_active {\r
-  list-style:square;\r
-  list-style-image:none;\r
-  background-color:#eeeeff;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
+
+body {
+       background-color: #eeeeee;
+       color: #000000;
+       font-family:sans-serif;
+}
+
+:link { color: #0000ff; text-decoration:none;}
+:visited { color: #6666ff; text-decoration:none; }
+a:active { color: #0000ff; text-decoration:none;}
+a:hover {color: #0000ff; text-decoration:underline; }
+
+div.basetext {
+    background-color:#ffffff;
+        margin-top:11px;
+        margin-bottom:11px;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:11px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:11px;
+       text-align:left;
+       font-weight:normal;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+div.basetop {
+  position: fixed;
+  width:auto;
+  height:auto;
+  right:0em;
+  top:0em;
+  left:auto; 
+  top:0;
+    background-color:#ffffff;
+        margin-top:0;
+        margin-bottom:0;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:2px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:2px;
+       text-align:left;
+       font-weight:normal;
+text-align:right;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+h1 {
+    text-align:center;
+}
+
+span.h2 {
+    font-family:sans-serif;
+    font-weight:bold;
+}
+
+div.year {
+       margin-right:2%;
+       background-color:#eeeeee;
+}
+
+div.form {
+}
+
+span.cpt {
+       color:#005500;
+       font-weight:bold;
+}
+
+span.cm {
+       color:#666666;
+}
+
+.fl {
+       color:#0000FF;  
+       font-style:italic;
+}
+
+ul {
+       margin-top:1px;
+        margin-bottom:1px;
+       margin-left:0px;
+       padding-left:3%;
+}
+
+li {
+       list-style:outside;
+  margin-top:10px;
+  margin-bottom:10px;
+}
+
+ul li {
+       list-style:square;
+       font-family:sans-serif;
+       font-weight:normal;
+}
+
+li.basic {
+       list-style:square;
+       list-style-image:none;
+  margin-top:2px;
+  margin-bottom:2px;
+}
+
+span.links {
+}
+
+
+
+
+.sub { display: none; }
+.subexp {display: block; }
+.sub { display: none; } 
+
+.subexp {display: block; } 
+
+li.exp {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.col {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.exp_active {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer;
+}
+
+li.col_active {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer; /* if not included, bullets are not shown right in moz*/
+}
+
+
+li.basic_active {
+  list-style:square;
+  list-style-image:none;
+  background-color:#eeeeff;
+  margin-top:2px;
+  margin-bottom:2px;
+}
index 10bba606f238ad486ec3d045cac43dde957ca369..aa31b4deec243eaa2c1c1572184e826499a0a7c4 100644 (file)
-/* MarkTree JavaScript code\r
- * \r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License. You may obtain a copy of the License at\r
- * http://www.mozilla.org/MPL/\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- * \r
- * Miika Nurminen, 12.7.2004.\r
- */\r
-\r
-/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */\r
-function get_keycode(evt) {\r
-  // IE\r
-    code = document.layers ? evt.which\r
-           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!\r
-           : evt.keyCode;\r
-\r
-  if (code==0) \r
-    code=evt.which; // for NS\r
-  return code;\r
-}\r
-\r
-var lastnode=null;\r
-var listnodes = null;\r
-var list_index=1;\r
-var lastnodetype=''; // determines if node is a link, input or text;\r
-\r
-// up, left, down, right, keypress codes\r
-//ijkl\r
-//var keys = new Array(105,106,107,108);\r
-//num arrows\r
-//var keys = new Array(56,52,50,54);\r
-//wasd\r
-// var press2 = new Array(119,97,115,100);\r
- var press = new Array(47,45,42,43);\r
-\r
-// keydown codes\r
-  //  var keys2=new Array(87,65,83,68);\r
-  var keys= new Array(38,37,40,39);\r
-\r
-  // keyset 1 = keydown, otherwise press\r
-function checkup(keyset,n) {\r
-  if (keyset==1) return (n==keys[0]);\r
-  return ((n==press[0]) /*|| (n==press2[0])*/)\r
-}\r
-\r
-function checkdn(keyset,n) {\r
-  if (keyset==1) return (n==keys[2]);\r
-  return ((n==press[2]) /*|| (n==press2[2])*/)\r
-}\r
-\r
-function checkl(keyset,n) {\r
-  if (keyset==1) return (n==keys[1]);\r
-  return ((n==press[1]) /*|| (n==press2[1])*/)\r
-}\r
-\r
-function checkr(keyset,n) {\r
-  if (keyset==1) return (n==keys[3]);\r
-  return ((n==press[3]) /*|| (n==press2[3])*/)\r
-}\r
-\r
-\r
-\r
-\r
-\r
-function is_exp(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='exp') || (n.className=='exp_active'));\r
-}\r
-\r
-function is_col(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='col') || (n.className=='col_active'));\r
-}\r
-\r
-function is_basic(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='basic') || (n.className=='basic_active'));\r
-}\r
-\r
-\r
-\r
-/* returns i>=0 if true */\r
-function is_active(node) {\r
-  if (node.className==null) return false\r
-  return node.className.indexOf('_active');\r
-}\r
-\r
-function toggle_class(node) {\r
-  if ((node==null) || (node.className==null)) return;\r
-  str=node.className;\r
-  result="";\r
-  i = str.indexOf('_active');\r
-  if (i>0)\r
-    result= str.substr(0,i);\r
-  else\r
-    result= str+"_active";\r
-  node.className=result; \r
-  return node;\r
-}\r
-\r
-function activate(node) {\r
-  node.style.backgroundColor='#eeeeff';\r
-}\r
-\r
-function deactivate(node) {\r
-   node.style.backgroundColor='#ffffff';\r
-}\r
-\r
-function is_list_node(n) {\r
-  if (n==null) return false;\r
-  if (n.className==null) return false;\r
-  if ( (is_exp(n)) || \r
-       (is_col(n)) ||\r
-       (is_basic(n)) )\r
-   return true; else return false;\r
-}\r
-\r
-\r
-function get_href(n) {\r
-  alist=n.attributes;\r
-  if (alist!=null) {\r
-    hr = alist.getNamedItem('href');\r
-    if (hr!=null) return hr.nodeValue;\r
-  }\r
-  if (n.childNodes.length==0) return '';\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_href(n.childNodes[i]);\r
-    if (s!='') return s;\r
-  }\r
-  return '';\r
-}\r
-\r
-function get_link(n) {\r
-  if (n==null) return null;\r
-  if (n.style==null) return null;\r
-\r
- // disabling uncontrolled recursion to prevent error messages on IE\r
- // when trying to focus to invisible links (readonly mode)\r
-//    alert(n.nodeName+' '+n.className);\r
-  if ((n.nodeName=='UL') && (n.className=='sub')) return null;\r
-\r
-  if (n.nodeName=='A') return n;\r
-  if (n.childNodes.length==0) return null;\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_link(n.childNodes[i]);\r
-    if (s!=null) return s;\r
-  }\r
-  return null;\r
-}\r
-\r
-function set_lastnode(n) {\r
-/*var d = new Date();\r
-var t_mil = d.getMilliseconds();*/\r
-// testattu nopeuksia explorerilla, ei merkittäviä eroja\r
-  if (lastnode==n) return; \r
-/*  deactivate(lastnode)\r
-  lastnode=n;\r
-  activate(lastnode);*/\r
-\r
-  if (is_active(lastnode)>=0)\r
-    toggle_class(lastnode);\r
-  lastnode=n;\r
-  if (!(is_active(lastnode)>=0))\r
-    toggle_class(lastnode);\r
-\r
-\r
-/*var d2 = new Date();\r
-var t_mil2 = d2.getMilliseconds();\r
-  window.alert(t_mil2-t_mil);*/\r
-}\r
-\r
-function next_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex<listnodes.length-1) {\r
-    tempIndex++;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-function prev_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex>0) {\r
-    tempIndex--;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-\r
-\r
-function getsub (li) {\r
-  if (li.childNodes.length==0) return null;\r
-  for (var c = 0; c < li.childNodes.length; c++)\r
-    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) \r
-      return li.childNodes[c];\r
-}\r
-\r
-function find_listnode_recursive (li) {\r
-  if (is_list_node(li)) return li; \r
-  if (li.childNodes.length==0) return null;\r
-  result=null;\r
-  for (var c = 0; c < li.childNodes.length; c++) {\r
-    result=find_listnode_recursive(li.childNodes[c]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;\r
-}\r
-\r
-function next_child_listnode(li) {\r
-  var result=null;\r
-  for (var i=0; i<li.childNodes.length; i++) {\r
-    result=find_listnode_recursive(li.childNodes[i]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;  \r
-}\r
-\r
-function next_actual_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function next_sibling_listnode(li) {\r
-if (li==null) return null; \r
- var result=null;\r
-  var temp=li;\r
-  if (is_col(temp)) return next_child_listnode(temp);\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function last_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var last=null;\r
-  while(1) {\r
-    var n = temp.nextSibling;\r
-    if (is_list_node(temp)) \r
-      last = temp;\r
-    if (n==null) {\r
-      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));\r
-      else return last;\r
-    }\r
-    temp = n;\r
-  }\r
-}\r
-\r
-function prev_sibling_listnode(li) { \r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var n = null;\r
-  while (1) { \r
-    n = temp.previousSibling;\r
-    if (n==null) {\r
-      return parent_listnode(li);\r
-    }\r
-    if (is_list_node(n)) {\r
-      if (is_col(n)) { \r
-        return last_sibling_listnode(next_child_listnode(n));\r
-      }\r
-      else {\r
-        return n;\r
-      }\r
-    }\r
-    temp=n;\r
-  }\r
-}\r
-\r
-\r
-function parent_listnode(li) {\r
-  // added 12.7.2004 to prevent IE error when readonly mode==true\r
-  if (li==null) return null;\r
-  n=li;\r
-  while (1) {\r
-    n=n.parentNode;\r
-    if (n==null) return null;\r
-    if (is_list_node(n)) return n;\r
-  }\r
-}\r
-\r
-function getVisibleParents(id) {\r
-  var n = document.getElementById(id);\r
-  while(1) {\r
-    expand(n);\r
-    n = parent_listnode(n);\r
-    if (n==null) return;\r
-  }\r
-}\r
-\r
-function onClickHandler (evt) {\r
-if (lastnode==null) \r
-{\r
-listnodes = document.getElementsByTagName('li');\r
-lastnode=listnodes[1];\r
-temp=listnodes[1];\r
-}\r
-\r
-\r
-  var target = evt ? evt.target : event.srcElement;\r
-  if (!is_list_node(target)) return;\r
-  toggle(target);\r
-  set_lastnode(target);\r
-}\r
-\r
-\r
-function expand(node) {\r
-    if (!is_exp(node)) return;\r
-    if (node.className=='exp_active') \r
-      node.className='col_active';\r
-    else \r
-        node.className='col';\r
-    setSubClass(node,'subexp');\r
-    //    getsub(node).className='subexp';\r
-}\r
-\r
-function collapse(node) {\r
-  if (!is_col(node)) return;\r
-  \r
-if (node.className=='col_active')\r
-    node.className='exp_active'\r
-  else \r
-    node.className='exp';\r
-\r
- setSubClass(node,'sub');\r
-//  getsub(node).className='sub';\r
-\r
-}\r
-\r
-function setSubClass(node,name) {\r
-  sub = getsub(node);\r
-  if (sub==null) return;\r
-  sub.className=name;  \r
-}\r
-\r
-function toggle(target) {\r
-  if (!is_list_node(target)) return;\r
-    if (is_col(target)) {\r
-      target.className='exp';\r
-      setSubClass(target,'sub');\r
-      //      getsub(target).className='sub';\r
-    }\r
-    else if (is_exp(target)) {\r
-      target.className='col';\r
-      setSubClass(target,'subexp');\r
-      //      getsub(target).className='subexp';\r
-    }\r
\r
-}\r
-\r
-function expandAll(node) {\r
-    if (node.className=='exp') {\r
-        node.className='col';\r
-        setSubClass(node,'subexp');\r
-//        getsub(node).className='subexp';\r
-    }\r
-    var i;\r
-    if (node.childNodes!=null) \r
-//    if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            expandAll(node.childNodes[i]);\r
-}\r
-\r
-function collapseAll(node) {\r
-    if  (node.className=='col') {\r
-        node.className='exp';\r
-        setSubClass(node,'sub');\r
-//        getsub(node).className='sub';\r
-    }\r
-    var i;        \r
-    if (node.childNodes!=null) \r
-// for opera   if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            collapseAll(node.childNodes[i]);\r
-}\r
-\r
-\r
-\r
-function unFocus(node) {\r
-     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).\r
-     // tested with mozilla 1.7, 12.7.2004. /mn (\r
-      intemp=parent_listnode(node);  \r
-      a = get_link(intemp);     // added 6.4. to get keyboard working with\r
-      // moved before collapse to prevent an error message with IE when readonly==true      \r
-      if (a!=null) a.blur(); // netscape after collapsing a focused node\r
-      return intemp;\r
-}\r
-\r
-// mode: 0==keypress, 1==keyup\r
-function keyfunc(evt,mode) {\r
- var c = get_keycode(evt);\r
- var temp = null;\r
- var a = null;\r
-\r
-  if (lastnode==null) {\r
-    listnodes = document.getElementsByTagName('li');\r
-    lastnode=listnodes[1];\r
-    temp=listnodes[1];\r
-  }\r
-\r
-  //window.alert(c);\r
-  if (checkup(mode,c)) { // i \r
-   temp=prev_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkdn(mode,c)) { // k\r
-    temp=next_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkr(mode,c)) { // l\r
-    expand(lastnode);\r
-    //  temp=next_child_listnode(lastnode);\r
-    // if (temp==null) {\r
-      a = get_link(lastnode);\r
-        if (a!=null) a.focus(); else self.focus(); \r
-      //}\r
-  }\r
-  else if (checkl(mode,c)) { // j\r
-    if (is_col(lastnode)) {\r
-      unFocus(lastnode);\r
-      collapse(lastnode);\r
-    }\r
-    else {\r
-      temp=unFocus(lastnode);\r
-      collapse(temp);\r
-    }\r
-   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)\r
-  }\r
-  else return;\r
-  if (temp!=null) set_lastnode(temp);\r
-\r
-  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');\r
-  return true;\r
-}\r
-\r
-\r
-function keytest (evt) {\r
-  return keyfunc(evt,1);\r
-};\r
-\r
-\r
-function presstest (evt) {\r
-  return keyfunc(evt,0);\r
-};\r
-\r
-\r
-  document.onclick = onClickHandler;\r
-  document.onkeypress = presstest;\r
-  document.onkeyup = keytest;\r
+/* MarkTree JavaScript code
+ * 
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ * 
+ * Miika Nurminen, 12.7.2004.
+ */
+
+/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
+function get_keycode(evt) {
+  // IE
+    code = document.layers ? evt.which
+           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!
+           : evt.keyCode;
+
+  if (code==0) 
+    code=evt.which; // for NS
+  return code;
+}
+
+var lastnode=null;
+var listnodes = null;
+var list_index=1;
+var lastnodetype=''; // determines if node is a link, input or text;
+
+// up, left, down, right, keypress codes
+//ijkl
+//var keys = new Array(105,106,107,108);
+//num arrows
+//var keys = new Array(56,52,50,54);
+//wasd
+// var press2 = new Array(119,97,115,100);
+ var press = new Array(47,45,42,43);
+
+// keydown codes
+  //  var keys2=new Array(87,65,83,68);
+  var keys= new Array(38,37,40,39);
+
+  // keyset 1 = keydown, otherwise press
+function checkup(keyset,n) {
+  if (keyset==1) return (n==keys[0]);
+  return ((n==press[0]) /*|| (n==press2[0])*/)
+}
+
+function checkdn(keyset,n) {
+  if (keyset==1) return (n==keys[2]);
+  return ((n==press[2]) /*|| (n==press2[2])*/)
+}
+
+function checkl(keyset,n) {
+  if (keyset==1) return (n==keys[1]);
+  return ((n==press[1]) /*|| (n==press2[1])*/)
+}
+
+function checkr(keyset,n) {
+  if (keyset==1) return (n==keys[3]);
+  return ((n==press[3]) /*|| (n==press2[3])*/)
+}
+
+
+
+
+
+function is_exp(n) {
+  if (n==null) return false;
+  return ((n.className=='exp') || (n.className=='exp_active'));
+}
+
+function is_col(n) {
+  if (n==null) return false;
+  return ((n.className=='col') || (n.className=='col_active'));
+}
+
+function is_basic(n) {
+  if (n==null) return false;
+  return ((n.className=='basic') || (n.className=='basic_active'));
+}
+
+
+
+/* returns i>=0 if true */
+function is_active(node) {
+  if (node.className==null) return false
+  return node.className.indexOf('_active');
+}
+
+function toggle_class(node) {
+  if ((node==null) || (node.className==null)) return;
+  str=node.className;
+  result="";
+  i = str.indexOf('_active');
+  if (i>0)
+    result= str.substr(0,i);
+  else
+    result= str+"_active";
+  node.className=result; 
+  return node;
+}
+
+function activate(node) {
+  node.style.backgroundColor='#eeeeff';
+}
+
+function deactivate(node) {
+   node.style.backgroundColor='#ffffff';
+}
+
+function is_list_node(n) {
+  if (n==null) return false;
+  if (n.className==null) return false;
+  if ( (is_exp(n)) || 
+       (is_col(n)) ||
+       (is_basic(n)) )
+   return true; else return false;
+}
+
+
+function get_href(n) {
+  alist=n.attributes;
+  if (alist!=null) {
+    hr = alist.getNamedItem('href');
+    if (hr!=null) return hr.nodeValue;
+  }
+  if (n.childNodes.length==0) return '';
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_href(n.childNodes[i]);
+    if (s!='') return s;
+  }
+  return '';
+}
+
+function get_link(n) {
+  if (n==null) return null;
+  if (n.style==null) return null;
+
+ // disabling uncontrolled recursion to prevent error messages on IE
+ // when trying to focus to invisible links (readonly mode)
+//    alert(n.nodeName+' '+n.className);
+  if ((n.nodeName=='UL') && (n.className=='sub')) return null;
+
+  if (n.nodeName=='A') return n;
+  if (n.childNodes.length==0) return null;
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_link(n.childNodes[i]);
+    if (s!=null) return s;
+  }
+  return null;
+}
+
+function set_lastnode(n) {
+/*var d = new Date();
+var t_mil = d.getMilliseconds();*/
+// testattu nopeuksia explorerilla, ei merkittäviä eroja
+  if (lastnode==n) return; 
+/*  deactivate(lastnode)
+  lastnode=n;
+  activate(lastnode);*/
+
+  if (is_active(lastnode)>=0)
+    toggle_class(lastnode);
+  lastnode=n;
+  if (!(is_active(lastnode)>=0))
+    toggle_class(lastnode);
+
+
+/*var d2 = new Date();
+var t_mil2 = d2.getMilliseconds();
+  window.alert(t_mil2-t_mil);*/
+}
+
+function next_list_node() {
+  tempIndex = list_index;
+  while (tempIndex<listnodes.length-1) {
+    tempIndex++;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+function prev_list_node() {
+  tempIndex = list_index;
+  while (tempIndex>0) {
+    tempIndex--;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+
+
+function getsub (li) {
+  if (li.childNodes.length==0) return null;
+  for (var c = 0; c < li.childNodes.length; c++)
+    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) 
+      return li.childNodes[c];
+}
+
+function find_listnode_recursive (li) {
+  if (is_list_node(li)) return li; 
+  if (li.childNodes.length==0) return null;
+  result=null;
+  for (var c = 0; c < li.childNodes.length; c++) {
+    result=find_listnode_recursive(li.childNodes[c]);
+    if (result!=null) return result;
+  }
+  return null;
+}
+
+function next_child_listnode(li) {
+  var result=null;
+  for (var i=0; i<li.childNodes.length; i++) {
+    result=find_listnode_recursive(li.childNodes[i]);
+    if (result!=null) return result;
+  }
+  return null;  
+}
+
+function next_actual_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function next_sibling_listnode(li) {
+if (li==null) return null; 
+ var result=null;
+  var temp=li;
+  if (is_col(temp)) return next_child_listnode(temp);
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function last_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  var last=null;
+  while(1) {
+    var n = temp.nextSibling;
+    if (is_list_node(temp)) 
+      last = temp;
+    if (n==null) {
+      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
+      else return last;
+    }
+    temp = n;
+  }
+}
+
+function prev_sibling_listnode(li) { 
+  if (li==null) return null;
+  var temp=li;
+  var n = null;
+  while (1) { 
+    n = temp.previousSibling;
+    if (n==null) {
+      return parent_listnode(li);
+    }
+    if (is_list_node(n)) {
+      if (is_col(n)) { 
+        return last_sibling_listnode(next_child_listnode(n));
+      }
+      else {
+        return n;
+      }
+    }
+    temp=n;
+  }
+}
+
+
+function parent_listnode(li) {
+  // added 12.7.2004 to prevent IE error when readonly mode==true
+  if (li==null) return null;
+  n=li;
+  while (1) {
+    n=n.parentNode;
+    if (n==null) return null;
+    if (is_list_node(n)) return n;
+  }
+}
+
+function getVisibleParents(id) {
+  var n = document.getElementById(id);
+  while(1) {
+    expand(n);
+    n = parent_listnode(n);
+    if (n==null) return;
+  }
+}
+
+function onClickHandler (evt) {
+if (lastnode==null) 
+{
+listnodes = document.getElementsByTagName('li');
+lastnode=listnodes[1];
+temp=listnodes[1];
+}
+
+
+  var target = evt ? evt.target : event.srcElement;
+  if (!is_list_node(target)) return;
+  toggle(target);
+  set_lastnode(target);
+}
+
+
+function expand(node) {
+    if (!is_exp(node)) return;
+    if (node.className=='exp_active') 
+      node.className='col_active';
+    else 
+        node.className='col';
+    setSubClass(node,'subexp');
+    //    getsub(node).className='subexp';
+}
+
+function collapse(node) {
+  if (!is_col(node)) return;
+  
+if (node.className=='col_active')
+    node.className='exp_active'
+  else 
+    node.className='exp';
+
+ setSubClass(node,'sub');
+//  getsub(node).className='sub';
+
+}
+
+function setSubClass(node,name) {
+  sub = getsub(node);
+  if (sub==null) return;
+  sub.className=name;  
+}
+
+function toggle(target) {
+  if (!is_list_node(target)) return;
+    if (is_col(target)) {
+      target.className='exp';
+      setSubClass(target,'sub');
+      //      getsub(target).className='sub';
+    }
+    else if (is_exp(target)) {
+      target.className='col';
+      setSubClass(target,'subexp');
+      //      getsub(target).className='subexp';
+    }
+}
+
+function expandAll(node) {
+    if (node.className=='exp') {
+        node.className='col';
+        setSubClass(node,'subexp');
+//        getsub(node).className='subexp';
+    }
+    var i;
+    if (node.childNodes!=null) 
+//    if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            expandAll(node.childNodes[i]);
+}
+
+function collapseAll(node) {
+    if  (node.className=='col') {
+        node.className='exp';
+        setSubClass(node,'sub');
+//        getsub(node).className='sub';
+    }
+    var i;        
+    if (node.childNodes!=null) 
+// for opera   if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            collapseAll(node.childNodes[i]);
+}
+
+
+
+function unFocus(node) {
+     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
+     // tested with mozilla 1.7, 12.7.2004. /mn (
+      intemp=parent_listnode(node);  
+      a = get_link(intemp);     // added 6.4. to get keyboard working with
+      // moved before collapse to prevent an error message with IE when readonly==true      
+      if (a!=null) a.blur(); // netscape after collapsing a focused node
+      return intemp;
+}
+
+// mode: 0==keypress, 1==keyup
+function keyfunc(evt,mode) {
+ var c = get_keycode(evt);
+ var temp = null;
+ var a = null;
+
+  if (lastnode==null) {
+    listnodes = document.getElementsByTagName('li');
+    lastnode=listnodes[1];
+    temp=listnodes[1];
+  }
+
+  //window.alert(c);
+  if (checkup(mode,c)) { // i 
+   temp=prev_sibling_listnode(lastnode);
+  }
+  else if (checkdn(mode,c)) { // k
+    temp=next_sibling_listnode(lastnode);
+  }
+  else if (checkr(mode,c)) { // l
+    expand(lastnode);
+    //  temp=next_child_listnode(lastnode);
+    // if (temp==null) {
+      a = get_link(lastnode);
+        if (a!=null) a.focus(); else self.focus(); 
+      //}
+  }
+  else if (checkl(mode,c)) { // j
+    if (is_col(lastnode)) {
+      unFocus(lastnode);
+      collapse(lastnode);
+    }
+    else {
+      temp=unFocus(lastnode);
+      collapse(temp);
+    }
+   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
+  }
+  else return;
+  if (temp!=null) set_lastnode(temp);
+
+  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
+  return true;
+}
+
+
+function keytest (evt) {
+  return keyfunc(evt,1);
+};
+
+
+function presstest (evt) {
+  return keyfunc(evt,0);
+};
+
+
+  document.onclick = onClickHandler;
+  document.onkeypress = presstest;
+  document.onkeyup = keytest;
index aecb6e18a7b637c7e8e42aa9a55b00c88dc67b11..a640cadef3dfc677ad9f24302668ea9f52bc59c4 100644 (file)
-\r
-body {\r
-       background-color: #eeeeee;\r
-       color: #000000;\r
-       font-family:sans-serif;\r
-}\r
-\r
-:link { color: #0000ff; text-decoration:none;}\r
-:visited { color: #6666ff; text-decoration:none; }\r
-a:active { color: #0000ff; text-decoration:none;}\r
-a:hover {color: #0000ff; text-decoration:underline; }\r
-\r
-div.basetext {\r
-    background-color:#ffffff;\r
-        margin-top:11px;\r
-        margin-bottom:11px;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:11px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:11px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-div.basetop {\r
-  position: fixed;\r
-  width:auto;\r
-  height:auto;\r
-  right:0em;\r
-  top:0em;\r
-  left:auto; \r
-  top:0;\r
-    background-color:#ffffff;\r
-        margin-top:0;\r
-        margin-bottom:0;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:2px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:2px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-text-align:right;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-h1 {\r
-    text-align:center;\r
-}\r
-\r
-span.h2 {\r
-    font-family:sans-serif;\r
-    font-weight:bold;\r
-}\r
-\r
-div.year {\r
-       margin-right:2%;\r
-       background-color:#eeeeee;\r
-}\r
-\r
-div.form {\r
-}\r
-\r
-span.cpt {\r
-       color:#005500;\r
-       font-weight:bold;\r
-}\r
-\r
-span.cm {\r
-       color:#666666;\r
-}\r
-\r
-.fl {\r
-       color:#0000FF;  \r
-       font-style:italic;\r
-}\r
-\r
-ul {\r
-       margin-top:1px;\r
-        margin-bottom:1px;\r
-       margin-left:0px;\r
-       padding-left:3%;\r
-}\r
-\r
-li {\r
-       list-style:outside;\r
-  margin-top:10px;   \r
-  margin-bottom:10px;\r
-}\r
-\r
-ul li {\r
-       list-style:square;\r
-       font-family:sans-serif;\r
-       font-weight:normal;\r
-}\r
-\r
-li.basic {\r
-       list-style:square;\r
-       list-style-image:none;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
-\r
-span.links {\r
-}\r
-\r
-\r
-\r
-\r
-.sub { display: none; }\r
-.subexp {display: block; }\r
-.sub { display: none; } \r
-\r
-.subexp {display: block; } \r
-\r
-li.exp {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.exp_active {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;  \r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col_active {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer; /* if not included, bullets are not shown right in moz*/\r
-}\r
-\r
-\r
-li.basic_active {\r
-  list-style:square;\r
-  list-style-image:none;\r
-  background-color:#eeeeff;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
+
+body {
+       background-color: #eeeeee;
+       color: #000000;
+       font-family:sans-serif;
+}
+
+:link { color: #0000ff; text-decoration:none;}
+:visited { color: #6666ff; text-decoration:none; }
+a:active { color: #0000ff; text-decoration:none;}
+a:hover {color: #0000ff; text-decoration:underline; }
+
+div.basetext {
+    background-color:#ffffff;
+        margin-top:11px;
+        margin-bottom:11px;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:11px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:11px;
+       text-align:left;
+       font-weight:normal;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+div.basetop {
+  position: fixed;
+  width:auto;
+  height:auto;
+  right:0em;
+  top:0em;
+  left:auto; 
+  top:0;
+    background-color:#ffffff;
+        margin-top:0;
+        margin-bottom:0;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:2px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:2px;
+       text-align:left;
+       font-weight:normal;
+text-align:right;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+h1 {
+    text-align:center;
+}
+
+span.h2 {
+    font-family:sans-serif;
+    font-weight:bold;
+}
+
+div.year {
+       margin-right:2%;
+       background-color:#eeeeee;
+}
+
+div.form {
+}
+
+span.cpt {
+       color:#005500;
+       font-weight:bold;
+}
+
+span.cm {
+       color:#666666;
+}
+
+.fl {
+       color:#0000FF;  
+       font-style:italic;
+}
+
+ul {
+       margin-top:1px;
+        margin-bottom:1px;
+       margin-left:0px;
+       padding-left:3%;
+}
+
+li {
+       list-style:outside;
+  margin-top:10px;
+  margin-bottom:10px;
+}
+
+ul li {
+       list-style:square;
+       font-family:sans-serif;
+       font-weight:normal;
+}
+
+li.basic {
+       list-style:square;
+       list-style-image:none;
+  margin-top:2px;
+  margin-bottom:2px;
+}
+
+span.links {
+}
+
+
+
+
+.sub { display: none; }
+.subexp {display: block; }
+.sub { display: none; } 
+
+.subexp {display: block; } 
+
+li.exp {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.col {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.exp_active {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer;
+}
+
+li.col_active {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer; /* if not included, bullets are not shown right in moz*/
+}
+
+
+li.basic_active {
+  list-style:square;
+  list-style-image:none;
+  background-color:#eeeeff;
+  margin-top:2px;
+  margin-bottom:2px;
+}
index 10bba606f238ad486ec3d045cac43dde957ca369..aa31b4deec243eaa2c1c1572184e826499a0a7c4 100644 (file)
-/* MarkTree JavaScript code\r
- * \r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License. You may obtain a copy of the License at\r
- * http://www.mozilla.org/MPL/\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- * \r
- * Miika Nurminen, 12.7.2004.\r
- */\r
-\r
-/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */\r
-function get_keycode(evt) {\r
-  // IE\r
-    code = document.layers ? evt.which\r
-           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!\r
-           : evt.keyCode;\r
-\r
-  if (code==0) \r
-    code=evt.which; // for NS\r
-  return code;\r
-}\r
-\r
-var lastnode=null;\r
-var listnodes = null;\r
-var list_index=1;\r
-var lastnodetype=''; // determines if node is a link, input or text;\r
-\r
-// up, left, down, right, keypress codes\r
-//ijkl\r
-//var keys = new Array(105,106,107,108);\r
-//num arrows\r
-//var keys = new Array(56,52,50,54);\r
-//wasd\r
-// var press2 = new Array(119,97,115,100);\r
- var press = new Array(47,45,42,43);\r
-\r
-// keydown codes\r
-  //  var keys2=new Array(87,65,83,68);\r
-  var keys= new Array(38,37,40,39);\r
-\r
-  // keyset 1 = keydown, otherwise press\r
-function checkup(keyset,n) {\r
-  if (keyset==1) return (n==keys[0]);\r
-  return ((n==press[0]) /*|| (n==press2[0])*/)\r
-}\r
-\r
-function checkdn(keyset,n) {\r
-  if (keyset==1) return (n==keys[2]);\r
-  return ((n==press[2]) /*|| (n==press2[2])*/)\r
-}\r
-\r
-function checkl(keyset,n) {\r
-  if (keyset==1) return (n==keys[1]);\r
-  return ((n==press[1]) /*|| (n==press2[1])*/)\r
-}\r
-\r
-function checkr(keyset,n) {\r
-  if (keyset==1) return (n==keys[3]);\r
-  return ((n==press[3]) /*|| (n==press2[3])*/)\r
-}\r
-\r
-\r
-\r
-\r
-\r
-function is_exp(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='exp') || (n.className=='exp_active'));\r
-}\r
-\r
-function is_col(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='col') || (n.className=='col_active'));\r
-}\r
-\r
-function is_basic(n) {\r
-  if (n==null) return false;\r
-  return ((n.className=='basic') || (n.className=='basic_active'));\r
-}\r
-\r
-\r
-\r
-/* returns i>=0 if true */\r
-function is_active(node) {\r
-  if (node.className==null) return false\r
-  return node.className.indexOf('_active');\r
-}\r
-\r
-function toggle_class(node) {\r
-  if ((node==null) || (node.className==null)) return;\r
-  str=node.className;\r
-  result="";\r
-  i = str.indexOf('_active');\r
-  if (i>0)\r
-    result= str.substr(0,i);\r
-  else\r
-    result= str+"_active";\r
-  node.className=result; \r
-  return node;\r
-}\r
-\r
-function activate(node) {\r
-  node.style.backgroundColor='#eeeeff';\r
-}\r
-\r
-function deactivate(node) {\r
-   node.style.backgroundColor='#ffffff';\r
-}\r
-\r
-function is_list_node(n) {\r
-  if (n==null) return false;\r
-  if (n.className==null) return false;\r
-  if ( (is_exp(n)) || \r
-       (is_col(n)) ||\r
-       (is_basic(n)) )\r
-   return true; else return false;\r
-}\r
-\r
-\r
-function get_href(n) {\r
-  alist=n.attributes;\r
-  if (alist!=null) {\r
-    hr = alist.getNamedItem('href');\r
-    if (hr!=null) return hr.nodeValue;\r
-  }\r
-  if (n.childNodes.length==0) return '';\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_href(n.childNodes[i]);\r
-    if (s!='') return s;\r
-  }\r
-  return '';\r
-}\r
-\r
-function get_link(n) {\r
-  if (n==null) return null;\r
-  if (n.style==null) return null;\r
-\r
- // disabling uncontrolled recursion to prevent error messages on IE\r
- // when trying to focus to invisible links (readonly mode)\r
-//    alert(n.nodeName+' '+n.className);\r
-  if ((n.nodeName=='UL') && (n.className=='sub')) return null;\r
-\r
-  if (n.nodeName=='A') return n;\r
-  if (n.childNodes.length==0) return null;\r
-  for (var i=0; i<n.childNodes.length; i++) {\r
-    s = get_link(n.childNodes[i]);\r
-    if (s!=null) return s;\r
-  }\r
-  return null;\r
-}\r
-\r
-function set_lastnode(n) {\r
-/*var d = new Date();\r
-var t_mil = d.getMilliseconds();*/\r
-// testattu nopeuksia explorerilla, ei merkittäviä eroja\r
-  if (lastnode==n) return; \r
-/*  deactivate(lastnode)\r
-  lastnode=n;\r
-  activate(lastnode);*/\r
-\r
-  if (is_active(lastnode)>=0)\r
-    toggle_class(lastnode);\r
-  lastnode=n;\r
-  if (!(is_active(lastnode)>=0))\r
-    toggle_class(lastnode);\r
-\r
-\r
-/*var d2 = new Date();\r
-var t_mil2 = d2.getMilliseconds();\r
-  window.alert(t_mil2-t_mil);*/\r
-}\r
-\r
-function next_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex<listnodes.length-1) {\r
-    tempIndex++;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-function prev_list_node() {\r
-  tempIndex = list_index;\r
-  while (tempIndex>0) {\r
-    tempIndex--;\r
-    var x = listnodes[tempIndex];\r
-    if (is_list_node(x)) {\r
-      list_index=tempIndex;\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-\r
-\r
-function getsub (li) {\r
-  if (li.childNodes.length==0) return null;\r
-  for (var c = 0; c < li.childNodes.length; c++)\r
-    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) \r
-      return li.childNodes[c];\r
-}\r
-\r
-function find_listnode_recursive (li) {\r
-  if (is_list_node(li)) return li; \r
-  if (li.childNodes.length==0) return null;\r
-  result=null;\r
-  for (var c = 0; c < li.childNodes.length; c++) {\r
-    result=find_listnode_recursive(li.childNodes[c]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;\r
-}\r
-\r
-function next_child_listnode(li) {\r
-  var result=null;\r
-  for (var i=0; i<li.childNodes.length; i++) {\r
-    result=find_listnode_recursive(li.childNodes[i]);\r
-    if (result!=null) return result;\r
-  }\r
-  return null;  \r
-}\r
-\r
-function next_actual_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function next_sibling_listnode(li) {\r
-if (li==null) return null; \r
- var result=null;\r
-  var temp=li;\r
-  if (is_col(temp)) return next_child_listnode(temp);\r
-  while (1) { \r
-    var n = temp.nextSibling;\r
-    if (n==null) {\r
-      n=parent_listnode(temp);\r
-      return next_actual_sibling_listnode(n);\r
-    }\r
-    if (is_list_node(n)) return n;\r
-    temp=n;\r
-  }\r
-}\r
-\r
-function last_sibling_listnode(li) {\r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var last=null;\r
-  while(1) {\r
-    var n = temp.nextSibling;\r
-    if (is_list_node(temp)) \r
-      last = temp;\r
-    if (n==null) {\r
-      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));\r
-      else return last;\r
-    }\r
-    temp = n;\r
-  }\r
-}\r
-\r
-function prev_sibling_listnode(li) { \r
-  if (li==null) return null;\r
-  var temp=li;\r
-  var n = null;\r
-  while (1) { \r
-    n = temp.previousSibling;\r
-    if (n==null) {\r
-      return parent_listnode(li);\r
-    }\r
-    if (is_list_node(n)) {\r
-      if (is_col(n)) { \r
-        return last_sibling_listnode(next_child_listnode(n));\r
-      }\r
-      else {\r
-        return n;\r
-      }\r
-    }\r
-    temp=n;\r
-  }\r
-}\r
-\r
-\r
-function parent_listnode(li) {\r
-  // added 12.7.2004 to prevent IE error when readonly mode==true\r
-  if (li==null) return null;\r
-  n=li;\r
-  while (1) {\r
-    n=n.parentNode;\r
-    if (n==null) return null;\r
-    if (is_list_node(n)) return n;\r
-  }\r
-}\r
-\r
-function getVisibleParents(id) {\r
-  var n = document.getElementById(id);\r
-  while(1) {\r
-    expand(n);\r
-    n = parent_listnode(n);\r
-    if (n==null) return;\r
-  }\r
-}\r
-\r
-function onClickHandler (evt) {\r
-if (lastnode==null) \r
-{\r
-listnodes = document.getElementsByTagName('li');\r
-lastnode=listnodes[1];\r
-temp=listnodes[1];\r
-}\r
-\r
-\r
-  var target = evt ? evt.target : event.srcElement;\r
-  if (!is_list_node(target)) return;\r
-  toggle(target);\r
-  set_lastnode(target);\r
-}\r
-\r
-\r
-function expand(node) {\r
-    if (!is_exp(node)) return;\r
-    if (node.className=='exp_active') \r
-      node.className='col_active';\r
-    else \r
-        node.className='col';\r
-    setSubClass(node,'subexp');\r
-    //    getsub(node).className='subexp';\r
-}\r
-\r
-function collapse(node) {\r
-  if (!is_col(node)) return;\r
-  \r
-if (node.className=='col_active')\r
-    node.className='exp_active'\r
-  else \r
-    node.className='exp';\r
-\r
- setSubClass(node,'sub');\r
-//  getsub(node).className='sub';\r
-\r
-}\r
-\r
-function setSubClass(node,name) {\r
-  sub = getsub(node);\r
-  if (sub==null) return;\r
-  sub.className=name;  \r
-}\r
-\r
-function toggle(target) {\r
-  if (!is_list_node(target)) return;\r
-    if (is_col(target)) {\r
-      target.className='exp';\r
-      setSubClass(target,'sub');\r
-      //      getsub(target).className='sub';\r
-    }\r
-    else if (is_exp(target)) {\r
-      target.className='col';\r
-      setSubClass(target,'subexp');\r
-      //      getsub(target).className='subexp';\r
-    }\r
\r
-}\r
-\r
-function expandAll(node) {\r
-    if (node.className=='exp') {\r
-        node.className='col';\r
-        setSubClass(node,'subexp');\r
-//        getsub(node).className='subexp';\r
-    }\r
-    var i;\r
-    if (node.childNodes!=null) \r
-//    if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            expandAll(node.childNodes[i]);\r
-}\r
-\r
-function collapseAll(node) {\r
-    if  (node.className=='col') {\r
-        node.className='exp';\r
-        setSubClass(node,'sub');\r
-//        getsub(node).className='sub';\r
-    }\r
-    var i;        \r
-    if (node.childNodes!=null) \r
-// for opera   if (node.hasChildNodes()) \r
-        for ( i = 0; i<node.childNodes.length; i++)\r
-            collapseAll(node.childNodes[i]);\r
-}\r
-\r
-\r
-\r
-function unFocus(node) {\r
-     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).\r
-     // tested with mozilla 1.7, 12.7.2004. /mn (\r
-      intemp=parent_listnode(node);  \r
-      a = get_link(intemp);     // added 6.4. to get keyboard working with\r
-      // moved before collapse to prevent an error message with IE when readonly==true      \r
-      if (a!=null) a.blur(); // netscape after collapsing a focused node\r
-      return intemp;\r
-}\r
-\r
-// mode: 0==keypress, 1==keyup\r
-function keyfunc(evt,mode) {\r
- var c = get_keycode(evt);\r
- var temp = null;\r
- var a = null;\r
-\r
-  if (lastnode==null) {\r
-    listnodes = document.getElementsByTagName('li');\r
-    lastnode=listnodes[1];\r
-    temp=listnodes[1];\r
-  }\r
-\r
-  //window.alert(c);\r
-  if (checkup(mode,c)) { // i \r
-   temp=prev_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkdn(mode,c)) { // k\r
-    temp=next_sibling_listnode(lastnode);\r
-  }\r
-  else if (checkr(mode,c)) { // l\r
-    expand(lastnode);\r
-    //  temp=next_child_listnode(lastnode);\r
-    // if (temp==null) {\r
-      a = get_link(lastnode);\r
-        if (a!=null) a.focus(); else self.focus(); \r
-      //}\r
-  }\r
-  else if (checkl(mode,c)) { // j\r
-    if (is_col(lastnode)) {\r
-      unFocus(lastnode);\r
-      collapse(lastnode);\r
-    }\r
-    else {\r
-      temp=unFocus(lastnode);\r
-      collapse(temp);\r
-    }\r
-   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)\r
-  }\r
-  else return;\r
-  if (temp!=null) set_lastnode(temp);\r
-\r
-  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');\r
-  return true;\r
-}\r
-\r
-\r
-function keytest (evt) {\r
-  return keyfunc(evt,1);\r
-};\r
-\r
-\r
-function presstest (evt) {\r
-  return keyfunc(evt,0);\r
-};\r
-\r
-\r
-  document.onclick = onClickHandler;\r
-  document.onkeypress = presstest;\r
-  document.onkeyup = keytest;\r
+/* MarkTree JavaScript code
+ * 
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ * 
+ * Miika Nurminen, 12.7.2004.
+ */
+
+/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
+function get_keycode(evt) {
+  // IE
+    code = document.layers ? evt.which
+           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!
+           : evt.keyCode;
+
+  if (code==0) 
+    code=evt.which; // for NS
+  return code;
+}
+
+var lastnode=null;
+var listnodes = null;
+var list_index=1;
+var lastnodetype=''; // determines if node is a link, input or text;
+
+// up, left, down, right, keypress codes
+//ijkl
+//var keys = new Array(105,106,107,108);
+//num arrows
+//var keys = new Array(56,52,50,54);
+//wasd
+// var press2 = new Array(119,97,115,100);
+ var press = new Array(47,45,42,43);
+
+// keydown codes
+  //  var keys2=new Array(87,65,83,68);
+  var keys= new Array(38,37,40,39);
+
+  // keyset 1 = keydown, otherwise press
+function checkup(keyset,n) {
+  if (keyset==1) return (n==keys[0]);
+  return ((n==press[0]) /*|| (n==press2[0])*/)
+}
+
+function checkdn(keyset,n) {
+  if (keyset==1) return (n==keys[2]);
+  return ((n==press[2]) /*|| (n==press2[2])*/)
+}
+
+function checkl(keyset,n) {
+  if (keyset==1) return (n==keys[1]);
+  return ((n==press[1]) /*|| (n==press2[1])*/)
+}
+
+function checkr(keyset,n) {
+  if (keyset==1) return (n==keys[3]);
+  return ((n==press[3]) /*|| (n==press2[3])*/)
+}
+
+
+
+
+
+function is_exp(n) {
+  if (n==null) return false;
+  return ((n.className=='exp') || (n.className=='exp_active'));
+}
+
+function is_col(n) {
+  if (n==null) return false;
+  return ((n.className=='col') || (n.className=='col_active'));
+}
+
+function is_basic(n) {
+  if (n==null) return false;
+  return ((n.className=='basic') || (n.className=='basic_active'));
+}
+
+
+
+/* returns i>=0 if true */
+function is_active(node) {
+  if (node.className==null) return false
+  return node.className.indexOf('_active');
+}
+
+function toggle_class(node) {
+  if ((node==null) || (node.className==null)) return;
+  str=node.className;
+  result="";
+  i = str.indexOf('_active');
+  if (i>0)
+    result= str.substr(0,i);
+  else
+    result= str+"_active";
+  node.className=result; 
+  return node;
+}
+
+function activate(node) {
+  node.style.backgroundColor='#eeeeff';
+}
+
+function deactivate(node) {
+   node.style.backgroundColor='#ffffff';
+}
+
+function is_list_node(n) {
+  if (n==null) return false;
+  if (n.className==null) return false;
+  if ( (is_exp(n)) || 
+       (is_col(n)) ||
+       (is_basic(n)) )
+   return true; else return false;
+}
+
+
+function get_href(n) {
+  alist=n.attributes;
+  if (alist!=null) {
+    hr = alist.getNamedItem('href');
+    if (hr!=null) return hr.nodeValue;
+  }
+  if (n.childNodes.length==0) return '';
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_href(n.childNodes[i]);
+    if (s!='') return s;
+  }
+  return '';
+}
+
+function get_link(n) {
+  if (n==null) return null;
+  if (n.style==null) return null;
+
+ // disabling uncontrolled recursion to prevent error messages on IE
+ // when trying to focus to invisible links (readonly mode)
+//    alert(n.nodeName+' '+n.className);
+  if ((n.nodeName=='UL') && (n.className=='sub')) return null;
+
+  if (n.nodeName=='A') return n;
+  if (n.childNodes.length==0) return null;
+  for (var i=0; i<n.childNodes.length; i++) {
+    s = get_link(n.childNodes[i]);
+    if (s!=null) return s;
+  }
+  return null;
+}
+
+function set_lastnode(n) {
+/*var d = new Date();
+var t_mil = d.getMilliseconds();*/
+// testattu nopeuksia explorerilla, ei merkittäviä eroja
+  if (lastnode==n) return; 
+/*  deactivate(lastnode)
+  lastnode=n;
+  activate(lastnode);*/
+
+  if (is_active(lastnode)>=0)
+    toggle_class(lastnode);
+  lastnode=n;
+  if (!(is_active(lastnode)>=0))
+    toggle_class(lastnode);
+
+
+/*var d2 = new Date();
+var t_mil2 = d2.getMilliseconds();
+  window.alert(t_mil2-t_mil);*/
+}
+
+function next_list_node() {
+  tempIndex = list_index;
+  while (tempIndex<listnodes.length-1) {
+    tempIndex++;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+function prev_list_node() {
+  tempIndex = list_index;
+  while (tempIndex>0) {
+    tempIndex--;
+    var x = listnodes[tempIndex];
+    if (is_list_node(x)) {
+      list_index=tempIndex;
+      return;
+    }
+  }
+}
+
+
+
+function getsub (li) {
+  if (li.childNodes.length==0) return null;
+  for (var c = 0; c < li.childNodes.length; c++)
+    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) 
+      return li.childNodes[c];
+}
+
+function find_listnode_recursive (li) {
+  if (is_list_node(li)) return li; 
+  if (li.childNodes.length==0) return null;
+  result=null;
+  for (var c = 0; c < li.childNodes.length; c++) {
+    result=find_listnode_recursive(li.childNodes[c]);
+    if (result!=null) return result;
+  }
+  return null;
+}
+
+function next_child_listnode(li) {
+  var result=null;
+  for (var i=0; i<li.childNodes.length; i++) {
+    result=find_listnode_recursive(li.childNodes[i]);
+    if (result!=null) return result;
+  }
+  return null;  
+}
+
+function next_actual_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function next_sibling_listnode(li) {
+if (li==null) return null; 
+ var result=null;
+  var temp=li;
+  if (is_col(temp)) return next_child_listnode(temp);
+  while (1) { 
+    var n = temp.nextSibling;
+    if (n==null) {
+      n=parent_listnode(temp);
+      return next_actual_sibling_listnode(n);
+    }
+    if (is_list_node(n)) return n;
+    temp=n;
+  }
+}
+
+function last_sibling_listnode(li) {
+  if (li==null) return null;
+  var temp=li;
+  var last=null;
+  while(1) {
+    var n = temp.nextSibling;
+    if (is_list_node(temp)) 
+      last = temp;
+    if (n==null) {
+      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
+      else return last;
+    }
+    temp = n;
+  }
+}
+
+function prev_sibling_listnode(li) { 
+  if (li==null) return null;
+  var temp=li;
+  var n = null;
+  while (1) { 
+    n = temp.previousSibling;
+    if (n==null) {
+      return parent_listnode(li);
+    }
+    if (is_list_node(n)) {
+      if (is_col(n)) { 
+        return last_sibling_listnode(next_child_listnode(n));
+      }
+      else {
+        return n;
+      }
+    }
+    temp=n;
+  }
+}
+
+
+function parent_listnode(li) {
+  // added 12.7.2004 to prevent IE error when readonly mode==true
+  if (li==null) return null;
+  n=li;
+  while (1) {
+    n=n.parentNode;
+    if (n==null) return null;
+    if (is_list_node(n)) return n;
+  }
+}
+
+function getVisibleParents(id) {
+  var n = document.getElementById(id);
+  while(1) {
+    expand(n);
+    n = parent_listnode(n);
+    if (n==null) return;
+  }
+}
+
+function onClickHandler (evt) {
+if (lastnode==null) 
+{
+listnodes = document.getElementsByTagName('li');
+lastnode=listnodes[1];
+temp=listnodes[1];
+}
+
+
+  var target = evt ? evt.target : event.srcElement;
+  if (!is_list_node(target)) return;
+  toggle(target);
+  set_lastnode(target);
+}
+
+
+function expand(node) {
+    if (!is_exp(node)) return;
+    if (node.className=='exp_active') 
+      node.className='col_active';
+    else 
+        node.className='col';
+    setSubClass(node,'subexp');
+    //    getsub(node).className='subexp';
+}
+
+function collapse(node) {
+  if (!is_col(node)) return;
+  
+if (node.className=='col_active')
+    node.className='exp_active'
+  else 
+    node.className='exp';
+
+ setSubClass(node,'sub');
+//  getsub(node).className='sub';
+
+}
+
+function setSubClass(node,name) {
+  sub = getsub(node);
+  if (sub==null) return;
+  sub.className=name;  
+}
+
+function toggle(target) {
+  if (!is_list_node(target)) return;
+    if (is_col(target)) {
+      target.className='exp';
+      setSubClass(target,'sub');
+      //      getsub(target).className='sub';
+    }
+    else if (is_exp(target)) {
+      target.className='col';
+      setSubClass(target,'subexp');
+      //      getsub(target).className='subexp';
+    }
+}
+
+function expandAll(node) {
+    if (node.className=='exp') {
+        node.className='col';
+        setSubClass(node,'subexp');
+//        getsub(node).className='subexp';
+    }
+    var i;
+    if (node.childNodes!=null) 
+//    if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            expandAll(node.childNodes[i]);
+}
+
+function collapseAll(node) {
+    if  (node.className=='col') {
+        node.className='exp';
+        setSubClass(node,'sub');
+//        getsub(node).className='sub';
+    }
+    var i;        
+    if (node.childNodes!=null) 
+// for opera   if (node.hasChildNodes()) 
+        for ( i = 0; i<node.childNodes.length; i++)
+            collapseAll(node.childNodes[i]);
+}
+
+
+
+function unFocus(node) {
+     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
+     // tested with mozilla 1.7, 12.7.2004. /mn (
+      intemp=parent_listnode(node);  
+      a = get_link(intemp);     // added 6.4. to get keyboard working with
+      // moved before collapse to prevent an error message with IE when readonly==true      
+      if (a!=null) a.blur(); // netscape after collapsing a focused node
+      return intemp;
+}
+
+// mode: 0==keypress, 1==keyup
+function keyfunc(evt,mode) {
+ var c = get_keycode(evt);
+ var temp = null;
+ var a = null;
+
+  if (lastnode==null) {
+    listnodes = document.getElementsByTagName('li');
+    lastnode=listnodes[1];
+    temp=listnodes[1];
+  }
+
+  //window.alert(c);
+  if (checkup(mode,c)) { // i 
+   temp=prev_sibling_listnode(lastnode);
+  }
+  else if (checkdn(mode,c)) { // k
+    temp=next_sibling_listnode(lastnode);
+  }
+  else if (checkr(mode,c)) { // l
+    expand(lastnode);
+    //  temp=next_child_listnode(lastnode);
+    // if (temp==null) {
+      a = get_link(lastnode);
+        if (a!=null) a.focus(); else self.focus(); 
+      //}
+  }
+  else if (checkl(mode,c)) { // j
+    if (is_col(lastnode)) {
+      unFocus(lastnode);
+      collapse(lastnode);
+    }
+    else {
+      temp=unFocus(lastnode);
+      collapse(temp);
+    }
+   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
+  }
+  else return;
+  if (temp!=null) set_lastnode(temp);
+
+  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
+  return true;
+}
+
+
+function keytest (evt) {
+  return keyfunc(evt,1);
+};
+
+
+function presstest (evt) {
+  return keyfunc(evt,0);
+};
+
+
+  document.onclick = onClickHandler;
+  document.onkeypress = presstest;
+  document.onkeyup = keytest;
index aecb6e18a7b637c7e8e42aa9a55b00c88dc67b11..df6e8a14ac077afde0bd0a912a8cd14965c14d38 100644 (file)
-\r
-body {\r
-       background-color: #eeeeee;\r
-       color: #000000;\r
-       font-family:sans-serif;\r
-}\r
-\r
-:link { color: #0000ff; text-decoration:none;}\r
-:visited { color: #6666ff; text-decoration:none; }\r
-a:active { color: #0000ff; text-decoration:none;}\r
-a:hover {color: #0000ff; text-decoration:underline; }\r
-\r
-div.basetext {\r
-    background-color:#ffffff;\r
-        margin-top:11px;\r
-        margin-bottom:11px;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:11px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:11px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-div.basetop {\r
-  position: fixed;\r
-  width:auto;\r
-  height:auto;\r
-  right:0em;\r
-  top:0em;\r
-  left:auto; \r
-  top:0;\r
-    background-color:#ffffff;\r
-        margin-top:0;\r
-        margin-bottom:0;\r
-       margin-left:1%;\r
-       margin-right:1%;\r
-       padding-top:2px;\r
-       padding-left:11px;\r
-       padding-right:11px;\r
-       padding-bottom:2px;\r
-       text-align:left;\r
-       font-weight:normal;\r
-text-align:right;\r
-  border-width:thin;\r
-  border-style:solid;\r
-  border-color:#dddddd;\r
-}\r
-\r
-h1 {\r
-    text-align:center;\r
-}\r
-\r
-span.h2 {\r
-    font-family:sans-serif;\r
-    font-weight:bold;\r
-}\r
-\r
-div.year {\r
-       margin-right:2%;\r
-       background-color:#eeeeee;\r
-}\r
-\r
-div.form {\r
-}\r
-\r
-span.cpt {\r
-       color:#005500;\r
-       font-weight:bold;\r
-}\r
-\r
-span.cm {\r
-       color:#666666;\r
-}\r
-\r
-.fl {\r
-       color:#0000FF;  \r
-       font-style:italic;\r
-}\r
-\r
-ul {\r
-       margin-top:1px;\r
-        margin-bottom:1px;\r
-       margin-left:0px;\r
-       padding-left:3%;\r
-}\r
-\r
-li {\r
-       list-style:outside;\r
-  margin-top:10px;   \r
-  margin-bottom:10px;\r
-}\r
-\r
-ul li {\r
-       list-style:square;\r
-       font-family:sans-serif;\r
-       font-weight:normal;\r
-}\r
-\r
-li.basic {\r
-       list-style:square;\r
-       list-style-image:none;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
-\r
-span.links {\r
-}\r
-\r
-\r
-\r
-\r
-.sub { display: none; }\r
-.subexp {display: block; }\r
-.sub { display: none; } \r
-\r
-.subexp {display: block; } \r
-\r
-li.exp {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  cursor:pointer;\r
-}\r
-\r
-li.exp_active {\r
-  list-style-image:url("plus.png");\r
-  margin-top:10px;  \r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer;\r
-}\r
-\r
-li.col_active {\r
-  list-style-image:url("minus.png");\r
-  margin-top:10px;\r
-  margin-bottom:10px;\r
-  background-color:#eeeeff;\r
-  cursor:pointer; /* if not included, bullets are not shown right in moz*/\r
-}\r
-\r
-\r
-li.basic_active {\r
-  list-style:square;\r
-  list-style-image:none;\r
-  background-color:#eeeeff;\r
-  margin-top:2px;\r
-  margin-bottom:2px;\r
-}\r
+
+body {
+       background-color: #eeeeee;
+       color: #000000;
+       font-family:sans-serif;
+}
+
+:link { color: #0000ff; text-decoration:none;}
+:visited { color: #6666ff; text-decoration:none; }
+a:active { color: #0000ff; text-decoration:none;}
+a:hover {color: #0000ff; text-decoration:underline; }
+
+div.basetext {
+    background-color:#ffffff;
+        margin-top:11px;
+        margin-bottom:11px;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:11px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:11px;
+       text-align:left;
+       font-weight:normal;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+div.basetop {
+  position: fixed;
+  width:auto;
+  height:auto;
+  right:0em;
+  top:0em;
+  left:auto; 
+  top:0;
+    background-color:#ffffff;
+        margin-top:0;
+        margin-bottom:0;
+       margin-left:1%;
+       margin-right:1%;
+       padding-top:2px;
+       padding-left:11px;
+       padding-right:11px;
+       padding-bottom:2px;
+       text-align:left;
+       font-weight:normal;
+text-align:right;
+  border-width:thin;
+  border-style:solid;
+  border-color:#dddddd;
+}
+
+h1 {
+    text-align:center;
+}
+
+span.h2 {
+    font-family:sans-serif;
+    font-weight:bold;
+}
+
+div.year {
+       margin-right:2%;
+       background-color:#eeeeee;
+}
+
+div.form {
+}
+
+span.cpt {
+       color:#005500;
+       font-weight:bold;
+}
+
+span.cm {
+       color:#666666;
+}
+
+.fl {
+       color:#0000FF;  
+       font-style:italic;
+}
+
+ul {
+       margin-top:1px;
+        margin-bottom:1px;
+       margin-left:0px;
+       padding-left:3%;
+}
+
+li {
+       list-style:outside;
+  margin-top:10px; 
+  margin-bottom:10px;
+}
+
+ul li {
+       list-style:square;
+       font-family:sans-serif;
+       font-weight:normal;
+}
+
+li.basic {
+       list-style:square;
+       list-style-image:none;
+  margin-top:2px;
+  margin-bottom:2px;
+}
+
+span.links {
+}
+
+
+
+
+.sub { display: none; }
+.subexp {display: block; }
+.sub { display: none; } 
+
+.subexp {display: block; } 
+
+li.exp {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.col {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  cursor:pointer;
+}
+
+li.exp_active {
+  list-style-image:url("plus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer;
+}
+
+li.col_active {
+  list-style-image:url("minus.png");
+  margin-top:10px;
+  margin-bottom:10px;
+  background-color:#eeeeff;
+  cursor:pointer; /* if not included, bullets are not shown right in moz*/
+}
+
+
+li.basic_active {
+  list-style:square;
+  list-style-image:none;
+  background-color:#eeeeff;
+  margin-top:2px;
+  margin-bottom:2px;
+}