+
+window.focused_element = null;
+document.addEventListener("focus", function(event){
+ var e = event.target;
+ if (is_element_focussable(e)) window.focused_element = e;
+}, true);
+
+function get_cursor_position() {
+ if (window.focused_element)
+ document.forms[0].cursor_fokus.value = window.focused_element.name;
+}
+
+function set_cursor_position(n) {
+ document.getElementsByName(n)[0].focus();
+}
+
+function restore_cursor_position() {
+ var e = document.getElementsByName('cursor_fokus')[0];
+ var f = document.getElementsByName(e.value)[0];
+ if (is_element_focussable(f)) set_cursor_position(f.name)
+ else set_cursor_to_first_element();
+}
+
+function is_element_focussable(e) {
+ return e && e.type != 'hidden' && e.type != 'submit' && e.disabled != true;
+}
+
+function set_cursor_to_first_element(){
+ var df = document.forms;
+ for (var f = 0; f < df.length; f++)
+ for (var i = 0; i < df[f].length; i++)
+ if (is_element_focussable(df[f][i]))
+ try { df[f][i].focus(); return } catch (er) { }
+}
+a_onload_functions["restore_cursor_position"] = restore_cursor_position;
+a_onsubmit_functions["get_cursor_position"] = get_cursor_position;
+
+function do_load_events() {
+ var oldl = window.onload;
+ window.onload = function() {
+ if (oldl) oldl();
+ if (window.a_onload_functions)
+ for (var name in window.a_onload_functions)
+ a_onload_functions[name]();
+ }
+ window.onsubmit = function() {
+ if (window.a_onsubmit_functions)
+ for (var name in window.a_onsubmit_functions)
+ a_onsubmit_functions[name]();
+ }
+}
+do_load_events();