{"id":2442,"date":"2026-06-08T13:08:14","date_gmt":"2026-06-08T13:08:14","guid":{"rendered":"https:\/\/hullsiil.ee\/create-your-own-lollipop\/"},"modified":"2026-07-21T20:21:25","modified_gmt":"2026-07-21T20:21:25","slug":"create-your-own-lollipop","status":"publish","type":"page","link":"https:\/\/hullsiil.ee\/en\/create-your-own-lollipop\/","title":{"rendered":"Create your own photo lollipop"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">Create your own photo lollipop<\/h1><\/div><\/div>\n\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\">        <div id=\"liu1-wrap\" class=\"liu-wrap\">\n    <div id=\"liu1-step1\">\n      <form id=\"liu1-form\">\n        <input type=\"hidden\" id=\"liu1-nonce\" name=\"liu1_nonce\" value=\"81fdbd83f6\">\n\n        <div class=\"liu-row\">\n          <label for=\"liu1-qty\">Quantity <span class=\"liu-req\">*<\/span><\/label>\n          <input type=\"number\" id=\"liu1-qty\" required min=\"50\" placeholder=\"min 50 pcs\">\n          <span class=\"liu-hint\">50\u201399 pcs \u2014 \u20ac2.20\/pc &nbsp;|&nbsp; 100\u2013499 pcs \u2014 \u20ac2.00\/pc &nbsp;|&nbsp; 500+ pcs \u2014 \u20ac1.80\/pc<\/span>\n        <\/div>\n\n        <div class=\"liu-row\">\n          <label for=\"liu1-taste\">Flavour <span class=\"liu-req\">*<\/span><\/label>\n          <select id=\"liu1-taste\" required>\n            <option value=\"\">Choose flavour<\/option>\n            <option value=\"sidrun\">Lemon<\/option>\n            <option value=\"vaarikas\">Raspberry<\/option>\n          <\/select>\n        <\/div>\n\n        <div class=\"liu-row\">\n          <label for=\"liu1-color\">Background colour<\/label>\n          <select id=\"liu1-color\">\n            <option value=\"naturaalvalge\">Natural white (default)<\/option>\n            <option value=\"helekollane\">Light yellow<\/option>\n            <option value=\"heleroosa\">Light pink<\/option>\n          <\/select>\n          <span class=\"liu-hint\">If you leave the colour unselected, the lollipop will have a natural white background. This works best to make your image stand out.<\/span>\n        <\/div>\n\n        <div class=\"liu-section-title\">Images<\/div>\n        <span class=\"liu-hint\" style=\"display:block;margin-bottom:.75rem;\">There is no limit to the number of images.<\/span>\n        <div id=\"liu1-items\"><\/div>\n        <button type=\"button\" class=\"liu-btn liu-btn-add\" onclick=\"liuAddItem_liu1()\">+ Add another image<\/button>\n        <span class=\"liu-hint\" style=\"margin-bottom:1rem;display:block;\">For different images, please specify the quantity for each one.<\/span>\n\n        <div class=\"liu-section-title\">Back label<\/div>\n        <span class=\"liu-hint\" style=\"display:block;margin-bottom:.75rem;\">All lollipops have the same label.<\/span>\n        <div class=\"liu-row liu-row-check\">\n          <label class=\"liu-check-label\">\n            <input type=\"radio\" name=\"liu1_kleebis\" value=\"erikujundus\" id=\"liu1-kleebis-eri\">\n            I want a custom back label          <\/label>\n          <span class=\"liu-hint\" style=\"padding:0 14px 6px;\">Please add your design \/ logo \/ QR code link \/ slogan etc. in the comment box below.<\/span>\n          <label class=\"liu-check-label\">\n            <input type=\"radio\" name=\"liu1_kleebis\" value=\"standard\" id=\"liu1-kleebis-std\" checked>\n            I want a standard label (ingredients + expiry date)          <\/label>\n        <\/div>\n        <div class=\"liu-row\">\n          <label for=\"liu1-kleebis-comment\">Label comment<\/label>\n          <textarea id=\"liu1-kleebis-comment\" rows=\"2\" placeholder=\"Add design info, logo link, QR code link, slogan etc.\"><\/textarea>\n        <\/div>\n        <div class=\"liu-row\" id=\"liu1-kleebis-upload-row\" style=\"display:none;\">\n          <label>Label design<\/label>\n          <div class=\"liu-drop\" style=\"cursor:pointer;\" onclick=\"document.getElementById('liu1-kleebis-file').click()\">\n            <p class=\"liu-drop-title\" id=\"liu1-kleebis-file-label\">Upload design<\/p>\n            <p class=\"liu-drop-sub\">JPG or PNG format<\/p>\n            <input type=\"file\" id=\"liu1-kleebis-file\" accept=\".jpg,.jpeg,.png\" style=\"display:none;\">\n          <\/div>\n        <\/div>\n\n        <div class=\"liu-section-title\">Lollipop stand<\/div>\n        <div class=\"liu-row liu-row-check\">\n          <label class=\"liu-check-label\">\n            <input type=\"radio\" name=\"liu1_alus\" value=\"jah\" id=\"liu1-alus-jah\">\n            Yes, I want a wooden stand for five lollipops (\u20ac8, for larger quantities please note in comments)          <\/label>\n          <label class=\"liu-check-label\">\n            <input type=\"radio\" name=\"liu1_alus\" value=\"ei\" id=\"liu1-alus-ei\" checked>\n            No stand needed          <\/label>\n          <label class=\"liu-check-label\">\n            <input type=\"radio\" name=\"liu1_alus\" value=\"erisoov\" id=\"liu1-alus-eri\">\n            I have a special request!          <\/label>\n        <\/div>\n        <div class=\"liu-row\">\n          <label for=\"liu1-alus-comment\">Stand comment<\/label>\n          <textarea id=\"liu1-alus-comment\" rows=\"2\" placeholder=\"Enter larger quantity or special request here...\"><\/textarea>\n        <\/div>\n\n        <div class=\"liu-section-title\">Desired delivery date<\/div>\n        <div class=\"liu-row\">\n          <label for=\"liu1-date\">Preferred date <span class=\"liu-req\">*<\/span><\/label>\n          <input type=\"date\" id=\"liu1-date\" required min=\"2026-08-09\">\n          <span class=\"liu-hint\">If you need your order sooner, write to <a href=\"mailto:siil@hullsiil.ee\">siil@hullsiil.ee<\/a> and we'll try to find a solution (express orders carry a 30% surcharge).<\/span>\n        <\/div>\n\n      <div id=\"liu1-form-error\" class=\"liu-msg liu-msg-error\" style=\"display:none;\"><\/div>\n        <button type=\"button\" class=\"liu-btn liu-btn-primary\" onclick=\"liuGoStep2_liu1()\">Next &rarr;<\/button>\n      <\/form>\n    <\/div>\n\n    <div id=\"liu1-step2\" style=\"display:none;\">\n      <div class=\"liu-section-title\" style=\"margin-top:0\">Delivery<\/div>\n      <div class=\"liu-row\">\n        <label for=\"liu1-pakk\">Parcel machine address <span class=\"liu-req\">*<\/span><\/label>\n        <input type=\"text\" id=\"liu1-pakk\" placeholder=\"e.g. Omniva Tallinn \u00dclemiste City\">\n        <span class=\"liu-hint\">Delivery fee is \u20ac5. Free delivery for orders over 100 lollipops.<\/span>\n      <\/div>\n      <div class=\"liu-section-title\">Contact details<\/div>\n      <div class=\"liu-row\">\n        <label for=\"liu1-name\">Name <span class=\"liu-req\">*<\/span><\/label>\n        <input type=\"text\" id=\"liu1-name\" placeholder=\"Jane Smith\">\n      <\/div>\n      <div class=\"liu-row\">\n        <label for=\"liu1-phone\">Phone <span class=\"liu-req\">*<\/span><\/label>\n        <input type=\"tel\" id=\"liu1-phone\" placeholder=\"+372 5123 4567\">\n      <\/div>\n      <div class=\"liu-row\">\n        <label for=\"liu1-email\">E-mail address <span class=\"liu-req\">*<\/span><\/label>\n        <input type=\"email\" id=\"liu1-email\" placeholder=\"jane@example.com\">\n      <\/div>\n      <div class=\"liu-row liu-row-check\">\n        <label class=\"liu-check-label\">\n          <input type=\"radio\" name=\"liu1_type\" value=\"eraisik\" id=\"liu1-type-era\" checked onchange=\"liuToggleCompany_liu1()\">\n          Private person        <\/label>\n        <label class=\"liu-check-label\" style=\"margin-top:8px;\">\n          <input type=\"radio\" name=\"liu1_type\" value=\"ettevote\" id=\"liu1-type-ette\" onchange=\"liuToggleCompany_liu1()\">\n          Company        <\/label>\n      <\/div>\n      <div id=\"liu1-company-fields\" style=\"display:none;\">\n        <div class=\"liu-row\">\n          <label for=\"liu1-company\">Company name <span class=\"liu-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"liu1-company\" placeholder=\"Example Ltd\">\n        <\/div>\n        <div class=\"liu-row\">\n          <label for=\"liu1-address\">Address <span class=\"liu-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"liu1-address\" placeholder=\"Example Street 1, Tallinn\">\n        <\/div>\n        <div class=\"liu-row\">\n          <label for=\"liu1-regnr\">Reg. no. <span class=\"liu-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"liu1-regnr\" placeholder=\"12345678\">\n        <\/div>\n        <div class=\"liu-row\">\n          <label for=\"liu1-kmrk\">VAT no.<\/label>\n          <input type=\"text\" id=\"liu1-kmrk\" placeholder=\"EE123456789\">\n        <\/div>\n      <\/div>\n      <div id=\"liu1-step2-error\" class=\"liu-msg liu-msg-error\" style=\"display:none;\"><\/div>\n      <div style=\"display:flex;gap:10px;margin-top:6px;\">\n        <button type=\"button\" class=\"liu-btn\" style=\"flex:0 0 auto;\" onclick=\"liuGoBack_liu1()\">&larr; Back<\/button>\n        <button type=\"button\" class=\"liu-btn liu-btn-primary\" style=\"flex:1;\" id=\"liu1-submit\" onclick=\"liuSubmit_liu1()\">Send order inquiry<\/button>\n      <\/div>\n    <\/div>\n\n    <div id=\"liu1-success\" style=\"display:none;\" class=\"liu-msg liu-msg-success\">\n      <strong>Inquiry received!<\/strong><br>\n      Thank you &mdash; we'll review your images and be in touch shortly.    <\/div>\n    <\/div><!-- \/wrap -->\n\n    <style>\n    #liu-wrap{max-width:580px;font-family:sans-serif;font-size:15px;color:#222;margin:0 auto;text-align:center}\n    .liu-row{margin-bottom:1.1rem;display:flex;flex-direction:column;gap:5px;align-items:center}\n    .liu-row label{font-weight:500;font-size:14px !important;text-align:center;width:100%}\n    .liu-row-check{align-items:flex-start;text-align:left;gap:0}\n    .liu-check-label{display:flex;align-items:flex-start;gap:8px;font-size:14px;font-weight:400;cursor:pointer;text-align:left;padding:5px 0;width:100%;box-sizing:border-box}\n    .liu-check-label input{margin-top:3px;flex-shrink:0;accent-color:#c8a96e}\n    .liu-req{color:#e53}\n    .liu-row input[type=text],.liu-row input[type=email],.liu-row input[type=tel],.liu-row input[type=date],.liu-row input[type=number],.liu-row textarea,.liu-row select{border:2px solid #e0c9a6;border-radius:11px;padding:8px 12px;font-size:14px;width:100%;box-sizing:border-box;text-align:center;background:#fffdf8;font-family:\"Plus Jakarta Sans\"}\n    .liu-row textarea{resize:vertical;text-align:left}\n    .liu-row select{cursor:pointer}\n    .liu-hint{font-size:12px !important;color:#888;margin:0;text-align:center;line-height:1.5}\n    .liu-hint a{color:#888}\n    .liu-section-title{font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.07em;color:#222;margin:1.5rem 0 .75rem;border-top:2px solid #f0e8d8;padding-top:1.25rem;text-align:center}\n    .liu-item{border:2px solid #e0c9a6;border-radius:12px;padding:1.25rem 1.25rem 1rem;margin-bottom:1.25rem;background:#fffdf8;position:relative}\n    .liu-item-title{font-weight:600;font-size:14px;color:#555;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}\n    .liu-item-remove{position:absolute;top:10px;right:12px;background:none;border:none;font-size:20px;color:#bbb;cursor:pointer;line-height:1;padding:0}\n    .liu-item-remove:hover{color:#e53}\n    .liu-drop{border:2px dashed #e0c9a6;border-radius:10px;padding:1.2rem;text-align:center;cursor:pointer;background:#fafafa;transition:background .15s;width:100%;box-sizing:border-box}\n    .liu-drop:hover{background:#f0f0f0}\n    .liu-drop input[type=file]{display:none}\n    .liu-drop-title{font-weight:500;margin:4px 0;font-size:15px}\n    .liu-drop-sub{font-size:13px;color:#888;margin:0}\n    .liu-editor{width:100%;display:none}\n    .liu-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:13px;color:#555;margin-bottom:10px;justify-content:center}\n    .liu-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:4px;vertical-align:middle}\n    .liu-dot-green{background:#4caf50}\n    .liu-dot-orange{border:2px dashed #ff9800}\n    .liu-dot-dark{background:rgba(0,0,0,.35)}\n    .liu-size-warn{background:#fff3e0;color:#e65100;border-radius:7px;padding:6px 12px;font-size:13px;margin-bottom:8px;text-align:center;display:none}\n    .liu-canvas-wrap{display:flex;justify-content:center;margin-bottom:8px}\n    .liu-canvas{border-radius:8px;cursor:crosshair;max-width:100%}\n    .liu-zoom-row{display:flex;align-items:center;gap:10px;max-width:300px;margin:6px auto 10px;font-size:13px;color:#555}\n    .liu-zoom-row input{flex:1}\n    .liu-btn-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:10px}\n    .liu-item-fields{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}\n    .liu-item-fields .liu-field{flex:1;min-width:140px;display:flex;flex-direction:column;gap:4px;text-align:left}\n    .liu-item-fields .liu-field label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#000;font-family:\"Plus Jakarta Sans\"}\n    .liu-item-fields .liu-field input,.liu-item-fields .liu-field select{border:2px solid #e0c9a6;border-radius:11px;padding:7px 12px;font-size:14px;width:100%;box-sizing:border-box;background:#fffdf8;text-align:center;font-family:\"Plus Jakarta Sans\"}\n    .liu-btn{padding:8px 18px;border-radius:7px;border:2px solid #ccc;background:#fff;cursor:pointer;font-size:14px;transition:background .12s;font-family:\"Plus Jakarta Sans\";font-weight:600}\n    .liu-btn:hover{background:#f5f5f5}\n    .liu-btn-primary{background:#222;color:#fff;border:2px solid #222;font-size:15px;padding:10px 24px;margin-top:6px;width:100%;border-radius:30px;letter-spacing:.08em;text-transform:uppercase;font-family:\"Plus Jakarta Sans\"}\n    .liu-btn-primary:hover{background:#444}\n    .liu-btn-primary:disabled{opacity:.5;cursor:default}\n    .liu-btn-add{width:100%;margin-bottom:.5rem;border:2px dashed #c8a96e;color:#c8a96e;background:transparent;border-radius:10px;padding:10px;font-size:14px}\n    .liu-btn-add:hover{background:#fdf6ec}\n    .liu-msg{border-radius:8px;padding:14px 18px;margin-top:12px;font-size:14px;line-height:1.5;text-align:center}\n    .liu-msg-error{background:#fdecea;color:#b71c1c}\n    .liu-msg-success{background:#e8f5e9;color:#1b5e20}\n    <\/style>\n\n    <script>\n    (function(){\n      var UID='liu1';\n      function g(id){return document.getElementById(UID+'-'+id);}\n      var SIZE=360,cx=180,cy=180,bleedR=162,printR=Math.round(162*3.3\/3.5);\n      var itemCount=0,items={};\n      var T={\"qty_label\":\"Quantity\",\"qty_placeholder\":\"min 50 pcs\",\"qty_hint\":\"50\\u201399 pcs \\u2014 \\u20ac2.20\\\/pc &nbsp;|&nbsp; 100\\u2013499 pcs \\u2014 \\u20ac2.00\\\/pc &nbsp;|&nbsp; 500+ pcs \\u2014 \\u20ac1.80\\\/pc\",\"taste_label\":\"Flavour\",\"taste_placeholder\":\"Choose flavour\",\"taste_lemon\":\"Lemon\",\"taste_raspberry\":\"Raspberry\",\"color_label\":\"Background colour\",\"color_natural\":\"Natural white (default)\",\"color_yellow\":\"Light yellow\",\"color_pink\":\"Light pink\",\"color_hint\":\"If you leave the colour unselected, the lollipop will have a natural white background. This works best to make your image stand out.\",\"section_images\":\"Images\",\"images_hint\":\"There is no limit to the number of images.\",\"add_image\":\"+ Add another image\",\"images_qty_hint\":\"For different images, please specify the quantity for each one.\",\"section_label\":\"Back label\",\"label_hint\":\"All lollipops have the same label.\",\"label_custom\":\"I want a custom back label\",\"label_custom_hint\":\"Please add your design \\\/ logo \\\/ QR code link \\\/ slogan etc. in the comment box below.\",\"label_standard\":\"I want a standard label (ingredients + expiry date)\",\"label_comment\":\"Label comment\",\"label_comment_ph\":\"Add design info, logo link, QR code link, slogan etc.\",\"label_file\":\"Label design\",\"label_file_title\":\"Upload design\",\"label_file_sub\":\"JPG or PNG format\",\"section_stand\":\"Lollipop stand\",\"stand_yes\":\"Yes, I want a wooden stand for five lollipops (\\u20ac8, for larger quantities please note in comments)\",\"stand_no\":\"No stand needed\",\"stand_custom\":\"I have a special request!\",\"stand_comment\":\"Stand comment\",\"stand_comment_ph\":\"Enter larger quantity or special request here...\",\"section_date\":\"Desired delivery date\",\"date_label\":\"Preferred date\",\"date_hint\":\"If you need your order sooner, write to <a href=\\\"mailto:siil@hullsiil.ee\\\">siil@hullsiil.ee<\\\/a> and we'll try to find a solution (express orders carry a 30% surcharge).\",\"next\":\"Next &rarr;\",\"section_delivery\":\"Delivery\",\"parcel_label\":\"Parcel machine address\",\"parcel_ph\":\"e.g. Omniva Tallinn \\u00dclemiste City\",\"parcel_hint\":\"Delivery fee is \\u20ac5. Free delivery for orders over 100 lollipops.\",\"section_contact\":\"Contact details\",\"name_label\":\"Name\",\"name_ph\":\"Jane Smith\",\"phone_label\":\"Phone\",\"phone_ph\":\"+372 5123 4567\",\"email_label\":\"E-mail address\",\"email_ph\":\"jane@example.com\",\"private\":\"Private person\",\"company\":\"Company\",\"company_name\":\"Company name\",\"company_name_ph\":\"Example Ltd\",\"address\":\"Address\",\"address_ph\":\"Example Street 1, Tallinn\",\"regnr\":\"Reg. no.\",\"regnr_ph\":\"12345678\",\"kmrk\":\"VAT no.\",\"kmrk_ph\":\"EE123456789\",\"back\":\"&larr; Back\",\"submit\":\"Send order inquiry\",\"success_title\":\"Inquiry received!\",\"success_body\":\"Thank you &mdash; we'll review your images and be in touch shortly.\",\"img_title\":\"Image\",\"img_upload\":\"Upload your image\",\"img_sub\":\"JPG or PNG &mdash; drag here or click to browse\",\"img_print\":\"Print area (safe zone)\",\"img_bleed\":\"Bleed zone, trimmed\",\"img_outside\":\"Not printed\",\"img_warn\":\"? Image may be too small for quality printing. Please upload a larger file.\",\"img_size\":\"Drag to resize left or right\",\"img_scale\":\"Size\",\"img_reset\":\"Reset position\",\"img_change\":\"Change image\",\"img_save\":\"Save preview\",\"img_qty\":\"Quantity for this image\",\"remove\":\"Remove\",\"err_no_image\":\"Please add at least one image.\",\"err_upload\":\"Image %s: please upload an image.\",\"err_qty\":\"Please specify the quantity for each image when uploading multiple.\",\"err_fields\":\"Please fill in all required fields.\",\"sending\":\"Sending\\\\u2026\",\"err_network\":\"Network error. Please try again.\",\"err_generic\":\"Something went wrong. Please try again.\",\"en\":true};\n\n      window['liuAddItem_'+UID]=function(){\n        itemCount++;\n        var id=itemCount;\n        items[id]={img:null,imgX:cx,imgY:cy,zoom:1,dragging:false,lastX:0,lastY:0};\n        var removeBtn=id>1?'<button type=\"button\" class=\"liu-item-remove\" onclick=\"liuRemoveItem_'+UID+'('+id+')\" title=\"'+T.remove+'\">&times;<\/button>':'';\n        var div=document.createElement('div');\n        div.className='liu-item';div.id=UID+'-item-'+id;\n        div.innerHTML=removeBtn+\n          '<div class=\"liu-item-title\">'+T.img_title+' '+id+'<\/div>'+\n          '<div class=\"liu-drop\" id=\"'+UID+'-drop-'+id+'\" onclick=\"document.getElementById(\\''+UID+'-file-'+id+'\\').click()\">'+\n            '<p class=\"liu-drop-title\">'+T.img_upload+'<\/p>'+\n            '<p class=\"liu-drop-sub\">'+T.img_sub+'<\/p>'+\n            '<input type=\"file\" id=\"'+UID+'-file-'+id+'\" accept=\".jpg,.jpeg,.png\">'+\n          '<\/div>'+\n          '<div class=\"liu-editor\" id=\"'+UID+'-editor-'+id+'\">'+\n            '<div class=\"liu-legend\">'+\n              '<span><span class=\"liu-dot liu-dot-green\"><\/span> '+T.img_print+'<\/span>'+\n              '<span><span class=\"liu-dot liu-dot-orange\"><\/span> '+T.img_bleed+'<\/span>'+\n              '<span><span class=\"liu-dot liu-dot-dark\"><\/span> '+T.img_outside+'<\/span>'+\n            '<\/div>'+\n            '<div class=\"liu-size-warn\" id=\"'+UID+'-warn-'+id+'\">'+T.img_warn+'<\/div>'+\n            '<div class=\"liu-canvas-wrap\"><canvas class=\"liu-canvas\" id=\"'+UID+'-canvas-'+id+'\" width=\"360\" height=\"360\"><\/canvas><\/div>'+\n            '<p class=\"liu-hint\">'+T.img_size+'<\/p>'+\n            '<div class=\"liu-zoom-row\"><span>'+T.img_scale+'<\/span><input type=\"range\" id=\"'+UID+'-zoom-'+id+'\" min=\"0.05\" max=\"4\" step=\"0.01\" value=\"1\"><span id=\"'+UID+'-zoom-val-'+id+'\">100%<\/span><\/div>'+\n            '<div class=\"liu-btn-row\">'+\n              '<button type=\"button\" class=\"liu-btn\" onclick=\"liuReset_'+UID+'('+id+')\">'+T.img_reset+'<\/button>'+\n              '<button type=\"button\" class=\"liu-btn\" onclick=\"document.getElementById(\\''+UID+'-file-'+id+'\\').click()\">'+T.img_change+'<\/button>'+\n              '<button type=\"button\" class=\"liu-btn\" onclick=\"liuSave_'+UID+'('+id+')\">'+T.img_save+'<\/button>'+\n            '<\/div>'+\n          '<\/div>'+\n          '<div class=\"liu-item-fields\">'+\n            '<div class=\"liu-field\"><label>'+T.img_qty+'<\/label><input type=\"number\" id=\"'+UID+'-qty-'+id+'\" min=\"1\" placeholder=\"e.g. 50\"><\/div>'+\n          '<\/div>';\n        g('items').appendChild(div);\n        initItem(id);\n      };\n\n      function initItem(id){\n        document.getElementById(UID+'-file-'+id).addEventListener('change',function(e){var f=e.target.files[0];if(f)loadImg(id,f);});\n        var drop=document.getElementById(UID+'-drop-'+id);\n        drop.addEventListener('dragover',function(e){e.preventDefault();drop.style.background='#f0f0f0';});\n        drop.addEventListener('dragleave',function(){drop.style.background='';});\n        drop.addEventListener('drop',function(e){e.preventDefault();drop.style.background='';var f=e.dataTransfer.files[0];if(f&&f.type.startsWith('image\/'))loadImg(id,f);});\n        var canvas=document.getElementById(UID+'-canvas-'+id);\n        canvas.addEventListener('mousedown',function(e){items[id].dragging=true;items[id].lastX=e.offsetX;items[id].lastY=e.offsetY;});\n        canvas.addEventListener('touchstart',function(e){items[id].dragging=true;var t=e.touches[0];items[id].lastX=t.clientX;items[id].lastY=t.clientY;e.preventDefault();},{passive:false});\n        canvas.addEventListener('mousemove',function(e){if(!items[id]||!items[id].dragging)return;items[id].imgX+=e.offsetX-items[id].lastX;items[id].imgY+=e.offsetY-items[id].lastY;items[id].lastX=e.offsetX;items[id].lastY=e.offsetY;draw(id);});\n        canvas.addEventListener('touchmove',function(e){if(!items[id]||!items[id].dragging)return;var t=e.touches[0];items[id].imgX+=t.clientX-items[id].lastX;items[id].imgY+=t.clientY-items[id].lastY;items[id].lastX=t.clientX;items[id].lastY=t.clientY;draw(id);e.preventDefault();},{passive:false});\n        window.addEventListener('mouseup',function(){if(items[id])items[id].dragging=false;});\n        window.addEventListener('touchend',function(){if(items[id])items[id].dragging=false;});\n        document.getElementById(UID+'-zoom-'+id).addEventListener('input',function(e){items[id].zoom=parseFloat(e.target.value);document.getElementById(UID+'-zoom-val-'+id).textContent=Math.round(items[id].zoom*100)+'%';draw(id);});\n      }\n\n      function loadImg(id,file){\n        var reader=new FileReader();\n        reader.onload=function(ev){\n          var i=new Image();\n          i.onload=function(){\n            items[id].img=i;items[id].imgX=cx;items[id].imgY=cy;\n            var minDim=Math.min(i.width,i.height);\n            items[id].zoom=(bleedR*2)\/minDim;\n            var slider=document.getElementById(UID+'-zoom-'+id);\n            slider.value=Math.min(Math.max(items[id].zoom,0.05),4);\n            document.getElementById(UID+'-zoom-val-'+id).textContent=Math.round(items[id].zoom*100)+'%';\n            document.getElementById(UID+'-drop-'+id).style.display='none';\n            document.getElementById(UID+'-editor-'+id).style.display='block';\n            document.getElementById(UID+'-warn-'+id).style.display=minDim<800?'block':'none';\n            draw(id);\n          };\n          i.src=ev.target.result;\n        };\n        reader.readAsDataURL(file);\n      }\n\n      function draw(id){\n        var canvas=document.getElementById(UID+'-canvas-'+id);\n        var ctx=canvas.getContext('2d');\n        var s=items[id],img=s.img,imgX=s.imgX,imgY=s.imgY,zoom=s.zoom;\n        ctx.clearRect(0,0,SIZE,SIZE);\n        ctx.save();ctx.beginPath();ctx.arc(cx,cy,bleedR,0,Math.PI*2);ctx.clip();\n        if(img){var w=img.width*zoom,h=img.height*zoom;ctx.drawImage(img,imgX-w\/2,imgY-h\/2,w,h);}\n        ctx.restore();\n        ctx.save();ctx.beginPath();ctx.rect(0,0,SIZE,SIZE);ctx.arc(cx,cy,bleedR,0,Math.PI*2,true);ctx.fillStyle='rgba(0,0,0,0.42)';ctx.fill();ctx.restore();\n        ctx.save();ctx.beginPath();ctx.arc(cx,cy,bleedR,0,Math.PI*2);ctx.arc(cx,cy,printR,0,Math.PI*2,true);ctx.fillStyle='rgba(255,152,0,0.18)';ctx.fill();ctx.restore();\n        ctx.beginPath();ctx.arc(cx,cy,bleedR,0,Math.PI*2);ctx.setLineDash([5,4]);ctx.strokeStyle='#ff9800';ctx.lineWidth=1.5;ctx.stroke();ctx.setLineDash([]);\n        ctx.beginPath();ctx.arc(cx,cy,printR,0,Math.PI*2);ctx.strokeStyle='#4caf50';ctx.lineWidth=1.5;ctx.stroke();\n        ctx.font='10px sans-serif';ctx.textAlign='center';\n        ctx.fillStyle='rgba(255,255,255,0.85)';ctx.fillRect(cx-28,cy-printR+6,56,14);\n        ctx.fillStyle='#2e7d32';ctx.fillText(T.en?'print area':'tr\\u00fckiala',cx,cy-printR+17);\n        var la=Math.PI*0.18,lr=(printR+bleedR)\/2,lx=cx+Math.cos(la)*lr,ly=cy+Math.sin(la)*lr;\n        ctx.save();ctx.translate(lx,ly);ctx.rotate(la);ctx.fillStyle='#e65100';ctx.fillText(T.en?'bleed':'l\\u00f5ike',0,0);ctx.restore();\n      }\n\n      function cleanSnapshot(id){\n        var s=items[id],img=s.img,imgX=s.imgX,imgY=s.imgY,zoom=s.zoom;\n        var c=document.createElement('canvas');c.width=SIZE;c.height=SIZE;\n        var cc=c.getContext('2d');\n        cc.save();cc.beginPath();cc.arc(cx,cy,bleedR,0,Math.PI*2);cc.clip();\n        if(img){var w=img.width*zoom,h=img.height*zoom;cc.drawImage(img,imgX-w\/2,imgY-h\/2,w,h);}\n        cc.restore();\n        return c.toDataURL('image\/png');\n      }\n\n      window['liuReset_'+UID]=function(id){\n        items[id].imgX=cx;items[id].imgY=cy;\n        if(items[id].img){var m=Math.min(items[id].img.width,items[id].img.height);items[id].zoom=(bleedR*2)\/m;document.getElementById(UID+'-zoom-'+id).value=Math.min(Math.max(items[id].zoom,0.05),4);document.getElementById(UID+'-zoom-val-'+id).textContent=Math.round(items[id].zoom*100)+'%';}\n        draw(id);\n      };\n      window['liuSave_'+UID]=function(id){\n        var canvas=document.getElementById(UID+'-canvas-'+id);\n        var a=document.createElement('a');a.href=canvas.toDataURL('image\/png');a.download='kommi-eelvaade-'+id+'.png';a.click();\n      };\n      window['liuRemoveItem_'+UID]=function(id){\n        var el=document.getElementById(UID+'-item-'+id);if(el)el.remove();delete items[id];\n      };\n      window['liuToggleCompany_'+UID]=function(){\n        var ette=g('type-ette');\n        g('company-fields').style.display=ette.checked?'block':'none';\n      };\n      window['liuGoBack_'+UID]=function(){\n        g('step2').style.display='none';\n        g('step1').style.display='block';\n      };\n\n      window['liuGoStep2_'+UID]=function(){\n        var errEl=g('form-error');errEl.style.display='none';\n        if(!g('qty').value){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        if(!g('taste').value){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        if(!g('date').value){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        var activeIds=Object.keys(items).filter(function(id){return document.getElementById(UID+'-item-'+id);});\n        if(activeIds.length===0){errEl.textContent=T.err_no_image;errEl.style.display='block';return;}\n        for(var i=0;i<activeIds.length;i++){\n          var id=activeIds[i];\n          if(!items[id].img){errEl.textContent=T.err_upload.replace('%s',id);errEl.style.display='block';return;}\n          if(activeIds.length>1){\n            var qty=document.getElementById(UID+'-qty-'+id).value;\n            if(!qty||parseInt(qty)<1){errEl.textContent=T.err_qty;errEl.style.display='block';return;}\n          }\n        }\n        g('step1').style.display='none';\n        g('step2').style.display='block';\n      };\n\n      window['liuSubmit_'+UID]=function(){\n        var errEl=g('step2-error');errEl.style.display='none';\n        var name=g('name').value.trim();\n        var phone=g('phone').value.trim();\n        var email=g('email').value.trim();\n        var pakk=g('pakk').value.trim();\n        if(!name){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        if(!phone){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        if(!email){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        if(!pakk){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        var ette=g('type-ette').checked;\n        if(ette){\n          if(!g('company').value.trim()){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n          if(!g('address').value.trim()){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n          if(!g('regnr').value.trim()){errEl.textContent=T.err_fields;errEl.style.display='block';return;}\n        }\n        var btn=g('submit');btn.disabled=true;btn.textContent=T.sending;\n        var activeIds=Object.keys(items).filter(function(id){return document.getElementById(UID+'-item-'+id);});\n        var fd=new FormData();\n        fd.append('action','liu_submit');\n        fd.append('liu_nonce',g('nonce').value);\n        fd.append('liu_name',name);\n        fd.append('liu_phone',phone);\n        fd.append('liu_email',email);\n        fd.append('liu_pakk',pakk);\n        fd.append('liu_qty_range',g('qty').value);\n        fd.append('liu_taste',g('taste').value);\n        fd.append('liu_color',g('color').value);\n        fd.append('liu_date',g('date').value);\n        fd.append('liu_kleebis',document.querySelector('input[name='+UID+'_kleebis]:checked').value);\n        fd.append('liu_kleebis_comment',g('kleebis-comment').value);\n        fd.append('liu_alus',document.querySelector('input[name='+UID+'_alus]:checked').value);\n        fd.append('liu_alus_comment',g('alus-comment').value);\n        fd.append('liu_client_type',ette?'ettevote':'eraisik');\n        fd.append('liu_company',ette?g('company').value:'');\n        fd.append('liu_address',ette?g('address').value:'');\n        fd.append('liu_regnr',ette?g('regnr').value:'');\n        fd.append('liu_kmrk',ette?g('kmrk').value:'');\n\n        var imageMeta=[];\n        activeIds.forEach(function(id,idx){\n          var fileInput=document.getElementById(UID+'-file-'+id);\n          if(fileInput&&fileInput.files[0]){\n            fd.append('liu_img_file[]', fileInput.files[0], fileInput.files[0].name);\n          }\n          var s=items[id];\n          imageMeta.push({\n            qty: (document.getElementById(UID+'-qty-'+id)||{value:''}).value,\n            zoom: s.zoom,\n            imgX: s.imgX,\n            imgY: s.imgY\n          });\n        });\n        fd.append('liu_image_meta', JSON.stringify(imageMeta));\n\n        var kleebisFile=g('kleebis-file');\n        if(kleebisFile&&kleebisFile.files[0]){fd.append('liu_kleebis_file',kleebisFile.files[0],kleebisFile.files[0].name);}\n\n        fetch('https:\/\/hullsiil.ee\/wp-admin\/admin-ajax.php',{method:'POST',body:fd})\n          .then(function(r){return r.json();})\n          .then(function(data){\n            if(data.success){\n              g('step2').style.display='none';\n              g('success').style.display='block';\n            } else {\n              errEl.textContent=data.data||T.err_generic;\n              errEl.style.display='block';btn.disabled=false;btn.textContent=T.submit;\n            }\n          })\n          .catch(function(){errEl.textContent=T.err_network;errEl.style.display='block';btn.disabled=false;btn.textContent=T.submit;});\n      };\n\n      window['liuAddItem_'+UID]();\n\n      \/\/ Show\/hide kleebis upload based on radio\n      document.querySelectorAll('input[name='+UID+'_kleebis]').forEach(function(r){\n        r.addEventListener('change', function(){\n          var show=g('kleebis-eri').checked;\n          g('kleebis-upload-row').style.display=show?'flex':'none';\n        });\n      });\n\n      g('kleebis-file').addEventListener('change', function(){\n        var label=this.files[0]?this.files[0].name:T.label_file_title;\n        g('kleebis-file-label').textContent=label;\n      });\n    })();\n    <\/script>\n    <\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2442","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/pages\/2442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/comments?post=2442"}],"version-history":[{"count":12,"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/pages\/2442\/revisions"}],"predecessor-version":[{"id":3010,"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/pages\/2442\/revisions\/3010"}],"wp:attachment":[{"href":"https:\/\/hullsiil.ee\/en\/wp-json\/wp\/v2\/media?parent=2442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}