/* * Small AJAX framework */ function ajax_request_callback(req) { if (req.readyState == 4 && req.status == 200) { var data = json_parse(req.responseText); if (typeof data.error == 'string') { if (typeof data.errormsg == 'string') error(data.errormsg); else error('Fehler im AJAX-Backend'); alert("Fehler im AJAX backend:\n" + data.error); } else if (req.oncomplete) req.oncomplete(data); } } function ajax_request(func,params,oncomplete) { var req = new XMLHttpRequest(); if (!req) return; var params = 'func=' + func + '&' + params; req.open ("POST", 'ajax/ajax.php'); req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); req.setRequestHeader("Content-length", params.length); req.setRequestHeader("Connection", "close"); req.onreadystatechange = function() { ajax_request_callback(req); } if (typeof oncomplete == 'function') req.oncomplete = oncomplete; req.send(params); } function info(msg) { var status = document.getElementById('status'); if (!status) return; status.innerHTML = msg; status.className = 'status_ok'; } function error(msg) { var status = document.getElementById('status'); if (!status) return; status.innerHTML = msg; status.className = 'status_error'; } function set_value(id, value) { var obj = document.getElementById(id); if (!obj) return; if (obj.nodeName.toLowerCase() == 'input' && obj.type.toLowerCase() == 'checkbox') if (value) obj.checked = true; else obj.checked = false; else if (obj.nodeName.toLowerCase() == 'input' || obj.nodeName.toLowerCase() == 'textarea') obj.value = value; else if (obj.nodeName.toLowerCase() == 'span') obj.innerHTML = value; else if (obj.nodeName.toLowerCase() == 'select') for (var i=0; i < obj.options.length; i++) if (obj.options[i].value == value) obj.selectedIndex = i; } /* * Form functions */ function form_init() { var form = document.getElementById('form_edit'); if (!form) return; for (var i=0; i