- function check_right_date_format(input_name) {
- var decnumbers = input_name.value.split(decpoint);
- if(thpoint) {
- var thnumbers = input_name.value.split(thpoint);
- if(thnumbers[thnumbers.length-1].match(/.+decpoint$/g)) {
- thnumbers[thnumbers.length-1] = thnumbers[thnumbers.length-1].substring(thnumbers[thnumbers.length-1].length-1);
- }
- if(thnumbers[thnumbers.length-1].match(/.+decpoint\d$/g)) {
- thnumbers[thnumbers.length-1] = thnumbers[thnumbers.length-1].substring(thnumbers[thnumbers.length-1].length-2);
- }
- if(thnumbers[thnumbers.length-1].match(/.+decpoint\d\d$/g)) {
- thnumbers[thnumbers.length-1] = thnumbers[thnumbers.length-1].substring(thnumbers[thnumbers.length-1].length-3);
- }
- for(var i = 1; i < thnumbers.length; i++) {
- if(!thnumbers[i].match(/\d\d\d/g)) {
- return show_alert_and_focus(input_name);
- }
- if(thnumbers[i].match(/.*decpoint.*|.*thpoint.*/g)) {
- return show_alert_and_focus(input_name);
- }
- }
- if(decnumbers.length > 2 || (decnumbers.length > 1 ? (decnumbers[1].length > 2) : false)) {
- return show_alert_and_focus(input_name);
+$(function () {
+ $('input').focus(function(){
+ if (focussable(this)) window.focused_element = this;
+ });
+
+ // setting focus inside a tabbed area fails if this is encountered before the tabbing is complete
+ // in that case the elements count as hidden and jquery aborts .focus()
+ setTimeout(function(){
+ // Lowest priority: first focussable element in form.
+ set_cursor_to_first_element();
+
+ // Medium priority: class set in template
+ var initial_focus = $(".initial_focus").filter(':visible')[0];
+ if (initial_focus)
+ $(initial_focus).focus();
+
+ // special: honour focus_position
+ // if no higher priority applies set focus to the appropriate element
+ if ($("#display_row")[0] && kivi.myconfig.focus_position) {
+ switch(kivi.myconfig.focus_position) {
+ case 'last_partnumber' : $('#display_row tr.row:gt(-3):lt(-1) input[name*="partnumber"]').focus(); break;
+ case 'last_description' : $('#display_row tr.row:gt(-3):lt(-1) input[name*="description"]').focus(); break;
+ case 'last_qty' : $('#display_row tr.row:gt(-3):lt(-1) input[name*="qty"]').focus(); break;
+ case 'new_partnumber' : $('#display_row tr:gt(1) input[name*="partnumber"]').focus(); break;
+ case 'new_description' : $('#display_row tr:gt(1) input[name*="description"]').focus(); break;
+ case 'new_qty' : $('#display_row tr:gt(1) input[name*="qty"]').focus(); break;