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 // returns input field values submitted when form button 'name' is pressed
57 JsHttpRequest.formValues = function(inp)
63 if (typeof(inp) == "string")
64 submitObj = document.getElementsByName(inp)[0];
68 objForm = submitObj.form;
72 var formElements = objForm.elements;
73 for( var i=0; i < formElements.length; i++)
75 var el = formElements[i];
76 if (!el.name) continue;
79 ((el.type == 'radio' || el.type == 'checkbox') && el.checked == false)
80 || (el.type == 'submit' && el.name!=submitObj.name))
82 if (el.disabled && el.disabled == true)
87 if(el.type=='select-multiple')
89 for (var j = 0; j < el.length; j++)
91 if (el.options[j].selected == true)
92 q[name] = el.options[j].value;
102 // this is to avoid caching problems
103 q['_random'] = Math.random()*1234567;
107 // User price formatting
109 function price_format(post, num, dec, label) {
110 //num = num.toString().replace(/\$|\,/g,'');
113 sign = (num == (num = Math.abs(num)));
115 decsize = Math.pow(10, dec);
116 num = Math.floor(num*decsize+0.50000000001);
118 num = Math.floor(num/decsize).toString();
119 for( i=cents.toString().length; i<dec; i++){
122 for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
123 num = num.substring(0,num.length-(4*i+3))+user.ts+
124 num.substring(num.length-(4*i+3));
125 num = ((sign)?'':'-') + num;
126 if(dec!=0) num = num + user.ds + cents;
128 document.getElementById(post).innerHTML = num;
130 document.getElementsByName(post)[0].value = num;
132 function get_amount(doc, label) {
134 var val = document.getElementById(doc).innerHTML;
136 var val = document.getElementsByName(doc)[0].value;
137 val = val.replace(new RegExp('\\'+user.ts, 'g'),'');
138 val = val.replace(new RegExp('\\'+user.ds, 'g'),'.');
143 if (window.history.length <= 1)
146 window.history.go(-1);