var portal = function() { function string(name) { var lang = { pl: { formempty: "Nie wszystkie wymagane pola są uzupelnione.", formerror: "Błąd podczas przesyłania formularza, prosimy spróbować ponownie za jakiś czas.", formok: "Dziękujemy za przesłanie formularza." } }; try { var elements = document.getElementsByTagName("html"); if (elements.length == 1) { return lang[elements[0].lang][name]; } } catch (error) { alert(error); } return false; }; var form = function() { this.validate = function(node, onSelectElement) { var handler = new function() { this.onCheckedElement = function(element) { var obligation = this.obligation(element); if (obligation != false) { if (element.checked != "checked" || element.checked) { this.selectElement(element, true); this.error = true; } else { this.selectElement(element, false); this.param[obligation] = element.value; } } else { if (element.checked == "checked" || element.checked) { this.param[element.name] = element.value; } } }; this.onValueElement = function(element) { var obligation = this.obligation(element); if (obligation != false) { if (element.value.length == 0) { this.selectElement(element, true); this.error = true; } else { this.selectElement(element, false); this.param[obligation] = element.value; } } else { this.param[element.name] = element.value; } }; this.obligation = function(element) { if (element.name.substring(0, 1) != "!") { return false; } return element.name; }; this.selectElement = function(element, select) { }; this.param = { }; this.error = false; }; if (onSelectElement) { handler.selectElement = onSelectElement; } mksystem.form().read(node, handler); return new function() { this.param = handler.param; this.error = handler.error; }; }; this.selectElement = function(element, select) { }; this.requestResult = function(sender, args) { }; this.send = function(node, url) { var requestResult = this.requestResult; var validate = this.validate(node, this.selectElement); if (validate.error) { alert(string("formempty")); } else { mksystem.request(url, validate.param, function(sender, args) { requestResult(sender, args); mksystem.form().clear(node); } ); } return false; }; }; var primitive = new function() { this.selectElementCenter = function(element, select) { /* * */ if (select) { element.style.borderColor = "rgb(78,56,48)"; } else { element.style.borderColor = "rgb(255,255,255)"; } }; this.selectElementApart = function(element, select) { /* * */ if (select) { element.style.backgroundColor = "rgb(78,56,48)"; } else { element.style.backgroundColor = "rgb(255,255,255)"; } }; this.requestResultAlert = function(sender, args) { /* * */ if (sender.responseText == "1") { alert(string("formok")); } else { alert(string("formerror")); } }; this.link = function(node, patter, oneventhandler) { /* * Funkcja przeszukuje przekazanego noda i znajduje w nim wszystkie taki 'a' których * właściwość rel spełnia założenia patterna. * * Wybranie skojarzonego linku powoduje otwarcie strony na którą link wskazuje w * warstwie okna na stronie. */ var onclick = function() { try { mksystem.request(this.href, undefined, function(sender, args) { open( sender.responseText, oneventhandler ); } ); } catch (error) { alert(error); } return false; }; var links = node.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) { if (links[i].rel == patter) { links[i].onclick = onclick; } } }; }; return { visual: function(node) { node.onsubmit = function() { var action = new form(); var validate = action.validate(node); if (validate.error) { alert(string("formempty")); return false; } else { return true; } }; } }; }();