2 * Change style of DOM elements
4 function style_adjust(styles)
10 obj = document.getElementById(id);
12 for (item in styles[id])
13 obj.style[item] = styles[id][item];
17 function stop_propagation(e)
19 if (!e) var e = window.event;
20 e.cancelBubble = true;
21 if (e.stopPropagation) e.stopPropagation();
25 * Small AJAX framework
27 function ajax_request_callback(req)
29 if (req.readyState == 4 && req.status == 200) {
30 var data = json_parse(req.responseText);
37 function ajax_request(func,params,oncomplete)
39 var req = new XMLHttpRequest();
42 var params = 'func=' + func + '&' + params;
43 req.open ("POST", 'index.php');
44 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
45 req.setRequestHeader("Content-length", params.length);
46 req.setRequestHeader("Connection", "close");
47 if (typeof oncomplete == 'function') {
48 req.onreadystatechange = function() { ajax_request_callback(req); }
49 req.oncomplete = oncomplete;
55 * Simple popup creation
57 function popup_create(id,title,content)
59 var div = document.createElement('div');
61 div.style.zIndex = 20;
62 div.className = 'popup';
64 var elem = document.createElement('span');
65 elem.className = 'popupTitle';
66 elem.innerHTML = title;
67 div.appendChild(elem);
69 elem = document.createElement('div');
70 elem.className = 'popupContent';
71 elem.innerHTML = content;
72 div.appendChild(elem);
74 document.body.appendChild(div);
79 * Small context menu framework
83 e.target.parentNode.style.display = 'none';
84 if (e.target.parentNode.payload['row'] != undefined)
85 e.target.parentNode.payload['row'].style.backgroundColor = '';
88 function menu_create(id,data)
90 var div = document.createElement('div');
92 div.className = 'popup';
94 var elem = document.createElement('span');
95 elem.className = 'popupTitle';
96 elem.innerHTML = data['title'];
97 elem.onmouseup = menu_hide;
98 div.appendChild(elem);
100 for (var i=0; i < data['items'].length; i++) {
101 elem = document.createElement('span');
102 elem.className = 'popup';
103 elem.innerHTML = data['items'][i]['name'];
104 if (data['items'][i]['type'] == 'hide')
105 elem.onmouseup = menu_hide;
107 elem.onmouseup = data['items'][i]['callback'];
108 div.appendChild(elem);
111 document.body.appendChild(div);
115 function menu_position(e,menu,diffX,diffY,items)
117 var height = (items.length + 1) * 14;
118 var top = e.pageY + diffY;
120 menu.style.left = e.pageX + diffX;
122 if (top + height > window.innerHeight)
123 menu.style.top = window.innerHeight - height;
125 menu.style.top = top;