//milanv var answerbox = ""; var legoid = ""; var preview = ""; var currentpart = ""; function el_initvars() { legoid = document.getElementById("partlegoid"); preview = document.getElementById("partpreview"); answerbox = document.evaluate("//div[contains(concat(' ', normalize-space(@class), ' '), ' sceditor-container ')]//textarea", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA and others else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); myField.selectionStart = startPos + myValue.length; myField.selectionEnd = startPos + myValue.length; } else { myField.value += myValue; } } function normalize_number(num) { var n = Number(num); if (isNaN(n) ) { return null; } if (n < 1 || n > 1e10) { return null ; } return String(n); } var getJSON = function(url, callback) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'json; charset=utf-8'; xhr.onload = function() { var status = xhr.status; if (status === 200) { callback(null, xhr.responseText); } else { callback(status, xhr.responseText); } }; xhr.send(); }; function loadpart() { el_initvars(); var buttons = ""; var testid = normalize_number(legoid.value); if (!testid) { alert("Chybné číslo (" + legoid.value + ")" ) ; return; } getJSON("/spolek/rebrickable/pxy_el.php?id=" + testid, function(err, data) { if (err != null) { errormessage = "Chyba při hledání dílu."; switch (err) { case 400: errormessage += "
chybný požadavek"; break; case 401: errormessage += "
neoprávněný přístup"; break; case 403: errormessage += "
nemáte oprávnění k této operaci"; break; case 404: errormessage += "
díl nenalezen"; break; case 429: errormessage += "
server je přetížený, zkuste dotaz opakovat později"; break; default: errormessage += "
Neznámá chyba, kód chyby: " + String(err); break; } preview.innerHTML = errormessage; currentpart = ""; return; } var rd = JSON.parse(data); var showpart = "" + "
" + rd.part.name + "" + rd.color.name + "" + rd.part.part_num + "" + "" + rd.element_id + "" + "Bricklink
" + buttons; currentpart = "[tr][td][img width=80]" + rd.element_img_url + "[/img][/td][td]" + rd.part.name + "[/td][td]" + rd.color.name + "[/td][td]" + rd.part.part_num + "[/td][td]" + "[b]" + rd.element_id + "[/b][/td][td]" + "[url=https://www.bricklink.com/v2/search.page?q=" + rd.element_id + "]Bricklink[/url][/td]" + "[/tr]\n"; preview.innerHTML = showpart; }); } function set_status(text) { el_initvars(); preview.innerHTML = text; legoid.value=""; } function cancelpart() { el_initvars(); preview.innerHTML = ""; currentpart = ""; set_status(""); } function submitpart() { el_initvars(); if (currentpart == "") { return ; } if (answerbox == null) { set_status("Vlož do příspěvku: " + currentpart); } else { insertAtCursor(answerbox,currentpart); set_status("Díl přidán, můžeš zadat další."); } }