+
+function set_cursor_position(n) {
+ $('[name=' + n + ']').focus();
+}
+
+function focussable(e) {
+ return e && e.name && 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 (focussable(df[f][i]))
+ try { df[f][i].focus(); return } catch (er) { }
+}
+
+function getElementByIndirectName(name){
+ var e = document.getElementsByName(name)[0];
+ if (e) return document.getElementsByName(e.value)[0];
+}
+
+function focus_by_name(name){
+ var f = getElementByIndirectName(name);
+ if (focussable(f)) {
+ set_cursor_position(f.name);
+ return true;
+ }
+ return false;
+}
+
+function open_jqm_window(params) {
+ params = params || { };
+ var id = params.id ? params.id : 'jqm_popup_dialog';
+
+ $('#' + id).remove();
+ var div = $('<div id="' + id + '" class="jqmWindow jqModal_overlay ' + (params.class || '') + '"></div>').hide().appendTo('body');
+ var close = $('<div class="close"></div>').appendTo(div);
+ var content = $('<div class="overlay_content"></div>').appendTo(div);
+
+ div.jqm({ modal: true });
+ div.jqmShow();
+ $(close).click(function() {
+ div.jqmClose();
+ });
+
+ $.ajax({
+ url: params.url,
+ data: params.data,
+ type: params.type,
+ success: function(new_html) { $(content).html(new_html); }
+ });
+
+ return true;
+}
+
+$(document).ready(function () {
+ // initialize all jQuery UI tab elements:
+ $(".tabwidget").each(function(idx, element) { $(element).tabs(); });
+
+ $('input').focus(function(){
+ if (focussable(this)) window.focused_element = this;
+ });
+
+ var initial_focus = $(".initial_focus").filter(':visible')[0];
+ if (initial_focus)
+ $(initial_focus).focus();
+
+ // legacy. sone forms install these
+ if (typeof fokus == 'function') { fokus(); return; }
+ if (focus_by_name('cursor_fokus')) return;
+ set_cursor_to_first_element();
+});
+
+$('form').submit(function(){
+ if (window.focused_element)
+ document.forms[0].cursor_fokus.value = window.focused_element.name;
+});