Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (2024)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (1)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (5) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (6)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (7) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (8) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (9)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (10)

PRODUCT DESCRIPTION

Roller Shades are a sleek and simple décor solutionproviding light control and privacy. Select Day/NightRoller Shade for dual light control during the day andcomplete privacy at night.

All roller shades come standard with a heat sealed bottom rail.

The motor is a rechargeable battery motor. It can also be operated by plugging it in (continuous power).

Matching fabrics available in Cornice, Roman Shades.

Available in over 200 fabrics:

  • Blackout
  • Light Filtering
  • Natural
  • Solar

Proudly hand-crafted in the USA.

Sophisticated function meets exceptional design in oneunique window treatment. Eclipse Double Layer Shadesare designed with two layers of alternating bands ofmaterial (sheer and solid) to adjust privacy and lightcontrol. Solid stripes available in light filtering andblackout options.

The motor is a rechargeable battery motor. It can also be operated by plugging it in (continuous power).

Available in 25 fabric options:

  • Light Filtering / Sheer
  • Blackout / Sheer

Proudly hand-crafted in the USA.

The simplicity of roller shades combined with the softness of drapery, Roman Shades are bound to introduce a refined and tailored look to your space.

Matching fabrics available in Bed Runner Cornice, Drapery, Pillow, Valance, and Roller Shades.

All roman shades come standard with a heat sealed bottom rail.

The motor is a rechargeable battery motor. It can also be operated by plugging it in (continuous power).

Available in over 200 fabrics:

  • Blackout
  • Light Filtering
  • Natural
  • Solar

Available in over 200 drapery fabrics:

  • Light Filtering

Lining Options available for all styles:

  • Blackout
  • Interlined
  • Privacy
  • Thermal

Proudly hand-crafted in the USA.

The easy way to great windows! With versatility of style and ease of installation, CitySimple is the perfect solution for simple, yet stylish window treatments.

Suitable for inside mount with a window/door frame. Spring tension rods at top and bottom mean no tools required, a quick installation is complete in minutes.

Choose your treatment style:

  • SimpleShade
  • SimpleRoman
  • SimpleDrape

Select from over 20 fabrics:

  • Blackout
  • Light Filtering
  • Solar

Proudly hand-crafted in the USA.

Cozy up and round out your décor with this decorative top-of-bed accessory. Our Bed Runners add instant visual appeal, as well as comfort and warmth to any bed.

Spot clean only. Line dry only.

Matching fabrics available in Cornice, Drapery, Pillow, Roman Shade and Valance.

Available in over 200 fabrics.

Proudly hand-crafted in the USA.

Pillow talk comes easy with our collection of custom Pillows. Add a pop of color or match with window treatments for a designer finish.

Matching fabrics available in Bed Runner, Cornice, Drapery, Roman Shade and Valance.

Available in over 200 fabrics.

Optional insert selection:

  • Fiber
  • Feather Down (90/10)

Proudly hand-crafted in the USA.

A classic box pleat valance with customizable dust cap and return finishes the top of any window treatment. Made from drapery fabric and privacy lined with optional welt at the top.

Matching fabrics available in Bed Runner, Cornice, Drapery, Pillows and Roman Shade.

Available over 200 drapery fabrics.

Proudly hand-crafted in the USA.

The perfect finishing touch to any room! Our decorative wood Cornices are wrapped in roller or drapery fabric and finished with optional Dacron, welt or nail head strips.

Matching fabrics available in Bed Runner, Cornice, Pillows, Roller Shade, Roman Shade and Valance.

Available in over 200 shade fabrics:

  • Light Filtering
  • Natural
  • Solar

Available in over 200 drapery fabrics:

  • Light Filtering

Proudly hand-crafted in the USA.

No home is complete without a fine drapery. Custom selections to suit every style and lining options to meet your light control and privacy needs. Finish your masterpiece with this essential treatment.

Matching fabrics available in Bed Runner, Cornice, Pillows, Roman Shade and Valance.

Available in over 200 drapery fabrics:

  • Light Filtering

Lining Options available for all styles:

  • Blackout
  • Interlined
  • Privacy
  • Thermal

Proudly hand-crafted in the USA.

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here to find a local professional in your area

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (11) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (12)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (13) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (14) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (15)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (16)

Width
(Inches)

Height
(Inches)

$

$%

In order to add to cart, please fill all available fields

PRODUCT DESCRIPTION

Roller Shades are a sleek and simple décor solutionproviding light control and privacy. Select Day/NightRoller Shade for dual light control during the day andcomplete privacy at night.

All roller shades come standard with a heat sealed bottom rail.

The motor is a rechargeable battery motor. It can also be operated by plugging it in (continuous power).

Matching fabrics available in Cornice, Roman Shades.

Available in over 200 fabrics:

  • Blackout
  • Light Filtering
  • Natural
  • Solar

Proudly hand-crafted in the USA.

Sophisticated function meets exceptional design in oneunique window treatment. Eclipse Double Layer Shadesare designed with two layers of alternating bands ofmaterial (sheer and solid) to adjust privacy and lightcontrol. Solid stripes available in light filtering andblackout options.

The motor is a rechargeable battery motor. It can also be operated by plugging it in (continuous power).

Available in 25 fabric options:

  • Light Filtering / Sheer
  • Blackout / Sheer

Proudly hand-crafted in the USA.

The simplicity of roller shades combined with the softness of drapery, Roman Shades are bound to introduce a refined and tailored look to your space.

Matching fabrics available in Bed Runner Cornice, Drapery, Pillow, Valance, and Roller Shades.

All roman shades come standard with a heat sealed bottom rail.

The motor is a rechargeable battery motor. It can also be operated by plugging it in (continuous power).

Available in over 200 fabrics:

  • Blackout
  • Light Filtering
  • Natural
  • Solar

Available in over 200 drapery fabrics:

  • Light Filtering

Lining Options available for all styles:

  • Blackout
  • Interlined
  • Privacy
  • Thermal

Proudly hand-crafted in the USA.

The easy way to great windows! With versatility of style and ease of installation, CitySimple is the perfect solution for simple, yet stylish window treatments.

Suitable for inside mount with a window/door frame. Spring tension rods at top and bottom mean no tools required, a quick installation is complete in minutes.

Choose your treatment style:

  • SimpleShade
  • SimpleRoman
  • SimpleDrape

Select from over 20 fabrics:

  • Blackout
  • Light Filtering
  • Solar

Proudly hand-crafted in the USA.

Cozy up and round out your décor with this decorative top-of-bed accessory. Our Bed Runners add instant visual appeal, as well as comfort and warmth to any bed.

Spot clean only. Line dry only.

Matching fabrics available in Cornice, Drapery, Pillow, Roman Shade and Valance.

Available in over 200 fabrics.

Proudly hand-crafted in the USA.

Pillow talk comes easy with our collection of custom Pillows. Add a pop of color or match with window treatments for a designer finish.

Matching fabrics available in Bed Runner, Cornice, Drapery, Roman Shade and Valance.

Available in over 200 fabrics.

Optional insert selection:

  • Fiber
  • Feather Down (90/10)

Proudly hand-crafted in the USA.

A classic box pleat valance with customizable dust cap and return finishes the top of any window treatment. Made from drapery fabric and privacy lined with optional welt at the top.

Matching fabrics available in Bed Runner, Cornice, Drapery, Pillows and Roman Shade.

Available over 200 drapery fabrics.

Proudly hand-crafted in the USA.

The perfect finishing touch to any room! Our decorative wood Cornices are wrapped in roller or drapery fabric and finished with optional Dacron, welt or nail head strips.

Matching fabrics available in Bed Runner, Cornice, Pillows, Roller Shade, Roman Shade and Valance.

Available in over 200 shade fabrics:

  • Light Filtering
  • Natural
  • Solar

Available in over 200 drapery fabrics:

  • Light Filtering

Proudly hand-crafted in the USA.

No home is complete without a fine drapery. Custom selections to suit every style and lining options to meet your light control and privacy needs. Finish your masterpiece with this essential treatment.

Matching fabrics available in Bed Runner, Cornice, Pillows, Roman Shade and Valance.

Available in over 200 drapery fabrics:

  • Light Filtering

Lining Options available for all styles:

  • Blackout
  • Interlined
  • Privacy
  • Thermal

Proudly hand-crafted in the USA.

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Operate” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here for “How to Install” instructions

Click here for “How to Measure” instructions

Click here to find a local professional in your area

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (17) 100% Satisfaction guarantee

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (18) Proudly made in USA

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (19) Free shipping on all orders

$

In order to add to cart, please fill all available fields

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (20) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (21) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (22)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (23) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (24) Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (25)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (26)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (27)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (28)

*only show me style options within the CityStyle / filters I choose.

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (29) Any CityStyle Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (30)

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (31) Any CityStyle

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (32) Aspen

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (33) Cape Cod

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (34) CityKids

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (35) Hollywood

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (36) Manhattan

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (37) Nashville

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (38) New Orleans

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (39) Palm Beach

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (40) Seattle

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (41) South Beach

FILTER COLOR(S)
FABRIC TYPE(S)
PRICE GROUP

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (42)

