2 // JsHttpRequest class extensions.
4 JsHttpRequest.request= function(submit) {
6 'POST '+window.location.toString(), // backend
8 this.formValues(submit),
10 // Function is called when an answer arrives.
11 function(result, errors) {
12 // Write errors to the debug div.
13 document.getElementById('msgbox').innerHTML = errors;
16 for(var i in result ) {
24 // alert(cmd+':'+property+':'+type+':'+id+':'+data);
25 // seek element by id if there is no elemnt with given name
26 objElement = document.getElementsByName(id)[0] || document.getElementById(id);
28 eval("objElement."+property+"=data;");
29 } else if(cmd=='up') {
30 if(!objElement) debug('No element "'+id+'"');
31 if (objElement.tagName == 'INPUT' || objElement.tagName == 'TEXTAREA')
32 objElement.value = data;
34 objElement.innerHTML = data; // selector, div, span etc
35 } else if(cmd=='di') { // disable element
36 objElement.disabled = data;
37 } else if(cmd=='js') { // evaluate js code
39 } else if(cmd=='rd') { // client-side redirection
40 debug('redirecting '+data);
41 window.location = data;
43 errors = errors+'<br>Unknown ajax function: '+cmd;
48 // window.scrollTo(0,0);
49 document.getElementById('msgbox').scrollIntoView(true);
52 false // do not disable caching
55 /* // calls form validation function
57 JsHttpRequest.validate= function(submit) {
59 'POST '+window.location.toString(), // backend
60 this.formValues('_validate_form'),
61 // Function is called when an answer arrives.
62 function(result, errors) {
64 window.location = result;
72 */ // returns input field values submitted when form button 'name' is pressed
74 JsHttpRequest.formValues = function(inp)
80 if (typeof(inp) == "string")
81 submitObj = document.getElementsByName(inp)[0];
85 objForm = submitObj.form;
89 var formElements = objForm.elements;
90 for( var i=0; i < formElements.length; i++)
92 var el = formElements[i];
93 if (!el.name) continue;
96 ((el.type == 'radio' || el.type == 'checkbox') && el.checked == false)
97 || (el.type == 'submit' && el.name!=submitObj.name))
99 if (el.disabled && el.disabled == true)
104 if(el.type=='select-multiple')
106 for (var j = 0; j < el.length; j++)
108 if (el.options[j].selected == true)
109 q[name] = el.options[j].value;
119 // this is to avoid caching problems
120 q['_random'] = Math.random()*1234567;
124 // User price formatting
126 function price_format(post, num, dec, label) {
127 //num = num.toString().replace(/\$|\,/g,'');
130 sign = (num == (num = Math.abs(num)));
132 decsize = Math.pow(10, dec);
133 num = Math.floor(num*decsize+0.50000000001);
135 num = Math.floor(num/decsize).toString();
136 for( i=cents.toString().length; i<dec; i++){
139 for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
140 num = num.substring(0,num.length-(4*i+3))+user.ts+
141 num.substring(num.length-(4*i+3));
142 num = ((sign)?'':'-') + num;
143 if(dec!=0) num = num + user.ds + cents;
145 document.getElementById(post).innerHTML = num;
147 document.getElementsByName(post)[0].value = num;
149 function get_amount(doc, label) {
151 var val = document.getElementById(doc).innerHTML;
153 var val = document.getElementsByName(doc)[0].value;
154 val = val.replace(new RegExp('\\'+user.ts, 'g'),'');
155 val = val.replace(new RegExp('\\'+user.ds, 'g'),'.');
160 if (window.history.length <= 1)
163 window.history.go(-1);