Small AJAX framework and auxiliary JavaScript functions
[misc/kostenrechnung] / lib / functions.js
1 /*
2  * Small AJAX framework
3  */
4 function ajax_request_callback(req)
5 {
6     if (req.readyState == 4 && req.status == 200) {
7         var data = json_parse(req.responseText);
8
9         if (req.oncomplete)
10             req.oncomplete(data);
11     }
12 }
13
14 function ajax_request(func,params,oncomplete)
15 {
16     var req = new XMLHttpRequest();
17     if (!req) return;
18
19     var params = 'func=' + func + '&' + params;
20     req.open ("POST", 'ajax/ajax.php');
21     req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
22     req.setRequestHeader("Content-length", params.length);
23     req.setRequestHeader("Connection", "close");
24     if (typeof oncomplete == 'function') {
25         req.onreadystatechange = function() { ajax_request_callback(req); }
26         req.oncomplete = oncomplete;
27     }
28     req.send(params);
29 }
30
31 /*
32  * Form functions
33  */
34 function form_save(obj)
35 {
36     return false;
37 }
38
39 /*
40  * Rico functions
41  */
42 function gridDrillDown(e)
43 {
44     if (e.originalTarget && e.originalTarget.target && e.originalTarget.target == '_top')
45         return;
46
47     var id = 0; // Column 0 contains ID
48     var row = grid.edit.drillDown(e,0,0);
49     var cell = grid.columns[id].cell(row);
50     if (!cell) return;
51     var value = cell.innerHTML;
52
53     if (document.getElementById('form_edit')) {
54         var params = 'mask=' + grid.tableId.substr(5) + '&id=' + value;
55         ajax_request('fetch', params, false);
56     }
57 }