Index: trunk/core/admin_templates/js/script.js =================================================================== diff -u -N -r7702 -r7855 --- trunk/core/admin_templates/js/script.js (.../script.js) (revision 7702) +++ trunk/core/admin_templates/js/script.js (.../script.js) (revision 7855) @@ -1111,15 +1111,6 @@ return doc; } - - function addEvent(el, evname, func) { - if (is.ie) { - el.attachEvent("on" + evname, func); - } else { - el.addEventListener(evname, func, true); - } - }; - function set_persistant_var($var_name, $var_value, $t, $form_action) { set_hidden_field('field', $var_name); @@ -1303,6 +1294,7 @@ NumberFormatter.Parse = function(num) { + if (num == '') return 0; return parseFloat( num.toString().replace(this.ThousandsSep, '').replace(this.DecimalSep, '.') ); } @@ -1319,40 +1311,65 @@ 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 getDimensions(obj) { + var style + if (obj.currentStyle) { + style = obj.currentStyle; } -} -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); + else { + style = getComputedStyle(obj,''); } + padding = [parseInt(style.paddingTop), parseInt(style.paddingRight), parseInt(style.paddingBottom), parseInt(style.paddingLeft)] + border = [parseInt(style.borderTopWidth), parseInt(style.borderRightWidth), parseInt(style.borderBottomWidth), parseInt(style.borderLeftWidth)] + for (var i in padding) if ( isNaN( padding[i] ) ) padding[i] = 0 + for (var i in border) if ( isNaN( border[i] ) ) border[i] = 0 + + var result = new Object(); + result.innerHeight = obj.clientHeight - padding[0] - padding[2]; + result.innerWidth = obj.clientWidth - padding[1] - padding[3]; + result.padding = padding; + result.borders = border; + + return result; } -function add_form_error(prefix, field, element, error_msg) { - if (error_msg != '') { - if (typeof(errors[prefix]) == 'undefined') { - errors[prefix] = new Object(); + +function findPos(obj) { + var curleft = curtop = 0; + if (obj.offsetParent) { + curleft = obj.offsetLeft + curtop = obj.offsetTop + while (obj = obj.offsetParent) { + curleft += obj.offsetLeft + curtop += obj.offsetTop } - 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]; - } } + return [curleft,curtop]; +} + +function addEvent(el, evname, func, traditional) { + if (traditional) { + eval('el.on'+evname+'='+func); + return; + } + + if (is.ie) { + el.attachEvent("on" + evname, func); + } else { + el.addEventListener(evname, func, true); + } +}; + +function addLoadEvent(func, wnd) { + if (!wnd) wnd = window + var oldonload = wnd.onload; + if (typeof wnd.onload != 'function') { + wnd.onload = func; + } else { + wnd.onload = function() { + if (oldonload) { + oldonload(); + } + func(); + } + } } \ No newline at end of file