"Heaven's Embrace II"

$438.00

Mixed Media on heavy duty art paper.

Mat and frame displayed are not included.

Additional photo with set of three shown for reference only. 

Due to the difference in screen displays (and the fact that everyone sees color differently), colors may vary slightly.

*Free shipping within the Continental US. 

const variantSelects = (document.querySelector('variant-selects')) ? document.querySelector('variant-selects') : document.querySelector('variant-radios'); const pickerType = (variantSelects.querySelectorAll('fieldset').length > 0) ? 'radios' : 'selects'; const fieldsets = (pickerType == 'radios') ? Array.from(variantSelects.querySelectorAll('fieldset')) : Array.from(variantSelects.querySelectorAll('.product-form__input--dropdown')); const productJson = JSON.parse(variantSelects.querySelector('[type="application/json"]').textContent); let selectedOptions = []; variantSelects.addEventListener('change', rebuildOptions); this.rebuildOptions(); function validCombo(inputValue, optionLevel) { for(let i = 0; i < productJson.length; i++) { if(optionLevel == 1){ if (productJson[i].option1 == selectedOptions[0] && productJson[i].option2 == inputValue) { return true; } } else { if (productJson[i].option1 == selectedOptions[0] && productJson[i].option2 == selectedOptions[1] && productJson[i].option3 == inputValue) { return true; } } } } function rebuildOptions() { selectedOptions = fieldsets.map((fieldset) => { return (pickerType == 'radios') ? Array.from(fieldset.querySelectorAll('input')).find((radio) => radio.checked).value : Array.from(fieldset.querySelectorAll('select'), (select) => select.value); }); for(let optionLevel = 1, n = fieldsets.length; optionLevel < n; optionLevel++) { const inputs = (pickerType == 'radios') ? fieldsets[optionLevel].querySelectorAll('input') : fieldsets[optionLevel].querySelectorAll('option'); inputs.forEach(input => { input.disabled = (validCombo(input.value,optionLevel)) ? false : true; if(pickerType == 'radios'){ const label = fieldsets[optionLevel].querySelector(`label[for="${input.id}"]`); label.style.display = (input.disabled) ? "none" : ""; //Hide the option, or comment this line out and use the following lines to style it.. //label.style.opacity = (input.disabled) ? 0.5 : 1; //label.style.borderStyle = (input.disabled) ? "dashed" : "solid"; //label.style.textDecoration = (input.disabled) ? "none" : ""; } else { input.hidden = (validCombo(input.value,optionLevel)) ? false : true; } }); } for (let optionLevel = 1, fieldsetsLength = fieldsets.length, change = false; optionLevel < fieldsetsLength && !change; optionLevel++) { if(pickerType == 'radios'){ if(fieldsets[optionLevel].querySelector('input:checked').disabled === true) { change = (fieldsets[optionLevel].querySelector('input:not(:disabled)').checked = true); } } else { if(fieldsets[optionLevel].querySelector('option:checked').disabled === true) { change = (fieldsets[optionLevel].querySelector('option:not(:disabled)').selected = "selected"); } } if(change) variantSelects.dispatchEvent(new Event('change', { bubbles: true })); } }