` } if (ImageURL || imageURL) { optionsDom += ` Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (43)` } if (subLabel) { optionsDom += `
${Label}${surcharge} ${subLabel ? `${subLabel}` : ''}
` } else { optionsDom += `
${Label}${surcharge}${appendedName}
` if (ShopifyLabel == "Fabric Roll Type" || ShopifyLabel == "Remote Selection" || ShopifyLabel == "Shade Type" || ShopifyLabel=="Mount Position" || ShopifyLabel=="Control Type" || ShopifyLabel == "Top Treatment" || ShopifyLabel == "Top Treatment Color" || ShopifyLabel == "Drapery Style" || ShopifyLabel == "Drapery Position" || ShopifyLabel == "Operation" ){ optionsDom += ` `} optionsDom += ` ` } });if (ShopifyLabel == "Shade Type"){if (ShopifyLabel == "Shade Type") {setTimeout(function(){ document.querySelector(".accordion__btn").click();},2000)} return `
`;}if (ShopifyLabel == "Remote Selection" || ShopifyLabel == "Fabric Roll Type" || ShopifyLabel == "Top Treatment" || ShopifyLabel=="Mount Position" || ShopifyLabel=="Control Type" || ShopifyLabel=="Top Treatment Color" || ShopifyLabel == "Decorative Bottom Rail" || ShopifyLabel == "Operation" || ShopifyLabel == "Drapery Style" || ShopifyLabel == "Drapery Position" ){if (ShopifyLabel == "Shade Type") {setTimeout(function(){ document.querySelector(".accordion__btn").click();},2000)} if (ShopifyLabel=="Remote Selection"){setTimeout(()=>{ const isMobileDev = window.matchMedia("only screen and (max-width: 760px)").matches; top_ = document.querySelectorAll("[data-accordion='6']")let fabr = document.querySelectorAll("[data-accordion='10']") let b= null; if (isMobileDev) { c = fabr[1].querySelector(".accordion__content") top_[0].appendChild(c); } else { c = fabr[1].querySelector(".accordion__content") top_[0].appendChild(c); } $( '
Remote Selection:
' ).insertBefore( c ); },4000) } if (ShopifyLabel=="Top Treatment Color"){setTimeout(()=>{ const isMobileDev = window.matchMedia("only screen and (max-width: 760px)").matches; top_ = document.querySelectorAll("[data-accordion='5']")let top_t = document.querySelectorAll("[data-accordion='9']")let fabr = document.querySelectorAll("[data-accordion='10']") let b= null; if (isMobileDev) { b = top_t[0].querySelector(".accordion__content") c = fabr[0].querySelector(".accordion__content") top_[0].appendChild(b); top_[0].appendChild(c); } else { b = top_t[0].querySelector(".accordion__content") c = fabr[0].querySelector(".accordion__content") top_[0]?.appendChild(b); top_[0].appendChild(c); } $( '
Top Treatment Color
' ).insertBefore( b ); $( '
Fabric Roll Type
' ).insertBefore( c ); },3000) } return `
`;}if (ShopifyLabel != "undefined"){ return `
${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`;} }; var loadFirst=truefunction RegenerateStep(typeStep){ let acc_step= document.querySelectorAll(".accordion:not(.hide):not(.measure_install):not(.acc-deco) .accordion__name") for(h =0; h< acc_step.length; h++){ acc_step[h].innerText = acc_step[h].innerText.replace(acc_step[h].innerText.substr(0,acc_step[h].innerText.indexOf(":")), "STEP "+ (h+1)) }} setTimeout(()=>{ RegenerateStep(1)},5000) const step2SwatchContainerClass = '.step2__swatch-container'; const swatchClass = '.swatch'; const swatchImageClass = '.swatch__color'; const swatchNameClass = '.swatch__name'; const filterDropdownCardClass = '.dropdown__container--action'; const filterDropdownImgClass = '.dropdown__img'; const filterDropdownNameClass = '.dropdown__name';let array_product = [];let itemX={};itemX = {title: "Additional Swatch Cost", id:"43082314776740"};array_product.push(itemX);itemX = {title: "Aretha Cream", id:"41160811020452"};array_product.push(itemX);itemX = {title: "Aretha Cream", id:"42006195667108"};array_product.push(itemX);itemX = {title: "Aretha Dark Grey", id:"41178952368292"};array_product.push(itemX);itemX = {title: "Aretha Dark Grey", id:"42006164045988"};array_product.push(itemX);itemX = {title: "Aretha Grey", id:"41160811118756"};array_product.push(itemX);itemX = {title: "Aretha Grey", id:"42006195634340"};array_product.push(itemX);itemX = {title: "Aretha Off White", id:"41160810922148"};array_product.push(itemX);itemX = {title: "Aretha Off White", id:"42006195699876"};array_product.push(itemX);itemX = {title: "Aretha White", id:"41160810791076"};array_product.push(itemX);itemX = {title: "Aretha White", id:"42006195765412"};array_product.push(itemX);itemX = {title: "Atacama Marble De13858", id:"41547522769060"};array_product.push(itemX);itemX = {title: "Atacama Mineral De12261", id:"41547522736292"};array_product.push(itemX);itemX = {title: "Atacama Pearl De12263", id:"41547522572452"};array_product.push(itemX);itemX = {title: "Atacama Sand De12265", id:"41547522834596"};array_product.push(itemX);itemX = {title: "Atacama Sea De12262", id:"41547522637988"};array_product.push(itemX);itemX = {title: "Atacama Wheat De12264", id:"41547522801828"};array_product.push(itemX);itemX = {title: "Attitude Blue", id:"41547522277540"};array_product.push(itemX);itemX = {title: "Bali Flax", id:"42043053244580"};array_product.push(itemX);itemX = {title: "Bali Latte", id:"42043053277348"};array_product.push(itemX);itemX = {title: "Bali Linen", id:"42043053310116"};array_product.push(itemX);itemX = {title: "Batiste White", id:"42043053179044"};array_product.push(itemX);itemX = {title: "Batiste White", id:"42043060781220"};array_product.push(itemX);itemX = {title: "Beijing Grey", id:"41160832483492"};array_product.push(itemX);itemX = {title: "Beijing Grey", id:"42006167748772"};array_product.push(itemX);itemX = {title: "Berlin Blackout Black 6320", id:"45694210637988"};array_product.push(itemX);itemX = {title: "Bombay Bean", id:"41160829993124"};array_product.push(itemX);itemX = {title: "Bombay Bean", id:"42006170599588"};array_product.push(itemX);itemX = {title: "Bombay Mist", id:"41160829403300"};array_product.push(itemX);itemX = {title: "Bombay Mist", id:"42006172270756"};array_product.push(itemX);itemX = {title: "Bombay Moth", id:"41160830124196"};array_product.push(itemX);itemX = {title: "Bombay Moth", id:"42006170534052"};array_product.push(itemX);itemX = {title: "Bombay Natural", id:"41160829567140"};array_product.push(itemX);itemX = {title: "Bombay Natural", id:"42006172205220"};array_product.push(itemX);itemX = {title: "Bombay Sand", id:"41160829894820"};array_product.push(itemX);itemX = {title: "Bombay Sand", id:"42006171451556"};array_product.push(itemX);itemX = {title: "Bombay White", id:"41160829698212"};array_product.push(itemX);itemX = {title: "Bombay White", id:"42006171877540"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Beige", id:"41178966720676"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Beige", id:"42006162047140"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Black", id:"41160833335460"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Black", id:"42006166896804"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Grey", id:"41160833171620"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Grey", id:"42006166929572"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Natural", id:"41178966524068"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Natural", id:"42006162112676"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Taupe", id:"41178966753444"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% Taupe", id:"42006161817764"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% White", id:"41178966360228"};array_product.push(itemX);itemX = {title: "C Screen Linen 5% White", id:"42006162145444"};array_product.push(itemX);itemX = {title: "Cambria Azure", id:"41547519787172"};array_product.push(itemX);itemX = {title: "Cambria Birch", id:"41547519852708"};array_product.push(itemX);itemX = {title: "Cambria Celestial", id:"41547519951012"};array_product.push(itemX);itemX = {title: "Cambria Cotton", id:"41547520016548"};array_product.push(itemX);itemX = {title: "Cambria Obsidian", id:"41547520082084"};array_product.push(itemX);itemX = {title: "Cambria Sand Dollar", id:"41547520114852"};array_product.push(itemX);itemX = {title: "Cambria Silver Mist", id:"41547520147620"};array_product.push(itemX);itemX = {title: "Cambria Winter", id:"41547520311460"};array_product.push(itemX);itemX = {title: "Celestial Copper", id:"41547517690020"};array_product.push(itemX);itemX = {title: "Celestial Nightfall", id:"41547517755556"};array_product.push(itemX);itemX = {title: "Celestial Platinum", id:"41547517788324"};array_product.push(itemX);itemX = {title: "Celestial Shadow", id:"41547517853860"};array_product.push(itemX);itemX = {title: "Como Chanterelle", id:"41160812265636"};array_product.push(itemX);itemX = {title: "Como Chanterelle", id:"42006195372196"};array_product.push(itemX);itemX = {title: "Como Mist", id:"41178953056420"};array_product.push(itemX);itemX = {title: "Como Mist", id:"42006163816612"};array_product.push(itemX);itemX = {title: "Como Sand", id:"41178997784740"};array_product.push(itemX);itemX = {title: "Como Sand", id:"42006161621156"};array_product.push(itemX);itemX = {title: "Como Sesame", id:"41160812101796"};array_product.push(itemX);itemX = {title: "Como Sesame", id:"42006195404964"};array_product.push(itemX);itemX = {title: "Como Shell", id:"41160811872420"};array_product.push(itemX);itemX = {title: "Como Shell", id:"42006195437732"};array_product.push(itemX);itemX = {title: "Como White", id:"41160811249828"};array_product.push(itemX);itemX = {title: "Como White", id:"42006195503268"};array_product.push(itemX);itemX = {title: "Devon Antarctica", id:"42043062124708"};array_product.push(itemX);itemX = {title: "Devon Birch", id:"42043062091940"};array_product.push(itemX);itemX = {title: "Devon Cashew", id:"42043062190244"};array_product.push(itemX);itemX = {title: "Devon Sharkskin", id:"42043062157476"};array_product.push(itemX);itemX = {title: "Durban Bark", id:"41160812560548"};array_product.push(itemX);itemX = {title: "Durban Bark", id:"42006195273892"};array_product.push(itemX);itemX = {title: "Durban Charcoal", id:"41178953253028"};array_product.push(itemX);itemX = {title: "Durban Charcoal", id:"42006163488932"};array_product.push(itemX);itemX = {title: "Durban Grain", id:"41160812429476"};array_product.push(itemX);itemX = {title: "Durban Grain", id:"42006195339428"};array_product.push(itemX);itemX = {title: "Durban Mist", id:"41160812724388"};array_product.push(itemX);itemX = {title: "Durban Mist", id:"42006195241124"};array_product.push(itemX);itemX = {title: "Emotion Aqua", id:"41547522408612"};array_product.push(itemX);itemX = {title: "Essential 1% Charcoal Dark Bronze", id:"42043055669412"};array_product.push(itemX);itemX = {title: "Essential 1% Charcoal Dark Bronze", id:"42043056717988"};array_product.push(itemX);itemX = {title: "Essential 1% Ebony", id:"42043055702180"};array_product.push(itemX);itemX = {title: "Essential 1% Ebony", id:"42043056783524"};array_product.push(itemX);itemX = {title: "Essential 1% Soft Grey", id:"42043055800484"};array_product.push(itemX);itemX = {title: "Essential 1% Soft Grey", id:"42043056849060"};array_product.push(itemX);itemX = {title: "Essential 1% Beige Pearl Grey", id:"41160812855460"};array_product.push(itemX);itemX = {title: "Essential 1% Beige Pearl Grey", id:"42006195208356"};array_product.push(itemX);itemX = {title: "Essential 1% Chalk", id:"41160813019300"};array_product.push(itemX);itemX = {title: "Essential 1% Chalk", id:"42006195175588"};array_product.push(itemX);itemX = {title: "Essential 1% Chalk Beige Cream", id:"41160813052068"};array_product.push(itemX);itemX = {title: "Essential 1% Chalk Beige Cream", id:"42006195142820"};array_product.push(itemX);itemX = {title: "Essential 1% Chalk Soft Grey", id:"41160813117604"};array_product.push(itemX);itemX = {title: "Essential 1% Chalk Soft Grey", id:"42006195110052"};array_product.push(itemX);itemX = {title: "Essential 1% Charcoal Dark Bronze", id:"41160813183140"};array_product.push(itemX);itemX = {title: "Essential 1% Charcoal Dark Bronze", id:"42006195077284"};array_product.push(itemX);itemX = {title: "Essential 1% Charcoal Iron Grey", id:"41160813248676"};array_product.push(itemX);itemX = {title: "Essential 1% Charcoal Iron Grey", id:"42006194946212"};array_product.push(itemX);itemX = {title: "Essential 1% Ebony", id:"41160813281444"};array_product.push(itemX);itemX = {title: "Essential 1% Ebony", id:"42006194913444"};array_product.push(itemX);itemX = {title: "Essential 1% Grey Sand", id:"41160813346980"};array_product.push(itemX);itemX = {title: "Essential 1% Grey Sand", id:"42006194880676"};array_product.push(itemX);itemX = {title: "Essential 1% Soft Grey", id:"41160813445284"};array_product.push(itemX);itemX = {title: "Essential 1% Soft Grey", id:"42006194815140"};array_product.push(itemX);itemX = {title: "Essential 10% Charcoal Dark Bronze", id:"42043056128164"};array_product.push(itemX);itemX = {title: "Essential 10% Charcoal Dark Bronze", id:"42043057078436"};array_product.push(itemX);itemX = {title: "Essential 10% Ebony", id:"42043056193700"};array_product.push(itemX);itemX = {title: "Essential 10% Ebony", id:"42043057111204"};array_product.push(itemX);itemX = {title: "Essential 10% Soft Grey", id:"42043056259236"};array_product.push(itemX);itemX = {title: "Essential 10% Soft Grey", id:"42043057143972"};array_product.push(itemX);itemX = {title: "Essential 10% Beige Pearl Grey", id:"41160816591012"};array_product.push(itemX);itemX = {title: "Essential 10% Beige Pearl Grey", id:"42006193045668"};array_product.push(itemX);itemX = {title: "Essential 10% Chalk", id:"41160816722084"};array_product.push(itemX);itemX = {title: "Essential 10% Chalk", id:"42006192914596"};array_product.push(itemX);itemX = {title: "Essential 10% Chalk Beige Cream", id:"41160816820388"};array_product.push(itemX);itemX = {title: "Essential 10% Chalk Beige Cream", id:"42006192717988"};array_product.push(itemX);itemX = {title: "Essential 10% Chalk Soft Grey", id:"41160816951460"};array_product.push(itemX);itemX = {title: "Essential 10% Chalk Soft Grey", id:"42006192652452"};array_product.push(itemX);itemX = {title: "Essential 10% Charcoal Dark Bronze", id:"41160817049764"};array_product.push(itemX);itemX = {title: "Essential 10% Charcoal Dark Bronze", id:"42006192586916"};array_product.push(itemX);itemX = {title: "Essential 10% Charcoal Iron Grey", id:"41160817148068"};array_product.push(itemX);itemX = {title: "Essential 10% Charcoal Iron Grey", id:"42006192521380"};array_product.push(itemX);itemX = {title: "Essential 10% Ebony", id:"41160817377444"};array_product.push(itemX);itemX = {title: "Essential 10% Ebony", id:"42006192455844"};array_product.push(itemX);itemX = {title: "Essential 10% Grey Sand", id:"41160817901732"};array_product.push(itemX);itemX = {title: "Essential 10% Grey Sand", id:"42006192324772"};array_product.push(itemX);itemX = {title: "Essential 10% Soft Grey", id:"41160818131108"};array_product.push(itemX);itemX = {title: "Essential 10% Soft Grey", id:"42006191898788"};array_product.push(itemX);itemX = {title: "Essential 3% Charcoal Dark Bronze", id:"42043055833252"};array_product.push(itemX);itemX = {title: "Essential 3% Charcoal Dark Bronze", id:"42043056881828"};array_product.push(itemX);itemX = {title: "Essential 3% Ebony", id:"42043055898788"};array_product.push(itemX);itemX = {title: "Essential 3% Ebony", id:"42043056914596"};array_product.push(itemX);itemX = {title: "Essential 3% Soft Grey", id:"42043055931556"};array_product.push(itemX);itemX = {title: "Essential 3% Soft Grey", id:"42043056947364"};array_product.push(itemX);itemX = {title: "Essential 3% Beige Pearl Grey", id:"41160813543588"};array_product.push(itemX);itemX = {title: "Essential 3% Beige Pearl Grey", id:"42006194782372"};array_product.push(itemX);itemX = {title: "Essential 3% Chalk", id:"41160813609124"};array_product.push(itemX);itemX = {title: "Essential 3% Chalk", id:"42006194749604"};array_product.push(itemX);itemX = {title: "Essential 3% Chalk Beige Cream", id:"41178954629284"};array_product.push(itemX);itemX = {title: "Essential 3% Chalk Beige Cream", id:"42006163226788"};array_product.push(itemX);itemX = {title: "Essential 3% Chalk Soft Grey", id:"41160813772964"};array_product.push(itemX);itemX = {title: "Essential 3% Chalk Soft Grey", id:"42006194716836"};array_product.push(itemX);itemX = {title: "Essential 3% Charcoal Dark Bronze", id:"41160814035108"};array_product.push(itemX);itemX = {title: "Essential 3% Charcoal Dark Bronze", id:"42006194552996"};array_product.push(itemX);itemX = {title: "Essential 3% Charcoal Iron Grey", id:"41160814330020"};array_product.push(itemX);itemX = {title: "Essential 3% Charcoal Iron Grey", id:"42006194520228"};array_product.push(itemX);itemX = {title: "Essential 3% Ebony", id:"41160814559396"};array_product.push(itemX);itemX = {title: "Essential 3% Ebony", id:"42006194487460"};array_product.push(itemX);itemX = {title: "Essential 3% Grey Sand", id:"41160814756004"};array_product.push(itemX);itemX = {title: "Essential 3% Grey Sand", id:"42006194258084"};array_product.push(itemX);itemX = {title: "Essential 3% Soft Grey", id:"41160815050916"};array_product.push(itemX);itemX = {title: "Essential 3% Soft Grey", id:"42006193930404"};array_product.push(itemX);itemX = {title: "Essential 5% Charcoal Dark Bronze", id:"42043055964324"};array_product.push(itemX);itemX = {title: "Essential 5% Charcoal Dark Bronze", id:"42043056980132"};array_product.push(itemX);itemX = {title: "Essential 5% Ebony", id:"42043056062628"};array_product.push(itemX);itemX = {title: "Essential 5% Ebony", id:"42043057012900"};array_product.push(itemX);itemX = {title: "Essential 5% Soft Grey", id:"42043056095396"};array_product.push(itemX);itemX = {title: "Essential 5% Soft Grey", id:"42043057045668"};array_product.push(itemX);itemX = {title: "Essential 5% Beige Pearl Grey", id:"41160815181988"};array_product.push(itemX);itemX = {title: "Essential 5% Beige Pearl Grey", id:"42006193897636"};array_product.push(itemX);itemX = {title: "Essential 5% Chalk", id:"41160815313060"};array_product.push(itemX);itemX = {title: "Essential 5% Chalk", id:"42006193832100"};array_product.push(itemX);itemX = {title: "Essential 5% Chalk Beige Cream", id:"41178956726436"};array_product.push(itemX);itemX = {title: "Essential 5% Chalk Beige Cream", id:"42006163095716"};array_product.push(itemX);itemX = {title: "Essential 5% Chalk Soft Grey", id:"41160815444132"};array_product.push(itemX);itemX = {title: "Essential 5% Chalk Soft Grey", id:"42006193766564"};array_product.push(itemX);itemX = {title: "Essential 5% Charcoal Dark Bronze", id:"41160815575204"};array_product.push(itemX);itemX = {title: "Essential 5% Charcoal Dark Bronze", id:"42006193471652"};array_product.push(itemX);itemX = {title: "Essential 5% Charcoal Iron Grey", id:"41160815771812"};array_product.push(itemX);itemX = {title: "Essential 5% Charcoal Iron Grey", id:"42006193438884"};array_product.push(itemX);itemX = {title: "Essential 5% Ebony", id:"41160815968420"};array_product.push(itemX);itemX = {title: "Essential 5% Ebony", id:"42006193406116"};array_product.push(itemX);itemX = {title: "Essential 5% Grey Sand", id:"41160816099492"};array_product.push(itemX);itemX = {title: "Essential 5% Grey Sand", id:"42006193373348"};array_product.push(itemX);itemX = {title: "Essential 5% Soft Grey", id:"41160816394404"};array_product.push(itemX);itemX = {title: "Essential 5% Soft Grey", id:"42006193078436"};array_product.push(itemX);itemX = {title: "Esvedra Blanc", id:"41160818327716"};array_product.push(itemX);itemX = {title: "Esvedra Blanc", id:"42006191866020"};array_product.push(itemX);itemX = {title: "Esvedra Castle Rock", id:"41160818950308"};array_product.push(itemX);itemX = {title: "Esvedra Castle Rock", id:"42006191308964"};array_product.push(itemX);itemX = {title: "Esvedra Cinder", id:"41160818720932"};array_product.push(itemX);itemX = {title: "Esvedra Cinder", id:"42006191603876"};array_product.push(itemX);itemX = {title: "Esvedra Dark Shadow", id:"41160818852004"};array_product.push(itemX);itemX = {title: "Esvedra Dark Shadow", id:"42006191472804"};array_product.push(itemX);itemX = {title: "Esvedra Feather", id:"41160819114148"};array_product.push(itemX);itemX = {title: "Esvedra Feather", id:"42006191276196"};array_product.push(itemX);itemX = {title: "Esvedra Metal", id:"41160818589860"};array_product.push(itemX);itemX = {title: "Esvedra Metal", id:"42006191800484"};array_product.push(itemX);itemX = {title: "Esvedra Mushroom", id:"41160819245220"};array_product.push(itemX);itemX = {title: "Esvedra Mushroom", id:"42006191046820"};array_product.push(itemX);itemX = {title: "Esvedra Vanilla", id:"41160818458788"};array_product.push(itemX);itemX = {title: "Esvedra Vanilla", id:"42006191833252"};array_product.push(itemX);itemX = {title: "Fabio Eggshell", id:"42043052097700"};array_product.push(itemX);itemX = {title: "Fabio Platinum", id:"42043052163236"};array_product.push(itemX);itemX = {title: "Faithful Champagne", id:"42043052196004"};array_product.push(itemX);itemX = {title: "Faithful Indigo", id:"42043052261540"};array_product.push(itemX);itemX = {title: "Faithful Smoke", id:"42043052294308"};array_product.push(itemX);itemX = {title: "Faithful Snow", id:"42043052359844"};array_product.push(itemX);itemX = {title: "Faux Wood Chestnut", id:"42043061371044"};array_product.push(itemX);itemX = {title: "Faux Wood Coconut", id:"42043060912292"};array_product.push(itemX);itemX = {title: "Faux Wood Espresso", id:"42043061502116"};array_product.push(itemX);itemX = {title: "Faux Wood Grey", id:"42043061043364"};array_product.push(itemX);itemX = {title: "Faux Wood Milky", id:"42043060945060"};array_product.push(itemX);itemX = {title: "Faux Wood Natural", id:"42043061141668"};array_product.push(itemX);itemX = {title: "Faux Wood Oyster", id:"42043061010596"};array_product.push(itemX);itemX = {title: "Faux Wood Pecan", id:"42043061239972"};array_product.push(itemX);itemX = {title: "Faux Wood Teak", id:"42043061272740"};array_product.push(itemX);itemX = {title: "Faux Wood Textured Grey", id:"42043061108900"};array_product.push(itemX);itemX = {title: "Faux Wood White", id:"42043060879524"};array_product.push(itemX);itemX = {title: "Fidget Smoke", id:"42043052490916"};array_product.push(itemX);itemX = {title: "Fidget Snow", id:"42043052425380"};array_product.push(itemX);itemX = {title: "Fierce Smoke", id:"42043052687524"};array_product.push(itemX);itemX = {title: "Flawless Champagne", id:"42043052523684"};array_product.push(itemX);itemX = {title: "Flawless Mineral", id:"42043052589220"};array_product.push(itemX);itemX = {title: "Flawless Platinum", id:"42043052621988"};array_product.push(itemX);itemX = {title: "Flawless Snow", id:"42043052654756"};array_product.push(itemX);itemX = {title: "Flipper Champagne", id:"42043052720292"};array_product.push(itemX);itemX = {title: "Friction Champagne", id:"42043052785828"};array_product.push(itemX);itemX = {title: "Friction Platinum", id:"42043052851364"};array_product.push(itemX);itemX = {title: "Friction Snow", id:"42043052818596"};array_product.push(itemX);itemX = {title: "Future Champagne", id:"42043051966628"};array_product.push(itemX);itemX = {title: "Future Smoke", id:"42043051999396"};array_product.push(itemX);itemX = {title: "Future Snow", id:"42043052064932"};array_product.push(itemX);itemX = {title: "Giorgio White", id:"41547522343076"};array_product.push(itemX);itemX = {title: "Goochie 12 Pearl", id:"41547529126052"};array_product.push(itemX);itemX = {title: "Goochie 196 Linen", id:"41547529158820"};array_product.push(itemX);itemX = {title: "Goochie 704 Dusty Rose", id:"41547529224356"};array_product.push(itemX);itemX = {title: "Graphic Dark Grey", id:"41160819376292"};array_product.push(itemX);itemX = {title: "Graphic Dark Grey", id:"42006190850212"};array_product.push(itemX);itemX = {title: "Graphic Ivory", id:"41160819540132"};array_product.push(itemX);itemX = {title: "Graphic Ivory", id:"42006190719140"};array_product.push(itemX);itemX = {title: "Graphic Light Grey", id:"41160819605668"};array_product.push(itemX);itemX = {title: "Graphic Light Grey", id:"42006190260388"};array_product.push(itemX);itemX = {title: "Graphic White", id:"41160819736740"};array_product.push(itemX);itemX = {title: "Graphic White", id:"42006190063780"};array_product.push(itemX);itemX = {title: "Gunsang Pearl", id:"41160830386340"};array_product.push(itemX);itemX = {title: "Gunsang Pearl", id:"42006170173604"};array_product.push(itemX);itemX = {title: "Gunspangle Pearl", id:"41160830517412"};array_product.push(itemX);itemX = {title: "Gunspangle Pearl", id:"42006169976996"};array_product.push(itemX);itemX = {title: "Halifax Blackout Charcoal", id:"42043062288548"};array_product.push(itemX);itemX = {title: "Halifax Blackout Sand", id:"42043062255780"};array_product.push(itemX);itemX = {title: "Halifax Transparent Charcoal", id:"42043062354084"};array_product.push(itemX);itemX = {title: "Halifax Transparent Sand", id:"42043062321316"};array_product.push(itemX);itemX = {title: "Hampton Blackout Antracite", id:"41160820261028"};array_product.push(itemX);itemX = {title: "Hampton Blackout Antracite", id:"42006189539492"};array_product.push(itemX);itemX = {title: "Hampton Blackout Beige", id:"41160820162724"};array_product.push(itemX);itemX = {title: "Hampton Blackout Beige", id:"42006189572260"};array_product.push(itemX);itemX = {title: "Hampton Blackout Light Grey", id:"41160819802276"};array_product.push(itemX);itemX = {title: "Hampton Blackout Light Grey", id:"42006190031012"};array_product.push(itemX);itemX = {title: "Hampton Blackout Off White", id:"41160820424868"};array_product.push(itemX);itemX = {title: "Hampton Blackout Off White", id:"42006189342884"};array_product.push(itemX);itemX = {title: "Hampton Blackout Sand", id:"41160819998884"};array_product.push(itemX);itemX = {title: "Hampton Blackout Sand", id:"42006189736100"};array_product.push(itemX);itemX = {title: "Hampton Blackout White", id:"41160819900580"};array_product.push(itemX);itemX = {title: "Hampton Blackout White", id:"42006189867172"};array_product.push(itemX);itemX = {title: "Hampton Transparent Antracite", id:"41160821244068"};array_product.push(itemX);itemX = {title: "Hampton Transparent Antracite", id:"42006188163236"};array_product.push(itemX);itemX = {title: "Hampton Transparent Beige", id:"41160821014692"};array_product.push(itemX);itemX = {title: "Hampton Transparent Beige", id:"42006188523684"};array_product.push(itemX);itemX = {title: "Hampton Transparent Light Grey", id:"41160820555940"};array_product.push(itemX);itemX = {title: "Hampton Transparent Light Grey", id:"42006189310116"};array_product.push(itemX);itemX = {title: "Hampton Transparent Off White", id:"41160821342372"};array_product.push(itemX);itemX = {title: "Hampton Transparent Off White", id:"42006187835556"};array_product.push(itemX);itemX = {title: "Hampton Transparent Sand", id:"41160820850852"};array_product.push(itemX);itemX = {title: "Hampton Transparent Sand", id:"42006188687524"};array_product.push(itemX);itemX = {title: "Hampton Transparent White", id:"41160820719780"};array_product.push(itemX);itemX = {title: "Hampton Transparent White", id:"42006189113508"};array_product.push(itemX);itemX = {title: "Hong Kong Natural", id:"41160830845092"};array_product.push(itemX);itemX = {title: "Hong Kong Natural", id:"42006169747620"};array_product.push(itemX);itemX = {title: "Hong Kong White", id:"41160830714020"};array_product.push(itemX);itemX = {title: "Hong Kong White", id:"42006169780388"};array_product.push(itemX);itemX = {title: "Hopsack De13953", id:"41547523358884"};array_product.push(itemX);itemX = {title: "Hopsack De13954", id:"41547523293348"};array_product.push(itemX);itemX = {title: "Hopsack De13955", id:"41547523391652"};array_product.push(itemX);itemX = {title: "Hopsack De13956", id:"41547523424420"};array_product.push(itemX);itemX = {title: "Hopsack De13957", id:"41547523522724"};array_product.push(itemX);itemX = {title: "Hopsack De13958", id:"41547523162276"};array_product.push(itemX);itemX = {title: "Hopsack De13959", id:"41547523588260"};array_product.push(itemX);itemX = {title: "Hopsack De13960", id:"41547523981476"};array_product.push(itemX);itemX = {title: "Hopsack De13961/Taupe", id:"41547524014244"};array_product.push(itemX);itemX = {title: "Illustrious Alabaster", id:"41547521622180"};array_product.push(itemX);itemX = {title: "Illustrious Dungaree", id:"41547521654948"};array_product.push(itemX);itemX = {title: "Illustrious Glitter", id:"41547521753252"};array_product.push(itemX);itemX = {title: "Illustrious Pewter", id:"41547521818788"};array_product.push(itemX);itemX = {title: "Illustrious Shale", id:"41547521884324"};array_product.push(itemX);itemX = {title: "Illustrious Sterling", id:"41547521949860"};array_product.push(itemX);itemX = {title: "Imagine White", id:"42043053113508"};array_product.push(itemX);itemX = {title: "Jefferson Linen 105 Sand", id:"42043053572260"};array_product.push(itemX);itemX = {title: "Jefferson Linen 110 Stonewash", id:"42043053441188"};array_product.push(itemX);itemX = {title: "Jefferson Linen 110 Stonewash", id:"42043057635492"};array_product.push(itemX);itemX = {title: "Jefferson Linen 111 Ivory", id:"42043053408420"};array_product.push(itemX);itemX = {title: "Jefferson Linen 111 Ivory", id:"42043057602724"};array_product.push(itemX);itemX = {title: "Jefferson Linen 117 Petal", id:"42043054325924"};array_product.push(itemX);itemX = {title: "Jefferson Linen 119 Oatmeal", id:"42043053473956"};array_product.push(itemX);itemX = {title: "Jefferson Linen 119 Oatmeal", id:"42043057668260"};array_product.push(itemX);itemX = {title: "Jefferson Linen 137 Antique Red", id:"42043054227620"};array_product.push(itemX);itemX = {title: "Jefferson Linen 143 Optic White", id:"42043053375652"};array_product.push(itemX);itemX = {title: "Jefferson Linen 143 Optic White", id:"42043057569956"};array_product.push(itemX);itemX = {title: "Jefferson Linen 191 Pearl Grey", id:"42043054063780"};array_product.push(itemX);itemX = {title: "Jefferson Linen 195 Vintage Linen", id:"42043053506724"};array_product.push(itemX);itemX = {title: "Jefferson Linen 211 Emerald", id:"42043053703332"};array_product.push(itemX);itemX = {title: "Jefferson Linen 223 Sage Green", id:"42043053605028"};array_product.push(itemX);itemX = {title: "Jefferson Linen 224 Silver Sage", id:"42043053736100"};array_product.push(itemX);itemX = {title: "Jefferson Linen 241 Conifer Green", id:"42043053768868"};array_product.push(itemX);itemX = {title: "Jefferson Linen 280 Leaf", id:"42043053670564"};array_product.push(itemX);itemX = {title: "Jefferson Linen 350 Watermelon", id:"42043054358692"};array_product.push(itemX);itemX = {title: "Jefferson Linen 400 Wisteria", id:"42043054096548"};array_product.push(itemX);itemX = {title: "Jefferson Linen 403 Beaujolais", id:"42043054194852"};array_product.push(itemX);itemX = {title: "Jefferson Linen 427 Heather Moon", id:"42043054129316"};array_product.push(itemX);itemX = {title: "Jefferson Linen 502 Horizon", id:"42043053998244"};array_product.push(itemX);itemX = {title: "Jefferson Linen 506 Robin'S Egg", id:"42043053932708"};array_product.push(itemX);itemX = {title: "Jefferson Linen 509 Surf", id:"42043053899940"};array_product.push(itemX);itemX = {title: "Jefferson Linen 522 Peaco*ck", id:"42043053801636"};array_product.push(itemX);itemX = {title: "Jefferson Linen 53 Sky", id:"42043053965476"};array_product.push(itemX);itemX = {title: "Jefferson Linen 544 Mist", id:"42043053834404"};array_product.push(itemX);itemX = {title: "Jefferson Linen 591 Midnight", id:"42043054031012"};array_product.push(itemX);itemX = {title: "Jefferson Linen 71 Bella Pink", id:"42043054260388"};array_product.push(itemX);itemX = {title: "Jefferson Linen 89 Sulfur", id:"42043053637796"};array_product.push(itemX);itemX = {title: "Jefferson Linen 949 Cindersmoke", id:"42043054162084"};array_product.push(itemX);itemX = {title: "Jefferson Linen 949 Cindersmoke", id:"42043057701028"};array_product.push(itemX);itemX = {title: "Jefferson Linen 105 Sand", id:"41547524341924"};array_product.push(itemX);itemX = {title: "Jefferson Linen 110 Stonewash", id:"41547524178084"};array_product.push(itemX);itemX = {title: "Jefferson Linen 111 Ivory", id:"41547524145316"};array_product.push(itemX);itemX = {title: "Jefferson Linen 117 Petal", id:"41547526471844"};array_product.push(itemX);itemX = {title: "Jefferson Linen 119 Oatmeal", id:"41547524243620"};array_product.push(itemX);itemX = {title: "Jefferson Linen 137 Antique Red", id:"41547526340772"};array_product.push(itemX);itemX = {title: "Jefferson Linen 143 Optic White", id:"41547524079780"};array_product.push(itemX);itemX = {title: "Jefferson Linen 191 Pearl Grey", id:"41547525324964"};array_product.push(itemX);itemX = {title: "Jefferson Linen 195 Vintage Linen", id:"41547524276388"};array_product.push(itemX);itemX = {title: "Jefferson Linen 211 Emerald", id:"41547524604068"};array_product.push(itemX);itemX = {title: "Jefferson Linen 223 Sage Green", id:"41547524472996"};array_product.push(itemX);itemX = {title: "Jefferson Linen 224 Silver Sage", id:"41547524735140"};array_product.push(itemX);itemX = {title: "Jefferson Linen 241 Conifer Green", id:"41547524800676"};array_product.push(itemX);itemX = {title: "Jefferson Linen 280 Leaf", id:"41547524538532"};array_product.push(itemX);itemX = {title: "Jefferson Linen 350 Watermelon", id:"41547526537380"};array_product.push(itemX);itemX = {title: "Jefferson Linen 400 Wisteria", id:"41547525456036"};array_product.push(itemX);itemX = {title: "Jefferson Linen 403 Beaujolais", id:"41547526275236"};array_product.push(itemX);itemX = {title: "Jefferson Linen 427 Heather Moon", id:"41547525488804"};array_product.push(itemX);itemX = {title: "Jefferson Linen 502 Horizon", id:"41547525193892"};array_product.push(itemX);itemX = {title: "Jefferson Linen 506 Robin'S Egg", id:"41547525030052"};array_product.push(itemX);itemX = {title: "Jefferson Linen 509 Surf", id:"41547524964516"};array_product.push(itemX);itemX = {title: "Jefferson Linen 522 Peaco*ck", id:"41547524866212"};array_product.push(itemX);itemX = {title: "Jefferson Linen 53 Sky", id:"41547525128356"};array_product.push(itemX);itemX = {title: "Jefferson Linen 544 Mist", id:"41547524898980"};array_product.push(itemX);itemX = {title: "Jefferson Linen 591 Midnight", id:"41547525259428"};array_product.push(itemX);itemX = {title: "Jefferson Linen 71 Bella Pink", id:"41547526439076"};array_product.push(itemX);itemX = {title: "Jefferson Linen 89 Sulfur", id:"41547524505764"};array_product.push(itemX);itemX = {title: "Jefferson Linen 949 Cindersmoke", id:"41547525521572"};array_product.push(itemX);itemX = {title: "Lin Beige", id:"41160831140004"};array_product.push(itemX);itemX = {title: "Lin Beige", id:"42006169419940"};array_product.push(itemX);itemX = {title: "Lin Black", id:"41160831303844"};array_product.push(itemX);itemX = {title: "Lin Black", id:"42006169190564"};array_product.push(itemX);itemX = {title: "Lin White", id:"41160831008932"};array_product.push(itemX);itemX = {title: "Lin White", id:"42006169518244"};array_product.push(itemX);itemX = {title: "Linen Dark Grey", id:"41547411325092"};array_product.push(itemX);itemX = {title: "Linen Feather Grey", id:"41160821833892"};array_product.push(itemX);itemX = {title: "Linen Feather Grey", id:"42006187409572"};array_product.push(itemX);itemX = {title: "Linen Frost", id:"41160822161572"};array_product.push(itemX);itemX = {title: "Linen Frost", id:"42006187049124"};array_product.push(itemX);itemX = {title: "Linen Grey", id:"41547411259556"};array_product.push(itemX);itemX = {title: "Linen Ivory", id:"41547411161252"};array_product.push(itemX);itemX = {title: "Linen Moon Mist", id:"41160822063268"};array_product.push(itemX);itemX = {title: "Linen Moon Mist", id:"42006187081892"};array_product.push(itemX);itemX = {title: "Linen Raven", id:"41160822325412"};array_product.push(itemX);itemX = {title: "Linen Raven", id:"42006186852516"};array_product.push(itemX);itemX = {title: "Linen Sand", id:"41547411226788"};array_product.push(itemX);itemX = {title: "Linen Shifting Sand", id:"41160821637284"};array_product.push(itemX);itemX = {title: "Linen Shifting Sand", id:"42006187475108"};array_product.push(itemX);itemX = {title: "Linen White", id:"41547411062948"};array_product.push(itemX);itemX = {title: "Linkin Adriatic", id:"41547517427876"};array_product.push(itemX);itemX = {title: "Linkin Iron Ore", id:"41547517493412"};array_product.push(itemX);itemX = {title: "Linkin Platinum", id:"41547517591716"};array_product.push(itemX);itemX = {title: "Linkin Salt", id:"41547517624484"};array_product.push(itemX);itemX = {title: "Mambo Light Grey", id:"41160833532068"};array_product.push(itemX);itemX = {title: "Mambo Light Grey", id:"42006166601892"};array_product.push(itemX);itemX = {title: "Metallic Velvet Pearl", id:"41547522441380"};array_product.push(itemX);itemX = {title: "Metallic Velvet Silver", id:"41547522474148"};array_product.push(itemX);itemX = {title: "Miami Black", id:"41160822915236"};array_product.push(itemX);itemX = {title: "Miami Black", id:"42006185279652"};array_product.push(itemX);itemX = {title: "Miami Cream", id:"41160822751396"};array_product.push(itemX);itemX = {title: "Miami Cream", id:"42006185836708"};array_product.push(itemX);itemX = {title: "Miami Mist", id:"41160823013540"};array_product.push(itemX);itemX = {title: "Miami Mist", id:"42006184263844"};array_product.push(itemX);itemX = {title: "Miami Pearl", id:"41160822587556"};array_product.push(itemX);itemX = {title: "Miami Pearl", id:"42006186033316"};array_product.push(itemX);itemX = {title: "Miami Sand", id:"41160822784164"};array_product.push(itemX);itemX = {title: "Miami Sand", id:"42006185640100"};array_product.push(itemX);itemX = {title: "Miami Steel Grey", id:"41160822948004"};array_product.push(itemX);itemX = {title: "Miami Steel Grey", id:"42006184886436"};array_product.push(itemX);itemX = {title: "Miami White", id:"41160822456484"};array_product.push(itemX);itemX = {title: "Miami White", id:"42006186655908"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Ash", id:"41160823505060"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Ash", id:"42006181413028"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Dust", id:"41160823341220"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Dust", id:"42006182068388"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Grain", id:"41160823603364"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Grain", id:"42006181314724"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Ink", id:"41160823439524"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Ink", id:"42006181707940"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Oyster", id:"41160823242916"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Oyster", id:"42006182428836"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Snow", id:"41160823177380"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Snow", id:"42006182985892"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Sand", id:"41160823111844"};array_product.push(itemX);itemX = {title: "Mombassa Blackout Sand", id:"42006183575716"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Ash", id:"41160825503908"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Ash", id:"42006178431140"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Dust", id:"41160825307300"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Dust", id:"42006179152036"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Grain", id:"41160825634980"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Grain", id:"42006176792740"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Ink", id:"41160825372836"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Ink", id:"42006179119268"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Oyster", id:"41160824127652"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Oyster", id:"42006179184804"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Snow", id:"41160823931044"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Snow", id:"42006179250340"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Sand", id:"41160823668900"};array_product.push(itemX);itemX = {title: "Mombassa Transparent Sand", id:"42006180004004"};array_product.push(itemX);itemX = {title: "Monarch 2 Silver", id:"41547519590564"};array_product.push(itemX);itemX = {title: "Monarch Angora", id:"41547519197348"};array_product.push(itemX);itemX = {title: "Monarch Blue Pearl", id:"41547519295652"};array_product.push(itemX);itemX = {title: "Monarch Graphite", id:"41547519361188"};array_product.push(itemX);itemX = {title: "Monarch Indigo", id:"41547519393956"};array_product.push(itemX);itemX = {title: "Monarch Indigo", id:"42547634176164"};array_product.push(itemX);itemX = {title: "Monarch Sable", id:"41547519426724"};array_product.push(itemX);itemX = {title: "Monarch Sand Dollar", id:"41547519525028"};array_product.push(itemX);itemX = {title: "Monarch Sterling", id:"41547519688868"};array_product.push(itemX);itemX = {title: "Monarch Winter", id:"41547519721636"};array_product.push(itemX);itemX = {title: "Mood Silver", id:"41547522113700"};array_product.push(itemX);itemX = {title: "Mulberry Bluefish", id:"41547518378148"};array_product.push(itemX);itemX = {title: "Mulberry Carrera", id:"41547518410916"};array_product.push(itemX);itemX = {title: "Mulberry Caviar", id:"41547518476452"};array_product.push(itemX);itemX = {title: "Mulberry Imperial", id:"41547518574756"};array_product.push(itemX);itemX = {title: "Mulberry Meringue", id:"41547518640292"};array_product.push(itemX);itemX = {title: "Mulberry Mushroom", id:"41547518967972"};array_product.push(itemX);itemX = {title: "Mulberry Oatmeal", id:"41547519131812"};array_product.push(itemX);itemX = {title: "Mulberry Taro", id:"41547519164580"};array_product.push(itemX);itemX = {title: "Mumbai 01 Cream", id:"42043052916900"};array_product.push(itemX);itemX = {title: "Mumbai 01 Cream", id:"42043060584612"};array_product.push(itemX);itemX = {title: "Mumbai 01 Gray", id:"42043060682916"};array_product.push(itemX);itemX = {title: "Mumbai 01 Natural", id:"42043052884132"};array_product.push(itemX);itemX = {title: "Mumbai 01 Natural", id:"42043059437732"};array_product.push(itemX);itemX = {title: "Mumbai 01 White", id:"42043052949668"};array_product.push(itemX);itemX = {title: "Mumbai 01 White", id:"42043060650148"};array_product.push(itemX);itemX = {title: "Mumbai 01 Gray", id:"42043053015204"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Dark Grey", id:"42043056390308"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Dark Grey", id:"42043057275044"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Havana Beige", id:"42043056455844"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Havana Beige", id:"42043057340580"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Light Grey", id:"42043056324772"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Light Grey", id:"42043057209508"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Neutral Grey", id:"42043056357540"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Neutral Grey", id:"42043057242276"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Sand", id:"42043056423076"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Sand", id:"42043057307812"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout White", id:"42043056292004"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout White", id:"42043057176740"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Dark Grey", id:"41160834482340"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Dark Grey", id:"42006166208676"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Havana Beige", id:"41160834777252"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Havana Beige", id:"42006166012068"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Light Grey", id:"41160834187428"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Light Grey", id:"42006166274212"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Neutral Grey", id:"41160834318500"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Neutral Grey", id:"42006166241444"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Sand", id:"41160834678948"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout Sand", id:"42006166175908"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout White", id:"41160834023588"};array_product.push(itemX);itemX = {title: "Orient Fr Blackout White", id:"42006166306980"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Dark Grey", id:"42043056586916"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Dark Grey", id:"42043057438884"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Havana Beige", id:"42043056685220"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Havana Beige", id:"42043057537188"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Light Grey", id:"42043056521380"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Light Grey", id:"42043057406116"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Neutral Grey", id:"42043056619684"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Neutral Grey", id:"42043057471652"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Sand", id:"42043056652452"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Sand", id:"42043057504420"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent White", id:"42043056488612"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent White", id:"42043057373348"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Dark Grey", id:"41160835301540"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Dark Grey", id:"42006165913764"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Havana Beige", id:"41160835694756"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Havana Beige", id:"42006165815460"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Light Grey", id:"41160835170468"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Light Grey", id:"42006165946532"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Neutral Grey", id:"41160835465380"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Neutral Grey", id:"42006165880996"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Sand", id:"41160835596452"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent Sand", id:"42006165848228"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent White", id:"41160835039396"};array_product.push(itemX);itemX = {title: "Orient Fr Transparent White", id:"42006165979300"};array_product.push(itemX);itemX = {title: "Pap 2 White", id:"41160832647332"};array_product.push(itemX);itemX = {title: "Pap 2 White", id:"42006167683236"};array_product.push(itemX);itemX = {title: "Pap 3 Natural", id:"41160832778404"};array_product.push(itemX);itemX = {title: "Pap 3 Natural", id:"42006167388324"};array_product.push(itemX);itemX = {title: "Pap 7 Sand", id:"41160832909476"};array_product.push(itemX);itemX = {title: "Pap 7 Sand", id:"42006167158948"};array_product.push(itemX);itemX = {title: "Parker Adriatic", id:"41547517919396"};array_product.push(itemX);itemX = {title: "Parker Iron Ore", id:"41547517952164"};array_product.push(itemX);itemX = {title: "Parker Mallard", id:"41547518050468"};array_product.push(itemX);itemX = {title: "Parker Platinum", id:"41547518116004"};array_product.push(itemX);itemX = {title: "Parker Salt", id:"41547518148772"};array_product.push(itemX);itemX = {title: "Pebbletex 108 Wheat", id:"42043055276196"};array_product.push(itemX);itemX = {title: "Pebbletex 108 Wheat", id:"42043057864868"};array_product.push(itemX);itemX = {title: "Pebbletex 143 Optic White", id:"42043054391460"};array_product.push(itemX);itemX = {title: "Pebbletex 143 Optic White", id:"42043057733796"};array_product.push(itemX);itemX = {title: "Pebbletex 143 Optic White", id:"42543402713252"};array_product.push(itemX);itemX = {title: "Pebbletex 196 Linen", id:"42043055210660"};array_product.push(itemX);itemX = {title: "Pebbletex 196 Linen", id:"42043057799332"};array_product.push(itemX);itemX = {title: "Pebbletex 285 Kiwi", id:"42043055145124"};array_product.push(itemX);itemX = {title: "Pebbletex 295 Boxwood", id:"42043055177892"};array_product.push(itemX);itemX = {title: "Pebbletex 346 Fire Engine", id:"42043054424228"};array_product.push(itemX);itemX = {title: "Pebbletex 43 Ruby", id:"42043054653604"};array_product.push(itemX);itemX = {title: "Pebbletex 450 Lilac", id:"42043054915748"};array_product.push(itemX);itemX = {title: "Pebbletex 477 Orchid", id:"42043054817444"};array_product.push(itemX);itemX = {title: "Pebbletex 522 Peaco*ck", id:"42043055112356"};array_product.push(itemX);itemX = {title: "Pebbletex 544 Mist", id:"42043055046820"};array_product.push(itemX);itemX = {title: "Pebbletex 544 Mist", id:"42043057766564"};array_product.push(itemX);itemX = {title: "Pebbletex 544 Mist", id:"42547605110948"};array_product.push(itemX);itemX = {title: "Pebbletex 55 Navy", id:"42043054948516"};array_product.push(itemX);itemX = {title: "Pebbletex 73 Petal", id:"42043054751908"};array_product.push(itemX);itemX = {title: "Pebbletex 754 Bubblegum", id:"42043054784676"};array_product.push(itemX);itemX = {title: "Pebbletex 76 Flamingo", id:"42043054719140"};array_product.push(itemX);itemX = {title: "Pebbletex 9 Graphite", id:"42043055505572"};array_product.push(itemX);itemX = {title: "Pebbletex 9 Graphite", id:"42043057963172"};array_product.push(itemX);itemX = {title: "Pebbletex 90 Silver", id:"42043055374500"};array_product.push(itemX);itemX = {title: "Pebbletex 90 Silver", id:"42043057930404"};array_product.push(itemX);itemX = {title: "Pebbletex 93 Jet", id:"42043055571108"};array_product.push(itemX);itemX = {title: "Pebbletex 93 Jet", id:"42043057995940"};array_product.push(itemX);itemX = {title: "Pebbletex 93 Jet", id:"42547624771748"};array_product.push(itemX);itemX = {title: "Pebbletex 108 Wheat", id:"41547527815332"};array_product.push(itemX);itemX = {title: "Pebbletex 143 Optic White", id:"41547526635684"};array_product.push(itemX);itemX = {title: "Pebbletex 196 Linen", id:"41547527717028"};array_product.push(itemX);itemX = {title: "Pebbletex 196 Linen", id:"42546591826084"};array_product.push(itemX);itemX = {title: "Pebbletex 285 Kiwi", id:"41547527585956"};array_product.push(itemX);itemX = {title: "Pebbletex 295 Boxwood", id:"41547527618724"};array_product.push(itemX);itemX = {title: "Pebbletex 295 Boxwood", id:"42546581438628"};array_product.push(itemX);itemX = {title: "Pebbletex 346 Fire Engine", id:"41547526733988"};array_product.push(itemX);itemX = {title: "Pebbletex 43 Ruby", id:"41547526832292"};array_product.push(itemX);itemX = {title: "Pebbletex 450 Lilac", id:"41547527159972"};array_product.push(itemX);itemX = {title: "Pebbletex 477 Orchid", id:"41547527127204"};array_product.push(itemX);itemX = {title: "Pebbletex 522 Peaco*ck", id:"41547527520420"};array_product.push(itemX);itemX = {title: "Pebbletex 522 Peaco*ck", id:"42547610091684"};array_product.push(itemX);itemX = {title: "Pebbletex 544 Mist", id:"41547527454884"};array_product.push(itemX);itemX = {title: "Pebbletex 55 Navy", id:"41547527291044"};array_product.push(itemX);itemX = {title: "Pebbletex 55 Navy", id:"42547571458212"};array_product.push(itemX);itemX = {title: "Pebbletex 73 Petal", id:"41547526930596"};array_product.push(itemX);itemX = {title: "Pebbletex 73 Petal", id:"42547567722660"};array_product.push(itemX);itemX = {title: "Pebbletex 754 Bubblegum", id:"41547526996132"};array_product.push(itemX);itemX = {title: "Pebbletex 76 Flamingo", id:"41547526865060"};array_product.push(itemX);itemX = {title: "Pebbletex 76 Flamingo", id:"42547117883556"};array_product.push(itemX);itemX = {title: "Pebbletex 9 Graphite", id:"41547528011940"};array_product.push(itemX);itemX = {title: "Pebbletex 90 Silver", id:"41547527946404"};array_product.push(itemX);itemX = {title: "Pebbletex 93 Jet", id:"41547528077476"};array_product.push(itemX);itemX = {title: "Poema Sheer Off White", id:"42043053146276"};array_product.push(itemX);itemX = {title: "Poetry Silver", id:"41547522212004"};array_product.push(itemX);itemX = {title: "Rimini Anthracite", id:"41160835924132"};array_product.push(itemX);itemX = {title: "Rimini Anthracite", id:"42006165553316"};array_product.push(itemX);itemX = {title: "Rimini Beige", id:"41160835825828"};array_product.push(itemX);itemX = {title: "Rimini Beige", id:"42006165749924"};array_product.push(itemX);itemX = {title: "Rimini Gray", id:"41160835858596"};array_product.push(itemX);itemX = {title: "Rimini Gray", id:"42006165586084"};array_product.push(itemX);itemX = {title: "Rimini White", id:"41160835727524"};array_product.push(itemX);itemX = {title: "Rimini White", id:"42006165782692"};array_product.push(itemX);itemX = {title: "Rings Bronze", id:"41178962788516"};array_product.push(itemX);itemX = {title: "Rings Bronze", id:"42006162833572"};array_product.push(itemX);itemX = {title: "Rings Iron", id:"41160826126500"};array_product.push(itemX);itemX = {title: "Rings Iron", id:"42006175908004"};array_product.push(itemX);itemX = {title: "Rings Silver", id:"41160825831588"};array_product.push(itemX);itemX = {title: "Rings Silver", id:"42006176268452"};array_product.push(itemX);itemX = {title: "Rings White", id:"41160825766052"};array_product.push(itemX);itemX = {title: "Rings White", id:"42006176563364"};array_product.push(itemX);itemX = {title: "Rioja Blackout Dawn", id:"42043062517924"};array_product.push(itemX);itemX = {title: "Rioja Blackout Dust", id:"42043062583460"};array_product.push(itemX);itemX = {title: "Rioja Blackout Espresso", id:"42043062616228"};array_product.push(itemX);itemX = {title: "Rioja Blackout Mouse", id:"42043062485156"};array_product.push(itemX);itemX = {title: "Rioja Blackout Off-White", id:"42043062452388"};array_product.push(itemX);itemX = {title: "Rioja Blackout White", id:"42043062419620"};array_product.push(itemX);itemX = {title: "Rioja Transparent Dawn", id:"42043062747300"};array_product.push(itemX);itemX = {title: "Rioja Transparent Dust", id:"42043062780068"};array_product.push(itemX);itemX = {title: "Rioja Transparent Espresso", id:"42043062812836"};array_product.push(itemX);itemX = {title: "Rioja Transparent Mouse", id:"42043062714532"};array_product.push(itemX);itemX = {title: "Rioja Transparent Off-White", id:"42043062681764"};array_product.push(itemX);itemX = {title: "Rioja Transparent White", id:"42043062648996"};array_product.push(itemX);itemX = {title: "Roka 110 Stone Wash", id:"41547528536228"};array_product.push(itemX);itemX = {title: "Roka 143 Optic White", id:"41547528241316"};array_product.push(itemX);itemX = {title: "Roka 196 Linen", id:"41547528601764"};array_product.push(itemX);itemX = {title: "Roka 7 Blush", id:"41547528175780"};array_product.push(itemX);itemX = {title: "Roka 915 Ubran Grey", id:"41547528110244"};array_product.push(itemX);itemX = {title: "Salvador Beige", id:"41160826454180"};array_product.push(itemX);itemX = {title: "Salvador Beige", id:"42006175285412"};array_product.push(itemX);itemX = {title: "Salvador Black", id:"41160827240612"};array_product.push(itemX);itemX = {title: "Salvador Black", id:"42006173188260"};array_product.push(itemX);itemX = {title: "Salvador Cream", id:"41160826355876"};array_product.push(itemX);itemX = {title: "Salvador Cream", id:"42006175776932"};array_product.push(itemX);itemX = {title: "Salvador Dark Grey", id:"41160827338916"};array_product.push(itemX);itemX = {title: "Salvador Dark Grey", id:"42006173122724"};array_product.push(itemX);itemX = {title: "Salvador Grey", id:"41160827469988"};array_product.push(itemX);itemX = {title: "Salvador Grey", id:"42006172958884"};array_product.push(itemX);itemX = {title: "Salvador Optical White", id:"41160826192036"};array_product.push(itemX);itemX = {title: "Salvador Optical White", id:"42006175875236"};array_product.push(itemX);itemX = {title: "Salvador Slate", id:"41160826945700"};array_product.push(itemX);itemX = {title: "Salvador Slate", id:"42006173647012"};array_product.push(itemX);itemX = {title: "Salvador Stone", id:"41160826552484"};array_product.push(itemX);itemX = {title: "Salvador Stone", id:"42006174597284"};array_product.push(itemX);itemX = {title: "Salvador White", id:"41160826257572"};array_product.push(itemX);itemX = {title: "Salvador White", id:"42006175809700"};array_product.push(itemX);itemX = {title: "Sargeant Stripe Alabaster", id:"41547521523876"};array_product.push(itemX);itemX = {title: "Sargeant Stripe Dungaree", id:"41547521589412"};array_product.push(itemX);itemX = {title: "Seasons Beige", id:"41547411882148"};array_product.push(itemX);itemX = {title: "Seasons Black", id:"41547412078756"};array_product.push(itemX);itemX = {title: "Seasons Citadel", id:"41547412242596"};array_product.push(itemX);itemX = {title: "Seasons Denim", id:"41547412177060"};array_product.push(itemX);itemX = {title: "Seasons Gray", id:"41547412013220"};array_product.push(itemX);itemX = {title: "Seasons Ice", id:"41547411816612"};array_product.push(itemX);itemX = {title: "Seasons Nougat", id:"41547412144292"};array_product.push(itemX);itemX = {title: "Seasons Yellow", id:"41547411980452"};array_product.push(itemX);itemX = {title: "Shimmer Amethyst", id:"41547520508068"};array_product.push(itemX);itemX = {title: "Shimmer Arctic Ice", id:"41547520606372"};array_product.push(itemX);itemX = {title: "Shimmer Baltic Blue", id:"41547520639140"};array_product.push(itemX);itemX = {title: "Shimmer Blossom", id:"41547520704676"};array_product.push(itemX);itemX = {title: "Shimmer Blush", id:"41547520802980"};array_product.push(itemX);itemX = {title: "Shimmer Cashmere", id:"41547520934052"};array_product.push(itemX);itemX = {title: "Shimmer Crimson", id:"41547520999588"};array_product.push(itemX);itemX = {title: "Shimmer Graphite", id:"41547521032356"};array_product.push(itemX);itemX = {title: "Shimmer Horizon", id:"41547521097892"};array_product.push(itemX);itemX = {title: "Shimmer Linen", id:"41547521228964"};array_product.push(itemX);itemX = {title: "Shimmer Ocean", id:"41547521294500"};array_product.push(itemX);itemX = {title: "Shimmer Silt", id:"41547521360036"};array_product.push(itemX);itemX = {title: "Shimmer Sterling", id:"41547521392804"};array_product.push(itemX);itemX = {title: "Style Ivory", id:"41160828027044"};array_product.push(itemX);itemX = {title: "Style Ivory", id:"42006172926116"};array_product.push(itemX);itemX = {title: "Style Nearly Grey", id:"41160829304996"};array_product.push(itemX);itemX = {title: "Style Nearly Grey", id:"42006172303524"};array_product.push(itemX);itemX = {title: "Style Pearl", id:"41160828485796"};array_product.push(itemX);itemX = {title: "Style Pearl", id:"42006172893348"};array_product.push(itemX);itemX = {title: "Style Silver", id:"41160828682404"};array_product.push(itemX);itemX = {title: "Style Silver", id:"42006172860580"};array_product.push(itemX);itemX = {title: "Style Warm Beige", id:"41178964033700"};array_product.push(itemX);itemX = {title: "Style Warm Beige", id:"42006162440356"};array_product.push(itemX);itemX = {title: "Style Warm Grey", id:"41160829010084"};array_product.push(itemX);itemX = {title: "Style Warm Grey", id:"42006172663972"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Cotton", id:"41160835989668"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Cotton", id:"42006165520548"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Flint", id:"41160836481188"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Flint", id:"42006164766884"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Parchment", id:"41160836087972"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Parchment", id:"42006165487780"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Pebble", id:"41160836219044"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Pebble", id:"42006165422244"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Seagrass", id:"41160836350116"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Seagrass", id:"42006165192868"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Sesame", id:"41160836153508"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Sesame", id:"42006165455012"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Shale", id:"41160836251812"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Shale", id:"42006165389476"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Spice", id:"41160836382884"};array_product.push(itemX);itemX = {title: "Sw7400 Blackout Spice", id:"42006164799652"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Cotton", id:"41160836612260"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Cotton", id:"42006164734116"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Flint", id:"41178969374884"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Flint", id:"42006161653924"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Parchment", id:"41160836743332"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Parchment", id:"42006164570276"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Pebble", id:"41160837005476"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Pebble", id:"42006164209828"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Seagrass", id:"41160837202084"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Seagrass", id:"42006164144292"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Sesame", id:"41160836874404"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Sesame", id:"42006164373668"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Shale", id:"41160837071012"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Shale", id:"42006164177060"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Spice", id:"41160837333156"};array_product.push(itemX);itemX = {title: "Sw7450 Transparent Spice", id:"42006164111524"};array_product.push(itemX);itemX = {title: "Tacora De11750", id:"41547523096740"};array_product.push(itemX);itemX = {title: "Tacora De11751", id:"41547523063972"};array_product.push(itemX);itemX = {title: "Tacora De13856", id:"41547523031204"};array_product.push(itemX);itemX = {title: "Tacora De13857", id:"41547522965668"};array_product.push(itemX);itemX = {title: "Tango Anthracite", id:"41547412570276"};array_product.push(itemX);itemX = {title: "Tango Brown", id:"41547412504740"};array_product.push(itemX);itemX = {title: "Tango Gray", id:"41547412635812"};array_product.push(itemX);itemX = {title: "Tango Ivory", id:"41547412471972"};array_product.push(itemX);itemX = {title: "Tango White", id:"41547412340900"};array_product.push(itemX);itemX = {title: "Turbine Baltic", id:"41547518181540"};array_product.push(itemX);itemX = {title: "Turbine Beeswax", id:"41547518214308"};array_product.push(itemX);itemX = {title: "Turbine Driftwood", id:"41547518279844"};array_product.push(itemX);itemX = {title: "Ubud Bean", id:"41160832385188"};array_product.push(itemX);itemX = {title: "Ubud Bean", id:"42006167781540"};array_product.push(itemX);itemX = {title: "Ubud Charcoal", id:"41160832057508"};array_product.push(itemX);itemX = {title: "Ubud Charcoal", id:"42006168305828"};array_product.push(itemX);itemX = {title: "Ubud Fossil", id:"41178965377188"};array_product.push(itemX);itemX = {title: "Ubud Fossil", id:"42006162276516"};array_product.push(itemX);itemX = {title: "Ubud Natural", id:"41160831402148"};array_product.push(itemX);itemX = {title: "Ubud Natural", id:"42006169092260"};array_product.push(itemX);itemX = {title: "Ubud Sand", id:"41160831697060"};array_product.push(itemX);itemX = {title: "Ubud Sand", id:"42006168993956"};array_product.push(itemX);itemX = {title: "Ubud Smoke", id:"41160832221348"};array_product.push(itemX);itemX = {title: "Ubud Smoke", id:"42006168141988"};array_product.push(itemX);itemX = {title: "Ubud Teak", id:"41160831991972"};array_product.push(itemX);itemX = {title: "Ubud Teak", id:"42006168502436"};array_product.push(itemX);itemX = {title: "Ubud Wood", id:"41160831860900"};array_product.push(itemX);itemX = {title: "Ubud Wood", id:"42006168830116"};array_product.push(itemX);itemX = {title: "Velvet Blush", id:"41547528765604"};array_product.push(itemX);itemX = {title: "Velvet Coconut", id:"44532023591076"};array_product.push(itemX);itemX = {title: "Velvet Cranberry", id:"42612350288036"};array_product.push(itemX);itemX = {title: "Velvet Espresso", id:"41547529027748"};array_product.push(itemX);itemX = {title: "Velvet Onyx", id:"44981361246372"};array_product.push(itemX);itemX = {title: "Velvet Sandstone", id:"42612295073956"};array_product.push(itemX);itemX = {title: "Velvet Seafoam", id:"41547528831140"};array_product.push(itemX);itemX = {title: "Velvet Shadow", id:"42612165476516"};array_product.push(itemX);itemX = {title: "Velvet Smoke", id:"42612206469284"};array_product.push(itemX);itemX = {title: "Velvet Teal", id:"42612312735908"};array_product.push(itemX);itemX = {title: "Velvet Twig", id:"42612239630500"};array_product.push(itemX);itemX = {title: "Velvet { let optionsDom = ''; let scopeLevelFieldId; // We need to hide/show color related dropdown items and swatches, not grey them out let isHideable = ShopifyLabel.search(/color/gi) > -1 || Type === 'swatch'; const url = urlS3Bucket;var pg=0;let productName=null; const arrOfWindowPathname = window.location.href.split('/').filter(el => !!el);if (window.location.href.indexOf('?') == -1){ productName = window.location.search ? arrOfWindowPathname[arrOfWindowPathname.length - 2] : arrOfWindowPathname[arrOfWindowPathname.length - 1];}else {productName = window.location.search ? arrOfWindowPathname[arrOfWindowPathname.length - 1] : arrOfWindowPathname[arrOfWindowPathname.length - 1];productName = productName.substring(0, productName.indexOf('?'));}let current_group =0let prev_group=0fieldOptions = fieldOptions.sort((a, b) => (a.priceGroup > b.priceGroup) ? 1 : -1)fieldOptions=fieldOptions.sort((a, b) =>{if (typeof(a.label) != "undefined" && typeof(b.label) !="undefined") return a.priceGroup - b.priceGroup || a.label.localeCompare(b.label)})fieldOptions.map((field)=>{if (productName == "roller-shades-old" || productName == "roller-shades"){ }else if(productName == "roman-shades"){ if (field.priceGroup ==2 || field.priceGroup ==3 || field.priceGroup ==4 || field.priceGroup ==5 || field.priceGroup ==6 || field.priceGroup ==7) field.priceGroup =2 if (field.priceGroup ==8 || field.priceGroup ==9 || field.priceGroup ==10) field.priceGroup =3 if (field.priceGroup ==11 || field.priceGroup ==12 || field.priceGroup ==13 || field.priceGroup ==14) field.priceGroup =4}else if(productName == "pillows"){ if (field.priceGroup ==8) field.priceGroup =1 if (field.priceGroup ==9 || field.priceGroup ==10) field.priceGroup =2 if (field.priceGroup ==11 || field.priceGroup ==12) field.priceGroup =3 if (field.priceGroup ==13 || field.priceGroup ==14) field.priceGroup =4}else if(productName == "eclipse-double-layer-shade" || productName=="honeycomb-shade"){ if (field.priceGroup ==1) field.priceGroup =1 if (field.priceGroup ==2 ) field.priceGroup =2 if (field.priceGroup ==3 || field.priceGroup ==4) field.priceGroup =3 if (field.priceGroup ==5) field.priceGroup =4}else if(productName == "bed-runner" ){ if (field.priceGroup ==8) field.priceGroup =1 if (field.priceGroup ==9 || field.priceGroup ==10) field.priceGroup =2 if (field.priceGroup ==11 || field.priceGroup ==12) field.priceGroup =3 if (field.priceGroup ==13 || field.priceGroup ==14) field.priceGroup =4}else if(productName=="valance" ){ if (field.priceGroup ==8) field.priceGroup =1 if (field.priceGroup ==9 || field.priceGroup ==10) field.priceGroup =2 if (field.priceGroup ==11 || field.priceGroup ==12) field.priceGroup =3 if (field.priceGroup ==13 || field.priceGroup ==14) field.priceGroup =4;}else if(productName=="cornice" ){ if (field.priceGroup ==8) field.priceGroup =1 if (field.priceGroup ==9 || field.priceGroup ==10) field.priceGroup =2 if (field.priceGroup ==11 || field.priceGroup ==12) field.priceGroup =3 if (field.priceGroup ==13 || field.priceGroup ==14) field.priceGroup =4;}})// swatchlet swatch_id=0;let swatch_id_data=null;let isLoaded=false;var result = 0if (productName == "roller-shades" || productName == "roller-shades-old") {result = fieldOptions.reduce( (acc, o) => (acc[o.priceGroup] = (acc[o.priceGroup] || 0)+1, acc), {} );}if (productName == "drapery" || productName == "drapery-old") {result = fieldOptions.reduce( (acc, o) => (acc[o.priceGroup-7] = (acc[o.priceGroup-7] || 0)+1, acc), {} );}fieldOptions.forEach(({ FieldId, Id, Label, label, imageURL, ImageURL, SurchargeType, SurchargePrice, maxWidth,priceGroup,ShopifyColumn }, index, arr) => {if (productName == "roller-shades-old" || productName == "roller-shades"){ if (priceGroup ==1 || priceGroup == 0) current_group =1if (priceGroup ==2 || priceGroup ==3 ) current_group =2 if (priceGroup ==4 || priceGroup == 5) current_group =3 if (priceGroup >5 ) current_group =4}if (productName == "drapery" || productName == "drapery-old"){ if (priceGroup == 8 ) current_group =1if (priceGroup ==9 || priceGroup ==10 ) current_group =2 if (priceGroup ==11 || priceGroup == 12) current_group =3 if (priceGroup >13 ) current_group =4}let surcharge = ''; if (SurchargeType === 'width' || SurchargeType === 'height') { if (productData.Name.match(/Roller/gi) && ShopifyLabel === 'Decorative Bottom Rail') { surcharge = `+$${SurchargePrice} Each`; } else { surcharge = `+$${SurchargePrice} /FT`; } } else if (SurchargeType === 'static') { surcharge = `+$${SurchargePrice}`; }// If the product is Roller Shade and the Type is swatch and the maxWidth is less than the product max width, append the max width to the swatch namelet appendedName = ''; if (productData.Name.match(/Roller/gi) && Type === 'swatch' && maxWidth && maxWidth < productData.MaximumWidth) { console.log(maxWidth, "roria")appendedName = ' Max Width ' + maxWidth + '"'; } if (ShopifyLabel == 'Fabric Selection' ) { let title_appended = '';swatch_id_data = array_product.filter(item_id => {title_appended=item_id.title +' ' + surcharge + appendedName; return item_id.title.includes(label);});if (!swatch_id_data.length <=0 && swatch_id_data !=null)swatch_id = swatch_id_data[0].id;isLoaded=true}else {swatch_id = 0}; const image = url + (imageURL || ImageURL); const uuid = Math.random(); scopeLevelFieldId = FieldId;const isMobile = window.matchMedia("only screen and (max-width: 961px)").matches;if (current_group > prev_group && priceGroup && (productName=="honeycomb-shade" || productName=="valance" || productName=="drapery" || productName=="drapery-old" || productName=="roller-shades" || productName=="roman-shades" || productName=="pillows" || productName == "eclipse-double-layer-shade" || productName == "bed-runner") && typeof(priceGroup) != "undefined") {if (isMobile){optionsDom +='

'+'$'.repeat(current_group)+' - (' + result[current_group] +' Fabrics available)

';prev_group =current_group;}else{optionsDom +='

'+'$'.repeat(current_group)+' - (' + result[current_group] +' Fabrics available)

';prev_group =current_group;}} optionsDom += ` ` });if (ShopifyLabel == "Fabric Selection" || ShopifyLabel == "Back Fabric Selection" ) { setTimeout(()=>{ onScreenFilter(Id); },2000) return `
`;}/*if (ShopifyLabel == "Back Fabric Selection") { return `
${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`;}*/if (ShopifyLabel == "Decorative Bottom Rail") { return `
`;}else if (ShopifyLabel != "undefined"){ return `
${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`; } }; function openSwatchModal(e) { const swatchContainer = e.target.closest(swatchClass); let swatchImg = swatchContainer.dataset.swatchTags.match(/imageURL=.{1,}.jpg/gi); if (!swatchImg) { // If the s3 bucket image is false use the image in the shopify product swatchContainer.querySelector(swatchImageClass).style.backgroundImage; } else { swatchImg = swatchImg[0].split('=')[1]; // EX: imageURL=Swatches/1/aretha-cream-aretha-030.jpg swatchImg = `url(https://cityshadecompany-assets-master.cityshadecompany.com/${swatchImg})`; // The s3 bucket img is avalable, use the url; //https://cityshade-assets-dev.s3.us-east-1.amazonaws.com/} const swatchName = swatchContainer.querySelector(swatchNameClass).innerText; modalSwatchImg.style.backgroundImage = swatchImg; modalSwatchName.innerText = swatchName; modalSwatch.style.height = '100%'; body.classList.add('noscroll'); }function catchAccordion() {/*var accordion_all = document.querySelector("[data-accordion='3']") accordion_all.addEventListener('click', function(event) {var colorListArr = []; var priceListArr = []; var typeListArr = [];filterTags.colors=colorListArr;filterTags.price=priceListArr; filterTags.types =typeListArr; filterTags.name = []fieldAndFieldOptionRulesHandler(); updateSwatchVisibilityViaFilterComponent() });*/} function filterData() { var priceListArr = []; priceListArr = document.querySelector("#free_filter").value.split(" ");filterTags.name = priceListArr;fieldAndFieldOptionRulesHandler(); updateSwatchVisibilityViaFilterComponent(); }function onScreenFilter(id){// Price var price_radio =document.querySelectorAll("[name='price_filter-" + id +"']"); for (var i = 0; i < price_radio.length; i++) { price_radio[i].addEventListener('click', function(event) { grp_ = document.getElementsByClassName("grp"); grp_name ="group-" + this.value; for (let x=0; x < grp_.length ;x++) { (!grp_[x].classList.contains(grp_name) && this.value !=0) ? grp_[x].classList.add("hide") : grp_[x].classList.remove("hide") }var priceListArr = []; if (this.value == "0" || this.value ==0) {priceListArr = [];}elsepriceListArr.push(this.getAttribute('data-price'));filterTags.price = priceListArr;fieldAndFieldOptionRulesHandler(); updateSwatchVisibilityViaFilterComponent(); setTimeout(()=>{$("input[name*='"+this.name+"']").filter("[value='" + this.value+"']")[0].parentElement.parentElement.parentElement.parentElement.parentElement.querySelector('.dropdown__title').innerText =(this.value == "0") ? 'Price:All': 'Price:' + this.getAttribute('data-price');},1000) });} document.querySelector("[name='price_filter-" + id +"']").checked = true; // Colors var color_radio =document.querySelectorAll("[name='color_filter-" + id +"']"); for (var i = 0; i < color_radio.length; i++) { color_radio[i].addEventListener('click', function(event) {var colorListArr = []; if (this.value == "0" || this.value ==0)colorListArr = [];elsecolorListArr.push(this.getAttribute('data-color')); filterTags.colors = colorListArr;fieldAndFieldOptionRulesHandler(); updateSwatchVisibilityViaFilterComponent() setTimeout(()=>{$("input[name*='"+this.name+"']").filter("[value='" + this.value+"']")[0].parentElement.parentElement.parentElement.parentElement.parentElement.querySelector('.dropdown__title').innerText =(this.value == "0") ? 'Color:All': 'Color:' + this.getAttribute('data-color');},1000) });} document.querySelector("[name='color_filter-" + id +"']").checked = true; // Types var fabric_radio =document.querySelectorAll("[name='fabric_filter-" + id +"']"); for (var i = 0; i < fabric_radio.length; i++) { fabric_radio[i].addEventListener('click', function(event) {var typeListArr = []; if (this.value == "0" || this.value ==0)typeListArr = [];elsetypeListArr.push(this.getAttribute('data-fabric')); filterTags.types = typeListArr;fieldAndFieldOptionRulesHandler(); updateSwatchVisibilityViaFilterComponent() setTimeout(()=>{ $("input[name*='"+this.name+"']").filter("[value='" + this.value+"']")[0].parentElement.parentElement.parentElement.parentElement.parentElement.querySelector('.dropdown__title').innerText =(this.value == "0") ? 'Type:All': 'Type:' + this.getAttribute('data-fabric'); },1000) });} document.querySelector("[name='fabric_filter-" + id +"']").checked = true; } const addBtnLoadingHandler = (swatch, isLoading) => { const addBtn = swatch.querySelector('.btn___order'); // const loadingSpinner = addBtn.querySelector('.swatch__loading'); if (isLoading) { addBtn.classList.add('not-allowed'); addBtn.disabled = true; } else { addBtn.classList.remove('not-allowed'); addBtn.disabled = false; } } const swatchIsInCartStyling_23 = (swatchDom) => { const addBtn = swatchDom.querySelector('.btn___order'); const removeBtn = swatchDom.querySelector('.btn___remove'); addBtn.classList.add('hide'); removeBtn.classList.remove('hide'); } const swatchNotInCartStyling22 = (swatchDom) => { // const swatchCheckMark = swatchDom.querySelector('.swatch__check-mark'); const addBtn = swatchDom.querySelector('.btn___order'); const removeBtn = swatchDom.querySelector('.btn___remove'); // swatchCheckMark.classList.add('hide'); addBtn.classList.remove('hide'); removeBtn.classList.add('hide'); } async function checkAllSwatchesInCartAndStyle22() { let cart; try { // Get all items from cart cart = await getCart(); } catch (error) { console.log('Failed to retrieve cart items'); } const arrOfSwatchesInCart = []; const swatches = document.querySelectorAll(swatchClass); swatches.forEach((swatch) => { const isSwatchInCart = cart.items.find( (item) => `${item.variant_id}` === swatch.dataset.swatchId ); if (isSwatchInCart) { arrOfSwatchesInCart.push(swatch); } }); if (arrOfSwatchesInCart.length) { arrOfSwatchesInCart.forEach(swatch => { swatchIsInCartStyling_2(swatch); }) }}; // Add Swatch to cart Form async function addSwatchToCart22(id){ const formData = { items: [ { id: id, quantity: 1, }, ], }; let cartRes; try { cartRes = await fetch('/cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(formData), }); } catch (error) { console.log("Error adding item to cart") } return cartRes; } // Remove Swatch from cart Form async function removeSwatchFromCart22(id) { const result = await fetch("/cart/change.json", { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json" }, body: JSON.stringify({ id: `${id}`, quantity: 0 }) }); return result.json(); } // Check cart for Swatches async function getCart() { let cart; try { cart = await fetch('/cart.js', { method: 'GET', headers: { Accept: 'application/json', }, }); cart = await cart.json(); } catch (error) { console.log('Error occurred while getting cart'); } return cart; }function Get_Sample_Events(){ let btn_add_sample = document.querySelectorAll(".swatch_click");for (let i = 0; i < btn_add_sample.length; i++) { btn_add_sample[i].addEventListener("click", async function(e) { const swatch = e.target.closest('.swatch'); const addBtn = (e.target.getAttribute('data-action')=="add") ? e.target : e.target.previousElementSibling; const removeBtn = (e.target.getAttribute('data-action')=="remove") ? e.target : e.target.nextElementSibling;const btnType=e.target.getAttribute('data-action') var xswatch =e.target.parentElement.querySelector(".dropdown__swatch-img-container .checkmark_data") try { if (btnType === 'add') { addBtnLoadingHandler(swatch, true); xswatch.style.display="block"document.querySelector(".vcart-content").style.display ="block" } if (btnType === 'remove') { removeBtnLoadingHandler(swatch, true); xswatch.style.display="none" RemoveVCartSwatch(e.target.getAttribute('data-shopify-id')) // let res = await removeSwatchFromCart(e.target.getAttribute('data-shopify-id')); // Only if the swatch was successfully removed do we want to change the styling addBtn.classList.remove('hide'); removeBtn.classList.add('hide'); } // Get all items from cart const cart1 = await getCart(); // Determine if cart has this swatch alread or if there are 10 swatches const swatchCount = cart1.items.filter(item => item.product_type === 'Swatch').length; if (cart1.items.some(item => item.id === e.target.getAttribute('data-shopify-id'))) { return; } if (e.target.getAttribute('data-action') === 'add') { let res =await addSwatchToVCart(e.target.getAttribute('data-shopify-id'), e.target.getAttribute('data-label'),e.target.getAttribute('data-image')); if (res.ok) { // Only if the swatch was successfully added do we want to change the styling addBtn.classList.add('hide'); removeBtn.classList.remove('hide'); } } const cart2 = await getCart(); const cartCount = cart2.item_count; // const fixedFooterCount = document.querySelector('.fixed-footer__count'); const allCartCountDOM = document.querySelectorAll('.data-cart-count'); const minMaxCount = cartCount > 99 ? '99+' : cartCount; // Update all places where cart count is displayed allCartCountDOM.forEach(count => { count.textContent = minMaxCount; }); // There should only ever be one swatch of each fabric, so the length will sufice for the quantity // fixedFooterCount.innerText = cart2.items.filter(item => item.product_type === 'Swatch').length; } catch(error) { console.log('Error: failed adding or removing Swatch to cart ' + error); } finally { if (btnType === 'add') { addBtnLoadingHandler(swatch, false); // toggleCartVisibility() } if (btnType === 'remove') { removeBtnLoadingHandler(swatch, false); } } });} }setTimeout(()=>{Get_Sample_Events(); LoadSwatch()},7000) const radioGroupHTMLTemplate = ({ ShopifyLabel = '', fieldOptions, value, Tooltip, renderValue, Id }, isMobile) => { let optionsDom = ''; let scopeLevelFieldId; let isHideable = false; fieldOptions.forEach(({ FieldId, Id, Label, SurchargeType, SurchargePrice }, index, arr) => { let surcharge = ''; if (SurchargeType === 'width' || SurchargeType === 'height') { surcharge = `+$${SurchargePrice} /FT`; } else if (SurchargeType === 'static') { surcharge = `+$${SurchargePrice}`; } const uuid = Math.random(); scopeLevelFieldId = FieldId; optionsDom += ` `; }); return `
${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`; }; const textInputHTMLTemplate = ({ ShopifyLabel = '', value, Id, Tooltip, defaultValue }) => { const uuid = Math.random();//${ShopifyLabel == 'Room Label'? 'Name your window' + ':' : ShopifyLabel} return `

Room Name

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`; }; const numberInputHTMLTemplate = ({ ShopifyLabel = '', value, Id, Tooltip, min, max, defaultValue, renderValue }) => { const uuid = Math.random(); return `
${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`; }; const toggleHTMLTemplate = ({ fieldOptions, value, ShopifyLabel = '', Id, Tooltip ,ShopifyRow }) => { const uuid = Math.random(); let leftSurcharge = ''; let rightSurcharge = ''; if (fieldOptions[0].SurchargeType === 'width' || fieldOptions[0].SurchargeType === 'height') { leftSurcharge = `+$${fieldOptions[0].SurchargePrice} /FT`; } else if (fieldOptions[0].SurchargeType === 'static') { leftSurcharge = `+$${fieldOptions[0].SurchargePrice}`; } if (fieldOptions[1].SurchargeType === 'width' || fieldOptions[1].SurchargeType === 'height') { rightSurcharge = `+$${fieldOptions[1].SurchargePrice} /FT`; } else if (fieldOptions[1].SurchargeType === 'static') { rightSurcharge = `+$${fieldOptions[1].SurchargePrice}`; }let dataDom =`

` if (ShopifyLabel == "Add Side Channels" || ShopifyLabel == "Add Light Blocker") { dataDom +=`

${ShopifyLabel}

` } else { dataDom +=`

${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

` } dataDom +=`

${fieldOptions[0].Label}${leftSurcharge}

${fieldOptions[1].Label}${rightSurcharge}

`; return dataDom; }; const accordionHTMLTemplateV2 = (fieldArr1, fieldArr2, stepNum) => { // If the product is Cornice or Valance, add a unique data attribute to update the visibility and title const isValanceOrCorniceOrHardware = productData.Name.match(/(Cornice|Valance|hardware)/gi); let valanceAndCorniceStr = ''; if (isValanceOrCorniceOrHardware) { valanceAndCorniceStr = `data-dynamic-update="${fieldArr1[0]?.Label || ''}${fieldArr2 ? '@' + (fieldArr2[0]?.Label || '') : ''}"`; } let firstHTMLStr = ''; let secondHTMLStr = ''; fieldArr1.forEach(({ htmlStr }) => firstHTMLStr += htmlStr); if (fieldArr2) { fieldArr2.forEach(({ htmlStr }) => secondHTMLStr += htmlStr); } return` ${firstHTMLStr || ''} ${secondHTMLStr || ''} `; } const measurementHTMLTemplate = ({ShopifyLabel, value, Tooltip, Id, maxWidth, minWidth }) => { const measurements1 = ['0', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8']; const measurements2 = ['0', '1/2']; const uuid = Math.random(); const fraction = decimalInputValidationPD(value)[1]; let measurementInUse = measurements1; if (productData.Name.match(/drape.*[^hardware]$/gi) && ShopifyLabel === 'Add Return(s)') { measurementInUse = measurements2; } let dropdownItemStr = ''; measurementInUse.forEach(measurement => { dropdownItemStr += ` `; }); return `

${ShopifyLabel ? ShopifyLabel + ':' : ''}

${Tooltip ? tooltipHTMLTemplate(Tooltip, isTooltipCentered(ShopifyLabel)) : ''}

`; }; const woodAndFauwWoodWidthAndHeightAdjuster = () => { const updateDimensionToMax = (dimension) => { document.querySelectorAll(dimension === 'width' ? '[data-input="width"]' : '[data-input="height"]').forEach((elDom) => { elDom.value = dimension === 'width' ? maxWidth : maxHeight; const decimalInput = elDom.closest('.decimal-input'); // Update the dropdown text decimalInput.querySelector('.dropdown__title').textContent = '0'; let dropdownItemContainer = decimalInput.querySelector('.dropdown__item-container').children; dropdownItemContainer = [...dropdownItemContainer]; // Update the radio btn to select the 0 dropdownItemContainer.forEach(label => { const radioInput = label.querySelector('.dropdown__radio'); radioInput.checked = radioInput.id.split('-')[1] === '0'; }) }); } let [productWidth, productHeight] = getProductWidthAndHeight(); productWidth = +productWidth; productHeight = +productHeight; const blindStyle = productData.fieldsData.find(field => field.ShopifyLabel === 'Blind Style').value; const blindType = productData.fieldsData.find(field => field.ShopifyLabel === 'Blind Type').value; if (!blindStyle || !blindType) { // Hide width and height let h = document.querySelectorAll('[data-input="height"]'); let w = document.querySelectorAll('[data-input="width"]'); [...h, ...w].forEach(input => { input.closest('.form-pd__decimal-input-col').classList.add('hide'); }); // Mobile accordion document.querySelector('[data-accordion="dimensions"]').classList.add('hide'); // The number for each accordion needs to be updated let allAccordions = document.querySelectorAll('[data-form="accordion"]'); allAccordions = [...allAccordions]; allAccordions = allAccordions.filter(accordion => !accordion.classList.contains('hide')); if (allAccordions.length >0){ allAccordions.forEach((accordion, index) => { if (!accordion == undefined){ let name = accordion.querySelector('.accordion__name'); name.textContent = name.textContent.replace(/\d{1,}/g, `${index + 1}`);} });} } else { // Show width and height let h = document.querySelectorAll('[data-input="height"]'); let w = document.querySelectorAll('[data-input="width"]'); [...h, ...w].forEach(input => { input.closest('.form-pd__decimal-input-col').classList.remove('hide'); }); // Mobile accordion document.querySelector('[data-accordion="dimensions"]').classList.remove('hide'); // The number for each accordion needs to be updated let allAccordions = document.querySelectorAll('[data-form="accordion"]'); allAccordions = [...allAccordions]; [allAccordions[0], allAccordions[2]] = [allAccordions[2], allAccordions[0]]; [allAccordions[0], allAccordions[1]] = [allAccordions[1], allAccordions[0]]; if (allAccordions.length >0){ allAccordions.forEach((accordion, index) => { if (!accordion == undefined){ let name = accordion.querySelector('.accordion__name'); name.textContent = name.textContent.replace(/\d{1,}/g, `${index + 1}`);} });} } // Adjust the Max Width if (blindStyle === 'Single Blind') { maxWidth = 72; if (productWidth > maxWidth) { updateDimensionToMax('width'); } } else { maxWidth = 96; } if (blindType === '2" Wood') { if (blindStyle === 'Single Blind') { if (productWidth <= 48) { maxHeight = 102; } else if (productWidth > 48 && productWidth < 60) { maxHeight = 84; } else if (productWidth >= 60 && productWidth <= 72) { maxHeight = 66; } } else if (blindStyle === '2 Blinds on 1 Headrail') { if (productWidth <= 96) { maxHeight = 102; } } } else if (blindType === '2" Faux Wood') { if (blindStyle === 'Single Blind') { if (productWidth <= 36) { maxHeight = 102; } else if (productWidth > 36 && productWidth < 54) { maxHeight = 90; } else if (productWidth >= 54 && productWidth < 60) { maxHeight = 72; } else if (productWidth >= 60 && productWidth <= 72) { maxHeight = 66; } } else if (blindStyle === '2 Blinds on 1 Headrail') { if (productWidth <= 72) { maxHeight = 102; } else if (productWidth > 72) { maxHeight = 90; } } } else { maxWidth = 96; minWidth = 12; maxHeight = 102; minHeight = 12; } if (productHeight > maxHeight) { updateDimensionToMax('height'); } }; const productImgStr = { 1: '//cityshadecompany.com/cdn/shop/t/25/assets/roller-shade-sbp.png?v=147726887504118785341707469916', 2: '//cityshadecompany.com/cdn/shop/t/25/assets/eclipse-shade.png?v=182238919980919699361707469867', 3: '//cityshadecompany.com/cdn/shop/t/25/assets/roman-shades.png?v=57314111792063116861707469917', 4: '//cityshadecompany.com/cdn/shop/t/25/assets/city-simple-spb.png?v=58120539097064804381707469815', 5: '//cityshadecompany.com/cdn/shop/t/25/assets/bed-runner-sbp.png?v=45869046224550616241707469797', 6: '//cityshadecompany.com/cdn/shop/t/25/assets/pillows-sbp.png?v=98769185045575512741707469912', 7: '//cityshadecompany.com/cdn/shop/t/25/assets/faux-wood-blinds-sbp.png?v=83282953224885984251707469870', 8: '//cityshadecompany.com/cdn/shop/t/25/assets/honeycomb-sbp.png?v=66296993414470968791707469883', 9: '//cityshadecompany.com/cdn/shop/t/25/assets/valance-sbp.png?v=128189348068780836721707469933', 10: '//cityshadecompany.com/cdn/shop/t/25/assets/cornice-sbp.png?v=159873818936536832981707469831', 11: '//cityshadecompany.com/cdn/shop/t/25/assets/drapery-sbp.png?v=133685327625464266091707469863', 12: '//cityshadecompany.com/cdn/shop/t/25/assets/drapery-hardware-main-image-sbp.png?v=40818271555898826811707469862', transparent: '//cityshadecompany.com/cdn/shop/t/25/assets/transparent_picture.png?v=90213582425426527961707469932', 'hardware-aveiro': '//cityshadecompany.com/cdn/shop/t/25/assets/aveiro-collection-sbp.png?v=149758099776533240731707469796', 'hardware-cordoba': '//cityshadecompany.com/cdn/shop/t/25/assets/cordoba-collection-sbp.png?v=3633306602639860641707469830', 'hardware-glasgow': '//cityshadecompany.com/cdn/shop/t/25/assets/glasgow-collection-sbp.png?v=81321825512809993221707469875', 'hardware-lisbon': '//cityshadecompany.com/cdn/shop/t/25/assets/lisbon-collection-sbp.png?v=84933468398573740811707469889', 'hardware-porto': '//cityshadecompany.com/cdn/shop/t/25/assets/porto-collection-sbp.png?v=23100253754029975171707469915', 'hardware-dresden': '//cityshadecompany.com/cdn/shop/t/25/assets/dresden-collection-sbp.png?v=94436026381194625761707469864', 'hardware-frankfurt': '//cityshadecompany.com/cdn/shop/t/25/assets/frankfurt-collection-sbp.png?v=138778673593972771361707469872', }; const getProductFormDataForId = async (id) => { const desktopContent = document.getElementById('desktop'); const mobileSections = document.querySelectorAll('[data="mobile-visibility"]'); const url = `https://studio-api.cityshadecompany.com/api/products/one?referenceId=${id}`; spinner.classList.remove('hide-spinner'); desktopContent.classList.add('hide'); mobileSections.forEach(mobile => mobile. classList.add('hide')); footerPageContainer.classList.add('desktop-blank'); let hideDimensions = false try { let data = await fetch(url); const arrOfIds = [5, 6, 9, 10]; if (arrOfIds.includes(id) ) { hideDimensions = true; } if (hideDimensions) { let h = document.querySelectorAll('[data-input="height"]'); let w = document.querySelectorAll('[data-input="width"]'); [...h, ...w].forEach(input => { input.closest('.form-pd__decimal-input-col').classList.add('hide'); }); try { document.querySelector('[data-accordion="dimensions"]').remove(); } catch (err) { } } else if (id === 12) { let h = document.querySelectorAll('[data-input="height"]'); [...h].forEach(input => { input.closest('.form-pd__decimal-input-col').classList.add('hide'); }); } const { product } = await data.json(); product.fields.forEach(sort_data);function sort_data(item) {if (product.Name=="Roller Shades") {// Shade Type if (item.Id == 2){item.ShopifyRow=2 } // Fabric Selection if (item.Id == 3){item.ShopifyRow=3 } // Back Fabric Selection if (item.Id == 4){item.ShopifyRow=4}// Top Treatment if (item.Id ==5){item.ShopifyRow=5}// Top Treatment Color Selection if (item.Id ==42){item.ShopifyRow=9}// fabric roll type if (item.Id ==11){item.ShopifyRow=10} if (item.Id ==7){item.ShopifyRow=6} if (item.Id ==1){item.ShopifyRow=7item.ShopifyColumn =1}// Control Type if (item.Id ==9){item.ShopifyRow=6item.ShopifyColumn =1} if (item.Id ==11){item.ShopifyRow=10item.ShopifyColumn =1} if (item.Id ==13){item.ShopifyRow=10item.ShopifyColumn =2} if (item.Id ==202){item.ShopifyRow=10item.ShopifyColumn =2}if (item.Id ==16){item.ShopifyRow=11item.ShopifyColumn =2} if (item.Id ==10){item.ShopifyRow=9item.ShopifyColumn =2} if (item.Id ==15){item.ShopifyRow=11item.ShopifyColumn =1} if (item.Id ==202){item.ShopifyRow=12item.ShopifyColumn =1} if (item.Id ==17){item.ShopifyRow=12 item.ShopifyColumn =2} if (item.Id == 18){item.ShopifyRow=13item.ShopifyColumn =1} if (item.Id == 2){item.ShopifyRow=2item.ShopifyColumn =1} if (item.Id == 1){item.ShopifyRow=8item.ShopifyColumn =1} if (item.Id == 12){item.ShopifyRow=7item.ShopifyColumn =1}}// Draperyif (product.Name=="Draperies") { if (item.Id == 158){item.ShopifyRow=2} if (item.Id == 160){item.ShopifyRow=3} if (item.Id ==154){item.ShopifyRow=11111} if (item.Id ==159 && item.ShopifyColumn==2){item.ShopifyRow=499} if (item.Id ==157){item.ShopifyRow=3item.ShopifyColumn =1} if (item.Id ==161){item.ShopifyRow=4item.ShopifyColumn =2}//Lining Option if (item.Id ==162 && item.ShopifyColumn==2){item.ShopifyRow=6item.ShopifyColumn =1}//Add Contrast Border if (item.Id ==163 && item.ShopifyColumn==1){item.ShopifyRow=6item.ShopifyColumn =2}//Border Fabric if (item.Id ==165 && item.ShopifyColumn==2){item.ShopifyRow=7item.ShopifyColumn =1}// Border Size if (item.Id ==164 && item.ShopifyColumn==1){item.ShopifyRow=7item.ShopifyColumn =2}// Room label if (item.Id ==169 && item.ShopifyColumn==1){item.ShopifyRow=8item.ShopifyColumn =1}}} const {Name, MinimumWidth, MaximumWidth, MinimumHeight, MaximumHeight, fields} = product; let fieldsData = fields; fieldsData = fieldsData.sort( (a, b) => a.ShopifyRow - b.ShopifyRow || a.ShopifyColumn - b.ShopifyColumn ).map(field => { field.value = ''; return field; }); // Sort field options fieldsData = fieldsData.map((el) => { if (el.Type === 'swatch') { // Sort swatches alphabetically if (el.fieldOptions && el.fieldOptions.length) { el.fieldOptions = el.fieldOptions.sort((a, b) => a.label.localeCompare(b.label) ); } } else { if (el.fieldOptions && el.fieldOptions.length) { el.fieldOptions = el.fieldOptions.sort((a, b) => a.Order - b.Order); } } return el; }); if (Name.match(/hardware/gi)) { fieldsData.forEach(field => { if (field.ShopifyLabel.match(/Drapery Track Selection/gi)) { field.fieldOptions = field.fieldOptions.filter(fieldOption => fieldOption.Label !== 'Double Track'); } }); } try { // START EDIT if(isForEdit==false) { isRequiredAndDefaultValueHandler(fieldsData, Name);} else {isRequiredAndDefaultValueHandlerEdit(fieldsData, Name);} // END EDIT } catch(error) {console.log('Error: ' + error)} fieldsData.forEach(field => { if (field.Type === 'swatch') { field.fieldOptions.forEach(fieldOption => { // if this value is either falsy or smaller than the current value, make it the new value if (!allCollections[fieldOption.collection] || fieldOption.priceGroup < allCollections[fieldOption.collection]) { allCollections[fieldOption.collection] = fieldOption.priceGroup; } }) } }); // Switch order of certain labels fieldsData = fieldsData.map(el => { if (el.Type === 'toggle'){ if (el.fieldOptions[0].Label === 'Right' || el.fieldOptions[0].Label === 'Outside'){ // Switch the left to right and right to left [el.fieldOptions[0], el.fieldOptions[1]] = [el.fieldOptions[1], el.fieldOptions[0]]; } } return el; }); fieldsData = fieldsData.map((field) => { field = { ...field, isVisible: true }; if (field.fieldOptions && field.fieldOptions.length) { field.fieldOptions = field.fieldOptions.map((optionItem) => { optionItem = { ...optionItem, isVisible: true }; return optionItem; }); } return field; }); productData = { Name, fieldsData, MinimumWidth, MaximumWidth, MinimumHeight, MaximumHeight }; // Show the Product name in four spots document.querySelectorAll('[data="product-name"]').forEach(elDom => { elDom.textContent = Name; }); // Update all Width and Height DecimalInputs to range values if (Name.match(/wood/gi)) { woodAndFauwWoodWidthAndHeightAdjuster(); } else if (Name.match(/hardware/gi)) { maxWidth = 180; minWidth = 30; } else { (maxWidth = MaximumWidth), (minWidth = MinimumWidth), (maxHeight = MaximumHeight), (minHeight = MinimumHeight); } // Update the text inputs(DecimalInputs) for width and height // START EDIT document.querySelectorAll('[data-input="width"]').forEach((elDom) => { elDom.value = minWidth; if(Name.match(/roller/gi)){ elDom.value = 24; } if(Name.match(/drapery/gi)){ elDom.value = 10; } if (isForEdit) { elDom.value = parseInt(objEditSize[0].width) + parseFloat(objEditSize[0].widthFraction) } }); document .querySelectorAll('[data-input="height"]').forEach((elDom) => { if (isForEdit) { elDom.value = parseInt(objEditSize[0].height) + parseFloat(objEditSize[0].heightFraction) setTimeout(()=>{ document.querySelectorAll('[data-input="width"]')[0].dispatchEvent(new Event('focusout')); document.querySelectorAll('[data-input="width"]')[1].dispatchEvent(new Event('focusout')); document.querySelectorAll('[data-input="height"]')[0].dispatchEvent(new Event('focusout')); document.querySelectorAll('[data-input="height"]')[1].dispatchEvent(new Event('focusout')); },1000) }else { elDom.value = minHeight; } }); // END EDIT // document // .querySelectorAll('[data-input="height"]').forEach((elDom) => { // elDom.value = minHeight; // }); let htmlStringInjection = ''; fieldsData.forEach((field) => { switch (field.Type) { case 'swatch'://isMobile htmlStringInjection += dropdownSmallImgHTMLtemplate(field, false); break; case 'image-dropdown': htmlStringInjection += dropdownLargeImgHTMLTemplate(field, false); break; case 'text': htmlStringInjection += textInputHTMLTemplate(field); break; case 'color-dropdown'://isMobile htmlStringInjection += dropdownSmallImgHTMLtemplate(field, false); break; case 'toggle': htmlStringInjection += toggleHTMLTemplate(field); break; case 'radio-group'://isMobile htmlStringInjection += radioGroupHTMLTemplate(field, false); break; case 'measurement':// isMobile htmlStringInjection += measurementHTMLTemplate(field, false); break; case 'number': htmlStringInjection += numberInputHTMLTemplate(field, false); break; default: console.log('Error: Type ' + field.Type + ' not supported'); } }); const mobileHtmlStringInjection = []; const isMobile = window.matchMedia("only screen and (max-width: 760px)").matches; fieldsData.forEach((field) => { switch (field.Type) { case 'swatch'://isMobile mobileHtmlStringInjection.push({htmlStr: dropdownSmallImgHTMLtemplate(field, true), Label: field.ShopifyLabel}); break; case 'image-dropdown'://isMobile mobileHtmlStringInjection.push({htmlStr: dropdownLargeImgHTMLTemplate(field, true), Label: field.ShopifyLabel}); break; case 'text': mobileHtmlStringInjection.push({htmlStr: textInputHTMLTemplate(field), Label: field.ShopifyLabel}); break; case 'color-dropdown'://isMobile mobileHtmlStringInjection.push({htmlStr: dropdownSmallImgHTMLtemplate(field, true), Label: field.ShopifyLabel}); break; case 'toggle': mobileHtmlStringInjection.push({htmlStr: toggleHTMLTemplate(field), Label: field.ShopifyLabel}); break; case 'radio-group'://isMobile mobileHtmlStringInjection.push({htmlStr: radioGroupHTMLTemplate(field, true), Label: field.ShopifyLabel}); break; case 'measurement': mobileHtmlStringInjection.push({htmlStr: measurementHTMLTemplate(field, true), Label: field.ShopifyLabel}); break; case 'number': mobileHtmlStringInjection.push({htmlStr: numberInputHTMLTemplate(field, true), Label: field.ShopifyLabel}); break; default: console.log('Error: Type ' + field.Type + ' not supported'); } }); // For mobile accordion area only // Assuming that only one duplicate label should be visible at a time, the following groups them according to label and renders them const uniqueShopifyLabels = fieldsData.map(field => field.ShopifyLabel).filter((field, i, arr) => arr.indexOf(field) === i); const fieldsByLabel = uniqueShopifyLabels.map(label => mobileHtmlStringInjection.filter(fld => fld.Label === label)); let counter = hideDimensions ? 1 : 2; if (isMobile) { for (let i = 0; i < fieldsByLabel.length; i+=2) { let mobileHTML = accordionHTMLTemplateV2(fieldsByLabel[i], fieldsByLabel[i + 1], counter); document.querySelector('.pdm-modal__accordion-all').insertAdjacentHTML('beforeend', mobileHTML); counter++; }} document.getElementById('destop-html-injection').insertAdjacentHTML('beforeend', htmlStringInjection); catchAccordion(); accordionHandler(); toggleViewableDropdownContent(); dropdownCloseOnFocusOut(); selectRadioBtnAndCloseDropdown(); eventHandlerForOpenFabricModal(); generalDropdownHandler(); decimalInputFocusOutHandler(); decimalInputKeyUpHandler(); toolTipEventHanlders(); // Logic at times may cause the src attribute to be cleared. If so, it'll be replaced with a transparent img placeholder document.querySelectorAll('img').forEach(function(img){ img.onerror = function(){ this.src = '//cityshadecompany.com/cdn/shop/t/25/assets/transparent_picture.png?v=90213582425426527961707469932'; }; }); // Roller Shades / Honeycomb / Valance / Cornice / Drapery if (id === 1 || id === 8 || id === 9 || id === 10 || id === 11) { const fabricSelectionField = fieldsData.find(field => field.ShopifyLabel === "Fabric Selection") const selectedFieldOption = fabricSelectionField.fieldOptions.find(fieldOption => fieldOption.label === fabricSelectionField.value); const swatchThumbnail = selectedFieldOption?.imageURL; console.log(swatchThumbnail, "lorinana") const xlFabric = urlS3Bucket + xlFabricConverterPNG(swatchThumbnail) console.log(xlFabric, "lorinana") frontImgProduct.forEach(productImg => { productImg.setAttribute('src', `${productImgStr[id]}`) productImg.classList.remove('hide'); }); if (swatchThumbnail) { bgFabrics.forEach(fabric => { fabric.setAttribute('src', xlFabric); fabric.classList.remove('hide'); }); } if (id === 1) { const rollerShadeDescriptions = document.querySelectorAll('[data-description="roller-shade"]'); rollerShadeDescriptions.forEach(description => description.classList.remove('hide')); GetReadMoreBtn() // Roller shade has a fabric selection AND a back fabric selection. So here the back fabric selection is made visible const fabricSelectionField = fieldsData.find(field => field.ShopifyLabel === "Fabric Selection") const selectedFieldOption = fabricSelectionField.fieldOptions.find(fieldOption => fieldOption.label === fabricSelectionField.value); console.log(selectedFieldOption,"lori1baz") const swatchThumbnail = selectedFieldOption.imageURL; const xlFabric = urlS3Bucket + xlFabricConverterPNG(swatchThumbnail); bgFabricsRollerBackFabric.forEach(fabric => { fabric.classList.remove('hide'); }); document.querySelectorAll('[data-resources="roller"]').forEach(resource => resource.classList.remove('hide')); } else if (id === 8) { const honeycombDecriptions = document.querySelectorAll('[data-description="honeycomb"]'); honeycombDecriptions.forEach(description => description.classList.remove('hide')); document.querySelectorAll('[data-resources="honey"]').forEach(resource => resource.classList.remove('hide')); } else if (id === 9) { const valanceDecriptions = document.querySelectorAll('[data-description="valance"]'); valanceDecriptions.forEach(description => description.classList.remove('hide')); document.querySelectorAll('[data-resources="valance"]').forEach(resource => resource.classList.remove('hide')); } else if (id === 10) { const corniceDescriptions = document.querySelectorAll('[data-description="cornice"]'); corniceDescriptions.forEach(description => description.classList.remove('hide')); document.querySelectorAll('[data-resources="cornice"]').forEach(resource => resource.classList.remove('hide')); } else if (id === 11) { const draperyDescriptions = document.querySelectorAll('[data-description="drapery"]'); draperyDescriptions.forEach(description => description.classList.remove('hide')); GetReadMoreBtn(); // "Width" decimal input label should be "Panel Width" instead const widthContainers = document.querySelectorAll('[data-measurement="width"]'); widthContainers.forEach(widthContainer => widthContainer.querySelector('.decimal-input__title').textContent = 'Panel Width'); // Change the order of the fields for mobile const firstAccordion = document.querySelector('[data-accordion="dimensions"]'); (!firstAccordion == null) ? firstAccordion.style.gridRow = '3 / span 1' : null; // Now the number for each accordion needs to be updated let allAccordions = document.querySelectorAll('[data-form="accordion"]'); allAccordions = [...allAccordions]; [allAccordions[0], allAccordions[1]] = [allAccordions[1], allAccordions[0]]; allAccordions.forEach((accordion, index) => {if (!accordion == undefined){ let name = accordion.querySelector('.accordion__name');name.textContent = name.textContent.replace(/\d{1,}/g, `${index + 1}`);} }); // Show resources accordion pdfs document.querySelectorAll('[data-resources="draperies"]').forEach(resource => resource.classList.remove('hide')); } // Eclipse } else if (id === 2) { productImg.style.backgroundImage = `url(${productImgStr[id]})`; productImgMobile.style.backgroundImage = `url(${productImgStr[id]})`; productImgMobileModal.style.backgroundImage = `url(${productImgStr[id]})`; const fabricSelectionField = fieldsData.find(field => field.ShopifyLabel === "Fabric Selection") const selectedFieldOption = fabricSelectionField.fieldOptions.find(fieldOption => fieldOption.label === fabricSelectionField.value); const swatchThumbnail = selectedFieldOption.imageURL; let xlFabric = swatchThumbnail.split('/').map((str, index, arr) => { if (index === arr.length - 1) { str = str.replace('.jpg', '-xl.png'); } return str; }).join('/'); xlFabric = urlS3Bucket + xlFabric; const fabricStripImg = xlFabric.replace('.png', '-strip.png'); eclipsePattern.forEach(pattern => pattern.setAttribute('href', xlFabric)); eclipseTopTreatments.forEach(topTreatment => topTreatment.setAttribute('href', fabricStripImg)); eclipse.forEach(svgDom => svgDom.classList.remove('hide')); const eclipseShadeDescriptions = document.querySelectorAll('[data-description="eclipse"]'); eclipseShadeDescriptions.forEach(description => description.classList.remove('hide')); document.querySelectorAll('[data-resources="eclipse"]').forEach(resource => resource.classList.remove('hide')); // Roman Shades } else if (id === 3 ) { const fabricSelectionField = fieldsData.find(field => field.ShopifyLabel === "Fabric Selection") const selectedFieldOption = fabricSelectionField.fieldOptions.find(fieldOption => fieldOption.label === fabricSelectionField.value); const swatchThumbnail = selectedFieldOption?.imageURL; const xlFabric = urlS3Bucket + xlFabricConverterPNG(swatchThumbnail); frontImgProduct.forEach(productImg => { productImg.setAttribute('src', `${productImgStr[id]}`) productImg.classList.remove('hide'); }); bgFabrics.forEach(fabric => { fabric.setAttribute('src', xlFabric); fabric.classList.remove('hide'); }); const romanShadeDescriptions = document.querySelectorAll('[data-description="roman-shade"]'); romanShadeDescriptions.forEach(description => description.classList.remove('hide')); document.querySelectorAll('[data-resources="roman"]').forEach(resource => resource.classList.remove('hide')); // CitySimple } else if (id === 4) { const citySimpleDescriptions = document.querySelectorAll('[data-description="citySimple"]'); citySimpleDescriptions.forEach(description => description.classList.remove('hide')); const selectionField = fieldsData.find( (field) => field.ShopifyLabel === 'Fabric Selection' ); const selectedFieldOption = selectionField.fieldOptions.find( (fieldOption) => (fieldOption?.Label || fieldOption?.label) === selectionField.value ); const xlFabric = urlS3Bucket + xlFabricConverterPNG(selectedFieldOption.imageURL); frontImgProduct.forEach(productImg => { productImg.setAttribute('src', `${productImgStr[id]}`) productImg.classList.remove('hide'); });const selectedProductValue = fieldsData.find(field => field.ShopifyLabel === 'Product').value; const updateImgSrcAttr = (DOMArr) => { DOMArr.forEach(fabric => {fabric.setAttribute('src', xlFabric); }); } bgFabricsCitySimple.forEach(fabric => { [...fabric.children].forEach(childImg => { const citySimpleType = childImg.dataset.citySimple; if (citySimpleType === 'SimpleShade') { childImg.setAttribute('src', xlFabric); } else if (citySimpleType === 'SimpleRoman') { childImg.setAttribute('src', ''); } else if (citySimpleType === 'SimpleDrape') { childImg.setAttribute('src', ''); } else {console.log('error')} }) fabric.classList.remove('hide'); }); document.querySelectorAll('[data-resources="citysimple"]').forEach(resource => resource.classList.remove('hide')); // Bed Runners or Pillows } else if (id === 5 || id === 6) { if (id === 5) { const bedRunnerDescriptions = document.querySelectorAll('[data-description="bed-runner"]'); bedRunnerDescriptions.forEach(description => description.classList.remove('hide')); } else if (id === 6) { const pillowsDescriptions = document.querySelectorAll('[data-description="pillows"]'); pillowsDescriptions.forEach(description => description.classList.remove('hide')); } const installationAccordions = document.querySelectorAll('[data-installation-accordion-container]'); installationAccordions.forEach(installationAccordion => installationAccordion.classList.add('hide')) const fabricSelectionField = fieldsData.find(field => field.ShopifyLabel === "Fabric Selection") const selectedFieldOption = fabricSelectionField.fieldOptions.find(fieldOption => fieldOption.label === fabricSelectionField.value); const swatchThumbnail = selectedFieldOption.imageURL; const xlFabric = urlS3Bucket + xlFabricConverterPNG(swatchThumbnail); frontImgProduct.forEach(productImg => { productImg.setAttribute('src', `${productImgStr[id]}`) productImg.classList.remove('hide'); }); bgFabrics.forEach(fabric => { fabric.setAttribute('src', xlFabric); fabric.classList.remove('hide'); if (id === 5) { fabric.classList.add('bg-fabric--rotate'); } }); } else if (id === 7) { //Wood & Faux Wood frontImgProduct.forEach(productImg => { productImg.setAttribute('src', `${productImgStr[id]}`) productImg.classList.remove('hide'); }); bgFabrics.forEach(fabric => { fabric.setAttribute('src', '//cityshadecompany.com/cdn/shop/t/25/assets/transparent_picture.png?v=90213582425426527961707469932'); fabric.classList.remove('hide'); }); const woodDecriptions = document.querySelectorAll('[data-description="wood"]'); woodDecriptions.forEach(description => description.classList.remove('hide')); const desktopHeightAndWidth = document.querySelectorAll('[data-measurement-type="desktop"]'); desktopHeightAndWidth.forEach(desktopMeas => { if (desktopMeas.dataset.measurement === 'width') { desktopMeas.style.gridRow = '3/4'; desktopMeas.style.gridColumn = '1/3'; } else if (desktopMeas.dataset.measurement === 'height') { desktopMeas.style.gridRow = '3/4'; desktopMeas.style.gridColumn = '2/3'; } }); const firstAccordion = document.querySelector('[data-accordion="dimensions"]'); firstAccordion.style.gridRow = '4 / span 1'; let allAccordions = document.querySelectorAll('[data-form="accordion"]'); allAccordions = [...allAccordions]; [allAccordions[0], allAccordions[2]] = [allAccordions[2], allAccordions[0]]; [allAccordions[0], allAccordions[1]] = [allAccordions[1], allAccordions[0]]; allAccordions.forEach((accordion, index) => { let name = accordion.querySelector('.accordion__name'); name.textContent = name.textContent.replace(/\d{1,}/g, `${index + 1}`); }); document.querySelectorAll('[data-resources="wood"]').forEach(resource => resource.classList.remove('hide')); } else if (id === 12) { // Drapery HardwarefrontImgProduct.forEach(productImg => { productImg.setAttribute('src', `${productImgStr[id]}`) productImg.classList.remove('hide'); }); bgFabrics.forEach(fabric => { fabric.setAttribute('src', '//cityshadecompany.com/cdn/shop/t/25/assets/transparent_picture.png?v=90213582425426527961707469932'); fabric.classList.remove('hide'); }); // "Width" decimal input label should be "Track Width" instead const widthContainers = document.querySelectorAll('[data-measurement="width"]'); widthContainers.forEach(widthContainer => widthContainer.querySelector('.decimal-input__title').textContent = 'Track Width'); // Show resources accordion pdfs document.querySelectorAll('[data-resources="drapery-hardware"]').forEach(resource => resource.classList.remove('hide')); } fieldAndFieldOptionRulesHandler(); } catch (err) { console.log('Error:', err); } finally { spinner.classList.add('hide-spinner'); desktopContent.classList.remove('hide'); mobileSections.forEach(mobile => mobile. classList.remove('hide')); footerPageContainer.classList.remove('desktop-blank'); // Read more desktop document.getElementById("readmore").addEventListener("click",function(e) { var ele =e.target.previousElementSibling; var el=e.target; if (el.innerText=="Read more +") { ele.classList.remove('truncate'); el.innerHTML = 'Read less -'; } else{ ele.classList.add('truncate'); el.innerHTML = 'Read more +'; } ele.parentElement.setAttribute('style', 'height: auto !important'); }) } }; window.addEventListener('DOMContentLoaded', function () { const arrOfWindowPathname = window.location.href.split('/').filter(el => !!el);let productName=null;if (window.location.href.indexOf('?') == -1){ productName = window.location.search ? arrOfWindowPathname[arrOfWindowPathname.length - 2] : arrOfWindowPathname[arrOfWindowPathname.length - 1];}else {productName = window.location.search ? arrOfWindowPathname[arrOfWindowPathname.length - 1] : arrOfWindowPathname[arrOfWindowPathname.length - 1];productName = productName.substring(0, productName.indexOf('?'));if (productName =='' || productName == null) { productName = window.location.search ? arrOfWindowPathname[arrOfWindowPathname.length - 2] : arrOfWindowPathname[arrOfWindowPathname.length - 1];productName = productName.substring(0, productName.indexOf('?'));}} productName =productName.replace("#",''); const productsId = { 'roller-shades': 1, 'eclipse-double-layer-shade': 2, 'roman-shades': 3, 'roman-shades-new': 3, 'citysimple': 4, 'bed-runner': 5, 'pillows': 6, 'wood-faux-wood-blinds': 7, 'honeycomb-shade': 8, 'valance': 9, 'cornice': 10, 'drapery': 11, 'drapery-hardware': 12, }; // Global variable productId = productsId[productName]; getProductFormDataForId(productsId[productName]); CF.customerReady(function() { isWholesale =!!CF.customer?.data?.tags?.find(tag => tag.match(/wholesale/gi)) }); }); async function addSwatchToCart(id, quantity, properties,unitPrice) { var line_price = unitPriceif (properties.hasOwnProperty("Drapery Position") ==true && properties["Drapery Position"] == "Pair") { properties["Width"] = properties["Width"] / 2; line_price = Math.ceil(line_price /2)} const formData = { items: [ { id, quantity, properties, }, ], }; let cartRes; try { cartRes = await fetch('/cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(formData), }); } catch (error) { console.log("Error adding product " + ProductData.Name + " to cart", error) } return await cartRes.json(); } // START EDIT const findDecimal = (num) => { var integerPart = parseInt(num);var decimalPart = num - integerPart; return decimalPart } const submitForm =async () => { IsEdited = true var myParamEditDelete=0 if (!allVisibleFieldsHaveValues()) { return; } const [productWidth, productHeight] = getProductWidthAndHeight(); const quantityDom = document.querySelector('[name="quantity"]'); let quantityNumber = 1; if (parseInt(quantityDom.value) && parseInt(quantityDom.value) > 1) { quantityNumber = parseInt(quantityDom.value); } let cleanData = {}; var cleanDataList = [] productData.fieldsData.filter(field => field.value && field.isVisible).forEach((field) => { let obj = {}; obj[field.Id + ''] = field.value; cleanData = {...cleanData, ...obj} cleanDataList.push([field.ShopifyLabel, field.value]) }); cleanData = { referenceId: productId, width: productWidth, height: productHeight, ...cleanData }; const formData = new FormData(); for (const cleanDataKey in cleanData) { formData.append(cleanDataKey, cleanData[cleanDataKey]) } // Price Code Fix const { disPrice } = updatedPriceBasedOnQuantity(quantityNumber); var data_to_string = await JSON.parse(JSON.stringify(Object.fromEntries(formData))); if (productData.Name=="Draperies" && data_to_string["154"] =="Pair"){ formData.set('width', (productWidth / 2)); globalPriceDiscounted = Math.ceil((globalPriceDiscounted / 2))formData.set('discountPrice',globalPriceDiscounted); }else{formData.set('discountPrice', globalPriceDiscounted);}//Price Code Fix addToCarBtnIsLoading(true); $.ajax({ type: 'POST', url: 'https://studio-api.cityshadecompany.com/api/products/addToCart', data: formData, processData: false, contentType: false, success: function (data, textStatus, jqXHR) { var storageItem =JSON.parse(localStorage.getItem("forEdit")) || [] let bData = productData; bData.custom_id = data.product bData.width = parseInt(formData.get('width')) bData.widthFraction = findDecimal(formData.get('width')) bData.height = parseInt(formData.get('height')) bData.heightFraction = findDecimal(formData.get('height')) bData.fieldsData.forEach((item)=>{ delete item.fieldAndFieldOptionRules }) storageItem.push(JSON.parse(JSON.stringify(bData))) //START EDIT CART if(isForEdit){ const urlParamsEditDelete = new URLSearchParams(window.location.search); myParamEditDelete = urlParamsEdit.get('edit'); objEditDelete = storageItem.filter((item)=>{ return item.custom_id != myParamEdit }) localStorage.setItem("forEdit",JSON.stringify(objEditDelete)) }else { localStorage.setItem("forEdit",JSON.stringify(storageItem)) } //END EDIT CART //process data let properties = {}; for (i = 0; i < cleanDataList.length; i++) { properties[cleanDataList[i][0]] = cleanDataList[i][1]; } if (productId === 5 || productId === 6 || productId === 9 || productId === 10) { // Bed Runner, Pillows, Valance, Cornice } else if (productId === 12) { // Drapery Hardware properties = { 'Track Width': productWidth, ...properties }; } else { properties = { Width: productWidth, Height: productHeight, ...properties }; } // data.product is the variantId if(isForEdit){ setTimeout(()=> { deleteProductForEdit(myParamEditDelete) },500) } addSwatchToCart(data.product, quantityNumber, properties,globalPriceDiscounted).then(async (res) => { addToCarBtnIsLoading(false); toggleCartVisibility(); }) }, error: function (data, textStatus, jqXHR) { //process error msg addToCarBtnIsLoading(false); console.log('Failure'); }, }) }; async function getCartToCheck() { let cart; try { cart = await fetch('/cart.js', { method: 'GET', headers: { Accept: 'application/json', }, }); cart = await cart.json(); } catch (error) { console.log('Error occurred while getting cart'); } return cart; }//END EDIT const getPriceFromApiAndUpdateDOM = async() => { const [productWidth, productHeight] = getProductWidthAndHeight(); let cleanData = {}; let cleanDataList = []; productData.fieldsData .filter((field) => field.value && field.isVisible) .forEach((field) => { let obj = {}; obj[field.Id + ''] = field.value; cleanData = { ...cleanData, ...obj }; cleanDataList.push([field.ShopifyLabel, field.value]); }); cleanData = { referenceId: productId, width: productWidth, height: productHeight, ...cleanData, }; const formData = new FormData(); for (const cleanDataKey in cleanData) { formData.append(cleanDataKey, cleanData[cleanDataKey]); } priceDOMs.forEach(priceDOM => { priceDOM.textContent = ''; priceDOM.innerHTML = `Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (47)`; }); disableCartAreaObj.getPrice = true; disableCartArea();$.ajax({ type: 'POST', url: 'https://studio-api.cityshadecompany.com/api/products/getPrice', data: formData, processData: false, contentType: false, success: function (data, textStatus, jqXHR) { if (disableCartAreaObj.allVisibleFieldsDontHaveValues) { globalPrice = data.product.priceRange } else { globalPrice = data.product.finalPrice || data.product.priceRange } const quantity = +quantityInputs[0].value; updatePriceDOMs(quantity); disableCartAreaObj.getPrice = false; disableCartArea(); }, error: function (data, textStatus, jqXHR) { console.log('Failure'); priceDOMs.forEach(priceDOM => { priceDOM.innerHTML = ''; priceDOM.textContent = ``; }); originalPriceDOMs.forEach(originalPriceDOM => { originalPriceDOM.textContent = ''; }); percentageOffDOMs.forEach(percentageOffDOM => { percentageOffDOM.textContent = ''; }); disableCartAreaObj.getPrice = false; disableCartArea(); }, }); if (first_load == true) { first_load = false; setTimeout(()=> {$.ajax({ type: 'GET', url: 'https://studio-api.cityshadecompany.com/api/products/updateMetaOne?referenceId=' + productId + "&price=" + price_org + "&discount=" + price_dist, success: function (data, textStatus, jqXHR) { console.log(data," here dada price") }, error: function (data, textStatus, jqXHR) { } }); },4000) }} $("#main-form").submit(function(e){ e.preventDefault(); console.log(e); submitForm(false); }); mobileAddToCartBtn.addEventListener('click', function(e){ submitForm(false); }) /* */function GetReadMoreBtn(){ let desc = document.querySelector(".description_box .accordion__content--product-desecription:not(.hide)") desc.classList.add('truncate'); $('Read more +').insertAfter(desc) let desc_mob = document.querySelector(".description_box_mob .accordion__content--product-desecription:not(.hide)") } CF.customerReady(function() { isWholesale =!!CF.customer?.data?.tags?.find(tag => tag.match(/wholesale/gi)); if (isWholesale){ // document.querySelector(".banner-regular").style.display="none"; const isMobile = window.matchMedia("only screen and (max-width: 961px)").matches; if (isMobile) document.querySelector(".show_hide_discount_mob").style.display="none"; else document.querySelector(".show_hide_discount").style.display="block"; }else { document.querySelector(".show_hide_discount").style.display = "block"; const isMobile = window.matchMedia("only screen and (max-width: 961px)").matches; if (isMobile) document.querySelector(".show_hide_discount_mob").style.display="block"; else document.querySelector(".show_hide_discount").style.display="block"; // document.querySelector(".banner-regular").style.display="none"; } }) let isMobile22 = window.matchMedia("only screen and (min-width: 2134px)").matches; let isMobile1 = window.matchMedia("only screen and (max-width: 1026px)").matches; if(isMobile1) { document.getElementsByClassName("pd__right")[0].style.position="relative" document.getElementsByClassName("pd__right")[0].style.left="0px" } else{ if(isMobile22) { document.getElementsByClassName("pd__right")[0].style.left="46.3%" }else{ document.getElementsByClassName("pd__right")[0].style.left="70%" } } $(document).scroll(function() { var elefooter = $("#shopify-section-footer") var elem = $(".pd__product-title");const isMobile = window.matchMedia("only screen and (max-width: 1026px)").matches; const isMobile2 = window.matchMedia("only screen and (min-width: 2134px)").matches; if (!isMobile){ var footer_top = $(elefooter).offset().top; var footer_bottom = footer_top + $("#shopify-section-footer").height(); var docViewTop = $(window).scrollTop() ; var docViewBottom = docViewTop + $(window).height(); if (((docViewTop + footer_top) - footer_bottom) > 1600 ){ document.getElementsByClassName("pd__right")[0].classList.add("pd__right_ab") document.getElementsByClassName("quantity-btn")[0].classList.add("quantity-btn-2") document.getElementsByClassName("margin-mob_view")[0].classList.add("margin-mob_view2") document.getElementsByClassName("margin-mob_view")[1].classList.add("margin-mob_view2") document.getElementsByClassName("pd__cart-area__sub-container-4")[0].style.marginTop="20px" document.getElementsByClassName("pd__cart-area__sub-container-4")[0].classList.add("adjust__grid") document.getElementsByClassName("pd__cart-area")[0].classList.add("cart-bar-hide") document.getElementsByClassName("pd__cart-area")[0].classList.add("adjust_card") document.getElementsByClassName("pd__cart-area")[0].classList.remove("bottom-fix-bar") if(isMobile2){ document.getElementsByClassName("pd__right")[0].style.left="0px" document.getElementsByClassName("pd__right")[0].style.position="relative" document.getElementsByClassName("pd__right")[0].style.top="79%" }else{ document.getElementsByClassName("pd__right")[0].style.top="77%" document.getElementsByClassName("pd__right")[0].style.position="relative" document.getElementsByClassName("pd__right")[0].style.left="50%" document.getElementsByClassName("pd__right")[0].style.transform="translate(-50%, 0)" } } else{ document.getElementsByClassName("pd__right")[0].classList.remove("pd__right_ab")document.getElementsByClassName("pd__cart-area")[0].classList.remove("cart-bar-hide") document.getElementsByClassName("pd__cart-area")[0].classList.remove("adjust_card") document.getElementsByClassName("pd__cart-area")[0].classList.add("bottom-fix-bar") document.getElementsByClassName("quantity-btn")[0].classList.remove("quantity-btn-2") document.getElementsByClassName("margin-mob_view")[0].classList.remove("margin-mob_view2") document.getElementsByClassName("margin-mob_view")[1].classList.remove("margin-mob_view2") document.getElementsByClassName("pd__cart-area__sub-container-4")[0].style.marginTop="auto" document.getElementsByClassName("pd__cart-area__sub-container-4")[0].classList.remove("adjust__grid") if(isMobile2){ document.getElementsByClassName("pd__right")[0].style.left="46.3%" document.getElementsByClassName("pd__right")[0].style.position="fixed" document.getElementsByClassName("pd__right")[0].style.top="unset" }else{ document.getElementsByClassName("pd__right")[0].style.position="fixed" document.getElementsByClassName("pd__right")[0].style.top="unset" document.getElementsByClassName("pd__right")[0].style.left="70%" document.getElementsByClassName("pd__right")[0].style.transform="translate(-30%, 0)" } } /// pane var image_top = $(elem).offset().top ; var image_bottom = image_top + $(".pd__product-title").height(); var docViewTop = $(window).scrollTop() ; var docViewBottom = docViewTop + $(window).height(); if (((docViewTop + image_top) - image_bottom) > 68 ){ document.getElementsByClassName("pd__right")[0].classList.add("fix-pane") } else{ // $(".pd__right").show(); document.getElementsByClassName("pd__right")[0].classList.remove("fix-pane") } }});function AddSideChannels(){ const isMobileDev = window.matchMedia("only screen and (max-width: 760px)").matches; top_ = document.querySelectorAll("[data-accordion='8']")let top_t = document.querySelectorAll("[data-accordion='12']") let b= null; if (isMobileDev) { b = top_t[0] top_[0].appendChild(b); // $( '
Add Side Channels
' ).insertBefore( b ); } else { b = top_t[0] top_[0].appendChild(b); /// $( '
Add Side Channels
' ).insertBefore( b ); } }function AddLightBlocker(){ const isMobileDev = window.matchMedia("only screen and (max-width: 760px)").matches; top_ = document.querySelectorAll("[data-accordion='8']")let top_t = document.querySelectorAll("[data-accordion='11']") let b= null; if (isMobileDev) { b = top_t[0] top_[0].appendChild(b); } else { b = top_t[0] top_[0].appendChild(b); } }

Use left/right arrows to navigate the slideshow or swipe left/right if using a mobile device

Buy Custom Roller Shades Online | Shop Custom Roller Shades Online (2024)
Top Articles
Latest Posts
Article information

Author: Rueben Jacobs

Last Updated:

Views: 5539

Rating: 4.7 / 5 (77 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Rueben Jacobs

Birthday: 1999-03-14

Address: 951 Caterina Walk, Schambergerside, CA 67667-0896

Phone: +6881806848632

Job: Internal Education Planner

Hobby: Candle making, Cabaret, Poi, Gambling, Rock climbing, Wood carving, Computer programming

Introduction: My name is Rueben Jacobs, I am a cooperative, beautiful, kind, comfortable, glamorous, open, magnificent person who loves writing and wants to share my knowledge and understanding with you.