X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=js%2Futils.js;h=478cd158e3d326ab1b8acd732144a352f239359f;hb=44abddfd180ec27cbd889f4c8c8f8271f6d6d19d;hp=5af7bfb4f644bab6e6e54836eb4ba38d5162d8a6;hpb=35b63dfa6002b68aebace1632e497146c76913a0;p=fa-stable.git diff --git a/js/utils.js b/js/utils.js index 5af7bfb4..478cd158 100644 --- a/js/utils.js +++ b/js/utils.js @@ -1,23 +1,23 @@ /********************************************************************** Copyright (C) FrontAccounting, LLC. - Released under the terms of the GNU General Public License, GPL, - as published by the Free Software Foundation, either version 3 + Released under the terms of the GNU General Public License, GPL, + as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ function set_mark(img) { var box = document.getElementById('ajaxmark'); if(box) { if(img) box.src = user.theme+'images/'+ img; - box.style.visibility = img ? 'visible' : 'hidden' + box.style.visibility = img ? 'visible' : 'hidden'; } } function disp_msg(msg, cl) { - var box = document.getElementById('msgbox') + var box = document.getElementById('msgbox'); box.innerHTML= "
"+ msg+'
'; // box.style.display = msg=='' ? 'none':'block'; if (msg!='') window.scrollTo(0,element_pos(box).y-10); @@ -31,15 +31,15 @@ function disp_msg(msg, cl) { // - input object - all form values are also submited // - arbitrary string - POST var trigger with value 1 is added to request; // if form parameter exists also form values are submited, otherwise -// request is directed to current location -// +// request is directed to current location +// JsHttpRequest.request= function(trigger, form, tout) { // if (trigger.type=='submit' && !validate(trigger)) return false; - tout = tout || 6000; // default timeout value + tout = tout || 10000; // default timeout value document.getElementById('msgbox').innerHTML=''; set_mark(tout>10000 ? 'progressbar.gif' : 'ajax-loader.gif'); JsHttpRequest._request(trigger, form, tout, 0); -} +}; JsHttpRequest._request = function(trigger, form, tout, retry) { if (trigger.tagName=='A') { @@ -48,27 +48,27 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { var url = trigger.href; if (trigger.id) content[trigger.id] = 1; } else { - var submitObj = typeof(trigger) == "string" ? + var submitObj = typeof(trigger) == "string" ? document.getElementsByName(trigger)[0] : trigger; - + form = form || (submitObj && submitObj.form); var upload = form && form.enctype=='multipart/form-data'; - - var url = form ? form.action : + + var url = form ? form.getAttribute('action') : window.location.toString(); var content = this.formInputs(trigger, form, upload); if (!form) url = url.substring(0, url.indexOf('?')); - + if (!submitObj) { content[trigger] = 1; } } // this is to avoid caching problems content['_random'] = Math.random()*1234567; - + var tcheck = setTimeout( function() { for(var id in JsHttpRequest.PENDING) { @@ -89,12 +89,12 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { JsHttpRequest.query( (upload ? "form." : "")+"POST "+url, // force form loader content, - // Function is called when an answer arrives. + // Function is called when an answer arrives. function(result, errors) { // Write the answer. var newwin = 0; if (result) { - for(var i in result ) { + for(var i in result ) { atom = result[i]; cmd = atom['n']; property = atom['p']; @@ -119,12 +119,12 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { } else if(cmd=='fc') { // set focus _focus = data; } else if(cmd=='js') { // evaluate js code - eval(data); + __isGecko ? eval(data) : setTimeout(function(){eval(data);}, 200); // timeout required by IE7/8 } else if(cmd=='rd') { // client-side redirection window.location = data; } else if(cmd=='pu') { // pop-up newwin = 1; - window.open(data,'REP_WINDOW','toolbar=no,scrollbar=no,resizable=yes,menubar=no'); + window.open(data,'REP_WINDOW','toolbar=no,scrollbars=yes,resizable=yes,menubar=no'); } else { errors = errors+'
Unknown ajax function: '+cmd; } @@ -141,14 +141,14 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { window.scrollTo(0,0); //document.getElementById('msgbox').scrollIntoView(true); // Restore focus if we've just lost focus because of DOM element refresh - if(!newwin) { + if(!newwin) { setFocus(); } } }, false // do not disable caching ); - } + }; // collect all form input values plus inp trigger value JsHttpRequest.formInputs = function(inp, objForm, upload) { @@ -157,7 +157,7 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { if (typeof(inp) == "string") submitObj = document.getElementsByName(inp)[0]||inp; - + objForm = objForm || (submitObj && submitObj.form); if (objForm) @@ -168,14 +168,17 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { var el = formElements[i]; var name = el.name; if (!el.name) continue; - if(upload) { // for form containing file inputs collect all + if(upload) { // for form containing file inputs collect all // form elements and add value of trigger submit button // (internally form is submitted via form.submit() not button click()) - q[name] = submitObj.type=='submit' && el==submitObj ? el.value : el; - continue; + if (submitObj.type=='submit' && el==submitObj) + { + q[name] = el.value; + continue; + } } if (el.type ) - if( + if( ((el.type == 'radio' || el.type == 'checkbox') && el.checked == false) || (el.type == 'submit' && (!submitObj || el.name!=submitObj.name))) continue; @@ -195,14 +198,17 @@ JsHttpRequest._request = function(trigger, form, tout, retry) { } } else + if (el.type=='file') + q[name] = el; + else { q[name] = el.value; } - } + } } } return q; - } + }; // // User price formatting // @@ -218,7 +224,7 @@ function price_format(post, num, dec, label, color) { decsize = Math.pow(10, dec); num = Math.floor(num*decsize+0.50000000001); cents = num%decsize; - num = Math.floor(num/decsize).toString(); + num = Math.floor(num/decsize).toString(); for( i=cents.toString().length; ip0.y)) || (dir==38 && (p.yp0.y)) || (dir==38 && (p.yp0.x)))) { var l1 = (p.y-p0.y)*(p.y-p0.y)+(p.x-p0.x)*(p.x-p0.x); if ((l1 -1; +}