Click or scroll to zoom
Tap or pinch to zoom
$29.50
${modalName.includes('Color') ? `
As Pictured
` : '' }
${designs.filter(validIcon => { return (validIcon.value !== "" && validIcon.value !== 'As Pictured')}).map (option => { return `
${!modalName.includes('Color Select') && !modalName.includes('Vinyl') && !modalName.includes('Font') ? `${option.value}`:``}
` }).join('')}
`const wrapperClass = "select_modal_"+modalSelectAttrName;modalWrapper.classList = ("select_modal_wrapper " +wrapperClass);modalWrapper.setAttribute('data-selectname',modalSelectAttrName);modalWrapper.innerHTML = modal;}const initDropDowns = function(){ const dropDownContainer = document.querySelectorAll(".bold_option_dropdown"); const dropDownNames = document.querySelectorAll(".bold_option_dropdown select"); let reg = new RegExp(/^properties\[(.* (Choices|Color Select)?\d?)\]$/); let regVinyl = new RegExp(/^properties\[(Vinyl \w+ Select|Vinyl \w+ Colors)\]$/); dropDownContainer.forEach(dd => { if(dd.childNodes.length > 0 ){ let ddSelect = dd.querySelector("select"); let titleElement = dd.querySelector(".bold_option_title"); let title = titleElement.innerText; if(reg.test(ddSelect.name) || regVinyl.test(ddSelect.name)){ let idValue = title.toLowerCase().replace(/\s/g, '_').replace(/\*/g, ''); ddSelect.id=idValue; } } })}const hideModals = function(posY) { modals = document.querySelectorAll(".select_modal_wrapper"); modals.forEach(m => { if (!m.classList.contains("select_modal_hidden")){ m.classList.toggle("select_modal_hidden"); } })}const hideColorSelects = function(){ const colorSelects = document.querySelectorAll(".oak_color_select"); colorSelects.forEach( select => { select.parentNode.parentNode.parentNode.classList.add("oak_selector") })}const hideThreadSelects = function(type){ const dropDowns = document.querySelectorAll("."+type +"_color_picker"); dropDowns.forEach(dd => { dd.parentNode.parentNode.parentNode.classList.add("oak_selector"); })}const toggleModalDisplay = function(){ let modal = document.querySelector(".select_modal_wrapper"); modal.classList.toggle('select_modal_hidden')}const labelColorSelects = function(){ const selects = document.querySelectorAll(".bold_option_set select"); const reg = new RegExp(/^properties\[(.* Color Select \d)\]$/); selects.forEach(select => { const selName = select.name; if (reg.test(selName)){ let match = selName.match(reg); let idLabel = match[1].toString().toLowerCase().replace(/\s/g, '_') let classLabel = idLabel.slice(0,-2); select.classList.add("oak_color_select",classLabel); select.parentNode.parentNode.parentNode.classList.add("oak_selector") select.setAttribute("data-selector-target", classLabel); } })}const displayColorSelectors = function(name,type){ hideThreadSelects(type); let className = type.slice(0,-7); const toBeDisplayed = getDisplayOptionObject(name,type); const selects = document.querySelectorAll("."+className+'color_select'); let i = 0; toBeDisplayed[0].threadNames.forEach(t => { selects[i].name = selects[i].name.replace("]", " - "+t+"]") selects[i].parentNode.parentNode.parentNode.classList.remove("oak_selector") let title = selects[i].parentNode.parentNode.querySelector(".bold_option_title"); title.innerText = t; i++ })}const getDisplayOptionObject = function(name,type){ if (type === "signature_embellishment_choices") return designs.signatureEmbellishments.filter(design => name.toLowerCase() === design.name); else if (type === "embellishment_choices") return designs.embellishments.filter(design => name.toLowerCase() === design.name); else if (type === "small_embellishment_choices") return designs.smallEmbellishments.filter(design => name.toLowerCase() === design.name); else if (type === "monogram_choices") return designs.monograms.filter(design => name.toLowerCase() === design.name); else if (type === "font_choices") return designs.fonts.filter(design => name.toLowerCase() === design.name); else if (type === "borders_and_frames_choices") return designs.bordersAndFrames.filter(design => name.toLowerCase() === design.name); else if (type === "signature_monogram_choices") return designs.signatureMonograms.filter(design => name.toLowerCase() === design.name); else if (type === "monogram_two_letter_choices") return designs.doubleMonograms.filter(design => name.toLowerCase() === design.name); else if (type === "monogram_one_letter_choices") return designs.singleMonograms.filter(design => name.toLowerCase() === design.name); }//*****EVENT LISTENERS*****const evt = new Event("change");document.addEventListener("click", (e) =>{ if (e.target.classList.contains("select_modal_button_close")){ hideModals(screenY); } if (e.target.id === "as-pictured-button") { const targetAttr = e.target.parentNode.getAttribute("data-selectname"); const valueAttr = e.target.getAttribute("data-value") const dataValueAttr = e.target.getAttribute("data-option_value_key") const target = document.querySelector("#"+targetAttr); target.value = valueAttr; target.dispatchEvent(evt); hideModals(screenY); } if (e.target.classList.contains("select_modal_button_clear")){ const targetDropdown = e.target.parentNode.parentNode.getAttribute("data-selectname"); const target = document.querySelector("#"+targetDropdown); target.value = ""; const type = e.target.getAttribute("data-colorselect"); hideThreadSelects(type); hideModals(screenY); } if(e.target.parentNode.classList.contains("select_modal_option")){ const targetAttr = e.target.parentNode.getAttribute("data-selectname"); const valueAttr = e.target.parentNode.getAttribute("data-value") const dataValueAttr = e.target.getAttribute("data-option_value_key"); let removeColorName = targetAttr if( targetAttr.includes("-")){ removeColorName = targetAttr.split(" -")[0] + "]"; } const target = document.querySelector("#"+removeColorName); target.value = valueAttr; target.dispatchEvent(evt); let colorTarget = e.target.parentNode.getAttribute("data-colorselect"); if(!colorTarget.includes("color_select") && !colorTarget.includes("vinyl")){ hideColorSelects(); if(colorTarget !== 'as_pictured'){ displayColorSelectors(target.value.toLowerCase().replace(/\s/g, ''),colorTarget) } hideModals(screenY); } else { hideModals(screenY); } } if (e.target.type === 'select-one' && e.target.id && !e.target.classList.contains("form-field-input")){ let targetID = e.target.id let targetClass = targetID; let targetSelect = document.querySelector('#'+targetID); generateModal(targetSelect); }})document.addEventListener("mousedown", (e) =>{ if (e.target.type === 'select-one' && e.target.id && !e.target.classList.contains("form-field-input")){ e.preventDefault(); }})
Lost teeth need to be guarded like treasure. Enter our pirate stuffed tooth fairy doll, the protector of childhood memories with his secure tooth pouch and swashbuckling attire that keeps intruders at bay. Ideal as a birthday or holiday present for little ones of tooth-losing age, the intricately crafted tooth fairy doll allows parents and kids to bond over the milestone moment. Our pirate stuffed doll carries an embroidered tooth pouch that can be opened and closed with a little gold string.
- 10 in / 25.5 cm
- 100% polyester
- Spot clean only
-
$64.00
Pink Check Geometric Bishop Bubble
More product options avaliable
Ready to create cherished memories? This heirloom-quality dress is bound to become baby girl’s favorite. With a generous skirt, soft pleats and a c...
View full details
-
$66.00
Pink Check Geometric Bishop Dress
More product options avaliable
Ready to create cherished memories? This heirloom-quality dress is bound to become baby girl’s favorite. With a generous skirt, soft pleats and a c...
View full details
-
$64.00
Girls Pink Gingham Birthday Dress
More product options avaliable
Beautiful dress for the special birthday girl!55% cotton 45% polyester
-
$64.00
Girls Pink Gingham Birthday Bubble
More product options avaliable
55% Cotton45% Polyester
-
$64.00
Strawberry Bryar Pocket Dress
More product options avaliable
60%Cotton40%PolyesterStrawberry Pockets