{"id":1423,"date":"2021-02-12T21:29:44","date_gmt":"2021-02-12T21:29:44","guid":{"rendered":"https:\/\/www.goodguyssigns.com\/blog\/?p=1423"},"modified":"2025-03-18T17:50:34","modified_gmt":"2025-03-18T17:50:34","slug":"custom-cardboard-cutouts-2","status":"publish","type":"post","link":"https:\/\/www.goodguyssigns.com\/blog\/custom-cardboard-cutouts-2\/","title":{"rendered":"Custom Cardboard Cutouts"},"content":{"rendered":"\n<p>If you&#8217;re reading this article, it means one of two things. Either you are considering buying a cardboard cutout, or have done so and are looking for more information and best ways to use them. You&#8217;d be surprised at what they can do for business, for loved ones, and yes, for parties! We&#8217;ll dive into many aspects regarding what a cardboard cutout can mean and what it can do. Among the topics we&#8217;ll discuss: &nbsp;&nbsp;<\/p>\n\n\n\n<ul><li>How they can earn you plenty more revenue<\/li><li>How they can help family during the strain COVID has brought<\/li><li>How they have changed the face of the sports world<\/li><\/ul>\n\n\n\n<p>Let&#8217;s start  by telling you about the types of cutouts.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong><em>Types of Cardboard Cutouts:<\/em><\/strong><\/p>\n\n\n\n<p>First, there are what&#8217;s known as headsicles. Sounds like a popsicle, and it pretty much is. What you get with a <a href=\"https:\/\/www.goodguyssigns.com\/life-sized-cutouts\/headsicles\">headsicle<\/a> is a printed image on cardboard (most often a face) held by a person&#8217;s hands or sometimes connected to a stick.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"269\" height=\"179\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-46.png\" alt=\"\" class=\"wp-image-1424\"\/><\/figure><\/div>\n\n\n\n<p>You&#8217;ll often see fans displaying them at sporting events.<\/p>\n\n\n\n<p>Next up, life-size standups, or what&#8217;s sometimes referred to as a <a href=\"https:\/\/www.goodguyssigns.com\/blog\/?s=what+is+a+standee\">standee<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"alignright size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"170\" height=\"399\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-47.png\" alt=\"\" class=\"wp-image-1425\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-47.png 170w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-47-128x300.png 128w\" sizes=\"(max-width: 170px) 100vw, 170px\" \/><\/figure><\/div>\n\n\n\n<p>Those are cardboard cutouts you&#8217;ll see at stores, expos, etc. They are generally the size of 6 feet high and 30 inches wide. Those are our standard maximum dimensions we produce. Side note though&#8230;we are here for you and can be flexible on sizing on yours. We will make something taller and wider, but you will incur a little extra cost. Our skilled sales staff will go over the details with you when you place your order.<\/p>\n\n\n\n<p>  <\/p>\n\n\n\n<p>   <\/p>\n\n\n\n<p>Lastly, there are what&#8217;s called life-size Cheer-Ups. That term is something we, at Good Guys Signs, came up with in 2020.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-rounded\"><img loading=\"lazy\" decoding=\"async\" width=\"227\" height=\"394\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-48.png\" alt=\"\" class=\"wp-image-1426\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-48.png 227w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-48-173x300.png 173w\" sizes=\"(max-width: 227px) 100vw, 227px\" \/><\/figure>\n\n\n\n<p>To be clear, they are the exact same thing as life-size standups, but we thought the moniker <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cardboard-cutouts-and-social-distancing\/\">Cheer-Ups<\/a> would work well, People have been shying away from travel to see loved ones during the covid 19 pandemic. The idea behind the nickname is what it sounds like&#8230;to cheer someone up with &#8220;your presence.&#8221;<\/p>\n\n\n\n<p>Each one of these has a purpose and they are used for particular reasons to elicit a specific response.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong><em>Benefits of Using Cardboard Cutouts as Signs:<\/em><\/strong><\/p>\n\n\n\n<p>Let&#8217;s detail how they can be used to attract business, what information you should consider including on one <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cardboard-cutouts-as-signs\/\">used as a sign<\/a>, and how the effect they can have on people.<\/p>\n\n\n\n<p><strong>A Life Size Cutout to Attract Business- <\/strong>They can have a tremendous impact with your current client base or those you hope to acquire for future revenue streams. A good old-fashioned cutout can induce buyer emotions in several ways you might not have thought of. They truly can increase your sales greatly.<\/p>\n\n\n\n<p>You want to <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cutouts-and-retail-atmosphere\/\">exhibit your brand<\/a>. Why not, it&#8217;s the primary visual of your company. Maybe you&#8217;re displaying it in-store or perhaps at a trade show. Wherever the venue, it makes people aware of you, or reminds them who you are and what your product or service is. A cardboard cutout can be many things. You can simply use an image of yourself. It can be your logo. It can be something completely different. What if all it accomplishes is to get a laugh out of those who see it? That&#8217;s totally okay, because guess what? You engaged the audience. And doing that can be all you need to have earned that first sale or repeated business. Simply put, the only thing it takes is to evoke a response. You have succeeded in your quest.<\/p>\n\n\n\n<p>We obviously don&#8217;t know why kind of company you own. But let&#8217;s use a couple of examples as to <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cardboard-cutouts-for-business\/\">how a cutout can help your business<\/a>. Example #1- you run a local convenience store. Let&#8217;s say you&#8217;re having a difficult time selling carrots. You bought a whole bunch, now they&#8217;ll  go bad. You continue to lose money on them. You could quickly and easily get a cardboard cutout of a cute rabbit eating a carrot, and it might bring about a reaction. Sales of your carrots might just skyrocket.<\/p>\n\n\n\n<p>Example #2- you own a car wash. You could buy two cutouts. They are identical cars. The way you display them could be that one is completely filthy while the other is squeaky clean. It&#8217;s sort of a before-and-after feel. Position them so people can see them as they drive by. Before you know it, you&#8217;re getting more business.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"317\" height=\"238\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-54.png\" alt=\"\" class=\"wp-image-1432\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-54.png 317w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-54-300x225.png 300w\" sizes=\"(max-width: 317px) 100vw, 317px\" \/><\/figure><\/div>\n\n\n\n<p>There are unlimited amounts of creative ways you can promote your brand. Regardless if it&#8217;s that you want to deliver a deep message, or are just hoping for a smile and a sale, cutouts are a very inexpensive way to advertise your company or its products.<\/p>\n\n\n\n<p><strong>Using Them as a Sign- <\/strong>They can be signs with any sort of design and information on them. It could be a cutout of a bee promoting jars of honey. It can be a sandy beach setting at a travel agency. You can do whatever you want with them to help sell anything.<\/p>\n\n\n\n<p>Utilizing cutouts as signs is a phenomenal way to attract attention, whether they are in your store, at an expo, or anywhere you can gain more business. As we just exhibited, they don&#8217;t solely have to be an image of a life-sized human, although those can be incredibly effective. A cutout of a widely popular person at your place of business can give the impression to customers that the celebrity is providing you with an endorsement. Maybe you&#8217;re exhibiting at a convention, and your company sells an organic dog food, for example. Imagine the attention you&#8217;d get from attendees if you did something like on of these two things. You have a cutout of a healthy-looking pooch rolling in grass full of joy and contentment, or even jumping through a hoop. Creativity in the way you market with these promotional pieces will go a long way to earn business and ramp up revenue.<\/p>\n\n\n\n<p>Your goal is to grab the attention of those you hope will become future customers. Simultaneously, it&#8217;s also important to be careful in planning the look of your cutout. Entertainment and information will cross paths when you are designing it. If you use verbiage on it without an image, keep it simple, keep it brief, and get to the point fast. Society has largely become very short with its attention span. You don&#8217;t want to overwhelm or irritate them with excessive amounts of text. They might see so much that it becomes <em>too<\/em> much. And then you could immediately lose them. Get them interested and keep them interested. That should be your aspiration.<\/p>\n\n\n\n<p>As with any visual advertisement, color combinations are extremely important. Just like with text, color overload can negate a potential sale in the blink of an eye. There are color combos that go great together, and they&#8217;re not complex; generally two to three colors in a logo. See the following simple, yet effective color schemes that are globally recognized.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"318\" height=\"222\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-55.png\" alt=\"\" class=\"wp-image-1433\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-55.png 318w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-55-300x209.png 300w\" sizes=\"(max-width: 318px) 100vw, 318px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"225\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-56.png\" alt=\"\" class=\"wp-image-1434\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-56.png 225w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-56-150x150.png 150w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"225\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-57.png\" alt=\"\" class=\"wp-image-1435\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-57.png 225w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-57-150x150.png 150w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><\/figure><\/div>\n\n\n\n<p><strong>A Life Size Cutout and Social Distancing- <\/strong>We are undoubtedly living in unusual times. COVID-19 has put an intense strain on all that we are usually accustomed to. Families who normally travel to visit relatives have put that on hold. While times have certainly been tough, there is something you can do to feel closer to loved ones. The answer is a lifesize cardboard cutout.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"alignright size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"272\" height=\"438\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-58.png\" alt=\"\" class=\"wp-image-1436\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-58.png 272w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-58-186x300.png 186w\" sizes=\"(max-width: 272px) 100vw, 272px\" \/><\/figure><\/div>\n\n\n\n<p> <\/p>\n\n\n\n<p>The term &#8220;social distancing&#8221; has sadly become part of our everyday vocabulary. All a person has to do is look down at the floor in every store they go into. Signs are rampant in reminding us to keep 6 feet apart. Most everyone wears a face mask when running simple errands. With the practice of social distancing, people simply aren&#8217;t travelling across state lines to celebrate a family member&#8217;s 70th birthday. They&#8217;re not commonly getting on planes or trains to be there for that milestone birthday. A cardboard cut out can be a wonderful substitute for those who are missing friends and family.<\/p>\n\n\n\n<p>During this difficult age we are dealing with, all of us at <a href=\"https:\/\/www.goodguyssigns.com\/\">Good Guys Signs <\/a>are filled with empathy. We have nicknamed our cutouts &#8220;Cheer-Ups.&#8221; We gave them that name because they truly do help, and they truly do cheer people up. A prime example is one of our customers named Jean Clement from Chicago. Something pretty darn special unfolded when we were making a Cheer-Up for her. We wrote about this very star-aligning story on our blog page. You may just laugh, cry, and feel a certain warmth all at the same time if you click the link below and give the article a read.<\/p>\n\n\n\n<figure class=\"wp-block-embed-wordpress aligncenter wp-block-embed is-type-wp-embed is-provider-good-guys-signs-graphics-info-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"vD3MenfnzE\"><a href=\"https:\/\/www.goodguyssigns.com\/blog\/a-story-that-has-to-be-told\/\">A Story That Has to Be Told<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;A Story That Has to Be Told&#8221; &#8212; Good Guys Signs Graphics Info Blog\" src=\"https:\/\/www.goodguyssigns.com\/blog\/a-story-that-has-to-be-told\/embed\/#?secret=50jOxeEbim#?secret=vD3MenfnzE\" data-secret=\"vD3MenfnzE\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"has-medium-font-size\">   <\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong><em>Sporting Events and Parties:<\/em><\/strong><\/p>\n\n\n\n<p>That pandemic talk was somber to even write about, but it is the world we&#8217;ve been living in. Let&#8217;s elevate the mood. Time to go over a couple ways that a cardboard cut out has been something special for the <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cardboard-cutouts-sports\/\">sports world<\/a>, as well as how a life size cutout can end up being the life of a party.<\/p>\n\n\n\n<p>The past year in sports has been unlike any that teams, players, and fans have ever experienced. COVID-19 has wreaked havoc on the country, and for the most part, fans have been kept away from stadiums. Then, a clever idea came into play. And something remarkable began to unfold. Enter to the world of athletics&#8230;cardboard cut outs.<\/p>\n\n\n\n<p>This year, cutouts became a phenomenon of far greater significance than just for fun. Teams began selling big head ones and nearly full-body ones to people. Fans sent in their images to the teams who then hired companies (like ours) to produce the cutouts. Team staff members then placed the cutout fans into seats. Crowd noise was pumped into stadiums, and even in the case of the Oakland A&#8217;s baseball team, a star returned to his humble beginnings in the &#8220;person&#8221; of Tom Hanks. The A&#8217;s were able to convince the two-time Oscar winner and huge baseball fan to voice selling hot dogs through stadium speakers. Then, they produced a cutout of him selling the dogs. What was even more special about it is that Hanks&#8217; first job ever was actually working as a hot dog vendor for the team!<\/p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"476\" height=\"267\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-59.png\" alt=\"\" class=\"wp-image-1437\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-59.png 476w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-59-300x168.png 300w\" sizes=\"(max-width: 476px) 100vw, 476px\" \/><\/figure><\/div>\n\n\n\n<p>Sports are competitive by nature. That competitive spirit was amplified this year, as teams tried to get the better of other squads and &#8220;get the win.&#8221; In Los Angeles, where Hollywood celebrities and season ticket holders attend games, teams were getting the stars&#8217; cutouts and placing them in their assigned seats. How about the Tampa Rays baseball team, who play their home games about 20 minutes from our shop? They made custom cutouts of three of the most famous athletes in the city, and shipped them out to San Diego for a playoff game. Yes, in a cool and unique way, seven-time Super Bowl champion Tom Brady, along with a pair of Stanley Cup champions, &#8220;travelled&#8221; over 2,400 miles to support the city&#8217;s other pro team.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"202\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-60.png\" alt=\"\" class=\"wp-image-1438\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-60.png 360w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-60-300x168.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/figure><\/div>\n\n\n\n<p>Cutouts of cardboard fans, pets, mascots, and former players of certain teams became commonplace in the stands. And this creativity didn&#8217;t just help fans to feel as if they were still <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cardboard-cutouts-and-sporting-events\/\">part of sporting event experiences<\/a>. It gave players a feeling of some sense of normalcy as well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"406\" height=\"228\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-61.png\" alt=\"\" class=\"wp-image-1439\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-61.png 406w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-61-300x168.png 300w\" sizes=\"(max-width: 406px) 100vw, 406px\" \/><\/figure>\n\n\n\n<p><strong>Cutouts and Parties- <\/strong>You&#8217;re planning for a party that&#8217;s on the horizon. You trying to figure out how to pull off something unique, something you haven&#8217;t done before. Then, the light bulb goes off, and you realize it&#8217;s the perfect time to <a href=\"https:\/\/www.goodguyssigns.com\/blog\/cardboard-cutouts-and-parties\/\">add a cutout into the mix<\/a>. The cutout can be perfect for parties and the differing emotions that might surround them.<\/p>\n\n\n\n<p>Think about the possibilities you can have at a party with your lifesize cutout. An example of fun for someone&#8217;s 40th birthday&#8211; we have the ability to do some minor photo edits, as well as a major photo edits option. We have affectionately named the major photo edits &#8220;reconstructive surgery.&#8221; When you break out your cutout to reveal the birthday boy or girl looking much older, say 60, laughter will fill the room. People might stand next to it for a fun photo-op. You can also go in the opposite direction that&#8217;s more respectable and kinder. You could make the celebrated person appear 10 years younger. You certainly won&#8217;t draw a ton of laughter, but the recipient will probably feel a little better with your sweet gesture.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-rounded\"><img loading=\"lazy\" decoding=\"async\" width=\"190\" height=\"439\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-62.png\" alt=\"\" class=\"wp-image-1440\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-62.png 190w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-62-130x300.png 130w\" sizes=\"(max-width: 190px) 100vw, 190px\" \/><\/figure>\n\n\n\n<p>Here&#8217;s another example of a party scenario and how a cutout could be fun. Perhaps you&#8217;re in charge of preparing a retirement party for a co-worker. How do you send them off laughing? Give us their image, and we&#8217;ll edit them using a walker onto it. The bottom line is that there are plenty of ways a cardboard cut out can steal the show at any party.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong><em>How to Order a Custom Cutout:<\/em><\/strong><\/p>\n\n\n\n<p>Ordering your new custom cutout is very easy, and then the process is actually pretty fascinating. All we need from you is any two-dimensional image. Anything. It doesn&#8217;t matter what you want for your cutout. We&#8217;ll get it done for you. Send us a high-resolution jpeg file of the subject that&#8217;s your Cheer-Up, and we&#8217;ll produce a carboard cutout for you within two days. <a href=\"https:\/\/www.goodguyssigns.com\/blog\/what-materials-are-used-for-a-custom-cardboard-cutout\/\">Click here<\/a> to see what materials make up a cutout.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"165\" height=\"403\" src=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-63.png\" alt=\"\" class=\"wp-image-1441\" srcset=\"https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-63.png 165w, https:\/\/www.goodguyssigns.com\/blog\/wp-content\/uploads\/2021\/02\/image-63-123x300.png 123w\" sizes=\"(max-width: 165px) 100vw, 165px\" \/><\/figure><\/div>\n\n\n\n<p>We have two types of materials that make up our cutouts: corrugated plastic and cardboard. We utilize carboard as our standard level cardboard standup. There isn&#8217;t much to get into regarding this material. If you&#8217;ve ever moved, you&#8217;ve undoubtedly packed stuff in a cardboard box. Corrugated plastic is a material you might not be familiar with. Corrugated plastic, or Coroplast\u2122, is a thin plastic (about 1\/6th of an inch thick). We use this material for our premium cutouts. It&#8217;s stronger than cardboard, is not susceptible to moisture, and dirt can be easily wiped off. Its lifespan is much longer. Because of all those bonuses, it does cost a little more. But rest assured, our prices on both materials are much less than any of our competitors.<\/p>\n\n\n\n<p>Pricing on our standard cutouts is as follows:<\/p>\n\n\n\n<ul><li>Desktop = $65<\/li><li>For a 4 foot tall = $79<\/li><li>For a 5 foot tall = $84<\/li><li>For a 6 foot tall = $80<\/li><li>Up to 7 feet tall = $109<\/li><li>Up to 8 feet tall = $139<\/li><\/ul>\n\n\n\n<p>So as for the process, you would send us the aforementioned image, then our skilled professional designers will work with the image, then send it to our production department. That part of the staff prints the image, then uses a pretty amazing high-tech machine where they cut out the image. It&#8217;s really quite a cool process from start to finish. Click the link below for a quick video on how we produce them.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1vML9d17wY86G2BCkdYsgeBNDymCo2Lv2\/view\">https:\/\/drive.google.com\/file\/d\/1vML9d17wY86G2BCkdYsgeBNDymCo2Lv2\/view<\/a><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong><em>Wrapping Up:<\/em><\/strong><\/p>\n\n\n\n<p>There it is. A lot of information for you to digest. But it&#8217;s our job and goal to be as thorough with any and every current or potential customer. Part of our mission statement is that we absolutely feel it is critically important to us that people trust us with their brand and their money. We constantly strive to make every effort to provide the most elite service at extremely competitive pricing and unrivaled delivery. If there are any questions you still have, reach out to us at (800) 614-8040. We have an incredibly knowledgeable and talented staff that will help you with your next cardboard cutout.<\/p>\n\n\n\n<a href=\"javascript:void;\"><img decoding=\"async\" class=\"img-fluid\" src=\"https:\/\/www.goodguyssigns.com\/image\/cache\/catalog\/products\/life-sized%20cutouts\/life-size-cheer-up-cheap-2-690x460.webp\"><\/a>\n\n\n\n    \n      \n<div id=\"product-product\" class=\"container\">\n    <section>\n        <div class=\"row d-none\">\n            <div class=\"col-12\">\n            <h1 class=\"text-muted h2 d-inline-block product-heading-title\">\n             Life Size Cheer Ups \n             <span class=\"product-heading-tagline\">Custom Life Size Cutouts | Life Size Human Cutout Standees<\/span>\n             <\/h1>\n             <\/div>\n            <div class=\"col-md-6\">\n\n        <\/div>\n \n    <\/section>\n\n    <section>\n        <div class=\"row\">          \n            <div id=\"content\" class=\"col-12\">\n                <div class=\"row \">                    \n\n                   \n                    <div class=\"col-12\">\n                        <div>\n                            <div id=\"product\" class=\"pt-4 pb-4\">\n                                <div id=\"options-holder\">\n                                    <form name=\"select-options\" method=\"get\" action=\"\/get-quote\">\n                                        <input type=\"hidden\" name=\"product_id\" value=\"162\">\n                                        <input type=\"hidden\" name=\"quote_id\" value=\"\">\n                                        <input type=\"hidden\" name=\"design_id\" value=\"\">\n                                        <input type=\"hidden\" name=\"selected_shipping_cost\"\n                                               value=\"\"> <input\n                                                type=\"hidden\" name=\"selected_shipping_method\"\n                                                value=\"ups_custom.03\"> <input\n                                                type=\"hidden\" name=\"current_subtotal\" value=\"119.00\">\n                                        <input type=\"hidden\" name=\"current_totalcost\"\n                                               value=\"127.93\">\n                                        <input type=\"hidden\" name=\"print_type_id\" value=\"2\">\n\n                                        <!-- options selection -->\n\n  \n  \n \n\n\n\n\n    <div id=\"product-options\" style=\"max-width:90%;margin:0 auto\">\n        <div id=\"quoterrors\"><\/div>\n              \n\n\n        <div class=\"\" >\n                \n                \n                \n                \n                \n                \n                \n                \n                                                                                \n                \n                \n                \n                                                                                                                 \n                \n                \n                \n                                                                                \n                \n                \n                \n                                                                                                                 \n                \n                \n                \n                                                                                \n                                        \n                                                                \n                       \n                                             \n                                     \n                \n                \n                \n                \n                \n                \n                                                                                \n                \n                                                                         \n                \n                \n                \n                \n                \n                                                                                \n                \n                \n                                                                         \n                \n                \n                \n                \n                                                                                \n                \n                \n                \n                \n                \n                                                                                             \n                \n                                                                                \n                                        \n                                                               \n                       \n                                              \n                                     \n                \n                \n                \n                \n                \n                \n                                                                                \n                                        \n                                                               \n                        \n                                             \n                                     \n                \n                \n                \n                \n                \n                \n                                                                                \n                                        \n                                                                \n                       \n                                             \n                                     \n                \n                \n                \n                \n                \n                \n                                                                                \n                \n                \n                \n                \n                                                                                <!-- File uploads -->\n                        <!-- upload-n-go modal -->\n<style type=\"text\/css\">\n    .modal-open .modal {\n        height:100%;\n        \/* overflow-x: hidden; *\/\n        \/*  overflow-y: hidden !important;*\/\n    }\n\n<\/style>\n<div class=\"d-none\">\n             \n                        <input data-option-name=\"Design ID\" \n                               type=\"hidden\" name=\"option[1909]\" \n                               value=\"\" \n                               id=\"input-option1909\" \/>\n\n                    \n                            <div class=\"form-group row mb-4 mb-lg-3\">\n                            <div class=\"col-lg-4 col-12  \">\n                                <label class=\"col-form-label\" for=\"input-option1911\">                           \n                                     \n                                    Design Assist\n                                <\/label> \n                            <\/div>\n                            <div class=\"col-lg-8 col-12  text-left\">\n                                <div id=\"input-option1911\" >\n                                                                            <div class=\"checkbox\">\n                                            <label class=\"text-left col-form-label\"> \n                                                <input type=\"checkbox\"\n                                                       data-option-name=\"Design Assist\"\n                                                       name=\"option[1911][]\"\n                                                       value=\"7066\" \/> \n                                                                                                Yes\n                                                                                            <\/label>\n                                        <\/div>\n                                                                    <\/div>\n                            <\/div>\n                        <\/div>\n                    \n<\/div>\n\n\n<div id=\"upload-n-go\" class=\"modal\" tabindex=\"-1\" role=\"dialog\" style=\"\">\n    <div class=\"modal-dialog \" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header bg-indigo text-white\">\n                <h5 class=\"modal-title m-0 p-0 w-100 text-white\">\n                    My Design Artwork \n                    <button type=\"button\" class=\"close text-white\"\n                            data-dismiss=\"modal\" aria-label=\"Close\"\n                            style=\"font-size: 1rem; font-weight: 400;\">\n                        <span aria-hidden=\"true\"> \n                            <span\n                                class=\"fa fa-times bg-danger\"\n                                style=\"border-radius: 5px; padding: 4px 6px; display: inline-block;\"><\/span>\n                        <\/span>\n                    <\/button>\n                <\/h5>\n            <\/div>\n            <div class=\"modal-body bg-light\">\n                <div class=\"container p-3\" id=\"decide-step-1\">\n                    <h4 class=\"text-center text-primary\">How To Handle Your Design<\/h4>\n                    <div class=\"text-center mt-3\">Upload your print-ready design or let us design it for you!<\/div>\n                    <div class=\"row mt-3 mb-3\">\n                        <div class=\"col-12 col-lg-6 text-center w-100\" \n                             style=\"border-right:1px solid #dedede;\">\n                            <div class=\"p-3 mb-3\">\n                                <button class=\"btn btn-lg btn-primary w-100\" onclick=\"$('#decide-step-1').hide();\n                                        $('#choosepath-step-1').show();\">Now<\/button>\n                            <\/div>\n                            <div>Take care of the design right now.<\/div>\n                        <\/div>\n                        <div class=\"col-12 col-lg-6 mt-2 mt-lg-0 text-center w-100 \" style=\"border-left:1px solid #dedede;\">\n                            <div class=\"p-3 mb-3\">\n                                <button class=\"btn btn-lg btn-primary w-100 \" data-dismiss=\"modal\" >Later<\/button>\n                            <\/div>\n                            <div>Take care of the design when you are ready to checkout.<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"row\">\n                        <div class=\"col-12  text-center\">\n                            <label class=\"col-form-label\" >                           \n                                <span style=\"vertical-align:middle;\" role=\"button\" data-toggle=\"tooltip\" \n                                      data-placement=\"bottom\" title=\"\" class=\"d-none fa fa-info green\" data-original-title=\" Design Options   \">\n                                <\/span>       \n                                <span style=\"vertical-align:middle;line-height:2\"> Design Options<\/span>   \n                            <\/label>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"container p-3\" id=\"choosepath-step-1\" style=\"display:none;\">\n                    <h4 class=\"text-center text-primary\">Choose Your Path<\/h4>\n\n                    <div class=\"row mt-3 mb-3\">\n                        <div class=\"col-12 col-lg-6 text-center w-100 \" style=\"border-right:1px solid #dedede;\">\n                            <div class=\"p-0  m-0\" style=\"height:100%;position:relative\">\n                                <div class=\"mb-3\">Print Ready<\/div>\n                                <div class=\"m-0\" style=\"font-size:14px;\">\n                                                            <div class=\"col-lg-8 col-12  text-left\">\n                            <div id=\"input-option1910\">\n                                                                    <div class=\"radio\">\n                                        <label> \n                                                    <input\n                                                         \n                                                            checked =\"checked\"\n                                                         \n                                                        type=\"radio\"\n                                                   name=\"option[1910]\"\n                                                   value=\"7064\" > \n                                             \n                                            No Digital Proof\n                                                                                    <\/label>\n                                    <\/div>\n                                                                    <div class=\"radio\">\n                                        <label> \n                                                    <input\n                                                         \n                                                        type=\"radio\"\n                                                   name=\"option[1910]\"\n                                                   value=\"7065\" > \n                                             \n                                            Yes, I would like a Digital Proof\n                                                                                    <\/label>\n                                    <\/div>\n                                                            <\/div>\n                        <\/div>\n                            \n                                <\/div>\n\n                                <button id=\"printer-friendly\" \n                                        class=\"btn mt-md-5 btn-primary w-100 pr-1 pl-1\"\n                                        style=\"position:relative;margin-top:10px;bottom:10px;left:1px;\">Print-Ready Upload<\/button>\n                            <\/div>\n\n                        <\/div>\n                        <div class=\"col-12 col-lg-6 mt-2 mt-lg-0 text-center w-100\" \n                             style=\"border-left:1px solid #dedede;\">\n                            <div class=\"p-0  pl-1 m-0\" style=\"height:100%;position:relative\">\n                                <div class=\"mb-3\">Design Assist<\/div>\n                                <div>\n                                    <ul class=\"w-100 text-left p-0 \" style=\"font-size:14px;\">\n                                        <li>If you have files, upload<\/li>\n                                        <li>Describe your design<\/li>\n                                        <li>Let our pro designers do the rest<\/li>\n                                        <li class=\"mb-5\">Approve a digital proof via email<\/li>      \n                                    <\/ul>\n                                    <br>\n                                <\/div>\n                                <button id=\"design-assist\" class=\"btn btn-primary w-100 pr-1 pl-1\" \n                                        style=\"position:absolute;bottom:10px;left:1px;\" \n                                        >Design Assist<\/button>\n                            <\/div>                            \n                        <\/div>\n                    <\/div>\n                    <div class=\"row\">\n                        <div class=\"col-12 mt-3 text-center\">\n                            <b class=\"text-primary\">Rest Easy Guaranteezy<\/b>\n                            <div class=\"mt-2\">We will check every file before we process your order.<\/div>\n                            <div>If we find any issues with your artwork, we will email you for more information.<\/div>                            \n                        <\/div>\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"container\" id=\"upload-step-1\" style=\"display:none;\">\n                    <div class=\"row\">\n                        <div class=\"col-3 h6 pt-2 text-left cursor-pointer text-primary\" \n                             onclick=\"$('#upload-step-1').hide();\n                                     $('#choosepath-step-1').show();\">\n                            <i class=\"fa fa-angle-left mr-2\" aria-hidden=\"true\"><\/i>Back\n                        <\/div>\n                        <div class=\"col-6\">\n                            <h5 id=\"upload-title\" class=\"text-center text-primary\">Upload your design(s)<\/h5>\n\n                        <\/div>\n                        <div class=\"col-3 h6 pt-2 text-right cursor-pointer text-primary\">\n\n                        <\/div>\n                    <\/div>\n                    <div class=\"text-center mb-2\" id=\"upload-byline\"><\/div>\n                    <div class=\"row\" >\n                        <div   \n                            id=\"front-side-holder\" class=\"col-12 col-lg-6 mt-2 mt-lg-0 flow-list pr-lg-1 pl-lg-2\" style=\"min-height:180px;\">\n                            <div class=\"col-12 border border-primary\">\n                                <div class=\"text-center border border-primary\n                                     border-top-0 border-left-0 border-right-0 rounded-0\"><b class=\"front-side-holder-heading\">Front<\/b><\/div>\n                                <div class=\"text-center mt-2\" style=\"min-height:180px;position:relative\" >\n                                    <img decoding=\"async\" class=\"flow-file-image p-2\" src=\"\/image\/icons\/clear.gif\"  \n                                         style=\"margin:0 auto;max-width:100%;max-height:150px;\">\n                                    <div class=\"i-placeholder\" style=\"position:absolute;width:100%;height:100%;\">\n                                        <div class=\"d-inline-block w-50 mx-auto mt-3 front-side-holder-text\" >Upload Front Image here<\/div>\n\n                                    <\/div>\n                                    <div class=\"flow-info\" style=\"\"><\/div>\n                                    <button style=\"position:absolute;bottom:0px; width:100%;\" class=\"mr-5 btn btn-sm btn-primary flow-browse-image btn-block\"\n                                            id=\"button-upload1909\"\n                                            data-loading-text=\"Loading...\">\n                                        <i class=\"fa fa-upload\"><\/i>\n                                        Add Image\n                                    <\/button> \n                                    <input type=\"hidden\" name=\"side\" value=\"front\">\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div id=\"back-side-holder\" class=\"col-12 col-lg-6 mt-2 mt-lg-0  flow-list pl-lg-1 pr-lg-2 d-none\" style=\"min-height:180px;\">\n                            <div class=\"col-12 border border-primary \">\n                                <div class=\"text-center border border-primary\n                                     border-top-0 border-left-0 border-right-0 rounded-0\"><b>Back <\/b><\/div>\n                                <div class=\"text-center mt-2\" style=\"min-height:180px;position:relative\" >\n                                    <img decoding=\"async\" class=\"flow-file-image p-2\" src=\"\/image\/icons\/clear.gif\"  \n                                         style=\"margin:0 auto;max-width:100%;max-height:150px;\">\n                                    <div class=\"i-placeholder\" style=\"position:absolute;width:100%;height:100%;\">\n                                        <div class=\"d-inline-block w-50 mx-auto mt-3\">If back image is different from front, Upload here<\/div>\n\n                                    <\/div>\n                                    <div class=\"flow-info\" style=\"\"><\/div>\n                                    <button style=\"position:absolute;bottom:0px; width:100%;\" \n                                            class=\"mr-5 btn btn-sm btn-primary flow-browse-image btn-block\"\n                                            id=\"button-upload1909\"\n                                            data-loading-text=\"Loading...\">\n                                        <i class=\"fa fa-upload\"><\/i>\n                                        Add Image\n                                    <\/button> \n                                    <input type=\"hidden\" name=\"side\" value=\"back\">\n                                <\/div>\n\n                            <\/div>\n                        <\/div>\n                                                                    <\/div>\n                    <div class=\"row\">\n                        <div class=\"col-12\">\n                            <div class=\"bad-image bg-danger text-white p-2 mt-2\" style=\"display:none\" >\n                                Incorrect image format.\n                            <\/div>\n                        <\/div>\n                        <div class=\"col-12 mt-2\">Max file size: 50MB. We accept these file formats: ai, eps, pdf, jpg, png, svg, bmp. <\/div>\n                    <\/div>\n                    <div class=\"row mt-3 mb-3\">\n\n                        <div class=\"col-12  text-center\">\n                            <label class=\"col-form-label\">   \n                                <h5 style=\"vertical-align:middle;\"> \n                                    <span style=\"vertical-align:middle;\" role=\"button\" data-toggle=\"tooltip\" data-placement=\"bottom\" \n                                          title=\"\" class=\"mb-1 d-none fa fa-info green\" \n                                          data-original-title=\" Design Notes\">\n                                    <\/span> Design Notes<\/h5>   \n                            <\/label>\n                        <\/div>\n\n                        <div id=\"artwork_comments\" class=\"col-12 mt-1\">\n                                                            <textarea name=\"option[1912]\"\n                                              data-option-name=\"Design Notes\"\n                                          rows=\"3\" placeholder=\"Design Notes\"\n                                          id=\"input-option1912\"\n                                          class=\"form-control\"><\/textarea>\n                                \n                        <\/div>\n                        <div class=\"col-12 mt-2\">\n                            <button  class=\"button-cart-image-upload btn btn-lg w-100 btn-success\" type=\"button\" \n                                     onclick=\"ajaxCartRequest()\" \n                                     data-dismiss=\"modal\">Add to Cart<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"modal-footer d-none\">\n                <!--  <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\">Skip This Step<\/button> -->\n                <button  class=\"button-cart-image-upload btn btn-success\" type=\"button\" onclick=\"$('#button-cart').trigger('click')\" \n                         disabled data-dismiss=\"modal\">Add to Cart<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<style type=\"text\/css\">\n    .progress-container{\n        background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));\n        background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);\n        background-image: -moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);\n        background-image: linear-gradient(45deg,\n            rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,\n            transparent);\n        background-size: 40px 40px;\n    }\n    .progress-bar {\n        float: left;\n        width: 0;\n        height: 100%;\n        font-size: 12px;\n        color:\n            #fff;\n        text-align: center;\n        background-color:\n            #428bca;\n        -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);\n        box-shadow: inset 0 -1px 0\n            rgba(0,0,0,0.15);\n        -webkit-transition: width .6s ease;\n        transition: width .6s ease;\n    }\n<\/style>\n<script type=\"text\/javascript\" defer >\n    \/* only load event handlers after dom has loaded *\/\n    \/* we do not have jquery at this point  *\/\n    document.addEventListener(\"DOMContentLoaded\", function () {\n\n        $('#design-assist').on('click', function () {\n            $('#choosepath-step-1').hide();\n            updatecontent('assist');\n            $('#upload-step-1').show();\n            $('input[data-option-name=\"Design Assist\"]').prop('checked', true);\n        });\n\n        $('#printer-friendly').on('click', function () {\n            $('#choosepath-step-1').hide();\n            updatecontent('ready');\n            $('#upload-step-1').show();\n            $('input[data-option-name=\"Design Assist\"]').prop('checked', false);\n        });\n\n        $('#choosepath-step-1 input[type=\"radio\"]').on('click', function () {\n            $('#choosepath-step-1 button').removeAttr('disabled');\n        });\n\n        var imageUploadLoc;\n        $('.flow-browse-image').on('click', function () {\n            imageUploadLoc = $(this).closest('.flow-list');\n        });\n\n        var r = new Flow({\n            target: '\/?route=designer\/ajax\/uploadchunks',\n            chunkSize: 1024 * 1024,\n            testChunks: false,\n            allowDuplicateUploads: true,\n\n            query: function (fob) {\n                var el = $('.flow-file-' + fob.uniqueIdentifier).closest('.flow-list');\n                var side = $(el).find('input[name=\"side\"]').val();\n                var quote_id = $('form[name=\"select-options\"] input[name=\"quote_id\"]').val();\n                var product_id = $('form[name=\"select-options\"] input[name=\"product_id\"]').val();\n                var design_id = $('form[name=\"select-options\"] input[name=\"design_id\"]').val();\n                var request = {};\n                request['quote_id'] = quote_id;\n                request['product_id'] = product_id;\n                request['design_id'] = design_id;\n                request['side'] = side;\n                return request;\n            }\n        });\n\n        \/\/ Flow.js isn't supported, fall back on a different method\n        if (!r.support) {\n            $('.flow-error').show();\n            alert('no support');\n            return;\n        }\n        \/\/ Show a place for dropping\/selecting files\n        \/\/  $('.flow-drop').show();\n        \/\/ r.assignDrop($('.flow-drop')[0]);\n        r.assignBrowse($('.flow-browse')[0]);\n        r.assignBrowse($('.flow-browse-folder')[0], true);\n        r.assignBrowse($('.flow-browse-image'), false, false, {accept: 'image\/*,application\/postscript,application\/eps,application\/x-eps,application\/pdf'});\n\n        \/\/ Handle file add event\n        r.on('fileAdded', function (file) {\n            if (\n                    (file.file.type == 'image\/png'\n                            || file.file.type == 'image\/jpeg'\n                            || file.file.type == 'image\/bmp'\n                            || file.file.type == 'application\/postscript'\n                            || file.file.type == 'application\/eps'\n                            || file.file.type == 'application\/x-eps'\n                            || file.file.type == 'image\/eps'\n                            || file.file.type == 'image\/x-eps'\n                            || file.file.type == 'application\/pdf'\n                            || file.file.type == 'image\/svg+xml'\n                            ) && parseInt(file.size) < 50000000) {\n                $('.bad-image').hide();\n            } else {\n                $('.bad-image').show();\n                r.removeFile(file);\n                return false;\n            }\n\n            \/\/ Add the file to the list\n            $(imageUploadLoc).find('.flow-browse-image').hide();\n            $(imageUploadLoc).find('.flow-info').empty();\n            $(imageUploadLoc).find('.i-placeholder').hide();\n\n            \/\/ $(imageUploadLoc).find('input[name^=\"side\"]').val(file.name);\n\n            $(imageUploadLoc).find('.flow-info').append(\n                    '<div class=\"flow-file flow-file-' + file.uniqueIdentifier + '\">' +\n                    \/\/'Uploading <div class=\"flow-file-name\"><\/div> ' +\n                    \/\/ '<div class=\"flow-file-size\"><\/div> ' +\n                    '<div style=\"border:1px solid black;height:30px;position:absolute;width:100%;bottom:0px;\" class=\"progress-container\">' +\n                    '<div class=\"progress-bar flow-file-progress\"><\/div> <\/div>' +\n                    '<div>' +\n                    '<span class=\"flow-file-cancel\" style=\"position:absolute;top:-40px;left:0px;\">' +\n                    ' <img decoding=\"async\" src=\"\/image\/icons\/delete-gray.png\" title=\"Cancel upload\" \/>' +\n                    '<\/span><\/div><\/div>'\n                    );\n\n\n            var im = $(imageUploadLoc);\n            var $self = $(imageUploadLoc).find('.flow-file-' + file.uniqueIdentifier);\n            $self.find('.flow-file-name').text(file.name);\n            $self.find('.flow-file-size').text(readablizeBytes(file.size));\n            $self.find('.flow-file-cancel').on('click', function () {\n                file.cancel();\n                $self.remove();\n                $(im).find('.flow-file-image').attr('src', '\/image\/icons\/clear.gif').show();\n                $(im).find('.flow-browse-image').show();\n                $(im).find('.i-placeholder').show();\n                \/\/  $(im).find('input[name^=\"side\"]').val('');\n                \/**\n                 * Create Ajax call to remove from database\n                 * \n                 * *\/\n            });\n        });\n        r.on('filesSubmitted', function (file) {\n            r.upload();\n        });\n\n        r.on('complete', function () {\n        });\n\n        r.on('fileSuccess', function (file, message) {\n            var $self = $(imageUploadLoc).find('.flow-file-' + file.uniqueIdentifier);\n            \/\/ Reflect that the file upload has completed\n            $self.find('.flow-file-progress').text('(completed)');\n            $self.find('.flow-file-pause, .flow-file-resume').remove();\n            \/* Server sends back json - image url *\/\n            var response = JSON.parse(message);\n            $(imageUploadLoc).find('.flow-file-image').attr('src', response.image).show();\n            \/\/  if ($('#button-cart-image-upload').hasAttribute('disabled')) {\n            $('#button-cart-image-upload').removeAttr('disabled');\n            \/\/ }\n\n            $('form[name=\"select-options\"] input[name=\"design_id\"]').val(response.design_id);\n            $('form[name=\"select-options\"] input[data-option-name=\"Design ID\"]').val(response.design_id);\n\n        });\n\n        r.on('fileError', function (file, message) {\n            \/\/ Reflect that the file upload has resulted in error\n            $('.flow-file-' + file.uniqueIdentifier + ' .flow-file-progress').html('(file could not be uploaded: ' + message + ')');\n        });\n\n        r.on('fileProgress', function (file) {\n            \/\/ Handle progress for both the file and the overall upload\n            $(imageUploadLoc).find('.flow-file-' + file.uniqueIdentifier + ' .flow-file-progress')\n                    .html(Math.floor(file.progress() * 100) + '% '\n                            + readablizeBytes(file.averageSpeed) + '\/s '\n                            + secondsToStr(file.timeRemaining()) + ' remaining');\n            $(imageUploadLoc).find('.progress-bar').css({width: Math.floor(r.progress() * 100) + '%'});\n        });\n\n        r.on('uploadStart', function () {});\n\n        r.on('catchAll', function () {\n            \/\/console.log.apply(console, arguments);\n        });\n\n        window.r = {\n            pause: function () {\n                r.pause();\n                \/\/ Show resume, hide pause\n                $('.flow-file-resume').show();\n                $('.flow-file-pause').hide();\n            },\n            cancel: function () {\n                r.cancel();\n                $('.flow-file').remove();\n            },\n            upload: function () {\n                $('.flow-file-pause').show();\n                $('.flow-file-resume').hide();\n                r.resume();\n            },\n            flow: r\n        };\n\n        $('.button-cart-image-upload').on('click', function (e) {});\n    });\n    \/* end domcontent  load *\/\n    \n    function updatecontent(screen) {\n        if (screen == 'assist') {\n            $('#upload-title').html('Design Assist');\n            $('#upload-byline').html('If you have files, upload them here');\n        }\n        if (screen == 'ready') {\n            $('#upload-title').html('Print Ready');\n            $('#upload-byline').html('');\n        }\n    }\n    \n    function readablizeBytes(bytes) {\n        var s = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];\n        var e = Math.floor(Math.log(bytes) \/ Math.log(1024));\n        return (bytes \/ Math.pow(1024, e)).toFixed(2) + \" \" + s[e];\n    }\n    \n    function secondsToStr(temp) {\n        function numberEnding(number) {\n            return (number > 1) ? 's' : '';\n        }\n        var years = Math.floor(temp \/ 31536000);\n        if (years) {\n            return years + ' year' + numberEnding(years);\n        }\n        var days = Math.floor((temp %= 31536000) \/ 86400);\n        if (days) {\n            return days + ' day' + numberEnding(days);\n        }\n        var hours = Math.floor((temp %= 86400) \/ 3600);\n        if (hours) {\n            return hours + ' hour' + numberEnding(hours);\n        }\n        var minutes = Math.floor((temp %= 3600) \/ 60);\n        if (minutes) {\n            return minutes + ' minute' + numberEnding(minutes);\n        }\n        var seconds = temp % 60;\n        return seconds + ' second' + numberEnding(seconds);\n    }\n<\/script>   \n<!--end upload-n-go modal -->    \n\n\n                                    \n                \n                \n                                                                            \n\n\n            <div class=\"form-group row\">\n                <div class=\"col-lg-4 col-12  required\" >\n                    <label  class=\"col-form-label\" >\n                        Size:\n                        <br>\n                        <span class=\"btn-link text-right float-right choose-sizes d-none\" style=\"cursor:pointer\" >Choose Sizes<\/span>\n                    <\/label>\n\n                <\/div>\n\n                     \n                                            \n                    \n                    <div class=\"custom-size col-lg-8 col-12    d-none  \" >\n                        <div class=\"d-flex\">\n                            <div class=\"width sizefeet pr-1\">\n                                FT:                          \n                            <input type=\"text\" style=\"width:75px;\"\n                                   name=\"display-option[1905]\" \n                                   value=\"6\" \n                                   placeholder=\"Height (feet)\"\n                                   class=\"form-control \"                                   \n                                   >\n                            <input type=\"hidden\"\n                                   data-size=\"ft\"\n                                   name=\"option[1905]\"\n                                   value=\"6\" placeholder=\"Height (feet)\"\n                                   id=\"input-option1905\"\n                                   >\n                                             \n                            <\/div>\n                            <div class=\" length sizefeet pl-1\">\n                                IN:                          \n                            <input type=\"text\" style=\"width:75px;\"\n                                   name=\"display-option[1906]\" \n                                   value=\"0\" \n                                   placeholder=\"Height (inches)\"\n                                   class=\"form-control \"                                   \n                                   >\n                            <input type=\"hidden\"\n                                   data-size=\"ft\"\n                                   name=\"option[1906]\"\n                                   value=\"0\" placeholder=\"Height (inches)\"\n                                   id=\"input-option1906\"\n                                   >\n                                               \n                            <\/div> \n\n                        <\/div>\n                    <\/div> \n                \n                <!-- <\/div> -->\n                                    <div class=\"col-lg-8 col-12 d-block select-size\" >\n                        <div class=\"row\">\n                            <div class=\"col-12 \" id=\"maxheight\">\n                                                                    <div class=\"select-div\">\n                                        <select data-option-name=\"Max Height\" name=\"option[1907]\"\n                                                id=\"input-option1907\"\n                                                class=\"form-control \">\n                                                <!-- no default select first option by default <option value=\"\"> --- Please Select --- <\/option> -->\n                                             \n                                                                                            <option data-name=\"Desktop Size - Up to 2\"\n\n                                                        \n                                                         \n                                                        value=\"7080\">Desktop Size - Up to 2'\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"4 Cheer-Up\"\n\n                                                         \n                                                        value=\"7059\">4' Cheer-Up\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"5 Cheer-Up\"\n\n                                                         \n                                                        value=\"7060\">5' Cheer-Up\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"6 Cheer-Up\"\n\n                                                         \n                                                               \n                                                            selected =\"selected\"\n                                                         \n                                                        value=\"7061\">6' Cheer-Up\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"7 Cheer-Up\"\n\n                                                         \n                                                        value=\"7062\">7' Cheer-Up\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"8 Cheer-Up\"\n\n                                                         \n                                                        value=\"7063\">8' Cheer-Up\n                                                                                                    <\/option>\n                                                                                    <\/select>\n                                    <\/div>\n                                \n                            <\/div>\n                        <\/div>\n                    <\/div>  \n                \n\n            <\/div>                \n\n              \n            <div class=\"form-group row  mb-4 mb-lg-3\">\n                <div class=\"col-lg-4 col-12 \">\n                    <label  class=\"col-form-label\" for=\"input-quantity\">\n                        <span role=\"button\" data-toggle=\"tooltip\" data-placement=\"bottom\" \n                              title=\"\" class=\"d-none fa fa-info green\" \n                              data-original-title=\"Enter the quantity, number of signs you desire\"><\/span>  \n                        Quantity<\/label> \n                <\/div>  \n                <div class=\"col-lg-8 col-12 form-group row mb-0\">\n                    <div class=\"col \">\n                        <input type=\"text\" name=\"quantity\" value=\"1\" size=\"5\" style=\"width:75px;\" id=\"input-quantity\" class=\"form-control\" placeholder=\"qty\" > \n                    <\/div>\n                    <label class=\"mb-0\" for=\"quantity\"><span class=\"price-each text-large h4 text-red mb-0\">$119.00 <\/span> <small>each<\/small><\/label>  \n                <\/div>\n            <\/div>\n        \n              \n              \n                                    <div class=\"form-group row  mb-4 mb-lg-3\">\n                            <div class=\"col-lg-4 col-12  \">\n                                <label class=\"col-form-label\" for=\"input-option1916\">                           \n                                     \n                                    Width (People)\n                                <\/label> \n                            <\/div>\n                            <div class=\"col-lg-8 col-12 \">\n                                 \n                                                                    <div class=\"select-div\">\n                                        <select data-option-name=\"Width (People)\" name=\"option[1916]\"\n                                                id=\"input-option1916\"\n                                                class=\"form-control \">\n                                                <!-- no default select first option by default <option value=\"\"> --- Please Select --- <\/option> -->\n                                             \n                                                                                            <option data-name=\"1 Person or Max Width 30\"\n\n                                                        \n                                                         \n                                                        value=\"7081\">1 Person or Max Width 30&quot;\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"2-3 People or Max Width 4\"\n\n                                                         \n                                                        value=\"7082\">2-3 People or Max Width 4'\n                                                                                                                                                                        ( + $38.00 )\n                                                                                                                                                            <\/option>\n                                                                                    <\/select>\n                                    <\/div>\n                                \n                            <\/div>\n                        <\/div>\n                    \n                                    <div class=\"form-group row  mb-4 mb-lg-3\">\n                            <div class=\"col-lg-4 col-12  \">\n                                <label class=\"col-form-label\" for=\"input-option1903\">                           \n                                                                            <span role=\"button\" data-toggle=\"tooltip\" data-placement=\"bottom\" \n                                              title=\"\" class=\"d-none fa fa-info green\" \n                                              data-original-title=\"Standard artwork is free, includes &quot;masking out&quot; (removing the person from the background), red eye reduction, and simple color balancing. More detailed artwork can be done for an additional fee.\"><\/span> \n                                     \n                                    Photo Edits\n                                <\/label> \n                            <\/div>\n                            <div class=\"col-lg-8 col-12 \">\n                                 \n                                                                    <div class=\"select-div\">\n                                        <select data-option-name=\"Photo Edits\" name=\"option[1903]\"\n                                                id=\"input-option1903\"\n                                                class=\"form-control \">\n                                                <!-- no default select first option by default <option value=\"\"> --- Please Select --- <\/option> -->\n                                             \n                                                                                            <option data-name=\"No Major Edits - 5 min\"\n\n                                                        \n                                                         \n                                                        value=\"7052\">No Major Edits - 5 min\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"Add Legs, Arms, Correct Issues - 30 min\"\n\n                                                         \n                                                        value=\"7053\">Add Legs, Arms, Correct Issues - 30 min\n                                                                                                                                                                        ( Add $30.00 )\n                                                                                                                                                            <\/option>\n                                                                                            <option data-name=\"Major Reconstructive Surgery - 60 min\"\n\n                                                         \n                                                        value=\"7054\">Major Reconstructive Surgery - 60 min\n                                                                                                                                                                        ( Add $60.00 )\n                                                                                                                                                            <\/option>\n                                                                                    <\/select>\n                                    <\/div>\n                                \n                            <\/div>\n                        <\/div>\n                    \n            \n             \n                                 \n                                    <div class=\"form-group row  mb-4 mb-lg-3\">\n                            <div class=\"col-lg-4 col-12  \">\n                                <label class=\"col-form-label\" for=\"input-option1915\">                           \n                                                                            <span role=\"button\" data-toggle=\"tooltip\" data-placement=\"bottom\" \n                                              title=\"\" class=\"d-none fa fa-info green\" \n                                              data-original-title=\"Sometimes, a simple word, thought, or phrase can change a  life sized cut out into an event. The limit is your imagination.\"><\/span> \n                                     \n                                    Speech Bubble\n                                <\/label> \n                            <\/div>\n                            <div class=\"col-lg-8 col-12 \">\n                                 \n                                                                    <div class=\"select-div\">\n                                        <select data-option-name=\"Speech Bubble\" name=\"option[1915]\"\n                                                id=\"input-option1915\"\n                                                class=\"form-control \">\n                                                <!-- no default select first option by default <option value=\"\"> --- Please Select --- <\/option> -->\n                                             \n                                                                                            <option data-name=\"None\"\n\n                                                        \n                                                         \n                                                        value=\"7075\">None\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"Yes - Luster Finish\"\n\n                                                         \n                                                        value=\"7189\">Yes - Luster Finish\n                                                                                                    <\/option>\n                                                                                            <option data-name=\"Yes - Dry Erase Lamination\"\n\n                                                         \n                                                        value=\"7079\">Yes - Dry Erase Lamination\n                                                                                                    <\/option>\n                                                                                    <\/select>\n                                    <\/div>\n                                \n                            <\/div>\n                        <\/div>\n                        \n            \n            \n\n \n        <\/div>  \n    <\/div>\n\n\n\n\n\n<!-- end options -->\n<!-- end options selection -->\n<script type=\"text\/javascript\">\n\n\n\n    if ($('#maxheight select').length) {\n        $('#maxheight select').on('change', function (e) {\n            if ($('#maxheight select option:selected').data('name') != 'Exact Size') {\n                var value = $('#maxheight select option:selected').html().replace(\/\\D\/g, '');\n                $('.width.sizefeet').find('input').val(value);\n            } else {\n                $('#product-options .choose-sizes').trigger('click');\n            }\n        });\n    }\n\n\n    \/*\n     \n     $('.width.sizefeet').find('input[type=\"text\"]').on('change', function (e) {\n     var newSize = $(this).val();\n     if ($('input[name=\"length_class\"]').val() == 'IN') {\n     newSize = $(this).val() \/ 12;\n     }\n     \n     $('.width.sizefeet').find('input[type=\"hidden\"]').val(newSize);\n     });\n     \n     $('.length.sizefeet').find('input[type=\"text\"]').on('change', function (e) {\n     var newSize = $(this).val();\n     if ($('input[name=\"length_class\"]').val() == 'IN') {\n     newSize = $(this).val() \/ 12;\n     }\n     \n     $('.length.sizefeet').find('input[type=\"hidden\"]').val(newSize);\n     });\n     \n     $('select[name=\"selectsize\"]').on('change', function (e) {\n     if ($(this).val() != 'customsize') {\n     \n     $('input[name=\"length_class\"]').val('ft');\n     var sizeArray = JSON.parse($(this).val());\n     console.log(sizeArray);\n     var w = sizeArray[0];\n     var l = sizeArray[1];\n     \n     $('.width.sizefeet').find('input[type=\"hidden\"]').val(w);\n     $('.length.sizefeet').find('input[type=\"hidden\"]').val(l);\n     $('.width.sizefeet').find('input[type=\"text\"]').val(w);\n     $('.length.sizefeet').find('input[type=\"text\"]').val(l);\n     }\n     \n     });\n     $('select[name=\"product-type\"]').on('change', function (e) {\n     $('.page-loading').css('display', 'block');\n     document.location.href = '\/' + $(this).val();\n     });\n     *\/\n<\/script>  \n                                        \n                                    <\/form>\n                                <\/div>\n\n                                <style type=\"text\/css\">\n    .btn-outline-yellow:not(:disabled):not(.disabled).active, .btn-outline-yellow:not(:disabled):not(.disabled):active, .show>.btn-outline-yellow.dropdown-toggle {\n        color: rgb(254,254,34);\n        background-color: transparent;\n        border-color: rgb(254,254,34);\n    }\n\n    .btn-outline-yellow:hover, .btn-outline-yellow:active {\n        color: rgba(254,254,34,.8);\n        background-color: transparent;\n        border-color: rgb(254,254,34);\n    }\n\n    .btn-outline-yellow {\n        color: rgb(254,254,34);\n        border-color: rgb(254,254,34);\n    }\n\n\n<\/style>\n\n<div class=\"add-to-cart-box w-100  mt-4\">\n    <div class=\"input-group  p-0 m-0 row\">\n        <!-- qty is in the options lists -->\n\n        <div class=\"col-12 col-lg-6 p-2 pl-3 pr-3 m-0 mt-3\">\n\n            <div class=\"to_your_door w-100 d-none\">\n                To Your Door Price <i role=\"button\" data-toggle=\"tooltip\" data-placement=\"bottom\" title=\"\"\n                                      class=\"fa fa-question-circle\"\n                                      data-original-title=\"The &quot;To Your Door Price&quot; is the total price you will pay for this item with \n                                      all selected options, tax and shipping costs.  Click &quot;See All Costs&quot; below for a cost breakdown  \"><\/i>\n            <\/div>\n\n            <div class=\" d-block mb-2 text-center\">\n                <span  class=\"font-small  mr-1\">Subtotal<\/span>\n                <span data-price=\"119.00\" class=\"price-total mr-1 h4\">$127.93<\/span>\n                <small class=\"d-none ml-2 update-quote\" data-toggle=\"tooltip\" title=\"update quote\"><i class=\"fas fa-sync\"><\/i><\/small>            \n                <span style=\"text-decoration:underline\"  class=\"cursor-pointer text-primary font-small\"\n                      id=\"see-costs\"\n                      data-toggle=\"popover\">\n                      <u>See All Costs<\/u><\/span>\n            <\/div>\n\n            <div class=\"d-block p-1\">\n                <button id=\"show-upload-n-go\" class=\"btn btn-primary btn-lg p-2 w-100\">\n                    Get Started\n                <\/button>   \n            <\/div>\n        <\/div>\n\n\n        <div class=\"col-12 col-lg-6 p-2 pl-3 pr-3 m-0  bg-indigo text-center\">\n            <div class=\"m-auto\">\n            <div class=\"d-inline-block pt-2 pb-2\">\n                <div class=\"d-block  m-0\">Estimated Arrival<\/div>\n                <div class=\"text-white h4 m-0 mb-2 est-arrival-date\"><b><\/b><\/div>\n\n                <button type=\"button\" id=\"changeshipping\"\n                        data-loading-text=\"Loading...\"\n                        class=\"btn btn-lg btn-outline-yellow pr-3 pl-3 pt-1 pb-1 texr-left\"\n                        role=\"button\"\n                        aria-expanded=\"false\"\n                        aria-controls=\"pcontent\"\n                        data-toggle=\"collapse\"\n                        data-target=\"#pcontent\"\n\n                        >\n                    <i class=\"spinner-border spinner-border-sm buttoniconloading \" style=\"display:none\" role=\"status\"\n                       aria-hidden=\"true\"><\/i>\n\n\n                    <span class=\"buttontext\"><i class=\"fa fa-calendar mr-2\" aria-hidden=\"true\"><\/i><i>Need it sooner?<\/i><\/span>\n                <\/button>\n            <\/div>\n            <div class=\"d-inline-block ml-2 text-center pt-2 pb-2\" style=\"vertical-align:bottom\">\n                <div class=\"d-block  m-0\">\n                    To<br>Zip Code\n                <\/div>  \n                <div class=\"d-block  m-0\">\n                    <input class=\"mt-1\" style=\"width:70px;\" size=\"7\" max-length=\"5\" class=\"form-control\" id=\"zipcode\" type=\"text\" name=\"zipcode\" value=\"\"\n                           placeholder=\"33604\">\n                <\/div>\n                <div class=\"d-block  m-0 mt-1\" >\n                    <input type=\"checkbox\" name=\"localpickup\" class=\"mr-1\" value=\"1\" style=\"vertical-align:middle\">\n                    <label class=\" m-0 text-right\" for=\"local\" style=\"vertical-align:middle\"><b style=\"font-size:.9rem\">Pick up<\/b><\/label>\n                <\/div>   \n            <\/div>\n            <input type=\"hidden\" name=\"addshipping\" id=\"addshipping\" value=\"1\">\n        <\/div>\n        <\/div>\n      \n    <\/div>\n                           \n                           \n    <div>\n        <div id=\"cost-content\" style=\"display:none;width:100%;\">\n            <table style=\"margin-left:20px;margin-right:20px;\">\n                <tr>\n                    <td class=\"pt-1 pb-1\" style=\"padding-right:30px;font-weight: bold\">Printing Costs:<\/td>\n                    <td class=\"text-right product-cost\">$119.00<\/td>\n\n                <\/tr>\n                <tr>\n                    <td class=\"pt-1 pb-1\" style=\"padding-right:30px;font-weight: bold\">Rush Charge:<\/td>\n                    <td class=\"text-right rush-production\">\n                        $0.00<\/td>\n\n\n                <\/tr>\n                <tr>\n                    <td class=\"pt-1 pb-1\" style=\"padding-right:30px;font-weight: bold\">Addons:<\/td>\n                    <td class=\"text-right upsell\">$0.00<\/td>\n\n\n                <\/tr>\n                <tr>\n                    <td class=\"pt-1 pb-1\" style=\"padding-right:30px;font-weight: bold\">Tax:<\/td>\n                    <td class=\"text-right taxes\">$8.93<\/td>\n\n                <\/tr>\n                <tr>\n                    <td class=\"pt-1 pb-2\" style=\"padding-right:30px;font-weight: bold\">Shipping:<\/td>\n                    <td class=\"text-right selected-shipping\">\n                        TBD                    <\/td>\n\n                <\/tr>\n                <tr style=\"border-top:1px solid black;\">\n                    <td class=\"pt-2 pb-2\" style=\"padding-right:30px;font-weight: bold\">Total Cost:<\/td>\n                    <td class=\"text-right price-total\">$127.93<\/td>\n\n                <\/tr>\n            <\/table>\n        <\/div>\n    <\/div>\n\n    <div id=\"pcontent\" class=\"collapse\">\n        <div id=\"loading-shipping\" class=\"text-center\">\n            <div class=\"d-inline-block\">\n                <div class=\"spinner-grow text-cmyk-cyan\" role=\"status\">\n                    <span class=\"sr-only\">Loading...<\/span>\n                <\/div>\n                <div class=\"spinner-grow text-cmyk-magenta\" role=\"status\">\n                    <span class=\"sr-only\">Loading...<\/span>\n                <\/div>\n                <div class=\"spinner-grow text-cmyk-yellow\" role=\"status\">\n                    <span class=\"sr-only\">Loading...<\/span>\n                <\/div>\n                <div class=\"spinner-grow text-black\" role=\"status\">\n                    <span class=\"sr-only\">Loading...<\/span>\n                <\/div>\n                <div class=\"text-center\">Retrieving Quote<\/div>\n            <\/div>\n        <\/div>\n\n        <div id=\"shipping-loaded\" style=\"display:none\">\n            <div class=\"form-group row\">\n                <div class=\"col-3 text-right\">\n\n                    <label class=\"col-form-label text-right\" for=\"zipcode\"><b style=\"font-size:1rem\">Ship to Zip Code<\/b><\/label>\n                <\/div>\n                <div class=\"col-5 input-group\">\n\n                    <span class=\"input-group-btn\">\n                        <button id=\"refreshshipping\" class=\"btn btn-primary text-white ml-2\">\n                            <i class=\"fas fa-sync-alt \" aria-hidden=\"true\"><\/i>\n                        <\/button>  \n                    <\/span>\n                <\/div>\n\n            <\/div>\n            <div class=\"text-center small mt-2 mb-3\"><i>Arrival date and price is based on your estimated location,\n                    please enter your zip code if different<\/i><\/div>\n            <div class=\"text-center m-3 text-indigo\" style=\"font-size:1.2rem\"><b>Estimated Arrival Date: <span\n                        class=\"est-arrival-date\">Sunday, May 03, 2026 <\/span><\/b>\n            <\/div>\n            <div class=\"text-center m-3\">\n                <button id=\"show-expedited-shipping\" data-toggle=\"modal\" data-target=\"#expedited-delivery-modal\"\n                        class=\"btn btn-danger btn-lg\">Fast Shipping Options\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n                                                                <!-- Added this for count down  -->\n\n\n                                <div class=\"h4 text-center mt-3\">FREE GROUND SHIPPING on Orders Over $89\n                                <\/div>\n                                                                    <div class=\"text-small text-red text-center d-none add-for-free\">\n                                        Add <span class=\"more-for-free\">$89.00<\/span> to your order to\n                                        receive free shipping\n                                    <\/div>\n                                    <div class=\"text-small text-red text-center is-free\">Your\n                                        order qualifies for FREE GROUND SHIPPING\n                                    <\/div>\n\n                                  \n                            <\/div>\n                        <\/div>\n                        <!-- end product -->\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>         \n    <\/div>\n<\/section>\n\n\n\n<!-- Modals -->\n<!-- price table -->\n\n<div class=\"modal\" tabindex=\"-1\" role=\"dialog\" id=\"qty-break-modal\">\n    <div class=\"modal-dialog\" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h5 class=\"modal-title\">\n                    Cutouts\n                    Quantity Discounts\n                <\/h5>\n                <button type=\"button\" class=\"close\" data-dismiss=\"modal\"\n                        aria-label=\"Close\">\n                    <span aria-hidden=\"true\">&times;<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body\">\n                <table class=\"table table-striped\" id=\"qty-breaks-table\">\n                    <thead class=\"thead-dark\">\n                    <tr>\n                        <th>Quantity<\/th>\n                        <th>Each<\/th>\n                        <th>Total<\/th>\n                        <th><\/th>\n                    <\/tr>\n                    <\/thead>\n                    <tbody>\n                                        <\/tbody>\n                <\/table>\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\">Close<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- end price table -->\n\n<!-- basic modal -->\n<div id=\"basedal\">\n    <div class=\"modal\" tabindex=\"-1\" role=\"dialog\">\n        <div class=\"modal-dialog modal-full\" role=\"document\">\n            <div class=\"modal-content\">\n                <div class=\"modal-header bg-indigo text-white\">\n                    <h5 class=\"modal-title m-0 p-0\"><\/h5>\n                    <button type=\"button\" class=\"close text-white\" data-dismiss=\"modal\"\n                            aria-label=\"Close\">\n                                    <span aria-hidden=\"true\"> <span class=\"fa fa-times\"\n                                                                    style=\"display: inline-block; width: 34px; height: 34px;\"><\/span><\/span>\n                    <\/button>\n                <\/div>\n                <div class=\"modal-body bg-light\"><\/div>\n                <div class=\"modal-footer\">\n                    <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\">Close<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- basic modal -->\n<!-- basic modal -->\n<div id=\"basedal2\">\n    <div class=\"modal\" tabindex=\"-1\" role=\"dialog\">\n        <div class=\"modal-dialog \" role=\"document\">\n            <div class=\"modal-content\">\n                <div class=\"modal-header bg-indigo text-white\">\n\n                    <h5 class=\"modal-title m-0 p-0 w-100 text-white\">\n                        Choose Options\n                        <button type=\"button\" class=\"close text-white\"\n                                data-dismiss=\"modal\" aria-label=\"Close\"\n                                style=\"font-size: .75rem; font-weight: 400;\">\n                                        <span aria-hidden=\"true\"> <span\n                                                    class=\"fa fa-times bg-danger\"\n                                                    style=\"border-radius: 5px; padding: 4px 6px; display: inline-block;\"><\/span>\n\n                                        <\/span>\n                        <\/button>\n                    <\/h5>\n\n                <\/div>\n                <div class=\"modal-body bg-light\"><\/div>\n                <div class=\"modal-footer\">\n                    <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\">Close<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- basic modal -->\n<div id=\"remote-modals\"><\/div>\n<div id=\"options-modals\"><\/div>\n\n<!-- Expedited Shipping -->\n<div class=\"modal\" tabindex=\"-1\" role=\"dialog\"\n     id=\"expedited-delivery-modal\">\n    <div class=\"modal-dialog \" role=\"document\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header bg-indigo text-white\">\n                <h6 class=\"modal-title  text-white text-center\">\n                    <i>Estimated Arrival Date:<span\n                                class=\"est-arrival-date\">Sunday, May 03, 2026\n                                    <\/span><\/i>\n                <\/h6>\n                <button type=\"button\" class=\"close text-white\" data-dismiss=\"modal\"\n                        aria-label=\"Close\" style=\"font-size: 1rem; font-weight: 400;\">\n                                <span aria-hidden=\"true\"> <span\n                                            class=\"fa fa-times bg-danger\"\n                                            style=\"border-radius: 5px; padding: 4px 6px; display: inline-block;\"><\/span><\/span>\n                <\/button>\n            <\/div>\n            <div class=\"modal-body bg-white\">\n                <div class=\"text-center\">\n                    <h5>\n                        Total: <span data-price=\"119\" class=\"price-total\">$69.00<\/span>\n                    <\/h5>\n                <\/div>\n\n                <table id=\"shipping-options\" class=\"table\" width=\"100%\">\n                    <thead>\n                    <tr>\n                        <th colspan=\"3\" class=\"bg-primary h5 text-white text-center\">\n                            SHIPPING OPTIONS\n                        <\/th>\n                    <\/tr>\n                    <tr>\n                        <td width=\"45%\"><u>Shipping Type<\/u><\/td>\n                        <td class=\"text-right\" width=\"20%\"><u>Price<\/u><\/td>\n                        <td class=\"text-right\" width=\"35%\"><u>Estimated Arrival<\/u><\/td>\n                    <\/tr>\n                    <\/thead>\n                    <tbody>\n                    <!-- shipping quotes will go here -->\n                    <\/tbody>\n                <\/table>\n            <\/div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\">Close<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- End expedited shipping -->\n<!-- End Modals -->\n\n<style>\n    #topbuttons > a.quote-icon-top {\n        opacity: 0.5;\n        pointer-events: none;\n        cursor: not-allowed;\n        display: none !important;\n    }\n<\/style>\n<script type=\"text\/javascript\">\n\n    var initialShipDate;\n\n    const shippingLoaded = new Event('shippingloaded', {\n        bubbles: false,\n        cancelable: false,\n        composed: false\n    });\n\n    const quoteLoaded = new Event('quoteloaded', {\n        bubbles: false,\n        cancelable: false,\n        composed: false\n    });\n\n    Date.prototype.addDays = function (days) {\n        let date = new Date(this.valueOf());\n        date.setDate(date.getDate() + days);\n        return date;\n    };\n\n    \/* @TODO - pass params or create object *\/\n    var btnDonecp;\n    var colorsSelect = [];\n    var oldColor;\n\n    \/\/document.dispatchEvent(shippingloaded);\n\n    \/* all dom listeners go here to ensure js is fully loaded and executed *\/\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        \/* @TODO - rewrite this *\/\n        $('#pcontent').on('show.bs.collapse', function () {\n            if ($('input[name=\"zipcode\"]').val() != '' && $('input[name=\"localpickup\"]').is(':checked') == false) {\n                $('input[name=\"addshipping\"]').val('1');\n                $('input[name=\"get_ups\"]').val('1');\n\n            } else {\n                $('input[name=\"addshipping\"]').val('0');\n                $('input[name=\"get_ups\"]').val('0');\n            }\n            getQuote();\n        });\n\n        $('input[name=\"localpickup\"]').on('change', function (e) {\n            if ($(this).is(':checked')) {\n                $('input[name=\"addshipping\"]').val(0);\n                $('input[name=\"selected_shipping_cost\"]').val(0);\n                $('input[name=\"selected_shipping_method\"]').val('localpickup');\n                $('.selected-shipping').html('$0.00');\n                var totalCost = $('input[name=\"current_totalcost\"]').val();\n                $('.price-total').html('$' + totalCost);\n                $('.price-total').data('price', totalCost);\n                \/* this updates the popover *\/\n                $('#see-costs').attr('data-content', $('#cost-content').html());\n                $('#show-expedited-shipping').hide();\n                $('#refreshshipping').addClass('disabled');\n\n                getQuote();\n\n            } else {\n                $('input[name=\"addshipping\"]').val(1);\n                $('#show-expedited-shipping').show();\n                $('#refreshshipping').removeClass('disabled');\n                \/\/    $('.est-arrival-date b').text(initialShipDate);\n                $('#pcontent').collapse('hide');\n                getQuote();\n            }\n        });\n\n        $('#refreshshipping').on('click', function (e) {\n            if ($('input[name=\"zipcode\"]').val() != '' && $('input[name=\"localpickup\"]').is(':checked') == false) {\n                $('input[name=\"addshipping\"]').val('1');\n\n            } else {\n                $('input[name=\"addshipping\"]').val('0');\n            }\n            $('#loading-shipping').show();\n            getQuote();\n        });\n\n        $('.digitalreplace').on('click', function (e) {\n            setDigitalReplaceMethod($(this).val());\n        });\n\n\n        $('#digitalreplace label').on('click', function (e) {\n            var name = $(this).data('name');\n            $('#digitalreplace label').removeClass('btn-success');\n            $('#digitalreplace label').addClass('btn-outline-success');\n            $('#digitalreplace label[data-name=\"' + name + '\"]').addClass('btn-success');\n            $('#digitalreplace label[data-name=\"' + name + '\"]').removeClass('btn-outline-success');\n\n            var radioName = $('#digitalreplace label[data-name=\"' + name + '\"] input').data('name');\n            setDigitalReplaceMethod(name);\n\n            if (name == 'digital') {\n                setColorPicker(0, name);\n            }\n        });\n\n        $('#digital-faster button.close').on('click', function () {\n            var radio_name = $('input[data-name=\"Digital\"]').attr('name');\n            var dataName = $('input[name=\"' + radio_name + '\"]:checked').data('name');\n            if (dataName == 'Silkscreen' || dataName == 'Best Price') {\n                setDigitalReplaceMethod('silkscreen');\n            } else {\n                setDigitalReplaceMethod('digital');\n            }\n        });\n\n\n        \/* E.H. Fix changing zipcode field from triggering the full page loading screen to only loading new shipping data *\/\n        $('input[name=\"zipcode\"]').on('change', function (e) {\n            if ($('input[name=\"zipcode\"]').val() != '' && $('input[name=\"localpickup\"]').is(':checked') == false) {\n                $('input[name=\"addshipping\"]').val('1');\n\n            } else {\n                $('input[name=\"addshipping\"]').val('0');\n            }\n            $('#loading-shipping').show();\n            getQuote();\n        });\n\n        $(\"#changeshipping\").on('click', function (e) {\n            $('.page-loading').css('display', 'none');\n            $('#loading-shipping').show();\n            document.addEventListener(\"shippingloaded\", showShipping, true);\n        });\n\n        $(document).on(\"click\", \".popover .close-popover\", function () {\n            $(this).parents(\".popover\").popover('hide');\n        });\n\n        if ($('select[data-option-name=\"Production Time\"]').length) {\n            $('select[data-option-name=\"Production Time\"]').attr('disabled', true);\n        }\n\n        if ($('select[data-option-name=\"Decal Size\"]').length) {\n            select10inch();\n            $('select[data-option-name=\"Decal Size\"]').on('change', function () {\n                var option = $('select[data-option-name=\"Decal Size\"] option:selected').data('name');\n                if (option == 17) {\n                    $('.select2-12-qty').addClass('d-none');\n                    $('.select2-12-qty').attr('disabled', true);\n                    if ($('.select2-12-qty').hasClass(\"select2-hidden-accessible\")) {\n                        $('.select2-12-qty').select2('destroy');\n                    }\n                    $('.select2-10-qty').addClass('d-none');\n                    $('.select2-10-qty').attr('disabled', true);\n                    if ($('.select2-10-qty').hasClass(\"select2-hidden-accessible\")) {\n                        $('.select2-10-qty').select2('destroy');\n                    }\n                    select17inch()\n                    $('.select2-17-qty').removeClass('d-none');\n                    $('.select2-17-qty').attr('disabled', false);\n                } else if (option == 10) {\n                    $('.select2-12-qty').addClass('d-none');\n                    $('.select2-12-qty').attr('disabled', true);\n                    if ($('.select2-12-qty').hasClass(\"select2-hidden-accessible\")) {\n                        $('.select2-12-qty').select2('destroy');\n                    }\n                    $('.select2-17-qty').addClass('d-none');\n                    $('.select2-17-qty').attr('disabled', true);\n                    if ($('.select2-17-qty').hasClass(\"select2-hidden-accessible\")) {\n                        $('.select2-17-qty').select2('destroy');\n                    }\n                    select10inch()\n                    $('.select2-10-qty').removeClass('d-none');\n                    $('.select2-10-qty').attr('disabled', false);\n                } else {\n                    $('.select2-17-qty').addClass('d-none');\n                    $('.select2-17-qty').attr('disabled', true);\n                    if ($('.select2-17-qty').hasClass(\"select2-hidden-accessible\")) {\n                        $('.select2-17-qty').select2('destroy');\n                    }\n                    $('.select2-10-qty').addClass('d-none');\n                    $('.select2-10-qty').attr('disabled', true);\n                    if ($('.select2-10-qty').hasClass(\"select2-hidden-accessible\")) {\n                        $('.select2-10-qty').select2('destroy');\n                    }\n                    select12inch();\n                    $('.select2-12-qty').removeClass('d-none');\n                    $('.select2-12-qty').attr('disabled', false);\n                }\n            });\n        }\n\n        if ($('select[data-option-name=\"Shipping Method\"]').length) {\n            $('select[data-option-name=\"Shipping Method\"]').on('change', function (e) {\n                var str = $('option:selected', this).data('name').toLowerCase();\n                if (str.search('local') !== -1) {\n                    $('input[name=\"localpickup\"]').prop('checked', true);\n                    $('#show-expedited-shipping').hide();\n                    $('#refreshshipping').addClass('disabled');\n                } else {\n                    $('#show-expedited-shipping').show();\n                    $('#refreshshipping').removeClass('disabled');\n                    $('input[name=\"localpickup\"]').prop('checked', false);\n                }\n            });\n        }\n\n        var content = $('#cost-content').html();\n        var btnDone = '<button type=\"button\" class=\"close close-popover text-white\" data-dismiss=\"modal\" aria-label=\"Close\" style=\"font-size:.75rem;font-weight:400;\"><span aria-hidden=\"true\"><span class=\"fa fa-times\" style=\"display: inline-block; width: 34px; height: 34px;\"><\/span><\/span><\/button>';\n        var seeallcosts = $('#see-costs').popover({\n            title: 'All Costs ' + btnDone,\n            html: true,\n            content: content,\n            container: 'body',\n            offset: '-50px',\n            placement: 'bottom',\n            sanitizeFn: function (content) {\n                return content;\n            }\n        });\n\n        \/* in footer.twig *\/\n        var el = '#product';\n        setQuoteHandlers(el);\n\n        if ($('#materials select').length) {\n            $('#materials select').on('change', function (e) {\n                $('.page-loading').css('display', 'block');\n                document.location.href = '\/?route=product\/product&product_id=' + $('#materials select option:selected').data('name');\n            });\n        }\n\n        $('.update-quote').on('click', function () {\n            getQuote();\n        });\n\n        $(document.body).on('change', '#product form[name=\"select-options\"]', function (e) {\n            getQuote();\n        });\n\n        $('.rush-selection').on('change', function (e) {\n            getQuote();\n            var rushDays = $(this).closest('tr').find('td:eq(2) div.rush-days').data('rush-days');\n        });\n\n        \/**\n         * Start modal handlers \n         *\/\n        $('#upload-n-go').on('show.bs.modal', function (e) {\n\n            \/* Hide all the upload holders *\/\n            $('div[id$=-side-holder').addClass('d-none');\n\n            \/* Reset uploads *\/\n            $('.flow-file-cancel').trigger('click');\n\n            \/* Check for a front\/back\/both situation with the select box or checkboxes for each side*\/\n            if ($('input[data-option-name=\"Printed Sides\"] ').length) {\n                var sides = $('input[data-option-name=\"Printed Sides\"]:checked').data('name');\n                if (!sides) {\n                    var sides = $('input[data-option-name=\"Printed Sides\"]').data('name');\n                }\n                if (sides == 'Back to Back (Different Images)') {\n                    \/* front side may have changed to both change back to front *\/\n                    $('#front-side-holder').find('input[name=\"side\"]').val('front');\n                    $('#front-side-holder').removeClass('d-none');\n                    $('#back-side-holder').removeClass('d-none');\n                } else {\n                    $('#back-side').addClass('d-none');\n                    if (sides == 'Double Sided') {\n                        \/* change the value of front side to 'both'  *\/\n                        $('#front-side-holder').removeClass('d-none');\n                        $('#front-side-holder').find('input[name=\"side\"]').val('both');\n                        $('.front-side-holder-heading').html('Both Sides');\n                        $('.front-side-holder-text').html('This image will be printed on both sides');\n                    }\n                    if (sides == 'Single Sided') {\n                        \/* side value may have changed to both *\/\n                        $('.front-side-holder-heading').html('Front');\n                        $('.front-side-holder-text').html('This image will be printed on the front side');\n                        $('#front-side-holder').removeClass('d-none');\n                        $('#front-side-holder').find('input[name=\"side\"]').val('front');\n                    }\n                }\n            } else {\n                $('#front-side-holder').removeClass('d-none');\n                \/* check for front-side, back-side right, left *\/\n                if ($('#front-side').is(':checked')) {\n                    $('#front-side-holder').removeClass('d-none');\n                }\n                if ($('#back-side').is(':checked')) {\n                    $('#back-side-holder').removeClass('d-none');\n                }\n                if ($('#left-sleeve').is(':checked')) {\n                    $('#left-side-holder').removeClass('d-none');\n                }\n                if ($('#right-sleeve').is(':checked')) {\n                    $('#right-side-holder').removeClass('d-none');\n                }\n            }\n        });\n\n        $('#show-upload-n-go').on('click', function () {\n            if (ajaxCheckIfQuote()) {\n                if (ajaxCartRequest(null, null)) {\n                    $('#upload-n-go').modal('show');\n                }\n            }\n        });\n\n        $('#upload-n-go').on('hidden.bs.modal', function (e) {\n            setTimeout(function () {\n                $('#cart #cart-toggle').trigger('click');\n            }, 100);\n        });\n        \/* End modal handlers *\/\n\n        var deadline = new Date('Apr 24, 2026 15:00:00').getTime();\n        var thisday = new Date();\n        var x = setInterval(function () {\n            var d = new Date();\n            var localTime = d.getTime();\n            var localOffset = d.getTimezoneOffset() * 60000;\n            var utc = localTime + localOffset;\n            var offset = -5;\n            var est = utc + (3600000 * offset);\n            var now = new Date(est).getTime();\n            var t = deadline - now;\n            var hours = Math.floor((t % (1000 * 60 * 60 * 24)) \/ (1000 * 60 * 60));\n            var minutes = Math.floor((t % (1000 * 60 * 60)) \/ (1000 * 60));\n            var seconds = Math.floor((t % (1000 * 60)) \/ 1000);\n\n            if (hours > 0) {\n                var hoursString = hours + ' hours ';\n            } else {\n                var hoursString = '';\n            }\n\n            if (minutes > 0) {\n                var minutesString = minutes + ' minutes ';\n            } else {\n                var minutesString = '';\n            }\n            if (seconds > 0) {\n                var secondsString = seconds + ' seconds';\n\n            } else {\n                var secondsString = '';\n            }\n\n            var day = thisday.getDay();\n\n            if (day == 6 || day == 0) {\n                clearInterval(x);\n                document.getElementById(\"demo\").innerHTML = \"Ships Monday!\";\n            } else {\n                document.getElementById(\"demo\").innerHTML = \"Ships today if ordered in the next <span class='ships-same-text'> \" + hoursString + minutesString + secondsString + \" <\/span>\";\n            }\n\n            if (t < 0) {\n                clearInterval(x);\n                document.getElementById(\"demo\").innerHTML = \"Ships Same Day if Ordered by 4PM EST!\";\n            }\n        }, 1000);\n\n        \/**\n         *    \n         * @returns {undefined}         \n         *\/\n        $(document).on('click', '#update-existing', function () {\n            $('#add-update-quote-modals').modal('hide');\n            if (ajaxCartRequest(null, null)) {\n                $('#upload-n-go').modal('show');\n            }\n        });\n\n        $(document).on('click', '#add-new', function () {\n            $('input[name=\"quote_id\"').val('');\n            $('input[name=\"design_id\"').val('');\n            $('#add-update-quote-modals').modal('hide');\n            if (ajaxCartRequest(null, null)) {\n                $('#upload-n-go').modal('show');\n            }\n        });\n\n        \/* Color Picker *\/\n        var colors = getPrintColors();\n        colorsSelect = [];\n        var oldColor;\n        var cp_content = $('#cp-content').html();\n        btnDonecp = '<button type=\"button\" class=\"close close-popover text-white\" data-dismiss=\"modal\" aria-label=\"Close\" style=\"font-size:.75rem;font-weight:400;\"><span aria-hidden=\"true\"> <span class=\"fa fa-times bg-danger\" style=\"border-radius: 5px; padding: 4px 6px; display: inline-block;\"><\/span><\/span><\/button>';\n        var typeName = $('#product-product input[name=\"print_type_from_quote\"]').val();\n\n        setColorPicker(colors);\n        \/*\n         $(document).ready(function () {\n         var options = $('#product-product select[data-option-name=\"Number of Print Colors\"] option');\n         $.map(options, function (option) {\n         if ($(option).attr('selected') === 'selected') {\n         var colors = parseInt($(option).text());\n         var type = $('#product-product input[name=\"product_type_id\"]').val();\n         var typeName = $('#product-product input[name=\"print_type_from_quote\"]').val();\n         setColorPicker(colors, typeName);\n         }\n         });\n         });\n         \n         if ($('select[data-option-name=\"Number of Print Colors\"]').length) {\n         $(document.body).on('change', 'select[data-option-name=\"Number of Print Colors\"]', function (e) {\n         colors = getPrintColors();\n         setColorPicker(parseInt(colors));\n         });\n         }\n         *\/\n\n        $(document).ready(function () {\n            var option = $('#product-product [data-option-name=\"Number of Print Colors\"]:checked');\n            var colors = parseInt($(option).data('name'));\n            var type = $('#product-product input[name=\"product_type_id\"]').val();\n            var typeName = $('#product-product input[name=\"print_type_from_quote\"]').val();\n            \/\/    console.log('typeName', typeName);\n            \/\/    console.log('colors', colors);\n            setColorPicker(colors, typeName);\n        });\n\n        if ($('[data-option-name=\"Number of Print Colors\"]').length) {\n            $(document.body).on('change', '[data-option-name=\"Number of Print Colors\"]', function (e) {\n                colors = getPrintColors();\n                \/\/console.log('color number change', colors);\n                var typeName = $('#product-product input[name=\"print_type_from_quote\"]').val();\n                \/\/console.log('type number change', typeName);\n                setColorPicker(parseInt(colors), typeName);\n            });\n        }\n        $('#cp-btn').on('click', function (e) {\n            e.stopPropagation();\n        });\n\n        $('#qtyoptions').on('click', function (e) {\n            if (!$('#collapseStakes').hasClass('show')) {\n                \/\/        $('#collapseNumberColors').addClass('show');                       \n            }\n            e.stopPropagation();\n        });\n\n        $('#cp-btn').popover({\n            title: 'Choose ' + colors + ' color(s) ' + btnDonecp,\n            html: true,\n            content: cp_content,\n            container: 'body',\n            offset: '-50px',\n            placement: 'bottom',\n            sanitizeFn: function (content) {\n                return content;\n            }\n        }).on('hide.bs.popover', function (e) {\n            var n = $('.popover input[name=\"picked-colors\"]:checked').length;\n            colors = getPrintColors();\n            for (var i = 0; i < colors; i++) {\n                $('.color-boxes label').eq(i).children('input').val($('.popover input[name=\"picked-colors\"]:checked').eq(i).val());\n            }\n\n            $('.pms-color1 input').eq(0).attr('data-html-color', $('.pms-color1 input').eq(1).data('html-color'));\n            $('.pms-color2 input').eq(0).attr('data-html-color', $('.pms-color2 input').eq(1).data('html-color'));\n\n            $('.pms-color1 input').eq(0).val($('.pms-color1 input').eq(1).val());\n            $('.pms-color2 input').eq(0).val($('.pms-color2 input').eq(1).val());\n            if (typeof (getQuote) == 'function') {\n                getQuote();\n            } else if (typeof (getHeaderQuote) == 'function') {\n                getHeaderQuote('#cpo');\n            }\n        }).on('shown.bs.popover', function (e) {\n\n            if (!$('#collapseNumberColors').hasClass('show')) {\n                \/\/      $('#collapseNumberColors').addClass('show');                       \n            }\n            var n = colorsSelect.length;\n            colors = getPrintColors();\n\n            for (var i = 0; i < colors; i++) {\n                $('input[value=\"' + colorsSelect[i] + '\"]').prop('checked', true);\n            }\n\n            $('.pms-color1 input').eq(1).attr('data-html-color', $('.pms-color1 input').eq(0).data('html-color'));\n            $('.pms-color2 input').eq(1).attr('data-html-color', $('.pms-color2 input').eq(0).data('html-color'));\n\n            $('.pms-color1 input').eq(1).val($('.pms-color1 input').eq(0).val());\n            $('.pms-color2 input').eq(1).val($('.pms-color2 input').eq(0).val());\n\n        });\n\n        if ($('input[data-option-name^=\"PMS Color\"]').length) {\n            $(document).on('change', '.popover input[data-option-name^=\"PMS Color\"]', function (e) {\n                \/* use promises to return *\/\n\n                if ($(this).val() !== '') {\n                    var newcolor;\n                    var that = $(this);\n                    var promise = getPMStoHTML($(this).val());\n                    colors = getPrintColors();\n                    var oldColor;\n                    var pms1 = $('.popover input[data-option-name^=\"PMS Color 1\"]').val();\n                    var pms2 = $('.popover input[data-option-name^=\"PMS Color 2\"]').val();\n                    currentcolor = $(this).attr('data-html-color');\n\n                    var oldpms1 = $('.popover input[data-option-name^=\"PMS Color 1\"]').attr('data-html-color');\n                    var oldpms2 = $('.popover input[data-option-name^=\"PMS Color 2\"]').attr('data-html-color');\n\n                    promise.done(function (json) {\n                        if (!json.error) {\n                            if (colors >= 2) {\n                                if (colorsSelect.length >= 2) {\n                                    if (pms1 || pms2) {\n                                        $(that).attr('data-html-color', json.color);\n                                        if (pms1) {\n                                            oldColor = colorsSelect[0];\n                                            colorsSelect[0] = $('.popover input[data-option-name^=\"PMS Color 1\"]').attr('data-html-color');\n                                        }\n                                        if (pms2) {\n                                            oldColor = colorsSelect[1];\n                                            colorsSelect[1] = $('.popover input[data-option-name^=\"PMS Color 2\"]').attr('data-html-color');\n                                        }\n\n\n                                        if (pms1 && pms2) {\n                                            $('input[name=\"picked-colors\"]').each(function () {\n                                                this.checked = false;\n                                                this.blur;\n                                            });\n                                        }\n                                    } else {\n                                        if (currentcolor == undefined) {\n                                            oldColor = colorsSelect[1];\n                                            colorsSelect[1] = colorsSelect[0];\n                                            colorsSelect[0] = json.color;\n                                        } else {\n                                            var i = colorsSelect.findIndex(k => k == currentcolor);\n                                            oldColor = currentcolor;\n                                            colorsSelect[i] = json.color;\n                                        }\n                                    }\n\n                                    $(that).attr('data-html-color', json.color);\n                                    $('.popover input[value=\"' + oldColor + '\"]').prop('checked', false);\n                                } else {\n                                    colorsSelect[1] = colorsSelect[0];\n                                    colorsSelect[0] = json.color;\n                                    $(that).attr('data-html-color', json.color);\n                                }\n                            } else if (colors == 1) {\n                                colorsSelect[0] = json.color;\n                                $('.popover  input[name=\"picked-colors\"]').each(function () {\n                                    this.checked = false;\n                                    this.blur;\n                                });\n                                $(that).attr('data-html-color', json.color);\n\n                            }\n\n                            setColors();\n                        } else {\n                            alert('Unable to identify that color');\n                        }\n                    });\n                } else {\n                    currentcolor = $(this).attr('data-html-color');\n                    $(this).attr('data-html-color', '');\n                    var i = colorsSelect.findIndex(k => k == currentcolor);\n                    colorsSelect.splice(currentcolor, 1);\n                    setColors();\n                }\n            });\n        }\n\n        $(document).on('change', '.popover input[name=\"picked-colors\"]', function (e) {\n            colors = getPrintColors();\n            if (colors > 1) {\n                if (colorsSelect.length >= 2) {\n                    if ($(this).is(':checked')) {\n                        oldColor = colorsSelect[1];\n                        \/* rotate colors *\/\n                        colorsSelect[1] = colorsSelect[0];\n                        colorsSelect[0] = $(this).val();\n\n                        $('input[data-html-color=\"' + oldColor + '\"]').val('');\n                        $('input[value=\"' + oldColor + '\"]').prop('checked', false);\n                    } else {\n                        if (colorsSelect.length == 2) {\n                            colorsSelect[0] = colorsSelect[1];\n                            colorsSelect.splice(1, 1);\n                        }\n                    }\n                } else if (colorsSelect.length == 1) {\n                    if ($(this).is(':checked')) {\n                        oldColor = undefined;\n                        colorsSelect[1] = colorsSelect[0];\n                        colorsSelect[0] = $(this).val();\n                    } else {\n                        oldColor = undefined;\n                        colorsSelect.splice(0, 1);\n                    }\n                } else {\n                    if ($(this).is(':checked')) {\n                        oldColor = undefined;\n                        colorsSelect[0] = $(this).val();\n                    }\n                }\n            } else if (colors == 1) {\n                if ($(this).is(':checked')) {\n                    oldColor = colorsSelect[0];\n                    colorsSelect[0] = $(this).val();\n                    $('input[data-option-name=\"PMS Color 1\"]').val('');\n                    \/* make sure user did not check and uncheck same box *\/\n                    if (oldColor !== $(this).val()) {\n                        $('input[value=\"' + oldColor + '\"]').prop('checked', false);\n                    }\n                } else {\n                    $('input[value=\"' + $(this).val() + '\"]').prop('checked', false);\n                }\n            }\n            setColors();\n        });\n\n        if ($('select[data-option-name=\"Print Type\"]').length) {\n            $(document.body).on('change', 'select[data-option-name=\"Print Type\"]', function (e) {\n                var type = $('option:selected', 'select[data-option-name=\"Print Type\"]').data('name');\n                colors = getPrintColors();\n                if (type == 'Silkscreen') {\n                    setColorPicker(parseInt(colors));\n                } else {\n                    if (type == 'Best Price') {\n                        if (colorsSelect.length > 0) {\n                            \/* when best price is selected, we need to resend the picked colors for accurate quotes *\/\n                            \/* system will not send a disabled field so we need to enable the color picker *\/\n                            \/* if colors had previously been selected. *\/\n                            setColorPicker(parseInt(colors), 'Silkscreen');\n                        } else {\n                            setColorPicker(0);\n                        }\n                    } else {\n                        setColorPicker(0);\n                    }\n                }\n            })\n        }\n\n        var showShipping = function () {\n            $('#show-expedited-shipping').trigger('click');\n            document.removeEventListener(\"shippingloaded\", showShipping, true);\n        };\n\n        loadInitialProductPageScripts();\n    });\n    \/* end domcontentloaded *\/\n\n\n    \/**\n     * Load init scripts\n     * @returns {undefined}\n     *\/\n    function loadInitialProductPageScripts() {\n        bindExpeditedDeliveryModal();\n        bindSelectRecurringIdChange();\n        bindButtonCartFunction();\n        bindInputQtyChange();\n        bindThumbnailMagnific();\n        bindSelectOptions();\n        bindMoreAddonsOptionsClick();\n        debugOptions();\n        bindDelegateReviews();\n        bindLoadReviews();\n        bindClickReview();\n        productViewGoogle();\n        $('#cart > ul').load('\/index.php?route=common\/cart\/info ul li');\n        $('#cart .cart-total-wrapper').load('\/index.php?route=common\/cart\/info #cart-total');\n    }\n\n    \/**\n     * Get designer setup data\n     * @param {type} callBack\n     * @returns {undefined}\n     *\/\n    function getDesignerSetup(callBack) {\n        if ($('#productoptions-modals').length) {\n            dataToSend = $('#options-modals input[type=\\'number\\'], input[type=\\'text\\'],#options-modals input[type=\\'hidden\\'], #options-modals input[type=\\'radio\\']:checked,#options-modals input[type=\\'checkbox\\']:checked, #options-modals select, #options-modalsl textarea');\n        } else {\n            dataToSend = $('#product input[type=\\'number\\'], input[type=\\'text\\'], #product input[type=\\'hidden\\'], #product input[type=\\'radio\\']:checked, #product input[type=\\'checkbox\\']:checked, #product select, #product textarea');\n        }\n        var product_id = $('input[name=\"product_id\"]').val();\n        var url = \"\/?route=designer\/ajax\/ocproduct\/getSetup&product_id=\" + product_id;\n        $.ajax({\n            url: url,\n            data: dataToSend,\n            method: 'get'\n        }).done(function (responseData) {\n            if (callBack && typeof callBack === \"function\") {\n                callBack(responseData);\n            }\n        });\n    }\n\n\n    \/**\n     * Load the main price quote\n     * - Include shipping if marked\n     * - Set dom elements as needed\n     * @returns {Boolean}\n     *\/\n    function getQuote() {\n        var errors = validate();\n        if (errors != true) {\n\n            $('.breadcrumb').after('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b> ' + errors[0] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n            return false;\n        }\n\n        \/\/ Set shipping to ground as a default if a shipping method isn't selected\n        if ($('input[name=\"selected_shipping_method\"]').val() == 'localpickup' && !($('input[name=\"localpickup\"]').is(':checked'))) {\n            $('input[name=\"selected_shipping_method\"]').val('ups_custom.03');\n        }\n\n        var dataToSend;\n        if ($('#productoptions-modals').length) {\n          \/\/  dataToSend = $('#options-modals input[type=\\'number\\']:not([disabled]), input[type=\\'text\\']:not([disabled]),#options-modals input[type=\\'hidden\\']:not([disabled]), #options-modals input[type=\\'radio\\']:checked,#options-modals input[type=\\'checkbox\\']:checked, #options-modals select:enabled, #options-modalsl textarea');\n        } else {\n            \/\/  dataToSend = $('#product input[type=\\'number\\']:not([disabled]), input[type=\\'text\\']:not([disabled]), #product input[type=\\'hidden\\']:not([disabled]), #product input[type=\\'radio\\']:checked, #product input[type=\\'checkbox\\']:checked, #product select:enabled, #product textarea');\n            dataToSend = $('#product form[name=\"select-options\"]').serializeArray();\n            dataToSend.push({\n                name: \"addshipping\",\n                value: $('#addshipping').val()\n            });\n            dataToSend.push({\n                name: \"zipcode\",\n                value: $('#zipcode').val()\n            });\n        }\n       \n       if($('[data-option-name=\"Quantity Per Pack\"]').length){\n           var qtyOptionName = $('#qtyoptions').attr('name');\n            if (qtyOptionName) {\n                var multiplier = $('[data-option-name=\"Quantity Per Pack\"]').data('name');\n                console.log(qtyOptionName);\n                console.log(dataToSend.find(({ name }) => name === qtyOptionName));\n                var foundIndex = dataToSend.findIndex(({ name }) => name === qtyOptionName);\n                \/\/  dataToSend[foundIndex].value = dataToSend[foundIndex].value * multiplier;        \n                console.log(foundIndex);\n            }\n        }\n\n        var url = $('#product form[name=\"select-options\"]').prop('action');\n\n        $.ajax({\n            url: url,\n            data: dataToSend,\n            method: 'post',\n            dataType: 'json',\n            beforeSend: function () {\n                ajaxLoadTimeout = setTimeout(function () {\n                    if ($('#loading-shipping').css('display') == 'none') {\n                        $('.page-loading').css('display', 'block');\n                    }\n                }, 10);\n            }\n        }).done(function (responseData) {\n            $('.alert-dismissible').remove();\n            if (responseData.warning) {\n                if (responseData.warning.quantity_min) {\n                    if ($(\"#product-options > div > .alert\").length) {\n                    } else {\n                        \/\/$('#product-options > div').delay(1500).prepend('<div class=\"alert alert-info alert-dismissible modal-qty-min\">When purchasing under ' + responseData.warning.quantity_min + ' signs of the selected size, it may be cheaper to print using the Digital Print method to keep your costs low. Please use the Yard Signs Tab above to choose a Yard Sign from the Yard Signs - Digital drop down area to save money. <button type=\"button\" class=\"close\" data-dismiss=\"alert\">\u00d7<\/button><\/div>');\n                       $('#product-options > div#quoterrors').delay(1500).prepend('<div class=\"alert alert-info alert-dismissible modal-qty-min\">This size and quantity combination is not available with the Silkscreen Print Type. Please select Best Price or Digital from the Print Type dropdown below.  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">\u00d7<\/button><\/div>');\n                    }\n                }\n\n                if (responseData.warning.min_cost) {\n                    if ($(\"#product-options > div > .alert\").length) {\n                    } else {\n                        $('#product-options > div#quoterrors').delay(1500).prepend('<div class=\"alert alert-info alert-dismissible modal-qty-min\"> ' + responseData.warning.min_cost + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\">\u00d7<\/button><\/div>');\n                    }\n                }\n\n                if (responseData.warning.quantity_max) {\n                    \/* @TODO -  empty if remove if not going to use *\/\n                    if ($(\"#product-options > div > .alert\").length) {\n\n                    } else {\n                        \/\/ $('#product-options > div').delay(1500).prepend('<div class=\"alert alert-info alert-dismissible modal-qty-max\">When purchasing over ' + responseData.warning.quantity_max + ' signs in 1 or 2 color, it may be cheaper to print using the Silk Screen Print method to keep your costs low. Please use the Yard Signs Tab above to choose a Yard Sign from the Yard Signs - Silk Screen drop down area to save money. <button type=\"button\" class=\"close\" data-dismiss=\"alert\">\u00d7<\/button><\/div>');\n                        $('#product-options > div#quoterrors').delay(1500).prepend('<div class=\"alert alert-info alert-dismissible modal-qty-max\">A lower price for this size, quantity and color combination is available. Please select Best Price or Silkscreen from the Print Type dropdown below. <button type=\"button\" class=\"close\" data-dismiss=\"alert\">\u00d7<\/button><\/div>');\n                    }\n                }\n            } else {\n                $('#product .modal-qty-min').remove();\n                $('#product .modal-qty-max').remove();\n            }\n            if ($('.colorpicker').length) {\n                \/* show color picker *\/\n                if (responseData.print_type_from_quote == 'silkscreen') {\n                    colors = getPrintColors();\n                    setColorPicker(colors, 'Silkscreen');\n                } else if (responseData.print_type_from_quote !== 'silkscreen') {\n                    setColorPicker(colors);\n                }\n            }\n\n\n            if (responseData['error']) {\n                for (var i in responseData['error']) {\n                  \/\/  alert(i);\n                    \/\/$('.breadcrumb').after('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b>' + responseData['error'][i] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n                    \/* JL - Note to self, remove one of these *\/\n                    \/\/$('#product-options > div > div:first-child').delay(1500).after('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b>' + responseData['error'][i] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n                   $('#product-options > div#quoterrors').delay(1500).prepend('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b>' + responseData['error'][i] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n                 }\n            } else {\n                $('#product .alert-dismissible.alert-danger').remove();\n                var totaleach = parseFloat(responseData.totalcost) \/ parseInt(responseData.totalqty);\n\n                var priceEach = responseData.price.toLocaleString(undefined, {\n                    minimumFractionDigits: 2,\n                    maximumFractionDigits: 2\n                });\n\n                var totalQty = responseData.totalqty.toLocaleString(undefined, {\n                    minimumFractionDigits: 0,\n                    maximumFractionDigits: 0\n                });\n\n                var totalCost = responseData.totalcost.toLocaleString(undefined, {\n                    minimumFractionDigits: 2,\n                    maximumFractionDigits: 2\n                });\n\n                var subtotal = responseData.subtotal.toLocaleString(undefined, {\n                    minimumFractionDigits: 2,\n                    maximumFractionDigits: 2\n                });\n\n                var peach = responseData.subtotal \/ responseData.totalqty;\n\n                var each = peach.toLocaleString(undefined, {\n                    minimumFractionDigits: 2,\n                    maximumFractionDigits: 2\n                });\n\n                var html = '<h4>Total Quantity: <i>' + totalQty + '<\/i> Total Cost: <i>$' + totalCost + '<i><\/h4>';\n\n                $('#product .price-each').html(\"$\" + parseFloat(each.replace(',', '')).toFixed(2));\n                $('#product .qty-price').html(responseData.qtyprices);\n                \/\/$('#product .price-total, #expedited-delivery-modal .price-total').html('$' + parseFloat(totalCost.replace(\/,\/g, '')).toFixed(2));\n                $('#product .price-total, #expedited-delivery-modal .price-total').html('$' + totalCost.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n                $('#product .price-total, #expedited-delivery-modal .price-total').data('price', totalCost);\n\n                if (responseData.production_cost) {\n                    var rush = responseData.production_cost.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n                    $('#product .rush-production').html('$' + parseFloat(rush.replace(\/,\/g, '')).toFixed(2));\n                } else {\n                    $('#product .rush-production').html('$0.00');\n                }\n\n                if (responseData.upsell) {\n                    var upsell = responseData.upsell.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n                    $('#product .upsell').html('$' + upsell);\n                } else {\n                    $('#product .upsell').html('$0.00');\n                }\n                var sub_total = responseData.subtotal.toLocaleString(undefined, {\n                    minimumFractionDigits: 2,\n                    maximumFractionDigits: 2\n                });\n\n                $('#product input[name=\"current_subtotal\"]').val(sub_total);\n                $('#product input[name=\"current_totalcost\"]').val(totalCost);\n                if (responseData.production_days) {\n                    $('#product input[name=\"production_days\"]').val(responseData.production_days);\n                }\n\n                var product_cost = responseData.product_cost.toLocaleString(undefined, {\n                    minimumFractionDigits: 2,\n                    maximumFractionDigits: 2\n                });\n\n                \/\/$('#product .product-cost').html('$' + parseFloat(product_cost.replace(\/,\/g, '')).toFixed(2));\n                \/* update product-cost in modal as well *\/\n                $('#product .product-cost').html('$' + product_cost.toString().replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n\n                \/\/ Add check for t-shirts\n                if ($(\"#product #input-average\").length != 0) {\n                    \/\/it exists\n\n                    \/\/ var totalcost = $('#cost-content .product-cost').html().replace('$','');\n                    var totalcost = parseFloat(sub_total.replace(\/,\/g, '')).toFixed(2);\n                    var totalqty = $('#product #input-quantity').val();\n                    var avgcost = totalcost \/ totalqty;\n                    avgcost = avgcost.toFixed(2);\n                    $('#product #input-average').val('$' + avgcost);\n                }\n\n                if (responseData.quote_tax) {\n                    var taxes = responseData.quote_tax.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n                    $('#product .taxes').html(taxes);\n                } else {\n                    $('#product .taxes').html('0.00');\n                }\n\n                \/* if order below 89 show free shipping  *\/\n                if (responseData.oversized) {\n                    $('#product .oversized-not-free').removeClass('d-none');\n                    $('#product .add-for-free').addClass('d-none');\n                    $('#product .is-free').addClass('d-none');\n                } else {\n                    $('#product .oversized-not-free').addClass('d-none');\n                    var moreLeft = 89 - parseFloat(responseData.subtotal.toString().replace(\/,\/g, '')) - parseFloat(responseData.upsell.toString().replace(\/,\/g, ''));\n                    if (moreLeft <= 0) {\n                        $('#product .add-for-free').addClass('d-none');\n                        $('#product .is-free').removeClass('d-none');\n                    } else {\n                        var buyLeft = moreLeft.toLocaleString(undefined, {\n                            minimumFractionDigits: 2,\n                            maximumFractionDigits: 2\n                        });\n                        $('#product .add-for-free').html('Add <span class=\"more-for-free\">$' + buyLeft + '<\/span> to your order to receive free shipping!');\n                        $('#product .add-for-free').removeClass('d-none');\n                        $('#product .is-free').addClass('d-none');\n                    }\n                }\n                \/* end if order below 89 show free shipping  *\/\n\n                \/* Show production time box and disable the options not available *\/\n                if ($('#product [data-option-name=\"Production Time\"]').length) {\n                    if (responseData.expedited_days > 0) {\n                        console.log($('#product [data-option-name=\"Production Time\"][data-name=\"Standard\"]'));\n                        $('#product [data-option-name=\"Production Time\"][data-name!=\"Standard\"]').attr('disabled', false);\n                        $('#product [data-option-name=\"Production Time\"][data-name!=\"Standard\"]').css('opacity', \"1\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Standard\"]').attr('disabled', false);\n\t\t\t\t\t\t\t\t\n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Standard\"]').css('opacity', \"1\");\n\t\t\t\t\t\t \n                    } else {\n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Standard\"]').attr('disabled', false);\n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Standard\"]').css('opacity', \"1\");\n                     \/\/   $('#product [data-option-name=\"Production Time\"][data-name=\"Standard\"]').prop('checked', true).trigger('change');\n\n                        $('#product [data-option-name=\"Production Time\"][data-name!=\"Standard\"]').attr('disabled', true);\n                        $('#product [data-option-name=\"Production Time\"][data-name!=\"Standard\"]').css('opacity', \".5\");\n                        $('#product [data-option-name=\"Production Time\"][data-name!=\"Standard\"]').prop('checked', false);\n                        \n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Same Day\"]').attr('disabled', false);\n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Same Day\"]').css('opacity', \"1\");\n                        $('#product [data-option-name=\"Production Time\"][data-name=\"Same Day\"]').prop('checked', true);\n                    }\n\n                }\n\n\n                if ($('input[name=\"localpickup\"]').is(':checked')) {\n                    if (responseData.pickup_date !== undefined) {\n                        $('.est-arrival-date b').text(responseData.pickup_date);\n                    }\n                } else {\n                    if (responseData.est_delivery_date) {\n                        $('.est-arrival-date b').text(responseData.est_delivery_date);\n                    }\n                }\n\n                \/**\n                 * Shipping quotes, only if included\n                 * - Open Modal\n                 * - clear previous data from modal\n                 * - Create a table of quotes\n                 * - Removed duplicate and unused code 1.9.2020\n                 *\n                 *\/\n                if (responseData.shipquotes != undefined) {\n                    var col = document.createElement('td');\n                    var options;\n                    var arrShip = responseData.shipquotes.quote;\n                    var arrShipData = responseData.shipquotes.shipdata[0];\n                    \/* remove all shipping elements *\/\n                    $('#expedited-delivery-modal .modal-body #shipping-options tbody').html('');\n                    \/\/var toYourDoor = parseFloat(responseData.totalcost.replace(\/,\/g, ''));\n                    var toYourDoor = responseData.totalcost.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n                    \/\/   var toYourDoor = parseFloat(toYourDoor.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n                    \/\/var toYourDoor = parseFloat(toYourDoor.replace(\/,\/g, '')).toFixed(2);\n\n                    \/* check for oversized boxes *\/\n                    var overSized = false;\n                    for (box in arrShipData) {\n                        \/\/   console.log(arrShipData[box]);\n                        if (arrShipData[box]['length'] > 48 || arrShipData[box]['width'] > 48 || arrShipData[box]['height'] > 48) {\n                            overSized = true;\n                            $('#product .oversized-not-free').removeClass('d-none');\n                            $('#product .add-for-free').addClass('d-none');\n                            $('#product .is-free').addClass('d-none');\n                        }\n                    }\n                    \/* end check for oversized boxes *\/\n\n                    \/* 1.9.2019 - B.P. All date\/time functionality moved to shipping model *\/\n                    for (item in arrShip) {\n                        var delivery_date, delivery_time;\n                        if (arrShip[item]['delivery_date'] != null) {\n                            delivery_date = arrShip[item]['delivery_date'];\n                            delivery_time = arrShip[item]['delivery_time']\n                        } else {\n                            \/* Do not show a delivery date *\/\n                            delivery_date = delivery_time = '';\n                        }\n\n                        var shippingCost = 0;\n\n                        switch (true) {\n                            case responseData.subtotal >= 89 && arrShip[item]['code'] == 'ups_custom.03':\n                                \/* no free shipping on oversized objects *\/\n                                if (!overSized) {\n                                    \/* Free shipping for ground over $89 *\/\n                                    arrShip[item]['title'] = '<span class=\"text-red\">FREE<\/span>';\n                                    arrShip[item]['text'] = '<span class=\"text-red\">FREE<\/span>';\n                                    arrShip[item]['cost'] = 0;\n                                    if (responseData.selected_shipping_method == 'ups_custom.03') {\n                                        $('.selected-shipping').html('FREE');\n                                    }\n                                    $('.add-for-free').addClass('d-none');\n                                    $('.is-free').removeClass('d-none');\n                                }\n                                break;\n                            case responseData.selected_shipping_method == arrShip[item]['code']:\n                                if (arrShip[item]['cost']) {\n                                    $('input[name=\"selected_shipping_cost\"]').val(parseFloat(arrShip[item]['cost']));\n\n                                    shippingCost = parseFloat(arrShip[item]['cost']).toLocaleString(undefined, {\n                                        minimumFractionDigits: 2,\n                                        maximumFractionDigits: 2\n                                    });\n\n                                    $('.selected-shipping').html('$' + shippingCost);\n                                } else {\n                                    $('.selected-shipping').html('$0.00');\n                                }\n                                if (arrShip[item]['cost']) {\n\n                                    toYourDoor = parseFloat(responseData.totalcost.replace(\/,\/g, '')) + parseFloat(arrShip[item]['cost'].toFixed(2));\n\n                                    toYourDoor = toYourDoor.toLocaleString(undefined, {\n                                        minimumFractionDigits: 2,\n                                        maximumFractionDigits: 2\n                                    });\n                                } else {\n                                    toYourDoor = parseFloat(responseData.totalcost.replace(\/,\/g, '')) + parseFloat(arrShip[item]['cost'].toFixed(2));\n                                    toYourDoor = toYourDoor.toLocaleString(undefined, {\n                                        minimumFractionDigits: 2,\n                                        maximumFractionDigits: 2\n                                    });\n\n                                }\n                                break;\n                        }\n\n                        var checked = '';\n                        if ($('input[name=\"selected_shipping_method\"]').val() == arrShip[item]['code']) {\n                            checked = ' checked ';\n                            $('.est-arrival-date b').text(delivery_date);\n                        }\n\n                        var row = document.createElement('tr');\n                        var td1 = document.createElement('td');\n                        td1.innerHTML = '<input ' + checked + ' data-date=\"' + delivery_date + '\" class=\"ship-quote  mr-2\" data-cost=\"' + arrShip[item]['cost'] + '\" type=\"radio\" id=\"' + arrShip[item]['code'] + '\" name=\"shipping-quotes\" value=\"' + arrShip[item]['code'] + '\"><label for=\"' + arrShip[item]['code'] + '\">' + arrShip[item]['title'] + '<\/label>';\n                        var td2 = document.createElement('td');\n                        td2.className = 'text-right';\n                        td2.innerHTML = arrShip[item]['text'];\n                        var td3 = document.createElement('td');\n                        td3.className = 'text-right';\n                        td3.innerHTML = '<span class=\"date-string\">' + delivery_date + '<\/span><br><div class=\"text-red small \">' + delivery_time + '<\/div>';\n\n                        row.append(td1);\n                        row.append(td2);\n                        row.append(td3);\n\n                        $('#expedited-delivery-modal .modal-body #shipping-options tbody').append(row);\n                    }\n\n                    \/* save shipping method *\/\n                    $(document.body).on('change', 'input[name=\"shipping-quotes\"]', function (e) {\n                        var method = $(this).val();\n                        $.post('\/index.php?route=extension\/total\/shipping\/shipping', {shipping_method: method});\n                    });\n                    $('#product .price-total').html('$' + toYourDoor);\n                    $('#product .price-total').data('price', toYourDoor);\n\n                    \/* E.H. Fix Fast Shipping Options modal not showing correct subtotal on initialization *\/\n                    $('#expedited-delivery-modal .price-total').html('$' + toYourDoor);\n                    $('#expedited-delivery-modal .price-total').data('price', toYourDoor);\n\n                    \/* this updates the popover *\/\n                    \/\/ $('#see-costs').attr('data-content', $('#cost-content').html());\n\n                    \/\/document.dispatchEvent(shippingLoaded);\n                } else {\n                    var shipWidthInInches = responseData.width;\n                    var shipLengthInInches = responseData.length;\n                    if (responseData.length_class_id == 5) {\n                        shipWidthInInches = shipWidthInInches * 12;\n                        shipLengthInInches = shipLengthInInches * 12;\n                    }\n                    if (shipLengthInInches > 48 || shipWidthInInches > 48) {\n                        overSized = true;\n                        $('#product .oversized-not-free').removeClass('d-none');\n                        $('#product .add-for-free').addClass('d-none');\n                        $('#product .is-free').addClass('d-none');\n                    }\n                }\n\n                if (responseData.freightquotes != undefined) {\n                    \/\/ alert('foo');\n                    var freightShip = responseData.freightquotes.quote;\n\n                    for (item in freightShip) {\n                        var delivery_date, delivery_time;\n                        if (freightShip[item]['delivery_date'] != null) {\n                            delivery_date = freightShip[item]['delivery_date'];\n                            delivery_time = freightShip[item]['delivery_time']\n                        } else {\n                            \/* Do not show a delivery date *\/\n                            delivery_date = delivery_time = '';\n                        }\n                        \n                        var checked = '';\n                        if ($('input[name=\"selected_shipping_method\"]').val() == freightShip[item]['code']) {\n                            checked = ' checked ';\n                            $('.est-arrival-date b').text(delivery_date);\n                        }                        \n                        \n                        \n                        \n                        var row = document.createElement('tr');\n                        var td1 = document.createElement('td');\n                        td1.setAttribute(\"style\", \"vertical-align:middle;\");\n                        td1.innerHTML = '<input   ' + checked + ' data-date=\"' + delivery_date + '\" class=\"ship-quote  mr-2\" data-cost=\"' + freightShip[item]['cost'] + '\" type=\"radio\" id=\"' + freightShip[item]['code'] + '\" name=\"shipping-quotes\" value=\"' + freightShip[item]['code'] + '\"><label  style=\"max-width:175px;\" for=\"' + freightShip[item]['code'] + '\">' + freightShip[item]['title'] + '<\/label>';\n                        var td2 = document.createElement('td');\n                        td2.className = 'text-right';\n                        td2.innerHTML = '<div style=\"max-width:75px;\">' + freightShip[item]['text'] + '<\/div>';\n                        var td3 = document.createElement('td');\n                        td3.className = 'text-right';\n                        td3.innerHTML = '<span class=\"date-string\">' + delivery_date + '<\/span><br><div class=\"text-red small \">' + delivery_time + '<\/div>';\n\n                        row.append(td1);\n                        row.append(td2);\n                        row.append(td3);\n\n                        $('#expedited-delivery-modal .modal-body #shipping-options tbody').append(row);\n                    }\n\n                    \/* save shipping method *\/\n                    $(document.body).on('change', 'input[name=\"shipping-quotes\"]', function (e) {\n                        var method = $(this).val();\n                        $.post('\/index.php?route=extension\/total\/shipping\/shipping', {shipping_method: method});\n                    });\n\n                }\n                document.dispatchEvent(shippingLoaded);\n\n                if (responseData.select2replace) {\n                    \/\/ $('.select2-qty').val(null).trigger('change');\n                }\n\n            }\n            \/** \n             * digital switch- switch from ss to digital \n             * Some of the digital faster modal items for the current quote\n             * are set with the regular price setting      \n             * \n             **\/\n            var production_days_dig = responseData.production_days_dig;\n            var production_days_ss = responseData.production_days_ss;\n\n\n            $('#product-product input[name=\"print_type_from_quote\"]').val(responseData.print_type_from_quote);\n\n            if (responseData.print_type_from_quote == 'silkscreen') {\n                if (production_days_dig < production_days_ss && responseData.number_colors == 2) {\n                    var daysQuicker = parseInt(production_days_ss) - parseInt(production_days_dig);\n                    var convertedDigitalDate = new Date(responseData.digital_est_delivery_date);\n                    var convertedDate = new Date(responseData.est_delivery_date_w_year);\n\n                    $('#digital-faster .digital-est-arrival-date ').html(convertedDigitalDate.toLocaleDateString());\n\n                    $('#digital-faster .est-arrival-date-replace').html(convertedDate.toLocaleDateString());\n\n                    $('.digital-faster b').html(daysQuicker);\n\n                    var digital_product_cost = responseData.digital_product_cost.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n\n                    $('#digital-faster .digital-product-cost ').html('$' + digital_product_cost.toString().replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n\n                    if (responseData.digital_quote_tax) {\n                        var digital_quote_tax = responseData.digital_quote_tax.toLocaleString(undefined, {\n                            minimumFractionDigits: 2,\n                            maximumFractionDigits: 2\n                        });\n                        $('#digital-faster .digital-taxes ').html(digital_quote_tax);\n                    } else {\n                        $('#digital-faster .digital_taxes ').html('0.00');\n                    }\n\n                    var digital_totalcost = responseData.digital_totalcost.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n\n                    var digital_subtotal = responseData.digital_subtotal.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n\n                    var digital_peach = responseData.digital_subtotal \/ responseData.totalqty;\n\n                    var digital_each = digital_peach.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n\n                    var sub_total = responseData.subtotal.toLocaleString(undefined, {\n                        minimumFractionDigits: 2,\n                        maximumFractionDigits: 2\n                    });\n\n\n                    $('#digital-faster  .digital-price-each').html(\"$\" + parseFloat(digital_each.replace(',', '')).toFixed(2));\n                    $('#digital-faster .digital-price-total ').html('$' + digital_totalcost.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n\n                    \/* silkscreen pricing *\/\n                    $('#digital-faster  .price-each').html(\"$\" + parseFloat(each.replace(',', '')).toFixed(2));\n                    $('#digital-faster .product-cost ').html('$' + product_cost.toString().replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n                    $('#digital-faster .price-total ').html('$' + totalCost.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\"));\n\n                    if (responseData.quote_tax) {\n                        var taxes = responseData.quote_tax.toLocaleString(undefined, {\n                            minimumFractionDigits: 2,\n                            maximumFractionDigits: 2\n                        });\n                        $('#digital-faster .taxes ').html(taxes);\n                    } else {\n                        $('#digital-faster .taxes ').html('0.00');\n                    }\n\n\n                    if (responseData.production_cost) {\n                        var rush = responseData.production_cost.toLocaleString(undefined, {\n                            minimumFractionDigits: 2,\n                            maximumFractionDigits: 2\n                        });\n                        $('#digital-faster .rush-production ').html('$' + parseFloat(rush.replace(\/,\/g, '')).toFixed(2));\n                    } else {\n                        $('#digital-faster .rush-production ').html('$0.00');\n                    }\n\n                    if (responseData.upsell) {\n                        var upsell = responseData.upsell.toLocaleString(undefined, {\n                            minimumFractionDigits: 2,\n                            maximumFractionDigits: 2\n                        });\n                        $('#digital-faster .upsell ').html('$' + upsell);\n                    } else {\n                        $('#digital-faster .upsell  ').html('$0.00');\n                    }\n                    \/* silkscreen pricing *\/\n\n                    \/* suppress modal if already shown *\/\n                    if (!digitalReplaceModalShown) {\n                        $('#digital-faster').modal('show');\n                        digitalReplaceModalShown = true;\n                    }\n                } else {\n\n                    setDigitalReplaceMethod('Best Price');\n                    digitalReplaceModalShown = false;\n                    $('#digital-faster').modal('hide');\n                    $('#digitalreplace').removeClass('d-block');\n                    $('#digitalreplace').addClass('d-none');\n                }\n            } else {\n                \/* digital responses must have a price  be faster and have 2 colors or hide the buttons *\/\n                \/* typeof responseData.digital_totalcost === 'undefined'  *\/\n                noswitch = false;\n                if (typeof responseData.warning !== 'undefined') {\n                    if (typeof responseData.warning.quantity_min !== 'undefined') {\n                        noswitch = true;\n                    }\n                }\n\n                if (typeof responseData.nosilkscreenquote !== 'undefined') {\n                    \/\/  alert('foo');\n                    setDigitalReplaceMethod('Best Price');\n                    digitalReplaceModalShown = false;\n                    $('#digital-faster').modal('hide');\n                    $('#digitalreplace').removeClass('d-block');\n                    $('#digitalreplace').addClass('d-none');\n                }\n\n                if (noswitch || responseData.number_colors !== 2 || production_days_dig >= production_days_ss) {\n                    setDigitalReplaceMethod('Best Price');\n                    digitalReplaceModalShown = false;\n                    $('#digital-faster').modal('hide');\n                    $('#digitalreplace').removeClass('d-block');\n                    $('#digitalreplace').addClass('d-none');\n                }\n            }\n            \/* end digital switch *\/\n\n\n            if (responseData.warning) {\n                if (responseData.warning.quantity_min) {\n                    \/\/     $('#product .price-total').html('n\/a');\n                    \/\/     $('#product .price-each').html('n\/a');\n                    \/\/      $('#product #show-upload-n-go').prop('disabled', true);\n                } else {\n                    \/\/     $('#product #show-upload-n-go').prop('disabled', false);\n                }\n            } else {\n                \/\/  $('#product #show-upload-n-go').prop('disabled', false);\n            }\n            \/* this updates the popover *\/\n            $('#product #see-costs').attr('data-content', $('#cost-content').html());\n            if ($('#product #see-costs').attr('aria-describedby')) {\n                $('#product #see-costs').popover('show')\n            } else {\n                $('#product #see-costs').popover('hide')\n            }\n\n            \/* Hide Loader *\/\n            $('#loading-shipping').hide();\n            \/\/  $('#shipping-loaded').show();\n\n            clearTimeout(ajaxLoadTimeout);\n            $('.page-loading').css('display', 'none');\n            $('#pcontent').collapse('hide');\n            $('input[name=\"get_ups\"]').val('0');\n            return;\n        }).fail(function () {\n            $('.page-loading').css('display', 'none');\n\n        });\n    }\n\n\n\n\n\n    \/**\n     * Validate data\n     * @TODO - Actually validate stuff\n     * @returns {validate.error|Boolean}\n     *\/\n    function validate() {\n        var error = Array();\n        if ($('#input-quantity').val() == 0) {\n            $('#input-quantity').attr('invalid', true);\n            $('#input-quantity').addClass('invalid');\n            error.push('Quantity must be numeric and greater than 0');\n\n        } else {\n            $('#input-quantity').attr('invalid', false);\n            $('#input-quantity').removeClass('invalid');\n        }\n        if (error.length > 0) {\n            return error;\n        } else {\n            return true;\n        }\n    }\n\n    \/**\n     * \n     * @returns {undefined}\n     *\/\n    function bindExpeditedDeliveryModal() {\n        $('#expedited-delivery-modal').on('change', 'input[name=\"shipping-quotes\"]', function (e) {\n            var current_subtotal = parseFloat($('input[name=\"current_subtotal\"]').val());\n            $('input[name=\"selected_shipping_cost\"]').val(parseFloat($(this).data('cost')));\n            $('input[name=\"selected_shipping_method\"]').val($(this).val());\n            var shippingCost = parseFloat($(this).data('cost')).toLocaleString(undefined, {\n                minimumFractionDigits: 2,\n                maximumFractionDigits: 2\n            });\n\n            if ($(this).val() == 'ups_custom.03' && current_subtotal >= 89) {\n                $('.selected-shipping').html('FREE');\n            } else {\n                $('.selected-shipping').html('$' + shippingCost);\n                \/\/ $('.to_your_door').removeClass('d-none');\n                \/\/  $('.subtotal-title').addClass('d-none');\n            }\n\n            var newPrice = parseFloat($('input[name=\"current_totalcost\"]').val().replace(\/,\/g, '')) + parseFloat($(this).data('cost'));\n\n            var totalCost = newPrice.toLocaleString(undefined, {\n                minimumFractionDigits: 2,\n                maximumFractionDigits: 2\n            });\n\n            $('.est-arrival-date b').html($(this).data('date'));\n            $('.price-total').html('$' + totalCost);\n            \/* This updates the popover *\/\n            $('#see-costs').attr('data-content', $('#cost-content').html());\n        });\n    }\n\n    \/* Start bound event handlers  *\/\n\n    \/**\n     * Recurring id?  \n     * is this for recurring orders?\n     * \n     * @returns void\n     *\/\n    function bindSelectRecurringIdChange() {\n        $('select[name=\\'recurring_id\\']').change(function () {\n            $.ajax({\n                url: '\/index.php?route=product\/product\/getRecurringDescription',\n                type: 'post',\n                data: $('input[name=\\'product_id\\'], input[name=\\'quantity\\'], select[name=\\'recurring_id\\']'),\n                dataType: 'json',\n                beforeSend: function () {\n                    $('#recurring-description').html('');\n                },\n                success: function (json) {\n                    $('.alert-dismissible, .text-danger').remove();\n                    if (json['success']) {\n                        $('#recurring-description').html(json['success']);\n                    }\n                }\n            });\n        });\n    }\n\n    function bindButtonCartFunction() {\n        $('#button-cart').on('click', function () {\n            addToCartGoogle();\n            getQuote();\n            if ($('#input-quantity').val() == 0) {\n                $('#input-quantity').addClass('is-invalid');\n                return;\n            }\n            \/**\n             * @TODO - combine all cart functions into one with call back\n             *\/\n            if ($.trim($(\"#design-notes-modal\").val())) {\n                $(\"#product-options\").append('<input type=\"hidden\" name=\"comment\" value=\"Life Size Cheer Ups : ' + $(\"#design-notes-modal\").val() + '\">');\n            }\n\n            if ($.trim($(\"#design-notes-modal-help\").val())) {\n                $(\"#product-options\").append('<input type=\"hidden\" name=\"comment\" value=\"Life Size Cheer Ups : ' + $(\"#design-notes-modal-help\").val() + '\">');\n            }\n\n            if ($('#input-quantity').val() == 0) {\n                $('#input-quantity').addClass('is-invalid');\n                return;\n            }\n\n            $.ajax({\n                url: '\/index.php?route=checkout\/cart\/add',\n                type: 'post',\n                data: $('#product input[type=\\'number\\'],\\n\\\n                                    input[type=\\'text\\']:not([disabled]), \\n\\\n                                    #product input[type=\\'hidden\\']:not([disabled]), \\n\\\n                                    #product input[type=\\'radio\\']:checked, \\n\\\n                                    #product input[type=\\'checkbox\\']:checked,\\n\\\n                                    #product select:enabled  ,\\n\\\n                                    #product textarea'),\n                dataType: 'json',\n                beforeSend: function () {\n                    $('#button-cart').button('loading');\n                },\n                complete: function () {\n                    $('#button-cart').button('reset');\n                },\n                success: function (json) {\n                    $('.alert-dismissible').remove();\n                    $('.form-group').removeClass('has-error');\n                    if (json['error']) {\n                        if (json['error']['option']) {\n                            for (i in json['error']['option']) {\n                                var element = $('#input-option' + i.replace('_', '-'));\n                                if (element.parent().hasClass('input-group')) {\n                                    element.parent().after('<div class=\"text-danger\">' + json['error']['option'][i] + '<\/div>');\n                                } else {\n                                    element.after('<div class=\"text-danger\">' + json['error']['option'][i] + '<\/div>');\n                                }\n                            }\n                        }\n\n                        if (json['error']['recurring']) {\n                            $('select[name=\\'recurring_id\\']').after('<div class=\"text-danger\">' + json['error']['recurring'] + '<\/div>');\n                        }\n\n                        \/\/ Highlight any found errors\n                        $('.text-danger').parent().addClass('has-error');\n\n                        for (var i in json['error']) {\n                            $('.breadcrumb').after('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b>' + json['error'][i] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n                        }\n                    }\n                    if (json['quote_id']) {\n                        $('input[name=\"quote_id\"').val(json['quote_id']);\n                    }\n                    if (json['design_id']) {\n                        $('input[name=\"design_id\"]').val(json['design_id']);\n                        $('form[name=\"select-options\"] input[data-option-name=\"Design ID\"]').val(json['design_id']);\n                    }\n\n                    if (json['success']) {\n                        $('.alert-dismissible, .alert-danger').remove();\n\n                        $('.breadcrumb').after('<div class=\"alert alert-success alert-dismissible\">' + json['success'] + '<button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n\n                        \/\/ Need to set timeout otherwise it wont update the total\n                        setTimeout(function () {\n                            $('#cart span#cart-total').html(json['qty']);\n                            $('#cart #cart-toggle').trigger('click');\n                        }, 100);\n\n                        $('html, body').animate({scrollTop: 0}, 'slow');\n                        $('#cart > ul').load('\/index.php?route=common\/cart\/info ul li');\n                    }\n\n                },\n                error: function (xhr, ajaxOptions, thrownError) {\n                    alert(thrownError + \"\\r\\n\" + xhr.statusText + \"\\r\\n\" + xhr.responseText);\n                }\n            });\n        });\n    }\n\n    function bindInputQtyChange() {\n        $('#input-quantity').on('change', function (e) {\n            if ($(this).val() > 0) {\n                $('#input-quantity').removeClass('is-invalid');\n            }\n        });\n    }\n\n    function bindDelegateReviews() {\n        $('#review').delegate('.pagination a', 'click', function (e) {\n            e.preventDefault();\n            $('#review').fadeOut('slow');\n            $('#review').load(this.href);\n            $('#review').fadeIn('slow');\n        });\n    }\n\n    function bindLoadReviews() {\n        $('#review').load('\/index.php?route=product\/product\/review&product_id=162');\n    }\n\n    function bindClickReview() {\n        $('#button-review').on('click', function () {\n            $.ajax({\n                url: '\/index.php?route=product\/product\/write&product_id=162',\n                type: 'post',\n                dataType: 'json',\n                data: $(\"#form-review\").serialize(),\n                beforeSend: function () {\n                    $('#button-review').button('loading');\n                },\n                complete: function () {\n                    $('#button-review').button('reset');\n                },\n                success: function (json) {\n                    $('.alert-dismissible').remove();\n                    if (json['error']) {\n                        $('#review').after('<div class=\"alert alert-danger alert-dismissible\"><i class=\"fa fa-exclamation-circle\"><\/i> ' + json['error'] + '<\/div>');\n                    }\n                    if (json['success']) {\n                        $('#review').after('<div class=\"alert alert-success alert-dismissible\"><i class=\"fa fa-check-circle\"><\/i> ' + json['success'] + '<\/div>');\n                        $('input[name=\\'name\\']').val('');\n                        $('textarea[name=\\'text\\']').val('');\n                        $('input[name=\\'rating\\']:checked').prop('checked', false);\n                    }\n                }\n            });\n        });\n    }\n\n    function bindThumbnailMagnific() {\n        $('.thumbnails').magnificPopup({\n            type: 'image',\n            delegate: 'a',\n            gallery: {\n                enabled: false\n            }\n        });\n    }\n\n    function bindSelectOptions() {\n        $('form[name=\"select-options\"]').on('submit', function () {\n            getQuote();\n            return false;\n        });\n    }\n\n    function bindMoreAddonsOptionsClick() {\n        $('#more-addons, #more-options').click(function (event) {\n            setTimeout(function () {\n                $('[data-toggle=\"popover\"]').popover('update');\n            }, 350);\n        });\n        \/* reposition see all costs popover on options box changes change *\/\n        \/* added a delay to the function - the update below was happening faster than the div expanded *\/\n    }\n\n    \/* End bound event handlers  *\/\n\n    function debugOptions() {\n        var debug = false;\n        if (debug) {\n            var mutationObserver = new MutationObserver(function (mutations) {\n                mutations.forEach(function (mutation) {\n                });\n            });\n            mutationObserver.observe(document.querySelector('#customize-product'), {\n                attributes: true,\n                characterData: true,\n                childList: true,\n                subtree: true,\n                attributeOldValue: true,\n                characterDataOldValue: true\n            });\n        }\n    }\n\n    \/* start google functions *\/\n    \/* put all these itno a gogole object *\/\n    function getCatForGoogle() {\n        var cat_for_google = $('.breadcrumb li:nth-last-child(2)').text().replace(\"'\", \" foot\").replace('\"', ' inch').replace('&quot;', \" inch\");\n        if (cat_for_google == '') {\n            cat_for_google = 'Product';\n        }\n        return cat_for_google;\n    }\n\n    function getPriceForGoogle() {\n        var price_each_for_google = $('span.price-each').text().replace(\"$\", \"\");\n        price_each_for_google = price_each_for_google.replace(\",\", \"\");\n        return price_each_for_google;\n    }\n\n\n    function getQtyForGoogle() {\n        var qty_for_google = $('#input-quantity').val();\n        return qty_for_google;\n    }\n\n    \/**\n     * \n     * @returns {undefined}     \n     * *\/\n    function productViewGoogle() {\n        var itemPrice = getPriceForGoogle();\n        var itemQty = getQtyForGoogle();\n        var totalPrice = parseFloat(itemPrice * itemQty);\n        gtag(\"event\", \"view_item\", {\n            currency: \"USD\",\n            value: totalPrice,\n            items: [\n                {\n                    item_id: 'CHEERUP',\n                    item_name: 'Life Size Cheer Ups',\n                    affiliation: \"GoodGuysSigns.com website\",\n                    \/\/coupon: \"\",\n                    currency: \"USD\",\n                    \/\/discount: 2.22,\n                    index: 0,\n                    item_brand: \"GGS\",\n                    item_category: getCatForGoogle(),\n                    \/\/  item_category2: \"Adult\",\n                    \/\/   item_category3: \"Shirts\",\n                    \/\/  item_category4: \"Crew\",\n                    \/\/   item_category5: \"Short sleeve\",\n                    \/\/    item_list_id: \"related_products\",\n                    \/\/     item_list_name: \"Related Products\",\n                    \/\/    item_variant: \"green\",\n                    \/\/     location_id: \"ChIJIQBpAG2ahYAR_6128GcTUEo\",\n                    price: itemPrice,\n                    quantity: itemQty\n                }\n            ]\n        });\n\n        gtag(\"event\", \"view_item_list\", {\n            item_list_id: \"related_products\",\n            item_list_name: \"Related products\",\n            items:\n                    [\n                            ]\n            });\n        }\n\n\n        $('.product-thumb a, .product-thumb button').on('click', function (e) {\n            var listSKU = $(this).closest('.product-layout').data('model');\n            var listName = $(this).closest('.product-layout').data('name');\n            var listIndex = $(this).closest('.product-layout').data('index');\n            gtag(\"event\", \"select_item\", {\n                item_list_id: \"Related products\",\n                item_list_name: \"Related products\",\n                items: [\n                    {\n                        item_id: listSKU,\n                        item_name: listName,\n                        affiliation: \"GoodGuysSigns.com website\",\n                        currency: \"USD\",\n                        index: listIndex,\n                        item_brand: 'GGS',\n                        item_list_id: \"related_products\",\n                        item_list_name: \"Related products\"\n                    }\n                ]\n            });\n        });\n\n        \/**\n         * Push to the google gtag on add to cart\n         * @TODO:  This ciode shoudl be in the cart.add method in common.js\n         * @returns {undefined}             \n         * *\/\n        function addToCartGoogle() {\n            var itemPrice = getPriceForGoogle();\n            var itemQty = getQtyForGoogle();\n            var totalPrice = parseFloat(itemPrice * itemQty);\n            gtag(\"event\", \"add_to_cart\", {\n                currency: \"USD\",\n                value: totalPrice,\n                items: [\n                    {\n                        item_id: 'CHEERUP',\n                        item_name: 'Life Size Cheer Ups',\n                        affiliation: \"GoodGuysSigns.com website\",\n                        \/\/ coupon: \"SUMMER_FUN\",\n                        currency: \"USD\",\n                        \/\/  discount: 2.22,\n                        index: 0,\n                        item_brand: \"GGS\",\n                        item_category: getCatForGoogle(),\n                        \/\/    item_category2: \"Adult\",\n                        \/\/   item_category3: \"Shirts\",\n                        \/\/   item_category4: \"Crew\",\n                        \/\/  item_category5: \"Short sleeve\",\n                        \/\/   item_list_id: \"related_products\",\n                        \/\/  item_list_name: \"Related Products\",\n                        \/\/  item_variant: \"green\",\n                        \/\/  location_id: \"ChIJIQBpAG2ahYAR_6128GcTUEo\",\n                        price: itemPrice,\n                        quantity: getQtyForGoogle()\n                    }\n                ]\n            });\n        }\n\n        \/* end google functions *\/\n\n        \/**\n         * Check if the quote exists already and show modal as needed\n         * @returns {Boolean} \n         *\/\n        function ajaxCheckIfQuote() {\n            if ($('input[name=\"quote_id\"]').val() > 0) {\n                var nextModal = $('#addupdatequote').html();\n                $('#add-update-quote').append(nextModal);\n                $('#add-update-quote .modal').attr('id', 'add-update-quote-modals');\n                $('#add-update-quote-modals').modal('show');\n                return false;\n            }\n            return true;\n        }\n\n        \/**\n         * Get cart\n         * @param {type} callbackSuccess\n         * @param {type} callbackFailure\n         * @returns {Boolean}         \n         * *\/\n        function ajaxCartRequest(callbackSuccess, callbackFailure) {\n            $.ajax({\n                url: '\/index.php?route=checkout\/cart\/add',\n                type: 'post',\n                data: $('#product input[type=\\'number\\']:not([disabled]),\\n\\\n                            input[type=\\'text\\']:not([disabled]), \\n\\\n                           #product input[type=\\'hidden\\']:not([disabled]), \\n\\\n                           #product input[type=\\'radio\\']:checked, \\n\\\n                           #product input[type=\\'checkbox\\']:checked, \\n\\\n                            #product select:enabled  ,\\n\\\n                           #product textarea'),\n                dataType: 'json',\n                beforeSend: function () {\n                    $('#button-cart').button('loading');\n                },\n                complete: function () {\n                    $('#button-cart').button('reset');\n                },\n                success: function (json) {\n                    addToCartGoogle();\n                    $('.alert-dismissible').remove();\n                    console.log($('.alert-dismissible'));\n                    $('.form-group').removeClass('has-error');\n                      if (json['error']) {   \n                        if (json['error']['option']) {\n                            for (i in json['error']['option']) {\n                                var element = $('#input-option' + i.replace('_', '-'));\n                                if (element.parent().hasClass('input-group')) {\n                                    element.parent().after('<div class=\"text-danger\">' + json['error']['option'][i] + '<\/div>');\n                                } else {\n                                    element.after('<div class=\"text-danger\">' + json['error']['option'][i] + '<\/div>');\n                                }\n                            }\n                        }\n\n                        if (json['error']['recurring']) {\n                            $('select[name=\\'recurring_id\\']').after('<div class=\"text-danger\">' + json['error']['recurring'] + '<\/div>');\n                        }\n\n                        \/\/ Highlight any found errors\n                        $('.text-danger').parent().addClass('has-error');\n\n                        if (json['error']) {\n                            if(typeof(json['error'][0] === 'string')){\n                                  $('.breadcrumb').after('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b>' + json['error'][0] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n                            }       \n                            if (json['error']['option']) {\n                                for (i in json['error']['option']) {\n                                    $('.breadcrumb').after('<div class=\"alert alert-danger alert-dismissible btn-group w-100\"><b class=\"mr-5\">ERROR:<\/b>' + json['error']['option'][i] + '<button type=\"button\" class=\"btn btn-link close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n\n                                }\n                            }\n                        }\n                    }\n                    if (json['success']) {\n                        $('.alert-dismissible, .alert-danger').remove();\n\n                        $('.breadcrumb').after('<div class=\"alert alert-success alert-dismissible\">' + json['success'] + '<button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;<\/button><\/div>');\n                        setTimeout(function () {\n\n                            $('#cart span#cart-total').html(json['qty']);\n                        }, 100);\n\n                        $('html, body').animate({scrollTop: 0}, 'slow');\n                        $('#cart > ul').load('\/index.php?route=common\/cart\/info ul li');\n                    }\n                    if (json['quote_id']) {\n                        $('input[name=\"quote_id\"]').val(json['quote_id']);\n                        $('#design-now').prop('disabled', false);\n                    }\n                    if (json['design_id']) {\n                        $('input[name=\"design_id\"]').val(json['design_id']);\n                        $('form[name=\"select-options\"] input[data-option-name=\"Design ID\"]').val(json['design_id']);\n                    }\n                    if (callbackSuccess && typeof callbackSuccess === \"function\") {\n                        callbackSuccess(json);\n                    }\n\n                },\n                error: function (xhr, ajaxOptions, thrownError) {\n                    alert(thrownError + \"\\r\\n\" + xhr.statusText + \"\\r\\n\" + xhr.responseText);\n                }\n            });\n            return true;\n        }\n<\/script>\n\n<script type='application\/ld+json'>\n    {\n    \"@context\": \"https:\/\/www.schema.org\",\n    \"@type\": \"product\",\n    \"name\": \"Life Size Cheer Ups \",\n    \"mpn\": \"CHEERUP\",\n    \"sku\": \"CHEERUP\",\n\n    \"brand\": {\n    \"@type\": \"Thing\",\n    \"name\": \"Good Guys Signs\"\n    },\n    \"category\": \"\",\n    \"image\": \"https:\/\/www.goodguyssigns.com\/image\/cache\/catalog\/products\/life-sized%20cutouts\/life-size-cheer-up-cheap-2-690x460.webp\",\n    \"description\": \"\",\n        \"offers\": {\n    \"@type\": \"Offer\",\n    \"priceCurrency\": \"USD\",\n    \"price\": \"119.00\",\n    \"priceValidUntil\": \"2030-11-05\",\n    \"URL\":\"\",\n    \"itemCondition\": \"http:\/\/schema.org\/NewCondition\",\n    \"availability\": \"http:\/\/schema.org\/InStock\",\n    \"seller\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Good Guys Signs\"\n    }\n    }\n    }\n\n<\/script>\n\n<script type=\"text\/javascript\" defer>\n\n    \/**\n     * Swtich between print and infro\n     * on digital replacement modal\n     * @param {type} method\n     * @returns {Boolean}\n     *\/\n    var digitalReplaceModalShown = false;\n    function switchPrintMethodInfo(method) {\n        if (method === 'info') {\n            $('#infoprintmethod').addClass('d-block');\n            $('#infoprintmethod').removeClass('d-none');\n            $('#selectprintmethod').addClass('d-none');\n            $('#selectprintmethod').removeClass('d-block');\n            if (!$('#digital-faster').hasClass('show')) {\n                $('#digital-faster').modal('show');\n            }\n        } else {\n            $('#selectprintmethod').addClass('d-block');\n            $('#selectprintmethod').removeClass('d-none');\n            $('#infoprintmethod').addClass('d-none');\n            $('#infoprintmethod').removeClass('d-block');\n        }\n        return false;\n    }\n    $('#digital-faster').on('shown.bs.modal', function () {\n        if ($('input[data-name=\"Best Price\"]').prop('checked')) {\n            \/\/    alert('Best Price modal show');            \n            $('.digitalreplace[value=\"silkscreen\"]').addClass('btn-success');\n            $('.digitalreplace[value=\"silkscreen\"]').removeClass('btn-outline-success');\n        }\n    });\n    \/**\n     * set ui and form values \n     * for digital replacement\n     * @param {type} method\n     * @returns {Boolean}\n     *\/\n    function setDigitalReplaceMethod(method) {\n        \/* @TODO all these button swaps shoudl be 2 lines of code. *\/\n        \/* all radio buttons will have the same name, set all to unchecked  *\/\n        var radio_name = $('input[data-name=\"Digital\"]').attr('name');\n        $('input[name=\"' + radio_name + '\"]').prop('checked', false);\n        var drID = '';\n        $('#digitalreplace label, .digitalreplace').removeClass('btn-success');\n        $('#digitalreplace label, .digitalreplace').addClass('btn-outline-success');\n        $('.digitalreplace[value=\"' + method + '\"]').addClass('btn-success');\n        $('.digitalreplace[value=\"' + method + '\"]').removeClass('btn-outline-success');\n\n        if (method === 'silkscreen') {\n            $('input[data-name=\"Silkscreen\"]').prop('checked', true).trigger('change');\n            drID = $('input[data-name=\"Silkscreen\"]').attr('id');\n            $('label[for=\"' + drID + '\"]').addClass('btn-success ');\n            $('label[for=\"' + drID + '\"]').removeClass('btn-outline-success ');\n            var colors = getPrintColors();\n            console.log('colors', colors);\n            console.log('method', method);\n            setColorPicker(colors, method);\n        } else if (method === 'digital') {\n            $('input[data-name=\"Digital\"]').prop('checked', true).trigger('change');\n            drID = $('input[data-name=\"Digital\"]').attr('id');\n            $('label[for=\"' + drID + '\"]').addClass('btn-success ');\n            $('label[for=\"' + drID + '\"]').removeClass('btn-outline-success ');\n            var colors = getPrintColors();\n            console.log('colors', colors);\n            console.log('method', method);\n            setColorPicker(colors, method);\n        } else {\n            \/\/    alert(method);\n            $('input[data-name=\"Best Price\"]').prop('checked', true);\n            var typeName = $('#product-product input[name=\"print_type_from_quote\"]').val();\n            \/\/    drID = $('input[data-name=\"Digital\"]').attr('id');\n            \/\/      $('label[for=\"' + drID + '\"]').addClass('btn-success ');\n            \/\/    $('label[for=\"' + drID + '\"]').removeClass('btn-outline-success');    \n            var colors = getPrintColors();\n            console.log('colors', colors);\n            console.log('method', typeName);\n            setColorPicker(colors, typeName);\n        }\n        $('#digitalreplace').removeClass('d-none');\n        $('#digitalreplace').addClass('d-block');\n        $('#digital-faster').modal('hide');\n        return true;\n    }\n\n\n    \/**\n     * Convert PMS color to HTML\n     * @param {type} color\n     * @returns {jqXHR}\n     *\/\n    function getPMStoHTML(color) {\n        var url = \"\/?route=product\/pmstohtml&pmscolor=\" + color;\n        return $.ajax({\n            url: url,\n            method: 'get',\n            dataType: 'json'\n        });\n    }\n\n\n    function setColors() {\n        colors = getPrintColors();\n        $('.color-boxes label').eq(0).css('background-color', 'white');\n        $('.color-boxes label').eq(1).css('background-color', 'white');\n        var n = $('.popover input[name=\"picked-colors\"]:checked').length;\n        for (i = 0; i < colors; i++) {\n            console.log(colorsSelect);\n            $('.color-boxes label').eq(i).css('background-color', colorsSelect[i]);\n        }\n    }\n\n    \/**\n     * Gets the number of print colors\n     * @returns {Number|colors}\n     *\/\n    function getPrintColors() {\n        \/\/   console.log('getPrintColors');\n        colors = 0;\n        if ($('[data-option-name=\"Number of Print Colors\"]').length) {\n            if($('[data-option-name=\"Number of Print Colors\"]').attr('type') == 'hidden'){\n                 colors = $('[data-option-name=\"Number of Print Colors\"]').data('name').toLowerCase();\n            } else {\n                colors = $('[data-option-name=\"Number of Print Colors\"]:checked').data('name').toLowerCase();\n            }\n            colors = colors.replace(\/[^0-9]\/g, '')\n            if (colors == '') {\n                colors = 4;\n            }\n        }\n        return colors;\n    }\n\n    \/**\n     * Set the color picker variables\n     * Use 0 to hide (no colors)\n     * @param {type} colors\n     * @returns {undefined}\n     *\/\n    function setColorPicker(colors, type) {\n        \/\/  console.log(type);\n        if (!type) {\n            \/\/ $('.pms-color').eq(1).addClass('d-none');\n            \/\/ $('.pms-color').eq(1).attr('disabled', true);\n            if ($('select[data-option-name=\"Print Type\"]').length) {\n                type = $('option:selected', 'select[data-option-name=\"Print Type\"]').data('name');\n            } else {\n                if ($('input[data-option-name=\"Print Type\"]').length) {\n                    type = $('input[data-option-name=\"Print Type\"]').data('name')\n                } else {\n                    return;\n                }\n            }\n        }\n\n        if (type.toLowerCase() !== 'silkscreen') {\n            colors = 0;\n        }\n\n        switch (parseInt(colors)) {\n            case 1:\n                $('.color-boxes').removeClass('d-none');\n                $('.color-boxes label').removeClass('d-none');\n                $('.color-boxes label').eq(1).addClass('d-none');\n                $('.color-boxes input').eq(0).attr('disabled', false);\n                $('.color-boxes input').eq(1).attr('disabled', true);\n\n                $('.pms-color input').eq(0).removeClass('d-none');\n                $('.pms-color input').eq(0).attr('disabled', false);\n\n                $('.pms-color input').eq(1).addClass('d-none');\n                $('.pms-color input').eq(1).attr('disabled', true);\n\n                $('input[name=\"picked-colors\"]').attr('disabled', false);\n                $('.color-button').removeClass('d-none');\n                break;\n            case 2:\n                $('.color-boxes').removeClass('d-none');\n                $('.color-boxes label').removeClass('d-none');\n                $('.color-boxes input').attr('disabled', false);\n\n                $('.pms-color input').removeClass('d-none');\n                $('.pms-color input').attr('disabled', false);\n\n                $('.color-button').removeClass('d-none');\n                $('input[name=\"picked-colors\"]').attr('disabled', false);\n                break;\n            case 0:\n            case 3:\n            case 4:\n                $('.color-boxes').addClass('d-none');\n                $('.color-boxes label').addClass('d-none');\n                $('.color-boxes input').attr('disabled', true);\n                $('.pms-color input').addClass('d-none');\n                $('.pms-color input').attr('disabled', true);\n                $('.color-button').addClass('d-none');\n                $('input[name=\"picked-colors\"]').attr('disabled', true);\n                break;\n        }\n\n        $('#cp-btn').attr('data-original-title', 'Choose ' + colors + ' color(s) ' + btnDonecp);\n        $('#cp-btn').attr('data-content', $('#cp-content').html());\n\n    }\n\n<\/script>\n<\/div>\n<style>\n    #demo  {\n        font-size:1.1em;\n        font-weight:500;\n        display:block;\n    }\n<\/style>\n\n\n\n\n\n<p>   <\/p>\n\n\n\n<p>   <\/p>\n\n\n\n<p>   <\/p>\n\n\n\n<p>  <\/p>\n\n\n\n<p>    <\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve never thought about getting a cardboard cutout, you should understand the many amazing things it&#8217;s effective for.<\/p>\n","protected":false},"author":4,"featured_media":1741,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[529,7,1],"tags":[79,121,693,532,528,531,69,41,694,686,689,690,526,696,527,362,537,695,691,525,697,170,692,325],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/posts\/1423"}],"collection":[{"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/comments?post=1423"}],"version-history":[{"count":15,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/posts\/1423\/revisions"}],"predecessor-version":[{"id":6401,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/posts\/1423\/revisions\/6401"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/media\/1741"}],"wp:attachment":[{"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/media?parent=1423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/categories?post=1423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.goodguyssigns.com\/blog\/wp-json\/wp\/v2\/tags?post=1423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}