{"id":19,"date":"2025-10-06T02:08:00","date_gmt":"2025-10-06T02:08:00","guid":{"rendered":"https:\/\/192.168.2.69\/?page_id=19"},"modified":"2025-12-24T05:14:08","modified_gmt":"2025-12-24T05:14:08","slug":"fursuit-quote-calculator","status":"publish","type":"page","link":"https:\/\/wuskycreations.com\/?page_id=19","title":{"rendered":"Fursuit Quote Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"19\" class=\"elementor elementor-19\">\n\t\t\t\t<div class=\"elementor-element elementor-element-373e49d e-flex e-con-boxed e-con e-parent\" data-id=\"373e49d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15a98a3 elementor-widget elementor-widget-html\" data-id=\"15a98a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"quote-form\">\r\n  <h2>\u2728 Fursuit Commission Quote Estimator \u2728<\/h2>\r\n\r\n  <p style=\"margin-top: 1rem; font-style: italic; color: #555;\">\r\n    \ud83d\udc3e All suits come with outdoor feet paws only.\r\n  <\/p>\r\n\r\n  <label for=\"customerName\">\ud83d\udc64 Your Name:<\/label>\r\n  <input type=\"text\" id=\"customerName\" placeholder=\"Enter your name\" \/>\r\n\r\n  <label for=\"sonaName\">\ud83d\udc31 Sona Name:<\/label>\r\n  <input type=\"text\" id=\"sonaName\" placeholder=\"Enter your sona's name\" \/>\r\n\r\n  <label for=\"email\">\ud83d\udce7 Email Address:<\/label>\r\n  <input type=\"email\" id=\"email\" placeholder=\"you@example.com\" \/>\r\n\r\n  <label for=\"type\">\ud83c\udfad Fursuit Type:<\/label>\r\n  <select id=\"type\" onchange=\"calculateTotal()\">\r\n    <option value=\"\" disabled selected>Select a type<\/option>\r\n    <option value=\"head\">Head Only<\/option>\r\n    <option value=\"mini\">Mini Partial (+$300)<\/option>\r\n    <option value=\"fullPartial\">Full Partial (+$450)<\/option>\r\n    <option value=\"plantigrade\">Fullsuit Plantigrade (+$1150)<\/option>\r\n    <option value=\"digitigrade\">Fullsuit Digitigrade (+$1300)<\/option>\r\n  <\/select>\r\n\r\n  <div class=\"description-block\">\r\n    <strong>Mini Partial:<\/strong> \ud83d\udc36 Head, tail, and hand paws.<br>\r\n    <strong>Full Partial:<\/strong> \ud83d\udc3b Head, tail, hand paws, feet paws, and arm sleeves.\r\n  <\/div>\r\n\r\n  <label for=\"baseType\">\ud83e\udde0 Choose Base Type:<\/label>\r\n  <div id=\"baseType\" class=\"base-options\">\r\n    <label><input type=\"radio\" name=\"base\" value=\"foam\" onchange=\"calculateTotal()\"> Foam Base ($800)<\/label>\r\n    <label><input type=\"radio\" name=\"base\" value=\"3d\" onchange=\"calculateTotal()\"> 3D Printed Base ($650)<\/label>\r\n  <\/div>\r\n\r\n  <label for=\"complexity\">\u2728 Complexity Level (1-5):<\/label>\r\n  <input type=\"range\" id=\"complexity\" min=\"1\" max=\"5\" value=\"1\" oninput=\"updateComplexity(); calculateTotal();\" \/>\r\n  <span id=\"complexityValue\">1<\/span>\r\n\r\n  <label for=\"colors\">\ud83c\udf08 Number of Colors (no price impact):<\/label>\r\n  <input type=\"range\" id=\"colors\" min=\"1\" max=\"10\" value=\"1\" oninput=\"updateColorDisplay()\" \/>\r\n  <span id=\"colorValue\">1<\/span>\r\n\r\n  <label for=\"eyelids\">\ud83d\udc41\ufe0f Removable Eyelids (1-4):<\/label>\r\n  <input type=\"range\" id=\"eyelids\" min=\"1\" max=\"4\" value=\"1\" oninput=\"updateEyelidDisplay(); calculateTotal();\" \/>\r\n  <span id=\"eyelidValue\">1<\/span>\r\n  <p class=\"info-note\">\r\n    \ud83d\udd01 First eyelid is free; each additional eyelid is $40.<br>\r\n    <a href=\"https:\/\/yourwebsite.com\/eyelids\" target=\"_blank\">More info on eyelids<\/a>\r\n  <\/p>\r\n\r\n  <label for=\"extras\">\ud83c\udfed Add-ons:<\/label>\r\n  <select id=\"extras\" multiple onchange=\"calculateTotal()\">\r\n    <option value=\"wings\">\ud83e\uddfc Wings (+$300)<\/option>\r\n    <option value=\"handpaws\">\ud83d\udc3e Extra Handpaws (+$100)<\/option>\r\n    <option value=\"fursuitFan\">\ud83c\udf2c\ufe0f Fursuit Fan (+$60)<\/option>\r\n    <option value=\"removableEars\">\ud83d\udc42 Removable Ears (+$85)<\/option>\r\n    <option value=\"indoorFeet\">\ud83d\udc63 Indoor Feetpaws (+$100)<\/option>\r\n  <\/select>\r\n\r\n  <label for=\"otherRequest\">\ud83d\udcdd Other Requests (required):<\/label>\r\n  <textarea id=\"otherRequest\" placeholder=\"Enter any other requests here...\" required><\/textarea>\r\n\r\n  <label for=\"refLink\">\ud83d\udd17 Reference Sheet Link (required):<\/label>\r\n  <input type=\"url\" id=\"refLink\" placeholder=\"Paste your reference sheet URL here\" required \/>\r\n\r\n  <button onclick=\"submitQuote()\" class=\"submit-button\">Submit Quote<\/button>\r\n  <div class=\"total\" id=\"total\">Estimated Total: $0<\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .quote-form {\r\n    max-width: 600px;\r\n    margin: auto;\r\n    padding: 2rem;\r\n    border: 1px solid #ccc;\r\n    border-radius: 12px;\r\n    background-color: #fdfdfd;\r\n    font-family: Arial, sans-serif;\r\n  }\r\n  .quote-form label {\r\n    display: block;\r\n    margin-top: 1rem;\r\n    font-weight: bold;\r\n  }\r\n  .quote-form input[type=\"text\"],\r\n  .quote-form input[type=\"email\"],\r\n  .quote-form input[type=\"url\"],\r\n  .quote-form select,\r\n  .quote-form textarea {\r\n    width: 100%;\r\n    padding: 0.5rem;\r\n    margin-top: 0.25rem;\r\n    border-radius: 6px;\r\n    border: 1px solid #ccc;\r\n    box-sizing: border-box;\r\n  }\r\n  .quote-form textarea {\r\n    min-height: 80px;\r\n  }\r\n  .quote-form input[type=\"range\"] {\r\n    width: 100%;\r\n  }\r\n  .base-options label {\r\n    display: inline-block;\r\n    margin-right: 1rem;\r\n    margin-top: 0.5rem;\r\n  }\r\n  .description-block,\r\n  .info-note {\r\n    font-size: 0.9rem;\r\n    color: #555;\r\n    margin-top: 0.25rem;\r\n    line-height: 1.4;\r\n  }\r\n  .submit-button {\r\n    margin-top: 1.5rem;\r\n    padding: 0.75rem 1.25rem;\r\n    background-color: #8b008b;\r\n    color: white;\r\n    border: none;\r\n    border-radius: 8px;\r\n    cursor: pointer;\r\n    font-size: 1rem;\r\n  }\r\n  .total {\r\n    margin-top: 1rem;\r\n    font-weight: bold;\r\n    font-size: 1.2rem;\r\n    color: #333;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  const basePrices = {\r\n    head: 0,\r\n    mini: 300,\r\n    fullPartial: 450,\r\n    plantigrade: 1150,\r\n    digitigrade: 1300,\r\n  };\r\n\r\n  const extrasPrices = {\r\n    wings: 300,\r\n    handpaws: 100,\r\n    fursuitFan: 60,\r\n    removableEars: 85,\r\n    indoorFeet: 100,\r\n  };\r\n\r\n  const baseTypePrices = {\r\n    foam: 800,\r\n    '3d': 650,\r\n  };\r\n\r\n  const eyelidPrice = 40;\r\n\r\n  function updateComplexity() {\r\n    document.getElementById('complexityValue').textContent = document.getElementById('complexity').value;\r\n  }\r\n\r\n  function updateColorDisplay() {\r\n    document.getElementById('colorValue').textContent = document.getElementById('colors').value;\r\n  }\r\n\r\n  function updateEyelidDisplay() {\r\n    document.getElementById('eyelidValue').textContent = document.getElementById('eyelids').value;\r\n  }\r\n\r\n  function calculateTotal() {\r\n    let total = 0;\r\n\r\n    const type = document.getElementById('type').value;\r\n    total += basePrices[type] || 0;\r\n\r\n    const baseRadio = document.querySelector('input[name=\"base\"]:checked');\r\n    if (baseRadio) {\r\n      total += baseTypePrices[baseRadio.value] || 0;\r\n    }\r\n\r\n    \/\/ Complexity adds $100 per level above 1 only\r\n    const complexity = parseInt(document.getElementById('complexity').value, 10);\r\n    if (complexity > 1) {\r\n      total += (complexity - 1) * 100;\r\n    }\r\n\r\n    const eyelids = parseInt(document.getElementById('eyelids').value, 10);\r\n    if (eyelids > 1) {\r\n      total += (eyelids - 1) * eyelidPrice;\r\n    }\r\n\r\n    const extrasSelected = Array.from(document.getElementById('extras').selectedOptions).map(o => o.value);\r\n    for (const extra of extrasSelected) {\r\n      total += extrasPrices[extra] || 0;\r\n    }\r\n\r\n    document.getElementById('total').textContent = `Estimated Total: $${total.toLocaleString()}`;\r\n  }\r\n\r\n  \/\/ \u2705 FIXED: POST form fields in the request BODY (not in the URL)\r\n  function submitQuote() {\r\n    const name = document.getElementById('customerName').value.trim();\r\n    const sona = document.getElementById('sonaName').value.trim();\r\n    const email = document.getElementById('email').value.trim();\r\n    const type = document.getElementById('type').value;\r\n\r\n    const baseType = document.querySelector('input[name=\"base\"]:checked');\r\n    const base = baseType ? baseType.value : '';\r\n\r\n    const complexity = document.getElementById('complexity').value;\r\n    const colors = document.getElementById('colors').value; \/\/ kept for form even if no price impact\r\n    const eyelids = document.getElementById('eyelids').value;\r\n\r\n    const extras = Array.from(document.getElementById('extras').selectedOptions)\r\n      .map(opt => opt.value)\r\n      .join(',');\r\n\r\n    const otherRequest = document.getElementById('otherRequest').value.trim();\r\n    const refLink = document.getElementById('refLink').value.trim();\r\n    const totalText = document.getElementById('total').textContent;\r\n    const total = totalText.replace(\"Estimated Total: $\", \"\").trim();\r\n\r\n    if (!name || !sona || !email || !otherRequest || !refLink) {\r\n      alert(\"Please fill out all required fields including Name, Sona Name, Email, Other Requests, and Reference Sheet Link.\");\r\n      return;\r\n    }\r\n\r\n    const formAction =\r\n      \"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSeyK9TeNAZNLZ4fRxgt0Jw3RVywVG2ZfBXNliC-YscoQS6z6g\/formResponse\";\r\n\r\n    const data = new URLSearchParams();\r\n    data.append(\"entry.747762213\", name);\r\n    data.append(\"entry.1437810748\", sona);\r\n    data.append(\"entry.1597916402\", email);\r\n    data.append(\"entry.436552064\", type);\r\n    data.append(\"entry.2101250925\", base);\r\n    data.append(\"entry.1007782511\", complexity);\r\n    data.append(\"entry.360117079\", colors);\r\n    data.append(\"entry.769670029\", eyelids);\r\n    data.append(\"entry.2117103672\", extras);\r\n    data.append(\"entry.265406734\", otherRequest);\r\n    data.append(\"entry.512678650\", refLink);\r\n    data.append(\"entry.129399617\", total);\r\n\r\n    \/\/ optional but improves reliability (often present in real submits)\r\n    data.append(\"fvv\", \"1\");\r\n    data.append(\"draftResponse\", \"[]\");\r\n    data.append(\"pageHistory\", \"0\");\r\n\r\n    fetch(formAction, {\r\n      method: \"POST\",\r\n      mode: \"no-cors\",\r\n      headers: {\r\n        \"Content-Type\": \"application\/x-www-form-urlencoded;charset=UTF-8\",\r\n      },\r\n      body: data.toString(),\r\n    })\r\n      .then(() => {\r\n        alert(\"Quote submitted successfully!\");\r\n        clearForm();\r\n      })\r\n      .catch(() => {\r\n        alert(\"There was a problem submitting your quote. Please try again.\");\r\n      });\r\n  }\r\n\r\n  function clearForm() {\r\n    document.getElementById('customerName').value = '';\r\n    document.getElementById('sonaName').value = '';\r\n    document.getElementById('email').value = '';\r\n    document.getElementById('type').value = '';\r\n    const baseRadios = document.querySelectorAll('input[name=\"base\"]');\r\n    baseRadios.forEach(radio => radio.checked = false);\r\n    document.getElementById('complexity').value = 1;\r\n    document.getElementById('colors').value = 1;\r\n    document.getElementById('eyelids').value = 1;\r\n    const extrasSelect = document.getElementById('extras');\r\n    for (let i = 0; i < extrasSelect.options.length; i++) {\r\n      extrasSelect.options[i].selected = false;\r\n    }\r\n    document.getElementById('otherRequest').value = '';\r\n    document.getElementById('refLink').value = '';\r\n    updateComplexity();\r\n    updateColorDisplay();\r\n    updateEyelidDisplay();\r\n    calculateTotal();\r\n  }\r\n\r\n  \/\/ Initialize display\r\n  updateComplexity();\r\n  updateColorDisplay();\r\n  updateEyelidDisplay();\r\n  calculateTotal();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eec5e89 e-flex e-con-boxed e-con e-parent\" data-id=\"eec5e89\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e38b48 elementor-widget elementor-widget-spacer\" data-id=\"1e38b48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u2728 Fursuit Commission Quote Estimator \u2728 \ud83d\udc3e All suits come with outdoor feet paws only. \ud83d\udc64 Your Name: \ud83d\udc31 Sona Name: \ud83d\udce7 Email Address: \ud83c\udfad Fursuit Type: Select a typeHead OnlyMini Partial (+$300)Full Partial (+$450)Fullsuit Plantigrade (+$1150)Fullsuit Digitigrade (+$1300) Mini Partial: \ud83d\udc36 Head, tail, and hand paws. Full Partial: \ud83d\udc3b Head, tail, hand paws, feet [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"iawp_total_views":26,"footnotes":""},"class_list":["post-19","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wuskycreations.com\/index.php?rest_route=\/wp\/v2\/pages\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wuskycreations.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wuskycreations.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wuskycreations.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wuskycreations.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19"}],"version-history":[{"count":6,"href":"https:\/\/wuskycreations.com\/index.php?rest_route=\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":120,"href":"https:\/\/wuskycreations.com\/index.php?rest_route=\/wp\/v2\/pages\/19\/revisions\/120"}],"wp:attachment":[{"href":"https:\/\/wuskycreations.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}