Index: trunk/core/admin_templates/js/script.js =================================================================== diff -u -N -r7635 -r7702 --- trunk/core/admin_templates/js/script.js (.../script.js) (revision 7635) +++ trunk/core/admin_templates/js/script.js (.../script.js) (revision 7702) @@ -1318,3 +1318,41 @@ } return x1 + x2; } + +var last_shown_error = false; +var errors = new Object(); +var first_error = new Object(); +var fields = new Object(); +var textareas100 = new Array(); +function show_form_error(prefix, field, sticky) +{ + if (isset(errors[prefix]) && isset(errors[prefix][field])) { + span = document.getElementById('error_msg_'+prefix); + span.innerHTML = fields[prefix][field] + ' - ' + errors[prefix][field]; + if (sticky) last_shown_error = field; + } +} +function hide_form_error(prefix) +{ + span = document.getElementById('error_msg_'+prefix); + if (!span) return; + span.innerHTML = '
'; + if (typeof(last_shown_error) != 'undefined' && last_shown_error) { + show_form_error(prefix, last_shown_error); + } +} +function add_form_error(prefix, field, element, error_msg) { + if (error_msg != '') { + if (typeof(errors[prefix]) == 'undefined') { + errors[prefix] = new Object(); + } + errors[prefix][field] = error_msg; + document.getElementById(element).onfocus = function() { + show_form_error(prefix, field, true) + }; + document.getElementById(element).onblur = function() {last_shown_error = false}; + if (typeof(first_error[prefix]) == 'undefined' || first_error[prefix] == false) { + first_error[prefix] = [field, element]; + } + } +} \ No newline at end of file