citysam.wiki = (function() { var _ta = null; var ajaxUrl = null; var texte = {}; return {   loadText : function (e) { var id = this.id; if (o=$("#"+citysam.vars.wiki.domIds.preview)) o.parentNode.removeChild(o); if (o=$("#"+citysam.vars.wiki.domIds.form)) {o.parentNode.removeChild(o);} citysam.wiki.removeInfoBox(); if (id) { var id = id.substr(citysam.vars.wiki.domIds.edit_link.length); if ($("#"+citysam.vars.wiki.domIds.content + id) && $("#"+citysam.vars.wiki.domIds.content + id).style.display == "none") { $("#"+citysam.vars.wiki.domIds.content + id).style.display = ""; $("#"+citysam.vars.wiki.domIds.editbox + id).style.display = "none"; $("#"+citysam.vars.wiki.domIds.editbox + id).parentNode.removeChild($("#"+citysam.vars.wiki.domIds.editbox + id)); } else { if (_ta != id) { if ($("#"+citysam.vars.wiki.domIds.content + _ta)) $("#"+citysam.vars.wiki.domIds.content + _ta).style.display = ""; if ($("#"+citysam.vars.wiki.domIds.editbox + _ta)) { $("#"+citysam.vars.wiki.domIds.editbox + _ta).style.display = "none"; $("#"+citysam.vars.wiki.domIds.editbox + _ta).parentNode.removeChild($("#"+citysam.vars.wiki.domIds.editbox + _ta)); } } _ta = id; if ($("#"+citysam.vars.wiki.domIds.editbox + id)) { $("#"+citysam.vars.wiki.domIds.content + id).style.display = "none"; var editDiv = $("#"+citysam.vars.wiki.domIds.editbox + id); editDiv.style.display = ""; citysam.wiki.showForm("edit", editDiv); } else { var tstr = "ac=get&id=" + id; citysam.gui.showWI(); pmAj = new csAjax(false); pmAj.getData(ajaxUrl, tstr, function(e) {var oe=e; var oid = id; citysam.wiki.showText(oid,oe);}); } } return false; } },   showText : function(id, e) { citysam.gui.hideWI(); size = $("#"+citysam.vars.wiki.domIds.content + id).offsetHeight - 2; $("#"+citysam.vars.wiki.domIds.content + id).style.display = "none"; var editDiv = document.createElement("div"); editDiv.id = citysam.vars.wiki.domIds.editbox + id; editDiv.className = citysam.vars.wiki.domIds.editboxClass; var area = document.createElement("textarea"); editDiv.appendChild(area); var f = citysam.wiki.showForm("edit", editDiv); $("#"+citysam.vars.wiki.domIds.content + id).parentNode.insertBefore(editDiv, $("#"+citysam.vars.wiki.domIds.content + id)); areaheight = size - f.offsetHeight; area.style.height = areaheight + "px"; citysam.DOM.bindEvent("onkeyup", area, function(e) { var o = area; var minsize = areaheight; if (area._t) window.clearTimeout(area._t); area._t=window.setTimeout(function() {citysam.wiki.resizeTextArea(o, minsize);},100); }); var rd = e.getElementsByTagName("texts")[0]; if (!rd) return false; tid = rd.getElementsByTagName("id")[0].firstChild.nodeValue; var s = null, c = null; if (tid == id) { var t = rd.getElementsByTagName("text")[0].firstChild.nodeValue; if ($("#"+citysam.vars.wiki.domIds.editbox+id)) $("#"+citysam.vars.wiki.domIds.editbox+id).getElementsByTagName("textarea")[0].value = t; if (rd.getElementsByTagName("changed")[0]) s = rd.getElementsByTagName("changed")[0].firstChild.nodeValue; if (rd.getElementsByTagName("checked")[0]) c = rd.getElementsByTagName("checked")[0].firstChild.nodeValue; } citysam.wiki.resizeTextArea(area, areaheight); citysam.wiki.showInfoBox(id,s,c); }, showForm : function(t,o, pid) { if (t=="edit") { var form = document.createElement("div"); form.id = citysam.vars.wiki.domIds.form; var button = document.createElement("button"); button.appendChild(document.createTextNode(citysam.language.wiki.form.buttonPreview)); var chk = document.createElement("input"); chk.type = "checkbox"; chk.id = "chk"; chk.value = "1"; var lab = document.createElement("label"); var f = document.createAttribute("for"); f.nodeValue = "chk"; lab.id = "lchk"; lab.setAttributeNode(f); lab.appendChild(document.createTextNode(citysam.language.wiki.form.labelAgb)); form.appendChild(chk); form.appendChild(lab); form.innerHTML += "<br/>"; form.appendChild(button); citysam.DOM.bindEvent("onclick", button, function(e) { var _id = o.id.substr(citysam.vars.wiki.domIds.editbox.length); var _agb = $("#chk"); var _form = form; var _area = o.getElementsByTagName("textarea")[0]; if (!_agb.checked) { var l = $("#lchk"); l.style.color = "#DF2121"; l.style.fontWeight = "bold"; citysam.wiki.showError(citysam.language.wiki.errorMsg.noAGB, _form); } else if (_area.value.length == 0) { citysam.wiki.showError(citysam.language.wiki.errorMsg.noText, _form); } else if (_area.value.length <= 150) { citysam.wiki.showError(citysam.language.wiki.errorMsg.shortText, _form); } else { citysam.wiki.sendPreview(_id, o); } }); o.appendChild(form); return form; } else if (t=="save") { var id = o.id.substr(citysam.vars.wiki.domIds.editbox.length); var form = document.createElement("div"); form.id = citysam.vars.wiki.domIds.form; var save = document.createElement("button"); save.id = citysam.vars.wiki.domIds.saveButton+id; save.appendChild(document.createTextNode(citysam.language.wiki.form.buttonSave)); form.appendChild(save); citysam.DOM.bindEvent("onclick", save, function(e) {var oe=e; var oid = id; var pre = pid; citysam.wiki.savePreview(oid, pre, oe);}); var back = document.createElement("button"); back.id = citysam.vars.wiki.domIds.backButton+id; back.appendChild(document.createTextNode(citysam.language.wiki.form.buttonBack)); form.appendChild(back); citysam.DOM.bindEvent("onclick", back, function(e) { if($("#"+citysam.vars.wiki.domIds.content+id)) $("#"+citysam.vars.wiki.domIds.content+id).style.display = "none"; if($("#"+citysam.vars.wiki.domIds.editbox+id)) $("#"+citysam.vars.wiki.domIds.editbox+id).style.display = ""; if (o=$("#"+citysam.vars.wiki.domIds.form)) {o.parentNode.removeChild(o);} if (o=$("#error")) {o.parentNode.removeChild(o);} citysam.wiki.showForm("edit", $("#"+citysam.vars.wiki.domIds.editbox+id)); citysam.wiki.showInfoBox(id); }); o.appendChild(form); } },   sendPreview : function(id, e) { var text = $("#"+citysam.vars.wiki.domIds.editbox+id).getElementsByTagName("textarea")[0].value; var ts = new Date(); var tstr = "sc=&" + "tt=" + ts.getTime() + "&" + "ag=1&" + "ac=preview&" + "id=" + id + "&" + "te=" + text; citysam.gui.showWI(); pmAj = new csAjax(false); pmAj.getData(ajaxUrl, tstr, function(e) {var oe=e; var oid = id; citysam.wiki.showPreview(oid,oe);}); },   showPreview : function(id,e) { citysam.gui.hideWI(); var rd = e.getElementsByTagName("texts")[0]; if (!rd) { var rd = e.getElementsByTagName("error")[0]; if (rd) { citysam.wiki.showError(rd.firstChild.nodeValue, $("#"+citysam.vars.wiki.domIds.form)); } return; } else { if (o=$("#"+citysam.vars.wiki.domIds.form)) {o.parentNode.removeChild(o);} var tid = rd.getElementsByTagName("id")[0].firstChild.nodeValue; var pid = rd.getElementsByTagName("pid")[0].firstChild.nodeValue; if (tid == id) { t = rd.getElementsByTagName("text")[0].firstChild.nodeValue; } if ($("#"+citysam.vars.wiki.domIds.content+id)) { $("#"+citysam.vars.wiki.domIds.editbox+id).style.display = "none"; var o = $("#"+citysam.vars.wiki.domIds.content+id); o.innerHTML = t + "<br/>"; citysam.wiki.showForm("save", o, pid); $("#"+citysam.vars.wiki.domIds.content+id).style.display = ""; citysam.wiki.removeInfoBox(); if ($("#"+citysam.vars.wiki.domIds.preview)) { var previewInfo = $("#"+citysam.vars.wiki.domIds.preview); previewInfo.style.display = ""; } else { var previewInfo = document.createElement("div"); previewInfo.id = citysam.vars.wiki.domIds.preview; previewInfo.className = citysam.vars.wiki.domIds.infoClass; var previewInfo2 = document.createElement("div"); previewInfo2.className = citysam.vars.wiki.domIds.infoInnerClass; previewInfo2.appendChild(document.createTextNode(citysam.language.wiki.dialog.preview)); previewInfo.appendChild(previewInfo2); o.insertBefore(previewInfo, o.firstChild); } citysam.wiki.scrollIntoView($("#"+citysam.vars.wiki.domIds.complete_sight+id), -15); } } },   savePreview : function(id1, id2, e) { var tstr = "ac=save&id=" + id1 + "&te=" + id2; citysam.gui.showWI(); pmAj = new csAjax(false); pmAj.getData(ajaxUrl, tstr, function(e) {var oe=e; var oid = id1; citysam.wiki.savePreviewDone(oid,oe);}); _ta = null; },   savePreviewDone : function(id,e) { citysam.gui.hideWI(); $("#"+citysam.vars.wiki.domIds.preview).style.display = "none"; if (success = e.getElementsByTagName("success").item(0)) { var o = $("#"+citysam.vars.wiki.domIds.form); citysam.wiki.showSuccess(success.firstChild.nodeValue, o); o.parentNode.removeChild(o); if (o=$("#error")) o.parentNode.removeChild(o); } if (error = e.getElementsByTagName("error").item(0)) { $("#"+citysam.vars.wiki.domIds.content+id).style.display = "none"; $("#"+citysam.vars.wiki.domIds.editbox+id).style.display = ""; citysam.wiki.showForm("edit", $("#"+citysam.vars.wiki.domIds.editbox+id)); citysam.wiki.showError(error.firstChild.nodeValue, $("#"+citysam.vars.wiki.domIds.form)); } },   showInfoBox : function(id, s, c) { var p = citysam.gui.getEPosWH($("#"+citysam.vars.wiki.domIds.editbox + id)); var info = document.createElement("div"); info.id = "infoce1a"; info.className = citysam.vars.wiki.domIds.infoboxClass; if (s) { var sb = document.createElement("div"); sb.id = citysam.vars.wiki.domIds.infoLastChanged; sb.appendChild(document.createTextNode(citysam.language.wiki.infobox.lastChanged.replace(/%date%/g, s))); info.appendChild(sb); } else if (c) { var cb = document.createElement("div"); cb.id = citysam.vars.wiki.domIds.infoLastChecked; cb.appendChild(document.createTextNode(citysam.language.wiki.infobox.lastChecked.replace(/%date%/g, c))); info.appendChild(cb); } var inner = '<h3>'+citysam.language.wiki.infobox.infoheader+'</h3>'+citysam.language.wiki.infobox.infocontent+ '<h3>'+citysam.language.wiki.infobox.formatierungheader+'</h3>'+citysam.language.wiki.infobox.formatierungcontent+ '<ul>'; for (var i in citysam.language.wiki.infobox.formatierungen) inner += '<li>'+citysam.language.wiki.infobox.formatierungen[i].title+'<br/>'+citysam.language.wiki.infobox.formatierungen[i].desc+'</li>'; inner += '</ul><h3>'+citysam.language.wiki.infobox.howtoheader+'</h3>'+citysam.language.wiki.infobox.howtocontent; var innerDiv = document.createElement("div"); innerDiv.className = citysam.vars.wiki.domIds.infoboxInnerClass; innerDiv.innerHTML = inner; info.appendChild(innerDiv); document.getElementsByTagName("body")[0].appendChild(info); if (sb) citysam.gui.addShadow(sb,5,8500,info); if (cb) citysam.gui.addShadow(cb,5,8500,info); citysam.gui.addShadow(innerDiv,5,8500,info); var y = p.y - 28; var x = p.x + $("#"+citysam.vars.wiki.domIds.editbox + id).offsetWidth + 5; info.style.left = x + "px"; info.style.top = y + "px"; citysam.DOM.bindEvent("onscroll", window, function(e) {var o = info;var miny = y;citysam.wiki.moveVertical(o, miny);}, "sc"); },   removeInfoBox : function() { var info = $("#infoce1a"); if (info) { citysam.gui.rmShadow(info); info.parentNode.removeChild(info); } },   showError : function(text, e) { var id = "error"; if (!$("#"+id)) { var error = document.createElement("div"); error.id = id; error.className = citysam.vars.wiki.domIds.errorClass; var errorInner = document.createElement("div"); errorInner.className = citysam.vars.wiki.domIds.errorInnerClass; errorInner.appendChild(document.createTextNode(text)); error.appendChild(errorInner); } else { var error = $("#"+id); var errorInner = error.getElementsByTagName("div")[0]; errorInner.innerHTML = ""; errorInner.appendChild(document.createTextNode(text)); } e.parentNode.insertBefore(error, e); if (error._timeout) { window.clearTimeout(error._timeout); } },   showSuccess : function(text, e) { var id = "succ"; if (!$("#"+id)) { var success = document.createElement("div"); success.id = id; success.className = citysam.vars.wiki.domIds.successClass; var successInner = document.createElement("div"); successInner.className = citysam.vars.wiki.domIds.successInnerClass; successInner.appendChild(document.createTextNode(text)); success.appendChild(successInner); } else { var success = $("#"+id); var successInner = success.getElementsByTagName("div")[0]; successInner.innerHTML = ""; successInner.appendChild(document.createTextNode(text)); } success.style.marginBottom = "10px"; e.parentNode.insertBefore(success, e); if (success._timeout) { window.clearTimeout(success._timeout); } },   moveVertical : function(o, miny) { var y = 0; if (!miny) miny = 0; var wDim = citysam.gui.getWinDim(); var eDim = citysam.gui.getEPosWH(o); if (wDim["y"] + 15 < miny) var wy = miny; else var wy = wDim["y"] + 15; if (o && !isNaN(eDim["y"]) && wy != eDim["y"]) { var diff = Math.abs(wy - eDim["y"]); y = eDim["y"] + (wy - eDim["y"]) / diff * Math.max(1, Math.round(diff / 3)); o.style.top = y + "px"; if (o._move) window.clearTimeout(o._move); o._move = window.setTimeout(function() {var _o = o; var _miny = miny; citysam.wiki.moveVertical(_o,_miny)}, 10); } },   scrollIntoView : function(o, offset) { if (!offset) offset = 0; var wDim = citysam.gui.getWinDim(); var eDim = citysam.gui.getEPosWH(o); var wy = eDim["y"] + offset; if (wy != wDim["y"]) { var diff = Math.abs(wy - wDim["y"]); var y = (wy - wDim["y"]) / diff * Math.max(1, Math.round(diff / 3)); window.scrollBy(0,y); if (o._move) window.clearTimeout(o._move); o._move = window.setTimeout(function() {var _o = o; var _offset = offset; citysam.wiki.scrollIntoView(_o,_offset)}, 10); } },   resizeTextArea : function(o, minsize) { var width = o.offsetWidth; if (hiddendiv = $("#"+citysam.vars.wiki.domIds.hiddenDiv)) { hiddendiv.innerHTML = ""; } else { var hiddendiv = document.createElement("div"); hiddendiv.id = citysam.vars.wiki.domIds.hiddenDiv; document.getElementsByTagName("body")[0].appendChild(hiddendiv); } hiddendiv.style.width = (width-38) + "px"; var text = o.value; hiddendiv.appendChild(document.createTextNode(text)); text = hiddendiv.innerHTML; text = text.replace(/(\015\012)|(\015)|(\012)|(\n)/g, '<br/>'); hiddendiv.innerHTML = text; var height = hiddendiv.offsetHeight + 40; if (height < minsize) height = minsize; o.style.height = height + "px"; hiddendiv.style.width = (width - 8) + "px"; o.style.height = height + "px"; },   init : function(url) { var l = $(".ece1a"); ajaxUrl = url; if (l) { for (var i = 0;i<l.length;i++) { citysam.DOM.bindEvent("onclick", l[i], citysam.wiki.loadText); } } } } })(); 