var mksystem = function() { return { dom: function() { return { createElement: function(tagname, variable, anotherelements) { var element = document.createElement(tagname); if (variable) { for (var key in variable) { element[key] = variable[key]; } } if (anotherelements) { for (var key in anotherelements) { element.appendChild(anotherelements[key]); } } return element; }, fade: function(node) { } }; }, effect: function() { return { expander: function(node, action) { var onclick = function() { if (this.className == "selected") { this.className = "noselected"; } else { this.className = "selected"; } var matches = (/expander\[(.*?)\]/).exec(this.rel); this.dependent = matches[1]; if (action) { action(this); } return false; }; var anchors = node.getElementsByTagName("a"); for (var i = 0; i < anchors.length; i++) { if ((/expander\[(.*?)\]/).test(anchors[i].rel)) { anchors[i].onclick = onclick; } } }, scroll: function(prev, next, node, size) { if (prev && next) { var page = 0; var change = function(selected) { for (var i = 0; i < node.childNodes.length; i++) { node.childNodes[i].style.display = "none"; if (i >= selected && i < selected + size) { node.childNodes[i].style.display = "block"; } } if (selected > 0 && selected < node.childNodes.length - size) { prev.style.display = "block"; next.style.display = "block"; } else { if (selected == 0) { prev.style.display = "none"; } else { prev.style.display = "block"; } if (selected >= node.childNodes.length - size) { next.style.display = "none"; } else { next.style.display = "block"; } } }; prev.onclick = function() { try { change(--page); } catch (error) { alert(error); } return false; }; next.onclick = function() { try { change(++page); } catch (error) { alert(error); } return false; }; change(0); } } }; }, form: function() { var read = function(node, handler) { this.elementInput = function(node) { var elements = node.getElementsByTagName("input"); for (var i = 0; i < elements.length; i++) { switch (elements[i].type) { case "text": case "password": case "hidden": this.onValueElement(elements[i]); break; case "radio": case "checkbox": this.onCheckedElement(elements[i]); break; } } }; this.elementTextarea = function(node) { var elements = node.getElementsByTagName("textarea"); for (var i = 0; i < elements.length; i++) { this.onValueElement(elements[i]); } }; this.elementSelect = function(node) { var elements = node.getElementsByTagName("select"); for (var i = 0; i < elements.length; i++) { this.onValueElement(elements[i]); } }; this.onValueElement = function(element) { if (this.handler != null) { this.handler.onValueElement(element); } }; this.onCheckedElement = function(element) { if (this.handler != null) { this.handler.onCheckedElement(element); } }; this.handler = null; if (handler != undefined) { this.handler = handler; } this.elementInput(node); this.elementTextarea(node); this.elementSelect(node); }; return { read: function(node, handler) { return new read(node, handler); }, clear: function(node) { new read(node, new function() { this.onCheckedElement = function(element) { element.checked = "nochecked"; }; this.onValueElement = function(element) { element.value = ""; }; }); } }; }, /* rel: function(string) { return { value: function(pattern) { if (pattern.test(string) == false) { return false; } else { return pattern.exec(string)[1]; } } }; }, */ request: function(url, variable, handler) { var request = false; try { request = new XMLHttpRequest(); } catch (error) { var versions = new Array( "MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ); for (var i = 0; i < versions.length && !request; i++) { try { request = new ActiveXObject(versions[i]); } catch (error) { alert(error); } } } if (request) { request.open("POST", url, true); if (handler != undefined) { request.onreadystatechange = function(args) { if (request.readyState == 4) { if (request.status == 200) { handler(request, args); } } }; } var params = ""; if (variable) { for (var key in variable) { var value = encodeURIComponent("" + variable[key]); if (params.length == 0) { params += key + "=" + value; } else { params += "&" + key + "=" + value; } } request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.setRequestHeader("Content-length", params.length); request.setRequestHeader("Connection", "close"); } request.send(params); } } }; }();