From: Stefano Zacchiroli
Date: Thu, 2 Feb 2006 18:42:41 +0000 (+0000)
Subject: daemons tamed
X-Git-Tag: make_still_working~7671
X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=76ad23ea1e83e8c187a4593027e9baed1bb022e3;p=helm.git
daemons tamed
---
diff --git a/helm/DEVEL/profile-manager/Makefile b/helm/DEVEL/profile-manager/Makefile
deleted file mode 100644
index 556644338..000000000
--- a/helm/DEVEL/profile-manager/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-BIN_DIR = /usr/local/bin
-REQUIRES = http
-PREDICATES =
-OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" -pp camlp4o
-OCAMLFIND = ocamlfind
-OCAMLC = $(OCAMLFIND) ocamlc -thread $(OCAMLOPTIONS)
-OCAMLOPT = $(OCAMLFIND) ocamlopt -thread $(OCAMLOPTIONS)
-OCAMLDEP = ocamldep -pp camlp4o
-
-LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
-LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
-
-OBJS = response.cmo profile.cmo profile_manager_env.cmo profile_manager.cmo
-
-profile-manager: $(OBJS) $(LIBRARIES)
- $(OCAMLC) -linkpkg -o $@ $(OBJS)
-
-profile-manager.opt: $(OBJS:.cmo=.cmx) $(LIBRARIES_OPT)
- $(OCAMLOPT) -linkpkg -o $@ $(OBJS:.cmo=.cmx)
-
-.SUFFIXES: .ml .mli .cmo .cmi .cmx
-.ml.cmo:
- $(OCAMLC) -c $<
-.mli.cmi:
- $(OCAMLC) -c $<
-.ml.cmx:
- $(OCAMLOPT) -c $<
-
-$(OBJS): $(LIBRARIES)
-$(OBJS:.cmo=.cmx)): $(LIBRARIES_OPT)
-
-clean:
- rm -f *.cm[iox] *.o rdfly rdfly.opt
-
-.PHONY: install uninstall clean
-
diff --git a/helm/DEVEL/profile-manager/control.html b/helm/DEVEL/profile-manager/control.html
deleted file mode 100644
index 2feb02fe9..000000000
--- a/helm/DEVEL/profile-manager/control.html
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
-Profile Manager Control Panel
-
-
-
-
-
-
-
-
-
-
-Profile Manager Control Panel |
-
-
-
-
-
-This is a control panel for the profile manager. You can control a
-local or remote profile manager by filling the appropriate field below
-and sending the desired commands. Any command issued to the profile
-manager results into an XML response. Note that in order to use this
-page you must have JavaScript enabled. If you have troubles,
-please send an email to the author: lpadovan at cs dot unibo dot it.
-
-
-
-
-WARNING: the information stored in a profile,
-including the password, IS NOT encrypted in the profile nor while it
-is travelling from your computer to the profile manager. DO NOT USE
-THE PROFILE MANAGER FOR STORING SENSIBLE INFORMATION LIKE PASSWORDS
-FOR SECURE ACCOUNTS OR ANY OTHER PERSONAL DATA.
-
-
-
-
-
-
-
-
- |
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
-
-
-
-
diff --git a/helm/DEVEL/profile-manager/index.html b/helm/DEVEL/profile-manager/index.html
deleted file mode 100644
index caeebcf24..000000000
--- a/helm/DEVEL/profile-manager/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/helm/DEVEL/profile-manager/profile-manager.xsl b/helm/DEVEL/profile-manager/profile-manager.xsl
deleted file mode 100644
index e32d58739..000000000
--- a/helm/DEVEL/profile-manager/profile-manager.xsl
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/helm/DEVEL/profile-manager/profile.ml b/helm/DEVEL/profile-manager/profile.ml
deleted file mode 100644
index 9c19b3c9d..000000000
--- a/helm/DEVEL/profile-manager/profile.ml
+++ /dev/null
@@ -1,119 +0,0 @@
-
-exception Permission_denied
-exception Invalid_access of string
-
-type access_t =
- Allowed
- | Denied
- | Password
-
-let access_of_string old =
- function
- None -> old
- | Some "allowed" -> Allowed
- | Some "denied" -> Denied
- | Some "password" -> Password
- | Some s -> raise (Invalid_access s)
-
-let string_of_access =
- function
- Allowed -> "allowed"
- | Denied -> "denied"
- | Password -> "password"
-
-type t =
- { id : string;
- mutable password : string;
- mutable read_access : access_t;
- mutable write_access : access_t;
- mutable profile_access : access_t;
- data : (string, string) Hashtbl.t;
- }
-
-let serialize profile with_data =
- let serialize_data data =
- let sl = ref [] in
- Hashtbl.iter
- (fun field value ->
- sl := (" " ^ (Response.quote value) ^ "\n")::!sl)
- data ;
- List.fold_left (^) "" !sl
- in
- "\n" ^ (if with_data then serialize_data profile.data else "") ^ ""
-
-let create key pwd =
- let access, pwd' =
- match pwd with
- Some s -> Password, s
- | None -> Allowed, ""
- in
- let profile =
- { id = key;
- password = pwd';
- read_access = access;
- write_access = access;
- profile_access = access;
- data = Hashtbl.create 11
- }
- in
- profile
-
-let test_read_access profile pwd =
- match pwd, profile.read_access with
- Some s, Password when s = profile.password -> ()
- | None, Password when profile.password = "" -> ()
- | _, Allowed -> ()
- | _ -> raise Permission_denied
-
-let test_write_access profile pwd =
- match pwd, profile.write_access with
- Some s, Password when s = profile.password -> ()
- | None, Password when profile.password = "" -> ()
- | _, Allowed -> ()
- | _ -> raise Permission_denied
-
-let test_profile_access profile pwd =
- match pwd, profile.profile_access with
- Some s, Password when s = profile.password -> ()
- | None, Password when profile.password = "" -> ()
- | _, Allowed -> ()
- | _ -> raise Permission_denied
-
-let get profile pwd =
- test_read_access profile pwd ;
- serialize profile true
-
-let set profile field value pwd =
- test_write_access profile pwd ;
- begin
- match value with
- Some value' -> Hashtbl.replace profile.data field value'
- | None -> Hashtbl.remove profile.data field
- end ;
- Response.ok ()
-
-let del profile pwd =
- test_profile_access profile pwd ;
- Response.ok ()
-
-let set_password profile new_pwd pwd =
- test_profile_access profile pwd ;
- let new_pwd' =
- match new_pwd with
- Some s -> s
- | None -> ""
- in
- prerr_endline ("old " ^ profile.password ^ " new " ^ new_pwd') ;
- profile.password <- new_pwd' ;
- Response.ok ()
-
-let set_access profile read_access write_access profile_access pwd =
- test_profile_access profile pwd ;
- profile.read_access <- access_of_string profile.read_access read_access ;
- profile.write_access <- access_of_string profile.write_access write_access ;
- profile.profile_access <- access_of_string profile.profile_access profile_access ;
- Response.ok ()
diff --git a/helm/DEVEL/profile-manager/profile_manager.ml b/helm/DEVEL/profile-manager/profile_manager.ml
deleted file mode 100644
index 1c61e6a3f..000000000
--- a/helm/DEVEL/profile-manager/profile_manager.ml
+++ /dev/null
@@ -1,177 +0,0 @@
-(*
- * Copyright (C) 2003:
- * Stefano Zacchiroli
- * for the HELM Team http://helm.cs.unibo.it/
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-exception Impossible
-
-let (profile_db : (string, Profile.t) Hashtbl.t) =
- try
- let ch = open_in Profile_manager_env.profile_db_path in
- input_value ch
- with
- _ -> Hashtbl.create 211
-
-let get_param_opt (req : Http_types.request) p =
- try
- match req#param p with
- "" -> None
- | s -> Some s
- with
- Http_types.Param_not_found _ -> None
-
-let new_key () =
- let hex_of_nibble n =
- if n >= 0 && n < 10 then
- string_of_int n
- else if n >= 10 && n < 16 then
- String.make 1 (Char.chr (n - 10 + (Char.code 'A')))
- else
- raise Impossible
- in
- let rec aux s =
- function
- 0 -> s
- | n -> aux ((hex_of_nibble (Random.int 16)) ^ s) (n - 1)
- in
- aux "" 4
-
-let new_unique_key =
- let rec aux () =
- let key = new_key () in
- if Hashtbl.mem profile_db key then
- aux ()
- else
- key
- in
- aux
-
-let list_profiles () =
- let pl = ref [] in
- Hashtbl.iter
- (fun _ profile -> pl := (Profile.serialize profile false) :: !pl)
- profile_db ;
- "" ^ (List.fold_left (^) "" !pl) ^ ""
-
-let get_profile id pwd =
- let profile = Hashtbl.find profile_db id in
- Profile.get profile pwd
-
-let new_profile id pwd =
- match id with
- Some id' when Hashtbl.mem profile_db id' -> get_profile id' pwd
- | Some id' ->
- let profile = Profile.create id' pwd in
- Hashtbl.add profile_db profile.Profile.id profile ;
- Profile.serialize profile true
- | None ->
- let profile = Profile.create (new_unique_key ()) None in
- Hashtbl.add profile_db profile.Profile.id profile ;
- Profile.serialize profile true
-
-let set_profile id field value pwd =
- let profile = Hashtbl.find profile_db id in
- Profile.set profile field value pwd
-
-let del_profile id pwd =
- let profile = Hashtbl.find profile_db id in
- let res = Profile.del profile pwd in
- Hashtbl.remove profile_db id ;
- res
-
-let set_password id new_pwd pwd =
- let profile = Hashtbl.find profile_db id in
- Profile.set_password profile new_pwd pwd
-
-let set_access id read_access write_access profile_access pwd =
- let profile = Hashtbl.find profile_db id in
- Profile.set_access profile read_access write_access profile_access pwd
-
-let callback (req : Http_types.request) outchan =
- let res =
- try
- prerr_endline ("Connection from " ^ req#clientAddr) ;
- prerr_endline ("Received request: " ^ req#path) ;
- begin
- match req#path with
- "/list" -> list_profiles ()
- | "/get" ->
- let id = req#param "id"
- and pwd = get_param_opt req "password" in
- get_profile id pwd
- | "/set" ->
- let id = req#param "id"
- and field = req#param "field"
- and value = get_param_opt req "value"
- and pwd = get_param_opt req "password" in
- set_profile id field value pwd
- | "/del" ->
- let id = req#param "id"
- and pwd = get_param_opt req "password" in
- del_profile id pwd
- | "/new" ->
- let id = get_param_opt req "id"
- and pwd = get_param_opt req "password" in
- new_profile id pwd
- | "/password" ->
- let id = req#param "id"
- and old_pwd = get_param_opt req "old_password"
- and new_pwd = get_param_opt req "new_password" in
- set_password id new_pwd old_pwd
- | "/access" ->
- let id = req#param "id"
- and pwd = get_param_opt req "password"
- and read_access = get_param_opt req "read"
- and write_access = get_param_opt req "write"
- and profile_access = get_param_opt req "profile" in
- set_access id read_access write_access profile_access pwd
- | s -> Response.error ("unrecognized command: " ^ s)
- end
- with
- Not_found -> Response.error "unknown profile"
- | Profile.Permission_denied -> Response.error "permission denied"
- | e -> Response.error ("uncaught exception: " ^ (Printexc.to_string e))
- in
- Http_daemon.respond
- ~body:res ~headers:["Content-Type", "text/xml"] outchan
-
- (* daemon initialization *)
-
-let save_db () =
- let ch = open_out Profile_manager_env.profile_db_path in
- output_value ch profile_db ;
- close_out ch
-
-let main () =
- at_exit save_db ;
- Sys.catch_break true ;
- try
- Http_daemon.start' ~timeout:(Some 600) ~port:58099 ~mode:`Thread callback
- with
- Sys.Break -> ()
-in
-main ()
-
diff --git a/helm/DEVEL/profile-manager/profile_manager_env.ml b/helm/DEVEL/profile-manager/profile_manager_env.ml
deleted file mode 100644
index cac43bd4e..000000000
--- a/helm/DEVEL/profile-manager/profile_manager_env.ml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-let profile_db_path =
- try
- Sys.getenv "PROFILE_MANAGER_DB_PATH"
- with
- Not_found -> "/tmp/profile.db"
diff --git a/helm/DEVEL/profile-manager/response.ml b/helm/DEVEL/profile-manager/response.ml
deleted file mode 100644
index e47a66651..000000000
--- a/helm/DEVEL/profile-manager/response.ml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-let quote_attribute s = s
-
-let quote s = s
-
-let error s = "" ^ (quote s) ^ ""
-
-let ok () = ""
diff --git a/helm/DEVEL/profile-manager/welcome.html b/helm/DEVEL/profile-manager/welcome.html
deleted file mode 100644
index f6fbed438..000000000
--- a/helm/DEVEL/profile-manager/welcome.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/helm/DEVEL/rdfly/.cvsignore b/helm/DEVEL/rdfly/.cvsignore
deleted file mode 100644
index 5424f8c69..000000000
--- a/helm/DEVEL/rdfly/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.o *.cm[iox] rdfly rdfly.opt
diff --git a/helm/DEVEL/rdfly/Makefile b/helm/DEVEL/rdfly/Makefile
deleted file mode 100644
index 779bb7b44..000000000
--- a/helm/DEVEL/rdfly/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-BIN_DIR = /usr/local/bin
-REQUIRES = mysql http helm-registry
-PREDICATES =
-OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" -pp camlp4o
-OCAMLFIND = ocamlfind
-OCAMLC = $(OCAMLFIND) ocamlc -thread $(OCAMLOPTIONS)
-OCAMLOPT = $(OCAMLFIND) ocamlopt -thread $(OCAMLOPTIONS)
-OCAMLDEP = ocamldep -pp camlp4o
-
-LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
-LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
-
-OBJS = rdfly.cmo
-
-all: rdfly
-opt: rdfly.opt
-
-rdfly: $(OBJS) $(LIBRARIES)
- $(OCAMLC) -linkpkg -o $@ $(OBJS)
-
-rdfly.opt: $(OBJS:.cmo=.cmx) $(LIBRARIES_OPT)
- $(OCAMLOPT) -linkpkg -o rdfly.opt $(OBJS:.cmo=.cmx)
-
-.SUFFIXES: .ml .mli .cmo .cmi .cmx
-.ml.cmo:
- $(OCAMLC) -c $<
-.mli.cmi:
- $(OCAMLC) -c $<
-.ml.cmx:
- $(OCAMLOPT) -c $<
-
-$(OBJS): $(LIBRARIES)
-$(OBJS:.cmo=.cmx)): $(LIBRARIES_OPT)
-
-clean:
- rm -f *.cm[iox] *.o rdfly rdfly.opt
-
-.PHONY: install uninstall clean
-
diff --git a/helm/DEVEL/rdfly/rdfly.conf.xml.sample b/helm/DEVEL/rdfly/rdfly.conf.xml.sample
deleted file mode 100644
index 5d479dacf..000000000
--- a/helm/DEVEL/rdfly/rdfly.conf.xml.sample
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- localhost
- helm
- mowgli
- 3306
-
- 58086
-
-
diff --git a/helm/DEVEL/rdfly/rdfly.ml b/helm/DEVEL/rdfly/rdfly.ml
deleted file mode 100644
index b9a79d139..000000000
--- a/helm/DEVEL/rdfly/rdfly.ml
+++ /dev/null
@@ -1,192 +0,0 @@
-
-module M = Mysql
-
- (* First of all we load the configuration *)
-let _ =
- let configuration_file = "/projects/helm/etc/rdfly.conf.xml" in
- Helm_registry.load_from configuration_file
-;;
-
-let open_db ?host ?database ?port ?password ?user =
- try
- M.quick_connect ?host ?database ?port ?password ?user
- with
- M.Error e as exc ->
- prerr_endline e ;
- raise exc
-
-let extract_position s =
- let sharp_pos = String.rindex s '#' + 1 in
- String.sub s sharp_pos ((String.length s) - sharp_pos)
-
-let mk_new_msg () = ref []
-
-let msg_output_string msg s = msg := s::!msg
-
-let msg_serialize msg =
- String.concat "" (List.rev !msg)
-
-let msg_output_header msg obj =
- msg_output_string msg "\n\n" ;
- msg_output_string msg ("\n \n")
-
-let msg_output_trailer msg =
- msg_output_string msg " \n\n"
-
-let msg_output_dc_header msg obj =
- msg_output_string msg "\n\n" ;
- msg_output_string msg ("\n") ;
- msg_output_string msg " "
-;;
-
-let msg_output_dc_trailer msg =
- msg_output_string msg " \n"
-;;
-
-let value_of_optional_value =
- function
- None -> assert false
- | Some v -> v
-;;
-
-let forward_metadata db obj =
- let res = M.exec db ("SELECT * FROM refObj WHERE source = '" ^ obj ^ "';") in
- let msg = mk_new_msg () in
- msg_output_header msg obj ;
- M.iter res
- ~f:(function cols ->
- let position = extract_position (value_of_optional_value (cols.(2))) in
- let occurrence = value_of_optional_value (cols.(1)) in
- msg_output_string msg " \n \n" ;
- msg_output_string msg (" " ^ position ^ "\n") ;
- msg_output_string msg (" " ^ occurrence ^ "\n") ;
- msg_output_string msg " \n \n"
- ) ;
- msg_output_trailer msg ;
- msg_serialize msg
-;;
-
-let backward_metadata db obj =
- let res = M.exec db ("SELECT * FROM refObj WHERE h_occurrence = '" ^ obj ^ "';") in
- let msg = mk_new_msg () in
- msg_output_header msg obj ;
- M.iter res
- ~f:(function cols ->
- let position = extract_position (value_of_optional_value (cols.(2))) in
- let occurrence = value_of_optional_value (cols.(0)) in
- msg_output_string msg " \n \n" ;
- msg_output_string msg (" " ^ position ^ "\n") ;
- msg_output_string msg (" " ^ occurrence ^ "\n") ;
- msg_output_string msg " \n \n"
- ) ;
- msg_output_trailer msg ;
- msg_serialize msg
-;;
-
-let dc_metadata db obj =
- let tables =
- [ "dc:creator","dccreator" ;
- "dc:date","dcdate" ;
- "dc:description","dcdescription" ;
- "dc:format","dcformat" ;
- "dc:identifier","dcidentifier" ;
- "dc:language","dclanguage" ;
- "dc:publisher","dcpublisher" ;
- "dcq:RelationType","dcqRelationType" ;
- "dc:relation","dcrelation" ;
- "dc:rights","dcrights" ;
- "dc:source","dcsource" ;
- "dc:subject","dcsubject" ;
- "dc:title","dctitle" ;
- "hth:ResourceFormat","hthResourceFormat" ;
- "hth:contact","hthcontact" ;
- "hth:firstVersion","hthfirstVersion" ;
- "hth:institution","hthinstitution" ;
- "hth:modified","hthmodified"
- ]
- in
- let msg = mk_new_msg () in
- msg_output_dc_header msg obj ;
- List.iter
- (fun (propertyname,tablename) ->
- let res =
- M.exec db
- ("SELECT * FROM " ^ tablename ^ " WHERE uri = '" ^ obj ^ "';") in
- M.iter res
- ~f:(function cols ->
- let value = value_of_optional_value (cols.(0)) in
- msg_output_string msg
- (" <" ^ propertyname ^ ">" ^ value ^ "" ^ propertyname ^ ">\n") ;
- ) ;
- ) tables ;
- msg_output_dc_trailer msg ;
- msg_serialize msg
-;;
-
-let debug_print s = prerr_endline ("[RDFly] " ^ s)
-
-let mk_return_fun contype msg outchan =
- Http_daemon.respond
- ~body:msg ~headers:["Content-Type", contype] outchan
-
-let return_html = mk_return_fun "text/html"
-let return_xml = mk_return_fun "text/xml"
-let return_400 body ch =
- Http_daemon.respond_error ~code:(`Code 400) ~body ch
-let return_html_error s = return_html ("" ^ s ^ "")
-
-let get_option key =
- try
- Some (Helm_registry.get key)
- with Helm_registry.Key_not_found _ -> None
-
-let get_int_option key =
- try
- Some (Helm_registry.get_int key)
- with Helm_registry.Key_not_found _ -> None
-
-let host = get_option "rdfly.mysql_connection.host";;
-let database = get_option "rdfly.mysql_connection.database";;
-let port = get_int_option "rdfly.mysql_connection.port";;
-let password = get_option "rdfly.mysql_connection.password";;
-let user = get_option "rdfly.mysql_connection.user";;
-let daemonport = Helm_registry.get_int "rdfly.port";;
-
-let callback (req: Http_types.request) ch =
- try
- debug_print ("Connection from " ^ req#clientAddr) ;
- debug_print ("Received request: " ^ req#uri) ;
- (match req#path with
- | "/help" ->
- return_html_error "yeah right..." ch
- | "/get" ->
- let obj = req#param "object"
- and kind = req#param "kind" in
- let db = open_db ?host ?database ?port ?password ?user () in
- begin
- match kind with
- "forward" -> return_xml (forward_metadata db obj) ch
- | "backward" -> return_xml (backward_metadata db obj) ch
- | "dc" -> return_xml (dc_metadata db obj) ch
- | s -> return_html_error ("unsupported kind: " ^ s) ch
- end ;
- M.disconnect db
- | invalid_request ->
- Http_daemon.respond_error ~code:(`Status (`Client_error `Bad_request))
- ch)
- with
- | Http_types.Param_not_found attr_name ->
- return_400 (Printf.sprintf "Parameter '%s' is missing" attr_name) ch
- | exc ->
- return_html_error ("Uncaught exception: " ^ (Printexc.to_string exc)) ch
-
-let main () =
- Sys.catch_break true;
- try
- Http_daemon.start'
- ~timeout:(Some 600) ~port:daemonport callback
- with Sys.Break -> ()
-in
-
-main ()
-
diff --git a/helm/graphs/jsmenu/HM_Arrays.js b/helm/graphs/jsmenu/HM_Arrays.js
deleted file mode 100644
index 467506c3d..000000000
--- a/helm/graphs/jsmenu/HM_Arrays.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-HM_Array1 = [
-[150,,,
-,,,,,,,,,,,,,,,,
-1,true],
-["Experts","http://www.webreference.com/experts/",1,0,1],
-["Contents","http://www.webreference.com/index2.html",1,0,0],
-["Services","http://www.webreference.com/index2.html",1,0,1],
-["About","http://www.webreference.com/about.html",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,1]
-]
-
-HM_Array1_1 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,1],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array1_3 = [
-[],
-["Features","http://www.webreference.com/articles.html",1,0,0],
-["Forum","http://www.webreference.com/cgi-bin/Ultimate.cgi?action=intro",1,0,0],
-["How-to","http://www.webreference.com/dev/",1,0,0],
-["New","http://www.webreference.com/headlines/",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,0]
-]
-
-HM_Array1_5 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,1],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array1_1_6 = [
-[],
-["Diner","http://www.webreference.com/dhtml/diner/",1,0,0],
-["Dynomat","http://www.webreference.com/dhtml/dynomat/",1,0,0],
-["Links","http://www.webreference.com/dhtml/links/",1,0,0]
-]
-
-HM_Array2 = [
-[100, // menu width
-"HM_f_CenterMenu('HM_Menu2')", // left_position
-90, // top_position
-"red", // font_color
-"yellow", // mouseover_font_color
-"yellow", // background_color
-"black", // mouseover_background_color
-"blue", // border_color
-"green", // separator_color
-1, // top_is_permanent
-1, // top_is_horizontal
-0, // tree_is_horizontal
-1, // position_under
-1, // top_more_images_visible
-1, // tree_more_images_visible
-"null", // evaluate_upon_tree_show
-"null", // evaluate_upon_tree_hide
-, // right_to_left
-1], // display_on_click
-["Experts","http://www.webreference.com/experts/",1,0,1],
-["Contents","http://www.webreference.com/index2.html",1,0,0],
-["Services","http://www.webreference.com/index2.html",1,0,1],
-["About","http://www.webreference.com/about.html",1,0,1]
-]
-
-HM_Array2_1 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,0],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array2_3 = [
-[],
-["Features","http://www.webreference.com/articles.html",1,0,0],
-["Forum","http://www.webreference.com/cgi-bin/Ultimate.cgi?action=intro",1,0,0],
-["How-to","http://www.webreference.com/dev/",1,0,0],
-["New","http://www.webreference.com/headlines/",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,0]
-]
-
-HM_Array2_4 = [
-[],
-["Features","http://www.webreference.com/articles.html",1,0,0],
-["Forum","http://www.webreference.com/cgi-bin/Ultimate.cgi?action=intro",1,0,0],
-["How-to","http://www.webreference.com/dev/",1,0,0],
-["New","http://www.webreference.com/headlines/",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,0]
-]
-
-HM_Array2_1_6 = [
-[],
-["Diner","http://www.webreference.com/dhtml/diner/",1,0,0],
-["Dynomat","http://www.webreference.com/dhtml/dynomat/",1,0,0],
-["Links","http://www.webreference.com/dhtml/links/",1,0,0]
-]
-
-HM_Array3 = [
-[120, // menu width
-200, // left_position
-300, // top_position
-"black", // font_color
-"white", // mouseover_font_color
-"white", // background_color
-"black", // mouseover_background_color
-"black", // border_color
-"gray", // separator_color
-0, // top_is_permanent
-0, // top_is_horizontal
-0, // tree_is_horizontal
-1, // position_under
-1, // top_more_images_visible
-1, // tree_more_images_visible
-"null", // evaluate_upon_tree_show
-"null", // evaluate_upon_tree_hide
-, // right_to_left
-], // display_on_click
-["Experts","http://www.webreference.com/experts/",1,0,1],
-["Contents","http://www.webreference.com/index2.html",1,0,0],
-["Services","http://www.webreference.com/index2.html",1,0,1],
-["About","http://www.webreference.com/about.html",1,0,0]
-]
-
-HM_Array3_1 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,1],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array3_3 = [
-[],
-["Features","http://www.webreference.com/articles.html",1,0,0],
-["Forum","http://www.webreference.com/cgi-bin/Ultimate.cgi?action=intro",1,0,0],
-["How-to","http://www.webreference.com/dev/",1,0,0],
-["New","http://www.webreference.com/headlines/",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,0]
-]
-
-HM_Array3_1_6 = [
-[],
-["Diner","http://www.webreference.com/dhtml/diner/",1,0,0],
-["Dynomat","http://www.webreference.com/dhtml/dynomat/",1,0,0],
-["Links","http://www.webreference.com/dhtml/links/",1,0,0]
-]
-
-HM_Array4 = [
-[120,
-"mouse_x_position + 20",
-"mouse_y_position + 20",
-,,,,,,,,,,,,,,,
-true],
-["Experts","http://www.webreference.com/experts/",1,0,1],
-["Contents","http://www.webreference.com/index2.html",1,0,0],
-["Services","http://www.webreference.com/index2.html",1,0,0],
-["About","http://www.webreference.com/about.html",1,0,0]
-]
-
-HM_Array4_1 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,0],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array5 = [
-[100, // menu_width
-70, // left_position
-170, // top_position
-"red", // font_color
-"yellow", // mouseover_font_color
-"yellow", // background_color
-"black", // mouseover_background_color
-"blue", // border_color
-"green", // separator_color
-1, // top_is_permanent
-1, // top_is_horizontal
-0, // tree_is_horizontal
-1, // position_under
-0, // top_more_images_visible
-1, // tree_more_images_visible
-"null", // evaluate_upon_tree_show
-"null", // evaluate_upon_tree_hide
-, // right_to_left
-, // display_on_click
-true, // top_is_variable_width
-, // tree_is_variable_width
-],
-["Experts","http://www.webreference.com/experts/",1,0,1],
-["Contents","http://www.webreference.com/index2.html",1,0,0],
-["Services","http://www.webreference.com/index2.html",1,0,1],
-["About","http://www.webreference.com/about.html",1,0,0]
-]
-
-HM_Array5_1 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,1],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array5_3 = [
-[],
-["Features","http://www.webreference.com/articles.html",1,0,0],
-["Forum","http://www.webreference.com/cgi-bin/Ultimate.cgi?action=intro",1,0,0],
-["How-to","http://www.webreference.com/dev/",1,0,0],
-["New","http://www.webreference.com/headlines/",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,0]
-]
-
-HM_Array5_1_6 = [
-[],
-["Diner","http://www.webreference.com/dhtml/diner/",1,0,0],
-["Dynomat","http://www.webreference.com/dhtml/dynomat/",1,0,0],
-["Links","http://www.webreference.com/dhtml/links/",1,0,0]
-]
-
diff --git a/helm/graphs/jsmenu/HM_Arrays_prova.js b/helm/graphs/jsmenu/HM_Arrays_prova.js
deleted file mode 100644
index 93143accd..000000000
--- a/helm/graphs/jsmenu/HM_Arrays_prova.js
+++ /dev/null
@@ -1,60 +0,0 @@
-
-HM_Array1 = [
-[150,,,
-,,,,,,,,,,,,,,,,
-1,true],
-["Experts","http://www.webreference.com/experts/",1,0,1],
-["Contents","http://www.webreference.com/index2.html",1,0,0],
-["Services","http://www.webreference.com/index2.html",1,0,1],
-["About","http://www.webreference.com/about.html",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,1]
-]
-
-HM_Array1_1 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,1],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array1_3 = [
-[],
-["Features","http://www.webreference.com/articles.html",1,0,0],
-["Forum","http://www.webreference.com/cgi-bin/Ultimate.cgi?action=intro",1,0,0],
-["How-to","http://www.webreference.com/dev/",1,0,0],
-["New","http://www.webreference.com/headlines/",1,0,0],
-["Hot Sites","http://www.webreference.com/hot/",1,0,0]
-]
-
-HM_Array1_5 = [
-[],
-["3-D Animation","http://www.webreference.com/3d/",1,0,0],
-["Design","http://www.webreference.com/dlab/",1,0,0],
-["HTML","http://www.webreference.com/html/",1,0,0],
-["JavaScript","http://www.webreference.com/js/",1,0,0],
-["Graphics","http://www.webreference.com/graphics/",1,0,0],
-["DHTML","http://www.webreference.com/dhtml/",1,0,1],
-["Perl","http://www.webreference.com/perl/",1,0,0],
-["XML","http://www.webreference.com/xml/",1,0,0]
-]
-
-HM_Array1_1_6 = [
-[],
-["Diner","http://www.webreference.com/dhtml/diner/",1,0,0],
-["Dynomat","http://www.webreference.com/dhtml/dynomat/",1,0,0],
-["Links","http://www.webreference.com/dhtml/links/",1,0,0]
-]
-
-HM_Array2 = [
-[150,,,
-,,,,,,,,,,,,,,,,
-1,true],
-["Pippo","http://www.inria.fr",1,0,1],
-["Pluto","http://www.cs.unibo.it",1,0,0],
-["Paperino","http://www.larepubblica.it",1,0,1],
-]
diff --git a/helm/graphs/jsmenu/HM_Loader.js b/helm/graphs/jsmenu/HM_Loader.js
deleted file mode 100644
index 2c7e31f68..000000000
--- a/helm/graphs/jsmenu/HM_Loader.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/*HM_Loader.js
-* by Peter Belesis. v4.1.1 011002
-* Copyright (c) 2001 Peter Belesis. All Rights Reserved.
-*/
-
- HM_DOM = (document.getElementById) ? true : false;
- HM_NS4 = (document.layers) ? true : false;
- HM_IE = (document.all) ? true : false;
- HM_IE4 = HM_IE && !HM_DOM;
- HM_Mac = (navigator.appVersion.indexOf("Mac") != -1);
- HM_IE4M = HM_IE4 && HM_Mac;
- HM_Opera = (navigator.userAgent.indexOf("Opera")!=-1);
- HM_Konqueror = (navigator.userAgent.indexOf("Konqueror")!=-1);
-
-HM_IsMenu = !HM_Opera && !HM_Konqueror && !HM_IE4M && (HM_DOM || HM_NS4 || HM_IE4);
-
-HM_BrowserString = HM_NS4 ? "NS4" : HM_DOM ? "DOM" : "IE4";
-
-
-if(window.event + "" == "undefined") event = null;
-function HM_f_PopUp(){return false};
-function HM_f_PopDown(){return false};
-popUp = HM_f_PopUp;
-popDown = HM_f_PopDown;
-
-
-HM_GL_MenuWidth = 150;
-HM_GL_FontFamily = "Arial,sans-serif";
-HM_GL_FontSize = 10;
-HM_GL_FontBold = true;
-HM_GL_FontItalic = false;
-HM_GL_FontColor = "black";
-HM_GL_FontColorOver = "white";
-HM_GL_BGColor = "transparent";
-HM_GL_BGColorOver = "transparent";
-HM_GL_ItemPadding = 3;
-
-HM_GL_BorderWidth = 2;
-HM_GL_BorderColor = "red";
-HM_GL_BorderStyle = "solid";
-HM_GL_SeparatorSize = 2;
-HM_GL_SeparatorColor = "yellow";
-
-HM_GL_ImageSrc = "HM_More_black_right.gif";
-HM_GL_ImageSrcLeft = "HM_More_black_left.gif";
-
-HM_GL_ImageSrcOver = "HM_More_white_right.gif";
-HM_GL_ImageSrcLeftOver = "HM_More_white_left.gif";
-
-HM_GL_ImageSize = 5;
-HM_GL_ImageHorizSpace = 5;
-HM_GL_ImageVertSpace = 5;
-
-HM_GL_KeepHilite = false;
-HM_GL_ClickStart = false;
-HM_GL_ClickKill = 0;
-HM_GL_ChildOverlap = 40;
-HM_GL_ChildOffset = 10;
-HM_GL_ChildPerCentOver = null;
-HM_GL_TopSecondsVisible = .5;
-HM_GL_ChildSecondsVisible = .3;
-HM_GL_StatusDisplayBuild = 0;
-HM_GL_StatusDisplayLink = 1;
-HM_GL_UponDisplay = null;
-HM_GL_UponHide = null;
-
-HM_GL_RightToLeft = false;
-HM_GL_CreateTopOnly = HM_NS4 ? true : false;
-HM_GL_ShowLinkCursor = true;
-
-// the following function is included to illustrate the improved JS expression handling of
-// the left_position and top_position parameters
-// you may delete if you have no use for it
-
-function HM_f_CenterMenu(topmenuid) {
- var MinimumPixelLeft = 0;
- var TheMenu = HM_DOM ? document.getElementById(topmenuid) : HM_IE4 ? document.all(topmenuid) : eval("window." + topmenuid);
- var TheMenuWidth = HM_DOM ? parseInt(TheMenu.style.width) : HM_IE4 ? TheMenu.style.pixelWidth : TheMenu.clip.width;
- var TheWindowWidth = HM_IE ? document.body.clientWidth : window.innerWidth;
- return Math.max(parseInt((TheWindowWidth-TheMenuWidth) / 2),MinimumPixelLeft);
-}
-
-if(HM_IsMenu) {
- document.write("<\/SCR" + "IPT>");
- document.write("<\/SCR" + "IPT>");
-}
-
-
-//end
\ No newline at end of file
diff --git a/helm/graphs/jsmenu/HM_Loader_prova.js b/helm/graphs/jsmenu/HM_Loader_prova.js
deleted file mode 100644
index ed8f95752..000000000
--- a/helm/graphs/jsmenu/HM_Loader_prova.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/*HM_Loader.js
-* by Peter Belesis. v4.1.1 011002
-* Copyright (c) 2001 Peter Belesis. All Rights Reserved.
-*/
-
- HM_DOM = (document.getElementById) ? true : false;
- HM_NS4 = (document.layers) ? true : false;
- HM_IE = (document.all) ? true : false;
- HM_IE4 = HM_IE && !HM_DOM;
- HM_Mac = (navigator.appVersion.indexOf("Mac") != -1);
- HM_IE4M = HM_IE4 && HM_Mac;
- HM_Opera = (navigator.userAgent.indexOf("Opera")!=-1);
- HM_Konqueror = (navigator.userAgent.indexOf("Konqueror")!=-1);
-
-HM_IsMenu = !HM_Opera && !HM_Konqueror && !HM_IE4M && (HM_DOM || HM_NS4 || HM_IE4);
-
-HM_BrowserString = HM_NS4 ? "NS4" : HM_DOM ? "DOM" : "IE4";
-
-
-if(window.event + "" == "undefined") event = null;
-function HM_f_PopUp(){return false};
-function HM_f_PopDown(){return false};
-popUp = HM_f_PopUp;
-popDown = HM_f_PopDown;
-
-
-HM_GL_MenuWidth = 150;
-HM_GL_FontFamily = "Arial,sans-serif";
-HM_GL_FontSize = 10;
-HM_GL_FontBold = true;
-HM_GL_FontItalic = false;
-HM_GL_FontColor = "black";
-HM_GL_FontColorOver = "white";
-HM_GL_BGColor = "transparent";
-HM_GL_BGColorOver = "transparent";
-HM_GL_ItemPadding = 3;
-
-HM_GL_BorderWidth = 2;
-HM_GL_BorderColor = "red";
-HM_GL_BorderStyle = "solid";
-HM_GL_SeparatorSize = 2;
-HM_GL_SeparatorColor = "yellow";
-
-HM_GL_ImageSrc = "HM_More_black_right.gif";
-HM_GL_ImageSrcLeft = "HM_More_black_left.gif";
-
-HM_GL_ImageSrcOver = "HM_More_white_right.gif";
-HM_GL_ImageSrcLeftOver = "HM_More_white_left.gif";
-
-HM_GL_ImageSize = 5;
-HM_GL_ImageHorizSpace = 5;
-HM_GL_ImageVertSpace = 5;
-
-HM_GL_KeepHilite = false;
-HM_GL_ClickStart = false;
-HM_GL_ClickKill = 0;
-HM_GL_ChildOverlap = 40;
-HM_GL_ChildOffset = 10;
-HM_GL_ChildPerCentOver = null;
-HM_GL_TopSecondsVisible = .5;
-HM_GL_ChildSecondsVisible = .3;
-HM_GL_StatusDisplayBuild = 0;
-HM_GL_StatusDisplayLink = 1;
-HM_GL_UponDisplay = null;
-HM_GL_UponHide = null;
-
-HM_GL_RightToLeft = false;
-HM_GL_CreateTopOnly = HM_NS4 ? true : false;
-HM_GL_ShowLinkCursor = true;
-
-// the following function is included to illustrate the improved JS expression handling of
-// the left_position and top_position parameters
-// you may delete if you have no use for it
-
-function HM_f_CenterMenu(topmenuid) {
- var MinimumPixelLeft = 0;
- var TheMenu = HM_DOM ? document.getElementById(topmenuid) : HM_IE4 ? document.all(topmenuid) : eval("window." + topmenuid);
- var TheMenuWidth = HM_DOM ? parseInt(TheMenu.style.width) : HM_IE4 ? TheMenu.style.pixelWidth : TheMenu.clip.width;
- var TheWindowWidth = HM_IE ? document.body.clientWidth : window.innerWidth;
- return Math.max(parseInt((TheWindowWidth-TheMenuWidth) / 2),MinimumPixelLeft);
-}
-
-if(HM_IsMenu) {
- document.write("<\/SCR" + "IPT>");
- document.write("<\/SCR" + "IPT>");
-}
-
-
-//end
diff --git a/helm/graphs/jsmenu/HM_More_black_left.gif b/helm/graphs/jsmenu/HM_More_black_left.gif
deleted file mode 100644
index ae9b1dd0f..000000000
Binary files a/helm/graphs/jsmenu/HM_More_black_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_black_right.gif b/helm/graphs/jsmenu/HM_More_black_right.gif
deleted file mode 100644
index ca628ba69..000000000
Binary files a/helm/graphs/jsmenu/HM_More_black_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_blue_left.gif b/helm/graphs/jsmenu/HM_More_blue_left.gif
deleted file mode 100644
index 1637826ab..000000000
Binary files a/helm/graphs/jsmenu/HM_More_blue_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_blue_right.gif b/helm/graphs/jsmenu/HM_More_blue_right.gif
deleted file mode 100644
index ebc8f9bca..000000000
Binary files a/helm/graphs/jsmenu/HM_More_blue_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_cyan_left.gif b/helm/graphs/jsmenu/HM_More_cyan_left.gif
deleted file mode 100644
index 48e832532..000000000
Binary files a/helm/graphs/jsmenu/HM_More_cyan_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_cyan_right.gif b/helm/graphs/jsmenu/HM_More_cyan_right.gif
deleted file mode 100644
index 788d9d2be..000000000
Binary files a/helm/graphs/jsmenu/HM_More_cyan_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_green_left.gif b/helm/graphs/jsmenu/HM_More_green_left.gif
deleted file mode 100644
index 132e1d2dd..000000000
Binary files a/helm/graphs/jsmenu/HM_More_green_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_green_right.gif b/helm/graphs/jsmenu/HM_More_green_right.gif
deleted file mode 100644
index dfaaf00d0..000000000
Binary files a/helm/graphs/jsmenu/HM_More_green_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_magenta_left.gif b/helm/graphs/jsmenu/HM_More_magenta_left.gif
deleted file mode 100644
index e6369cf7c..000000000
Binary files a/helm/graphs/jsmenu/HM_More_magenta_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_magenta_right.gif b/helm/graphs/jsmenu/HM_More_magenta_right.gif
deleted file mode 100644
index 56179da04..000000000
Binary files a/helm/graphs/jsmenu/HM_More_magenta_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_red_left.gif b/helm/graphs/jsmenu/HM_More_red_left.gif
deleted file mode 100644
index b36de2008..000000000
Binary files a/helm/graphs/jsmenu/HM_More_red_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_red_right.gif b/helm/graphs/jsmenu/HM_More_red_right.gif
deleted file mode 100644
index 035f5e600..000000000
Binary files a/helm/graphs/jsmenu/HM_More_red_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_white_left.gif b/helm/graphs/jsmenu/HM_More_white_left.gif
deleted file mode 100644
index 935308d99..000000000
Binary files a/helm/graphs/jsmenu/HM_More_white_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_white_right.gif b/helm/graphs/jsmenu/HM_More_white_right.gif
deleted file mode 100644
index 969fc4972..000000000
Binary files a/helm/graphs/jsmenu/HM_More_white_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_yellow_left.gif b/helm/graphs/jsmenu/HM_More_yellow_left.gif
deleted file mode 100644
index 8e10145ff..000000000
Binary files a/helm/graphs/jsmenu/HM_More_yellow_left.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_More_yellow_right.gif b/helm/graphs/jsmenu/HM_More_yellow_right.gif
deleted file mode 100644
index 8a438b938..000000000
Binary files a/helm/graphs/jsmenu/HM_More_yellow_right.gif and /dev/null differ
diff --git a/helm/graphs/jsmenu/HM_ScriptDOM.js b/helm/graphs/jsmenu/HM_ScriptDOM.js
deleted file mode 100644
index 498a5912b..000000000
--- a/helm/graphs/jsmenu/HM_ScriptDOM.js
+++ /dev/null
@@ -1,962 +0,0 @@
-/*HM_ScriptDOM.js
-* by Peter Belesis. v4.1.1 011002
-* Copyright (c) 2001 Peter Belesis. All Rights Reserved.
-* Originally published and documented at http://www.dhtmlab.com/
-* Available solely from INT Media Group. Incorporated under exclusive license.
-* Contact licensing@internet.com for more information.
-*/
-
-HM_IE5M = HM_IE && HM_Mac;
-HM_IE5W = HM_IE && !HM_Mac;
-HM_NS6 = (navigator.vendor == ("Netscape6") || navigator.product == ("Gecko"));
-HM_IEpos = HM_IE || (HM_NS6 && parseInt(navigator.productSub)>=20010710);
-HM_IEDTD = (HM_IE && document.doctype) ? document.doctype.name.indexOf(".dtd")!=-1 : false;
-HM_IEnoDTD = HM_IE && !HM_IEDTD;
-
-HM_a_Parameters = [
- ["MenuWidth", 150, "number"],
- ["FontFamily", "Arial,sans-serif"],
- ["FontSize", 10, "number"],
- ["FontBold", false, "boolean"],
- ["FontItalic", false, "boolean"],
- ["FontColor", "black"],
- ["FontColorOver", "white"],
- ["BGColor", "white"],
- ["BGColorOver", "black"],
- ["ItemPadding", 3, "number"],
- ["BorderWidth", 2, "number"],
- ["BorderColor", "red"],
- ["BorderStyle", "solid"],
- ["SeparatorSize", 1, "number"],
- ["SeparatorColor", "yellow"],
- ["ImageSrc", "HM_More_black_right.gif"],
- ["ImageSrcOver", null],
- ["ImageSrcLeft", "HM_More_black_left.gif"],
- ["ImageSrcLeftOver", null],
- ["ImageSize", 5, "number"],
- ["ImageHorizSpace", 0, "number"],
- ["ImageVertSpace", 0, "number"],
- ["KeepHilite", false, "boolean"],
- ["ClickStart", false, "boolean"],
- ["ClickKill", true, "boolean"],
- ["ChildOverlap", 20, "number"],
- ["ChildOffset", 10, "number"],
- ["ChildPerCentOver", null, "number"],
- ["TopSecondsVisible", .5, "number"],
- ["ChildSecondsVisible",.3, "number"],
- ["StatusDisplayBuild", 1, "boolean"],
- ["StatusDisplayLink", 1, "boolean"],
- ["UponDisplay", null, "delayed"],
- ["UponHide", null, "delayed"],
- ["RightToLeft", false, "boolean"],
- ["CreateTopOnly", 0, "boolean"],
- ["ShowLinkCursor", false, "boolean"]
-]
-
-HM_MenuIDPrefix = "HM_Menu";
-HM_ItemIDPrefix = "HM_Item";
-HM_ArrayIDPrefix = "HM_Array";
-
-Function.prototype.isFunction = true;
-Function.prototype.isString = false;
-String.prototype.isFunction = false;
-String.prototype.isString = true;
-String.prototype.isBoolean = false;
-String.prototype.isNumber = false;
-Number.prototype.isString = false;
-Number.prototype.isFunction = false;
-Number.prototype.isBoolean = false;
-Number.prototype.isNumber = true;
-Boolean.prototype.isString = false;
-Boolean.prototype.isFunction = false;
-Boolean.prototype.isBoolean = true;
-Boolean.prototype.isNumber = false;
-Array.prototype.itemValidation = false;
-Array.prototype.isArray = true;
-
-if(HM_IE) {
- HM_a_ElementsCreated = [];
-
- function HM_f_StoreElement(el){
- HM_a_ElementsCreated[HM_a_ElementsCreated.length] = el;
- }
-}
-
-function HM_f_AssignParameters(paramarray){
- var ParamName = paramarray[0];
- var DefaultValue = paramarray[1];
- var FullParamName = "HM_" + ParamName;
-
- if (typeof eval("window.HM_PG_" + ParamName) == "undefined") {
- if (typeof eval("window.HM_GL_" + ParamName) == "undefined") {
- eval(FullParamName + "= DefaultValue");
- }
- else {
- eval(FullParamName + "= HM_GL_" + ParamName);
- }
- }
- else {
- eval(FullParamName + "= HM_PG_" + ParamName);
- }
-
- paramarray[0] = FullParamName;
- paramarray[1] = eval(FullParamName);
-}
-
-function HM_f_EvalParameters(valuenew,valueold,valuetype){
- var TestString, ParPosition;
-
- if(typeof valuenew == "undefined" || valuenew == null || (valuenew.isString && valuenew.length == 0)){
- return valueold;
- }
-
- if(valuetype != "delayed"){
- while(valuenew.isString) {
- ParPosition = valuenew.indexOf("(");
- if(ParPosition !=-1) {
- TestString = "window." + valuenew.substr(0,ParPosition);
- if (typeof eval(TestString) != "undefined" && eval(TestString).isFunction) {
- valuenew = eval(valuenew);
- }
- }
- else break
- }
- }
-
- while(valuenew.isFunction) {valuenew = valuenew()}
-
- switch(valuetype){
- case "number":
- while (valuenew.isString) {valuenew = eval(valuenew)}
- break;
- case "boolean":
- while (!valuenew.isBoolean) {
- valuenew = (valuenew.isNumber) ? valuenew ? true : false : eval(valuenew);
- }
- break;
- }
-
- return valuenew;
-}
-
-for (i=0;i 1) {
- MenuArrayIsValid = true;
- if(!TheMenuArray.itemValidation) {
- while((typeof TheMenuArray[TheMenuArray.length-1] != "object") || (!TheMenuArray[TheMenuArray.length-1].isArray)) {
- TheMenuArray.length--;
- }
- TheMenuArray.itemValidation = true;
- }
- }
- }
- return MenuArrayIsValid;
-}
-
-if(!window.HM_a_TreesToBuild) {
- HM_a_TreesToBuild = [];
- for(i=1; i<100; i++){
- if(HM_f_ValidateArray(HM_ArrayIDPrefix + i)) HM_a_TreesToBuild[HM_a_TreesToBuild.length] = i;
- }
-}
-
-HM_CurrentArray = null;
-HM_CurrentTree = null;
-HM_CurrentMenu = null;
-HM_CurrentItem = null;
-HM_a_TopMenus = [];
-HM_AreLoaded = false;
-HM_AreCreated = false;
-HM_BeingCreated = false;
-HM_UserOverMenu = false;
-HM_HideAllTimer = null;
-HM_TotalTrees = 0;
-HM_ZIndex = 5000;
-
-function HM_f_StartIt() {
- if(HM_AreCreated) return;
- if((typeof(document.body) == "undefined") || (document.body == null)) return;
- HM_AreLoaded = true;
- if (HM_ClickKill) {
- HM_f_OtherMouseDown = (document.onmousedown) ? document.onmousedown : new Function;
- document.onmousedown = function(){HM_f_PageClick();HM_f_OtherMouseDown()}
- }
- else {
- HM_TopMilliSecondsVisible = HM_TopSecondsVisible * 1000;
- }
- HM_f_MakeTrees();
- HM_f_OtherOnLoad();
-}
-
-function HM_f_MakeTrees(){
- HM_BeingCreated = true;
- var TreeParams = null;
- var TreeHasChildren = false;
- var ItemArray = null;
-
- for(var t=0; t