Very well, we approach the beast that is meal planning for a family of five. If you are like me, you probably have looked at your fridge at least once this week (okay, maybe every day) thinking, What devils am I feeding these people now? It does not help that the groceries are not exactly cheaper, and children seem to treat snacks as if they were a competitive sport.
But don’t worry, you have this, and I have some tricks under the sleeve to help.
Why meal planning is the real MVP
The first thing is first. Meal planning is not just writing elegant lists and recipes worthy of Pinterest. It’s about saving your sanity, your money and, honestly, your time. When he plans in advance, he avoids those disasters of the last minute dinner that end up calling pizza delivery (again).
In addition, planning reduces food waste because it actually uses what you buy: no sadder and forgotten lettuce in the back of the fridge. Win-win, right?
More importantly, food planning is a secret weapon to save money, especially if you know how to buy intelligent (Hello, wholesale clubs!).
Understand your family’s needs
The first thing is the first: each family is unique, and their meal planning must reflect that. For example, perhaps one of his children mits herself when she sees the broccoli, her partner tries to cut carbohydrates, and wonders if the coffee tells how a food group (she does, trusts me).
Here we show you how to address everything:
Consider dietary preferences
Is your family composed of fucking? Dietary allergies or restrictions? Whether gluten -free waffles or meat without meat, write the preferences of all. Bonus points if you convince children to begin to like vegetables, and yes, bribery is 100% acceptable.
Schedule factor
Do you have a football practice at 6, a school recital on Friday, and that day that nobody seems to be at home at the same time? Factor all that in your plan. In this way, you will know when you need quick meals compared to when you can enjoy family dinners.
Keep it balanced
Of course, pizza nights are a lifeguard (and totally allowed), but try to include fruits, vegetables and proteins to keep things balanced. The objective is to plan meals that fill your family’s bellies. and Keep them energized.
Tips for meal planning as a professional
Buy in wholesale clubs
This is a game change. A membership at the BJ wholesale club can save you a lot because buying bulk is almost always cheaper in the long term. Things like rice, pasta, canned products and frozen vegetables are heroes of the pantry, and buying them in greater quantities means less last minute trips to the store (where we all know that it will leave $ 50 poorer because somehow The snacks happened).
Plan foods and coupons
Before starting to score ideas, see those circular and use the BJ application for additional coupons. If chicken thighs are on sale, you are having chicken, whether so.
Keep it simple
You don’t need to make five -star meals every night. Paste meals with superimposed ingredients for smarter cooking, no more difficult. For example, cook a large lot of ground meat and use it in tacos one night and spaghetti the next.
Store bulk items like a boss
Buying in bulk is fantastic, but the trick is to keep it fresh. Invest in hermetic containers or zipper bags to freeze things such as meat and large bags of snacks or basic pantry products in smaller portions. The bags and storage containers of the BJ freezer size are total lives for this.
Involve everyone
Yes, even children. Have them choose a meal or help prepare, how to mix the dough of pancakes or peel the vegetables. Not only do you get a little help, but children are much less likely to complain about the broccoli if they help do it.
Breakfast meal plan for the week
Breakfast can be chaos, but it doesn’t have to be. These recipes are quick to prepare, friendly for the family and full of nutritious goodness to start the day well.
Monday
Oats during the night
Prepare these the night before: only mix oatmeal, milk (or an alternative non -dairy), a honey drizzine and their choice of ingredients such as berries or bananas. Everyone can customize their bottle.
Tuesday
Eggs and roasted revolts
You can launch this in minutes! Add cheese, spinach or a sliced avocado side for an additional impulse of nutrients.
Wednesday
Slope bowls
Mix the frozen fruit, yogurt and a touch of milk, then cover with granola, nuts or grated coconut. It’s like eating dessert for breakfast (but healthy!).
Thursday
Breakfast burritos
Fill the tortillas with scrambled eggs, cheese, beans and leftover vegetables. Wrap them and freeze extras for later; He will save you in the morning occupied.
Friday
Panqueque Friday
Everything comes out with pancakes (use a mixture if you have little time). Cover with fresh fruit, syrup and even a pinch of powdered sugar to have fun.
Saturday
Bars and cream cheese
Place the bagels with cream cheese and all fixations: humid, cucumber or even jam for children. BAM, DIY Breakfast bar.
Sunday
Weekend brunch
Make it fun with bacon, eggs and a fruit salad. It’s the weekend, you deserve something special!
Dinner meal plan for the week
Dinner is where food planning really shines. These meals approved by the family are tasty, balanced and do not require hours of preparation time.
Throw chicken, broccoli, carrots and potatoes in a pan, season with olive oil and herbs and roast. Minimum dishes = maximum joy.
Tuesday
Night of Tacos
Configure a bar of beef or beans, tortillas, lettuce, cheese and coverage. It is customizable and bonus points if it makes it a Taco Tuesday tradition.
Wednesday
Spaghetti and meatballs
A classic. Use Frozen (the BJ brand so good!) Or homemade meatballs, Marinara Jarrada and the favorite pasta of your family. Add a side salad to sneak into some vegetables.
Thursday
Salteado Night
Save the chicken or shrimp, stir the vegetables (use frozen to save time) and end with a simple soy sauce and sauce sauce based on garlic. Serve on rice or noodles.
Friday
Homemade Pizza Night
Buy prefabricated mass and let everyone add their own ingredients. Fun and delicious.
Throw beans, ground meat, tomatoes and spices in the slow cooking pot, and it will be. Cover with cheese, sour cream and cookies.
Sunday
Roast and relax
The week ends with a roast chicken, puree of steamed potatoes and vegetables. Use the leftovers for sandwiches on Monday.
Budget and time management tips
Meal planning not only saves you stress, but you can also save money and time. Here is like:
Buy intelligent: Plan the meals around what is on sale and make a list before reaching the store. (Professional Council: Stay with the list!)
Batch cook: Duplicate recipes such as Chile or spaghetti sauce to freeze portions for later.
Reduce waste: Plan the meals that use similar ingredients. That leftover chicken on Wednesday? Use it for Thursday’s sauteed.
Prepare ahead: VEGETABLE COURT, MARINED MEAT OR PRECOUSE GRADES ON SUNDAY TO SAVE TIME DURING THE WEEK.
Tools to help
A good meal planning application can do wonders. If you are from the old school, a notebook or board works just as well. Or grab me Printable meal planner! The trick is to keep it visible and stick to it.
Very good, gangs hunters, prepare to upload your savings game because Sam’s Club is about to become her new best friend. At this time, as part of the sale of its presidents, you can obtain a membership by Justo $ 20.
Yes, that’s 60% discount The regular price of $ 50! If you have been waiting for you to finally be a signal, this is. But let’s not stop alone in the deal. I will share some intelligent ways that you can also make that membership work in extra time for you too. You are welcome.
How to maximize your membership
Now that you are in the fast track to join Sam’s Club, let’s see how you can stretch that investment of $ 20. Being a member is not just about saving money, it’s about making life easier and more intelligent.
Do you want to save money and avoid the dreaded question of “what’s for dinner”? Sam’s Club can help you stock up on all the essential elements to facilitate meal preparation. Buy in bulk meals and prepare throughout the week! Here is a combo that will cause the greatness of meal preparation:
Take your packages in beef or ground chicken to cook and freeze.
ABOX your pantry with rice, pasta or quinoa for easy sides (hello, carbohydrates).
Do not forget the Fresh Products section: You can cut, portion and bag vegetables for fast snacks or sauteed kits.
Pinterest idea: Create a Mason’s bottle salad station! Use Sam’s Mason’s bottles and take them with layers of vegetables, proteins and dressings, all of bulk portions. It is convenient, healthy and looks super cute in its refrigerator (read Instagram’s gold).
2. Give bulk purchases a creative touch
Buying in bulk does not mean wasting food or drowning in snacks. It’s about thinking about it. For example, take those boxes of bars or marola chips of mega size in Sam’s Club. Use them for:
Build affordable snack packages for school or work.
Create personalized gift bags for birthday parties or team events.
Moment of Vibes de Pinterest? Use chips bags the size of a snack to make mini piñatas or party favors for children’s birthdays!
Do you want even easier things? Sam’s Club regularly offers kits all in one for parties and events, from sandwiches trays to dessert dishes. Ah, and your frozen section? Perfect for quick comforting foods (we are talking about pizza and gofres rolls for days).
3. Holidays and parties with a budget
Organizing people can be expensive, but not if you have a Sam’s Club card. The dishes of his party are super affordable, and can obtain thematic supplies and bulk supplies such as cups, dishes and utensils for any meeting. And you do not sleep in its floral department, it is a beautiful already a price less than the specialized stores.
Idea worthy of Pinterest: Buy Mini Mason Jars by Sam’s Club, fill them with bulk sweets and put them with printable labels for personalized party favors. Ideal for weddings, Baby Showers or, Devils, on Tuesday afternoon.
4. Save on the essential elements of the home
Laundry detergent, paper towels, cleaning products, you know, the It is not fun but totally necessary stuff. Sam’s Club has those giant packages of essential elements at much better prices than most groceries. Buy them once and be ready for months. Less shopping trips = more time for things like seeing your favorite programs.
Hack Pinterest: Convert bulk cleaning supplies into a nice DIY project of home organizer! Gócalos in transparent jars or containers, tag them with slate stickers and voilà: functional fantasy and Pinterest level.
5. Exclusive offers on great savings
Another secret weapon? You will find good crazy prices in everything from electronics to mattresses. Do you need a new iPhone? A grill for outdoor meals? Verify the Sam Club first. In addition, its health and beauty section often carries brand products at better prices, and maybe even some luxury robberies (think of skin care and hair care care brands).
Final thoughts
There you have it, it is not only this offer of the presidents of the presidents of $ 20 the perfect excuse to join Sam’s Club finally, but it is also your gold ticket for a more friendly life for the budget and worthy of Pinterest. Whether you are preparing, buying vacations or simply tired of paying more essential, savings are endless.
Don’t forget, this one 60% discount The membership agreement ends February 26And once he is gone, he has gone. Register online Or go to your local Sam Club and start enjoying all the advantages. Happy bulk purchase!
PD: If you make those mason bottle salads or mini sweet bottles, tag in Pinterest; I need to see your brilliance in action.
See the places of interest in Madrid and Barcelona, with a customizable itinerary. It will fly to Madrid and outside of Barcelona, with international round trip tickets included, and hundreds of hotels to choose from, while you can choose the duration of your stay in each city, and which of the optional activities you want to add to your trip (at an additional cost). Reserve this travel agreement before July 31.
Start planning your summer empties and autumn with all our best travel offers. Buy now in tripmasters
“;outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition),navHtml);navContainer=outerWrapper.querySelector(“.tns-nav”);navItems=navContainer.children}updateNavVisibility();if(TRANSITIONDURATION){var prefix=TRANSITIONDURATION.substring(0,TRANSITIONDURATION.length-18).toLowerCase(),str=”transition: all “+speed/1000+”s”;if(prefix){str=”-“+prefix+”-“+str}addCSSRule(sheet,”(aria-controls^=”+slideId+”-item)”,str,getCssRulesLength(sheet))}setAttrs(navItems(navCurrentIndex),{“aria-label”:navStr+(navCurrentIndex+1)+navStrCurrent});removeAttrs(navItems(navCurrentIndex),”tabindex”);addClass(navItems(navCurrentIndex),navActiveClass);addEvents(navContainer,navEvents)}if(hasControls){if(!controlsContainer&&(!prevButton||!nextButton)){outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition),”
“);controlsContainer=outerWrapper.querySelector(“.tns-controls”)}if(!prevButton||!nextButton){prevButton=controlsContainer.children(0);nextButton=controlsContainer.children(1)}if(options.controlsContainer){setAttrs(controlsContainer,{“aria-label”:”Carousel Navigation”,”tabindex”:”0″})}if(options.controlsContainer||options.prevButton&&options.nextButton){setAttrs((prevButton,nextButton),{“aria-controls”:slideId,”tabindex”:”-1″})}if(options.controlsContainer||options.prevButton&&options.nextButton){setAttrs(prevButton,{“data-controls”:”prev”});setAttrs(nextButton,{“data-controls”:”next”})}prevIsButton=isButton(prevButton);nextIsButton=isButton(nextButton);updateControlsStatus();if(controlsContainer){addEvents(controlsContainer,controlsEvents)}else{addEvents(prevButton,controlsEvents);addEvents(nextButton,controlsEvents)}}disableUI()}function initEvents(){if(carousel&&TRANSITIONEND){var eve={};eve(TRANSITIONEND)=onTransitionEnd;addEvents(container,eve)}if(touch){addEvents(container,touchEvents,options.preventScrollOnTouch)}if(mouseDrag){addEvents(container,dragEvents)}if(arrowKeys){addEvents(doc,docmentKeydownEvent)}if(nested===”inner”){events.on(“outerResized”,function(){resizeTasks();events.emit(“innerLoaded”,info())})}else if(responsive||fixedWidth||autoWidth||autoHeight||!horizontal){addEvents(win,{“resize”:onResize})}if(autoHeight){if(nested===”outer”){events.on(“innerLoaded”,doAutoHeight)}else if(!disable){doAutoHeight()}}doLazyLoad();if(disable){disableSlider()}else if(freeze){freezeSlider()}events.on(“indexChanged”,additionalUpdates);if(nested===”inner”){events.emit(“innerLoaded”,info())}if(typeof onInit===”function”){onInit(info())}isOn=true}function destroy(){sheet.disabled=true;if(sheet.ownerNode){sheet.ownerNode.remove()}removeEvents(win,{“resize”:onResize});if(arrowKeys){removeEvents(doc,docmentKeydownEvent)}if(controlsContainer){removeEvents(controlsContainer,controlsEvents)}if(navContainer){removeEvents(navContainer,navEvents)}removeEvents(container,hoverEvents);removeEvents(container,visibilityEvent);if(autoplayButton){removeEvents(autoplayButton,{“click”:toggleAutoplay})}if(autoplay){clearInterval(autoplayTimer)}if(carousel&&TRANSITIONEND){var eve={};eve(TRANSITIONEND)=onTransitionEnd;removeEvents(container,eve)}if(touch){removeEvents(container,touchEvents)}if(mouseDrag){removeEvents(container,dragEvents)}var htmlList=(containerHTML,controlsContainerHTML,prevButtonHTML,nextButtonHTML,navContainerHTML,autoplayButtonHTML);tnsList.forEach(function(item,i){var el=item===”container”?outerWrapper:options(item);if(typeof el===”object”){var prevEl=el.previousElementSibling?el.previousElementSibling:false,parentEl=el.parentNode;el.outerHTML=htmlList(i);options(item)=prevEl?prevEl.nextElementSibling:parentEl.firstElementChild}});tnsList=animateIn=animateOut=animateDelay=animateNormal=horizontal=outerWrapper=innerWrapper=container=containerParent=containerHTML=slideItems=slideCount=breakpointZone=windowWidth=autoWidth=fixedWidth=edgePadding=gutter=viewport=items=slideBy=viewportMax=arrowKeys=speed=rewind=loop=autoHeight=sheet=lazyload=slidePositions=slideItemsOut=cloneCount=slideCountNew=hasRightDeadZone=rightBoundary=updateIndexBeforeTransform=transformAttr=transformPrefix=transformPostfix=getIndexMax=index=indexCached=indexMin=indexMax=resizeTimer=swipeAngle=moveDirectionExpected=running=onInit=events=newContainerClasses=slideId=disable=disabled=freezable=freeze=frozen=controlsEvents=navEvents=hoverEvents=visibilityEvent=docmentKeydownEvent=touchEvents=dragEvents=hasControls=hasNav=navAsThumbnails=hasAutoplay=hasTouch=hasMouseDrag=slideActiveClass=imgCompleteClass=imgEvents=imgsComplete=controls=controlsText=controlsContainer=controlsContainerHTML=prevButton=nextButton=prevIsButton=nextIsButton=nav=navContainer=navContainerHTML=navItems=pages=pagesCached=navClicked=navCurrentIndex=navCurrentIndexCached=navActiveClass=navStr=navStrCurrent=autoplay=autoplayTimeout=autoplayDirection=autoplayText=autoplayHoverPause=autoplayButton=autoplayButtonHTML=autoplayResetOnVisibility=autoplayHtmlStrings=autoplayTimer=animating=autoplayHoverPaused=autoplayUserPaused=autoplayVisibilityPaused=initPosition=lastPosition=translateInit=disX=disY=panStart=rafIndex=getDist=touch=mouseDrag=null;for(var a in this){if(a!==”rebuild”){this(a)=null}}isOn=false}function onResize(e){raf(function(){resizeTasks(getEvent(e))})}function resizeTasks(e){if(!isOn){return}if(nested===”outer”){events.emit(“outerResized”,info(e))}windowWidth=getWindowWidth();var bpChanged,breakpointZoneTem=breakpointZone,needContainerTransform=false;if(responsive){setBreakpointZone();bpChanged=breakpointZoneTem!==breakpointZone;if(bpChanged){events.emit(“newBreakpointStart”,info(e))}}var indChanged,itemsChanged,itemsTem=items,disableTem=disable,freezeTem=freeze,arrowKeysTem=arrowKeys,controlsTem=controls,navTem=nav,touchTem=touch,mouseDragTem=mouseDrag,autoplayTem=autoplay,autoplayHoverPauseTem=autoplayHoverPause,autoplayResetOnVisibilityTem=autoplayResetOnVisibility,indexTem=index;if(bpChanged){var fixedWidthTem=fixedWidth,autoHeightTem=autoHeight,controlsTextTem=controlsText,centerTem=center,autoplayTextTem=autoplayText;if(!CSSMQ){var gutterTem=gutter,edgePaddingTem=edgePadding}}arrowKeys=getOption(“arrowKeys”);controls=getOption(“controls”);nav=getOption(“nav”);touch=getOption(“touch”);center=getOption(“center”);mouseDrag=getOption(“mouseDrag”);autoplay=getOption(“autoplay”);autoplayHoverPause=getOption(“autoplayHoverPause”);autoplayResetOnVisibility=getOption(“autoplayResetOnVisibility”);if(bpChanged){disable=getOption(“disable”);fixedWidth=getOption(“fixedWidth”);speed=getOption(“speed”);autoHeight=getOption(“autoHeight”);controlsText=getOption(“controlsText”);autoplayText=getOption(“autoplayText”);autoplayTimeout=getOption(“autoplayTimeout”);if(!CSSMQ){edgePadding=getOption(“edgePadding”);gutter=getOption(“gutter”)}}resetVariblesWhenDisable(disable);viewport=getViewportWidth();if((!horizontal||autoWidth)&&!disable){setSlidePositions();if(!horizontal){updateContentWrapperHeight();needContainerTransform=true}}if(fixedWidth||autoWidth){rightBoundary=getRightBoundary();indexMax=getIndexMax()}if(bpChanged||fixedWidth){items=getOption(“items”);slideBy=getOption(“slideBy”);itemsChanged=items!==itemsTem;if(itemsChanged){if(!fixedWidth&&!autoWidth){indexMax=getIndexMax()}updateIndex()}}if(bpChanged){if(disable!==disableTem){if(disable){disableSlider()}else{enableSlider()}}}if(freezable&&(bpChanged||fixedWidth||autoWidth)){freeze=getFreeze();if(freeze!==freezeTem){if(freeze){doContainerTransform(getContainerTransformValue(getStartIndex(0)));freezeSlider()}else{unfreezeSlider();needContainerTransform=true}}}resetVariblesWhenDisable(disable||freeze);if(!autoplay){autoplayHoverPause=autoplayResetOnVisibility=false}if(arrowKeys!==arrowKeysTem){arrowKeys?addEvents(doc,docmentKeydownEvent):removeEvents(doc,docmentKeydownEvent)}if(controls!==controlsTem){if(controls){if(controlsContainer){showElement(controlsContainer)}else{if(prevButton){showElement(prevButton)}if(nextButton){showElement(nextButton)}}}else{if(controlsContainer){hideElement(controlsContainer)}else{if(prevButton){hideElement(prevButton)}if(nextButton){hideElement(nextButton)}}}}if(nav!==navTem){nav?showElement(navContainer):hideElement(navContainer)}if(touch!==touchTem){touch?addEvents(container,touchEvents,options.preventScrollOnTouch):removeEvents(container,touchEvents)}if(mouseDrag!==mouseDragTem){mouseDrag?addEvents(container,dragEvents):removeEvents(container,dragEvents)}if(autoplay!==autoplayTem){if(autoplay){if(autoplayButton){showElement(autoplayButton)}if(!animating&&!autoplayUserPaused){startAutoplay()}}else{if(autoplayButton){hideElement(autoplayButton)}if(animating){stopAutoplay()}}}if(autoplayHoverPause!==autoplayHoverPauseTem){autoplayHoverPause?addEvents(container,hoverEvents):removeEvents(container,hoverEvents)}if(autoplayResetOnVisibility!==autoplayResetOnVisibilityTem){autoplayResetOnVisibility?addEvents(doc,visibilityEvent):removeEvents(doc,visibilityEvent)}if(bpChanged){if(fixedWidth!==fixedWidthTem||center!==centerTem){needContainerTransform=true}if(autoHeight!==autoHeightTem){if(!autoHeight){innerWrapper.style.height=””}}if(controls&&controlsText!==controlsTextTem){prevButton.innerHTML=controlsText(0);nextButton.innerHTML=controlsText(1)}if(autoplayButton&&autoplayText!==autoplayTextTem){var i=autoplay?1:0,html=autoplayButton.innerHTML,len=html.length-autoplayTextTem(i).length;if(html.substring(len)===autoplayTextTem(i)){autoplayButton.innerHTML=html.substring(0,len)+autoplayText(i)}}}else{if(center&&(fixedWidth||autoWidth)){needContainerTransform=true}}if(itemsChanged||fixedWidth&&!autoWidth){pages=getPages();updateNavVisibility()}indChanged=index!==indexTem;if(indChanged){events.emit(“indexChanged”,info());needContainerTransform=true}else if(itemsChanged){if(!indChanged){additionalUpdates()}}else if(fixedWidth||autoWidth){doLazyLoad();updateSlideStatus();updateLiveRegion()}if(itemsChanged||!carousel){updateGallerySlidePositions()}if(!disable&&!freeze){if(bpChanged&&!CSSMQ){if(autoHeight!==autoheightTem||speed!==speedTem){update_carousel_transition_duration()}if(edgePadding!==edgePaddingTem||gutter!==gutterTem){innerWrapper.style.cssText=getInnerWrapperStyles(edgePadding,gutter,fixedWidth,speed,autoHeight)}if(horizontal){if(carousel){container.style.width=getContainerWidth(fixedWidth,gutter,items)}var str=getSlideWidthStyle(fixedWidth,gutter,items)+getSlideGutterStyle(gutter);removeCSSRule(sheet,getCssRulesLength(sheet)-1);addCSSRule(sheet,”#”+slideId+” > .tns-item”,str,getCssRulesLength(sheet))}}if(autoHeight){doAutoHeight()}if(needContainerTransform){doContainerTransformSilent();indexCached=index}}if(bpChanged){events.emit(“newBreakpointEnd”,info(e))}}function getFreeze(){if(!fixedWidth&&!autoWidth){var a=center?items-(items-1)/2:items;return slideCount<=a}var width=fixedWidth?(fixedWidth+gutter)*slideCount:slidePositions(slideCount),vp=edgePadding?viewport+edgePadding*2:viewport+gutter;if(center){vp-=fixedWidth?(viewport-fixedWidth)/2:(viewport-(slidePositions(index+1)-slidePositions(index)-gutter))/2}return width=bp){breakpointZone=bp}}}var updateIndex=function(){return loop?carousel?function(){var leftEdge=indexMin,rightEdge=indexMax;leftEdge+=slideBy;rightEdge-=slideBy;if(edgePadding){leftEdge+=1;rightEdge-=1}else if(fixedWidth){if((viewport+gutter)%(fixedWidth+gutter)){rightEdge-=1}}if(cloneCount){if(index>rightEdge){index-=slideCount}else if(indexindexMax){while(index>=indexMin+slideCount){index-=slideCount}}else if(index<indexMin){while(index<=indexMax-slideCount){index+=slideCount}}}:function(){index=Math.max(indexMin,Math.min(indexMax,index))}}();function disableUI(){if(!autoplay&&autoplayButton){hideElement(autoplayButton)}if(!nav&&navContainer){hideElement(navContainer)}if(!controls){if(controlsContainer){hideElement(controlsContainer)}else{if(prevButton){hideElement(prevButton)}if(nextButton){hideElement(nextButton)}}}}function enableUI(){if(autoplay&&autoplayButton){showElement(autoplayButton)}if(nav&&navContainer){showElement(navContainer)}if(controls){if(controlsContainer){showElement(controlsContainer)}else{if(prevButton){showElement(prevButton)}if(nextButton){showElement(nextButton)}}}}function freezeSlider(){if(frozen){return}if(edgePadding){innerWrapper.style.margin="0px"}if(cloneCount){var str="tns-transparent";for(var i=cloneCount;i–;){if(carousel){addClass(slideItems(i),str)}addClass(slideItems(slideCountNew-i-1),str)}}disableUI();frozen=true}function unfreezeSlider(){if(!frozen){return}if(edgePadding&&CSSMQ){innerWrapper.style.margin=""}if(cloneCount){var str="tns-transparent";for(var i=cloneCount;i–;){if(carousel){removeClass(slideItems(i),str)}removeClass(slideItems(slideCountNew-i-1),str)}}enableUI();frozen=false}function disableSlider(){if(disabled){return}sheet.disabled=true;container.className=container.className.replace(newContainerClasses.substring(1),"");removeAttrs(container,("style"));if(loop){for(var j=cloneCount;j–;){if(carousel){hideElement(slideItems(j))}hideElement(slideItems(slideCountNew-j-1))}}if(!horizontal||!carousel){removeAttrs(innerWrapper,("style"))}if(!carousel){for(var i=index,l=index+slideCount;i<l;i++){var item=slideItems(i);removeAttrs(item,("style"));removeClass(item,animateIn);removeClass(item,animateNormal)}}disableUI();disabled=true}function enableSlider(){if(!disabled){return}sheet.disabled=false;container.className+=newContainerClasses;doContainerTransformSilent();if(loop){for(var j=cloneCount;j–;){if(carousel){showElement(slideItems(j))}showElement(slideItems(slideCountNew-j-1))}}if(!carousel){for(var i=index,l=index+slideCount;i<l;i++){var item=slideItems(i),classN=i<index+items?animateIn:animateNormal;item.style.left=(i-index)*100/items+"%";addClass(item,classN)}}enableUI();disabled=false}function updateLiveRegion(){var str=getLiveRegionStr();if(liveregionCurrent.innerHTML!==str){liveregionCurrent.innerHTML=str}}function getLiveRegionStr(){var arr=getVisibleSlideRange(),start=arr(0)+1,end=arr(1)+1;return start===end?start+"":start+" to "+end}function getVisibleSlideRange(val){if(val==null){val=getContainerTransformValue()}var start=index,end,rangestart,rangeend;if(center||edgePadding){if(autoWidth||fixedWidth){rangestart=-(parseFloat(val)+edgePadding);rangeend=rangestart+viewport+edgePadding*2}}else{if(autoWidth){rangestart=slidePositions(index);rangeend=rangestart+viewport}}if(autoWidth){slidePositions.forEach(function(point,i){if(i<slideCountNew){if((center||edgePadding)&&point=0.5){end=i}}})}else{if(fixedWidth){var cell=fixedWidth+gutter;if(center||edgePadding){start=Math.floor(rangestart/cell);end=Math.ceil(rangeend/cell-1)}else{end=start+Math.ceil(viewport/cell)-1}}else{if(center||edgePadding){var a=items-1;if(center){start-=a/2;end=index+a/2}else{end=index+a}if(edgePadding){var b=edgePadding*items/viewport;start-=b;end+=b}start=Math.floor(start);end=Math.ceil(end)}else{end=start+items-1}}start=Math.max(start,0);end=Math.min(end,slideCountNew-1)}return(start,end)}function doLazyLoad(){if(lazyload&&!disable){getImageArray.apply(null,getVisibleSlideRange()).forEach(function(img){if(!hasClass(img,imgCompleteClass)){var eve={};eve(TRANSITIONEND)=function(e){e.stopPropagation()};addEvents(img,eve);addEvents(img,imgEvents);img.src=getAttr(img,”data-src”);var srcset=getAttr(img,”data-srcset”);if(srcset){img.srcset=srcset}addClass(img,”loading”)}})}}function onImgLoaded(e){imgLoaded(getTarget(e))}function onImgFailed(e){imgFailed(getTarget(e))}function imgLoaded(img){addClass(img,”loaded”);imgCompleted(img)}function imgFailed(img){addClass(img,”failed”);imgCompleted(img)}function imgCompleted(img){addClass(img,”tns-complete”);removeClass(img,”loading”);removeEvents(img,imgEvents)}function getImageArray(start,end){var imgs=();while(start<=end){forEach(slideItems(start).querySelectorAll("img"),function(img){imgs.push(img)});start++}return imgs}function doAutoHeight(){var imgs=getImageArray.apply(null,getVisibleSlideRange());raf(function(){imgsLoadedCheck(imgs,updateInnerWrapperHeight)})}function imgsLoadedCheck(imgs,cb){if(imgsComplete){return cb()}imgs.forEach(function(img,index){if(hasClass(img,imgCompleteClass)){imgs.splice(index,1)}});if(!imgs.length){return cb()}raf(function(){imgsLoadedCheck(imgs,cb)})}function additionalUpdates(){doLazyLoad();updateSlideStatus();updateLiveRegion();updateControlsStatus();updateNavStatus()}function update_carousel_transition_duration(){if(carousel&&autoHeight){middleWrapper.style(TRANSITIONDURATION)=speed/1000+"s"}}function getMaxSlideHeight(slideStart,slideRange){var heights=();for(var i=slideStart,l=Math.min(slideStart+slideRange,slideCountNew);i=start&&i=index&&i=0?navClicked:getCurrentNavIndex();navClicked=-1;if(navCurrentIndex!==navCurrentIndexCached){var navPrev=navItems(navCurrentIndexCached),navCurrent=navItems(navCurrentIndex);setAttrs(navPrev,{“tabindex”:”-1″,”aria-label”:navStr+(navCurrentIndexCached+1)});removeClass(navPrev,navActiveClass);setAttrs(navCurrent,{“aria-label”:navStr+(navCurrentIndex+1)+navStrCurrent});removeAttrs(navCurrent,”tabindex”);addClass(navCurrent,navActiveClass);navCurrentIndexCached=navCurrentIndex}}}function getLowerCaseNodeName(el){return el.nodeName.toLowerCase()}function isButton(el){return getLowerCaseNodeName(el)===”button”}function isAriaDisabled(el){return el.getAttribute(“aria-disabled”)===”true”}function disEnableElement(isButton,el,val){if(isButton){el.disabled=val}else{el.setAttribute(“aria-disabled”,val.toString())}}function updateControlsStatus(){if(!controls||rewind||loop){return}var prevDisabled=prevIsButton?prevButton.disabled:isAriaDisabled(prevButton),nextDisabled=nextIsButton?nextButton.disabled:isAriaDisabled(nextButton),disablePrev=index=indexMax?true:false;if(disablePrev&&!prevDisabled){disEnableElement(prevIsButton,prevButton,true)}if(!disablePrev&&prevDisabled){disEnableElement(prevIsButton,prevButton,false)}if(disableNext&&!nextDisabled){disEnableElement(nextIsButton,nextButton,true)}if(!disableNext&&nextDisabled){disEnableElement(nextIsButton,nextButton,false)}}function resetDuration(el,str){if(TRANSITIONDURATION){el.style(TRANSITIONDURATION)=str}}function getSliderWidth(){return fixedWidth?(fixedWidth+gutter)*slideCountNew:slidePositions(slideCountNew)}function getCenterGap(num){if(num==null){num=index}var gap=edgePadding?gutter:0;return autoWidth?(viewport-gap-(slidePositions(num+1)-slidePositions(num)-gutter))/2:fixedWidth?(viewport-fixedWidth)/2:(items-1)/2}function getRightBoundary(){var gap=edgePadding?gutter:0,result=viewport+gap-getSliderWidth();if(center&&!loop){result=fixedWidth?-(fixedWidth+gutter)*(slideCountNew-1)-getCenterGap():getCenterGap(slideCountNew-1)-slidePositions(slideCountNew-1)}if(result>0){result=0}return result}function getContainerTransformValue(num){if(num==null){num=index}var val;if(horizontal&&!autoWidth){if(fixedWidth){val=-(fixedWidth+gutter)*num;if(center){val+=getCenterGap()}}else{var denominator=TRANSFORM?slideCountNew:items;if(center){num-=getCenterGap()}val=-num*100/denominator}}else{val=-slidePositions(num);if(center&&autoWidth){val+=getCenterGap()}}if(hasRightDeadZone){val=Math.max(val,rightBoundary)}val+=horizontal&&!autoWidth&&!fixedWidth?”%”:”px”;return val}function doContainerTransformSilent(val){resetDuration(container,”0s”);doContainerTransform(val)}function doContainerTransform(val){if(val==null){val=getContainerTransformValue()}container.style(transformAttr)=transformPrefix+val+transformPostfix}function animateSlide(number,classOut,classIn,isOut){var l=number+items;if(!loop){l=Math.min(l,slideCountNew)}for(var i=number;i=0){stopAutoplay()}running=true;transformCore()}}function strTrans(str){return str.toLowerCase().replace(/-/g,””)}function onTransitionEnd(event){if(carousel||running){events.emit(“transitionEnd”,info(event));if(!carousel&&slideItemsOut.length>0){for(var i=0;i<slideItemsOut.length;i++){var item=slideItemsOut(i);item.style.left="";if(ANIMATIONDELAY&&TRANSITIONDELAY){item.style(ANIMATIONDELAY)="";item.style(TRANSITIONDELAY)=""}removeClass(item,animateOut);addClass(item,animateNormal)}}if(!event||!carousel&&event.target.parentNode===container||event.target===container&&strTrans(event.propertyName)===strTrans(transformAttr)){if(!updateIndexBeforeTransform){var indexTem=index;updateIndex();if(index!==indexTem){events.emit("indexChanged",info());doContainerTransformSilent()}}if(nested==="inner"){events.emit("innerLoaded",info())}running=false;indexCached=index}}}function goTo(targetIndex,e){if(freeze){return}if(targetIndex==="prev"){onControlsClick(e,-1)}else if(targetIndex==="next"){onControlsClick(e,1)}else{if(running){if(preventActionWhenRunning){return}else{onTransitionEnd()}}var absIndex=getAbsIndex(),indexGap=0;if(targetIndex==="first"){indexGap=-absIndex}else if(targetIndex==="last"){indexGap=carousel?slideCount-items-absIndex:slideCount-1-absIndex}else{if(typeof targetIndex!=="number"){targetIndex=parseInt(targetIndex)}if(!isNaN(targetIndex)){if(!e){targetIndex=Math.max(0,Math.min(slideCount-1,targetIndex))}indexGap=targetIndex-absIndex}}if(!carousel&&indexGap&&Math.abs(indexGap)0?1:-1;indexGap+=index+indexGap-slideCount>=indexMin?slideCount*factor:slideCount*2*factor*-1}index+=indexGap;if(carousel&&loop){if(indexindexMax){index-=slideCount}}if(getAbsIndex(index)!==getAbsIndex(indexCached)){render(e)}}}function onControlsClick(e,dir){if(running){if(preventActionWhenRunning){return}else{onTransitionEnd()}}var passEventObject;if(!dir){e=getEvent(e);var target=getTarget(e);while(target!==controlsContainer&&(prevButton,nextButton).indexOf(target)=0){passEventObject=true;dir=targetIn===0?-1:1}}if(rewind){if(index===indexMin&&dir===-1){goTo(“last”,e);return}else if(index===indexMax&&dir===1){goTo(“first”,e);return}}if(dir){index+=slideBy*dir;if(autoWidth){index=Math.floor(index)}render(passEventObject||e&&e.type===”keydown”?e:null)}}function onNavClick(e){if(running){if(preventActionWhenRunning){return}else{onTransitionEnd()}}e=getEvent(e);var target=getTarget(e),navIndex;while(target!==navContainer&&!hasAttr(target,”data-nav”)){target=target.parentNode}if(hasAttr(target,”data-nav”)){var navIndex=navClicked=Number(getAttr(target,”data-nav”)),targetIndexBase=fixedWidth||autoWidth?navIndex*slideCount/pages:navIndex*items,targetIndex=navAsThumbnails?navIndex:Math.min(Math.ceil(targetIndexBase),slideCount-1);goTo(targetIndex,e);if(navCurrentIndex===navIndex){if(animating){stopAutoplay()}navClicked=-1}}}function setAutoplayTimer(){autoplayTimer=setInterval(function(){onControlsClick(null,autoplayDirection)},autoplayTimeout);animating=true}function stopAutoplayTimer(){clearInterval(autoplayTimer);animating=false}function updateAutoplayButton(action,txt){setAttrs(autoplayButton,{“data-action”:action});autoplayButton.innerHTML=autoplayHtmlStrings(0)+action+autoplayHtmlStrings(1)+txt}function startAutoplay(){setAutoplayTimer();if(autoplayButton){updateAutoplayButton(“stop”,autoplayText(1))}}function stopAutoplay(){stopAutoplayTimer();if(autoplayButton){updateAutoplayButton(“start”,autoplayText(0))}}function play(){if(autoplay&&!animating){startAutoplay();autoplayUserPaused=false}}function pause(){if(animating){stopAutoplay();autoplayUserPaused=true}}function toggleAutoplay(){if(animating){stopAutoplay();autoplayUserPaused=true}else{startAutoplay();autoplayUserPaused=false}}function onVisibilityChange(){if(doc.hidden){if(animating){stopAutoplayTimer();autoplayVisibilityPaused=true}}else if(autoplayVisibilityPaused){setAutoplayTimer();autoplayVisibilityPaused=false}}function mouseoverPause(){if(animating){stopAutoplayTimer();autoplayHoverPaused=true}}function mouseoutRestart(){if(autoplayHoverPaused){setAutoplayTimer();autoplayHoverPaused=false}}function onDocumentKeydown(e){e=getEvent(e);var keyIndex=(KEYS.LEFT,KEYS.RIGHT).indexOf(e.keyCode);if(keyIndex>=0){onControlsClick(e,keyIndex===0?-1:1)}}function onControlsKeydown(e){e=getEvent(e);var keyIndex=(KEYS.LEFT,KEYS.RIGHT).indexOf(e.keyCode);if(keyIndex>=0){if(keyIndex===0){if(!prevButton.disabled){onControlsClick(e,-1)}}else if(!nextButton.disabled){onControlsClick(e,1)}}}function setFocus(el){el.focus()}function onNavKeydown(e){e=getEvent(e);var curElement=doc.activeElement;if(!hasAttr(curElement,”data-nav”)){return}var keyIndex=(KEYS.LEFT,KEYS.RIGHT,KEYS.ENTER,KEYS.SPACE).indexOf(e.keyCode),navIndex=Number(getAttr(curElement,”data-nav”));if(keyIndex>=0){if(keyIndex===0){if(navIndex>0){setFocus(navItems(navIndex-1))}}else if(keyIndex===1){if(navIndex=0}function preventDefaultBehavior(e){e.preventDefault?e.preventDefault():e.returnValue=false}function getMoveDirectionExpected(){return getTouchDirection(toDegree(lastPosition.y-initPosition.y,lastPosition.x-initPosition.x),swipeAngle)===options.axis}function onPanStart(e){if(running){if(preventActionWhenRunning){return}else{onTransitionEnd()}}if(autoplay&&animating){stopAutoplayTimer()}panStart=true;if(rafIndex){caf(rafIndex);rafIndex=null}var $=getEvent(e);events.emit(isTouchEvent(e)?”touchStart”:”dragStart”,info(e));if(!isTouchEvent(e)&&(“img”,”a”).indexOf(getLowerCaseNodeName(getTarget(e)))>=0){preventDefaultBehavior(e)}lastPosition.x=initPosition.x=$.clientX;lastPosition.y=initPosition.y=$.clientY;if(carousel){translateInit=parseFloat(container.style(transformAttr).replace(transformPrefix,””));resetDuration(container,”0s”)}}function onPanMove(e){if(panStart){var $=getEvent(e);lastPosition.x=$.clientX;lastPosition.y=$.clientY;if(carousel){if(!rafIndex){rafIndex=raf(function(){panUpdate(e)})}}else{if(moveDirectionExpected===”?”){moveDirectionExpected=getMoveDirectionExpected()}if(moveDirectionExpected){preventScroll=true}}if(preventScroll){e.preventDefault()}}}function panUpdate(e){if(!moveDirectionExpected){panStart=false;return}caf(rafIndex);if(panStart){rafIndex=raf(function(){panUpdate(e)})}if(moveDirectionExpected===”?”){moveDirectionExpected=getMoveDirectionExpected()}if(moveDirectionExpected){if(!preventScroll&&isTouchEvent(e)){preventScroll=true}try{if(e.type){events.emit(isTouchEvent(e)?”touchMove”:”dragMove”,info(e))}}catch(err){}var x=translateInit,dist=getDist(lastPosition,initPosition);if(!horizontal||fixedWidth||autoWidth){x+=dist;x+=”px”}else{var percentageX=TRANSFORM?dist*items*100/((viewport+gutter)*slideCountNew):dist*100/(viewport+gutter);x+=percentageX;x+=”%”}container.style(transformAttr)=transformPrefix+x+transformPostfix}}function onPanEnd(e){if(panStart){if(rafIndex){caf(rafIndex);rafIndex=null}if(carousel){resetDuration(container,””)}panStart=false;var $=getEvent(e);lastPosition.x=$.clientX;lastPosition.y=$.clientY;var dist=getDist(lastPosition,initPosition);if(Math.abs(dist)){if(!isTouchEvent(e)){var target=getTarget(e);addEvents(target,{“click”:function preventClick(e){preventDefaultBehavior(e);removeEvents(target,{“click”:preventClick})}})}if(carousel){rafIndex=raf(function(){if(horizontal&&!autoWidth){var indexMoved=-dist*items/(viewport+gutter);indexMoved=dist>0?Math.floor(indexMoved):Math.ceil(indexMoved);index+=indexMoved}else{var moved=-(translateInit+dist);if(moved=slidePositions(slideCountNew-1)){index=indexMax}else{var i=0;while(i=slidePositions(i)){index=i;if(moved>slidePositions(i)&&dist0?-1:1)}}}}if(options.preventScrollOnTouch===”auto”){preventScroll=false}if(swipeAngle){moveDirectionExpected=”?”}if(autoplay&&!animating){setAutoplayTimer()}}function updateContentWrapperHeight(){var wp=middleWrapper?middleWrapper:innerWrapper;wp.style.height=slidePositions(index+items)-slidePositions(index)+”px”}function getPages(){var rough=fixedWidth?(fixedWidth+gutter)*slideCount/viewport:slideCount/items;return Math.min(Math.ceil(rough),slideCount)}function updateNavVisibility(){if(!nav||navAsThumbnails){return}if(pages!==pagesCached){var min=pagesCached,max=pages,fn=showElement;if(pagesCached>pages){min=pages;max=pagesCached;fn=hideElement}while(min<max){fn(navItems(min));min++}pagesCached=pages}}function info(e){return{container:container,slideItems:slideItems,navContainer:navContainer,navItems:navItems,controlsContainer:controlsContainer,hasControls:hasControls,prevButton:prevButton,nextButton:nextButton,items:items,slideBy:slideBy,cloneCount:cloneCount,slideCount:slideCount,slideCountNew:slideCountNew,index:index,indexCached:indexCached,displayIndex:getCurrentSlide(),navCurrentIndex:navCurrentIndex,navCurrentIndexCached:navCurrentIndexCached,pages:pages,pagesCached:pagesCached,sheet:sheet,isOn:isOn,event:e||{}}}return{version:"2.9.1",getInfo:info,events:events,goTo:goTo,play:play,pause:pause,isOn:isOn,updateSliderHeight:updateInnerWrapperHeight,refresh:initSliderTransform,destroy:destroy,rebuild:function(){return tns(extend(options,optionsElements))}}};return tns}();
/* save_content */
DN.saveContent=function(element){this.contentElement=element;this.contentId=element.getAttribute("data-id");this.contentType=element.getAttribute("data-type");this.source="site-"+DN.pageData.publication_id+"-"+DN.pageData.type;if(deviceTarget){this.source+="-"+deviceTarget}var subSource=element.getAttribute("data-sub-source");if(!DN.empty(subSource)){this.source+="-"+subSource}this.saveURL=document.location.protocol+"//"+document.location.hostname+"/async/content/save/";this.removeURL=document.location.protocol+"//"+document.location.hostname+"/async/content/remove/";this.xhr=null;this.doAction=function(remove){var params="";var url=null;params+="content_id="+encodeURIComponent(this.contentId);params+="&content_type="+encodeURIComponent(this.contentType);if(remove){url=this.removeURL}else{url=this.saveURL;params+="&source="+encodeURIComponent(this.source)}this.xhr=new DN.xhr(url,this.handleResponse,params,this)};this.handleResponse=function(responseText){if(responseText!==undefined){var data=JSON.parse(responseText);if(data("success")){var title=this.contentElement.getAttribute("data-title");if(title==undefined||title.length==0){title="This Content"}if(data("removed")){title="Click To Save "+title;if(DN.hasClass(this.contentElement,"icon-saved-heart")){DN.swapClass(this.contentElement,"icon-saved-heart","icon-unsaved-heart");DN.swapClass(this.contentElement,"remove-content","save-content");this.contentElement.setAttribute("aria-label",title);this.contentElement.setAttribute("title",title)}else if(DN.hasClass(this.contentElement,"material-save-heart")){DN.swapClass(this.contentElement,"remove-content","save-content");DN.get("svg.icon use",this.contentElement).setAttribute("xlink:href","#ic-save");this.contentElement.setAttribute("aria-label",title);this.contentElement.setAttribute("title",title)}else{var parent=this.contentElement.parentNode;while(!DN.hasClass(parent,"tile")){parent=parent.parentNode;if(!parent){break}}if(parent){parent.style.opacity=0.25;element.style.visibility="hidden"}if(DN.hasClass(this.contentElement.parentNode,"saved-content")){this.contentElement.parentNode.style.display="none";var saveButton=DN.get(".save-content",this.contentElement.parentNode.parentNode);if(saveButton){saveButton.style.display="inline-block"}if(parent){parent.style.opacity=1;this.contentElement.style.visibility="visible"}}}DN.saveContentHandler.afterUnsave.fire(this.contentElement)}else{title="Click To Unsave "+title;if(DN.hasClass(this.contentElement,"icon-unsaved-heart")){DN.swapClass(this.contentElement,"icon-unsaved-heart","icon-saved-heart");DN.swapClass(this.contentElement,"save-content","remove-content");this.contentElement.setAttribute("aria-label",title);this.contentElement.setAttribute("title",title)}else if(DN.hasClass(this.contentElement,"material-save-heart")){DN.swapClass(this.contentElement,"save-content","remove-content");DN.get("svg.icon use",this.contentElement).setAttribute("xlink:href","#ic-save-checked");this.contentElement.setAttribute("aria-label",title);this.contentElement.setAttribute("title",title)}else{savedURL="https://"+document.location.hostname+"/mydealnews/saved/";this.contentElement.style.display="none";var savedDiv=DN.get(".saved-content",this.contentElement.parentNode);if(savedDiv){savedDiv.style.display="inline-block"}else{newEl=document.createElement("span");newEl.className="saved-content";newEl.innerHTML="Saved! (undo)”;this.contentElement.parentNode.insertBefore(newEl,this.contentElement);DN.event.bind(DN.get(“.remove-content”,this.contentElement.parentNode),”click”,DN.saveContentHandler.clickHandler)}}DN.saveContentHandler.afterSave.fire(this.contentElement)}var newText;var savedCountElements=DN.getAll(“.saved-count”);for(var x=0;x<savedCountElements.length;x++){savedCountElements(x).innerHTML=data("saved_count_fmt")}var savedCountLinkElements=DN.getAll(".saved-count-link");for(var x=0;x0){DN.removeClass(savedCountLinkElements(x),”saved-count-link-hidden”)}else{DN.addClass(savedCountLinkElements(x),”saved-count-link-hidden”)}}var savedCount=DN.get(“header-saved-count”);if(savedCount){var savedCountText=data(“saved_count_fmt”);if(data(“saved_count”)>9){savedCountText=”9+”}if(parseInt(data(“saved_count”),0)===0){DN.swapClass(savedCount,”heart-number-saved”,”heart-number-unsaved”);DN.swapClass(savedCount,”heart-number-saved-shift”,”heart-number-unsaved”)}else{DN.swapClass(savedCount,”heart-number-unsaved”,”heart-number-saved”);if(data(“saved_count”)>9){data(“saved_count”)=”9+”;DN.swapClass(savedCount,”heart-number-unsaved”,”heart-number-saved-shift”);DN.swapClass(savedCount,”heart-number-saved”,”heart-number-saved-shift”)}else{DN.swapClass(savedCount,”heart-number-unsaved”,”heart-number-saved”);DN.swapClass(savedCount,”heart-number-saved-shift”,”heart-number-saved”)}}savedCount.innerHTML=savedCountText}var savedTabBar=DN.get(“saved-tab-bar”);if(savedTabBar){selTab=DN.get(“.sel .txt”,savedTabBar,true);if(selTab){newText=selTab.innerHTML.substr(0,selTab.innerHTML.indexOf(“(“)+1)+data(“saved_count_fmt”)+”)”;selTab.innerHTML=newText}}}else{if(data(“not_logged_in”)){DN.loginForm.show.call(this.contentElement)}else{if(!data(“error”)||data(“error”)===””){data(“error”)=”An unknown error occured”}this.showError(data(“error”))}}}else{this.showError(“An unknown error occurred”)}};this.showError=function(error){alert(error)}};if(!DN.saveContentHandler){DN.saveContentHandler={objCache:{},afterSave:new DN.customEvent({passArgs:true}),afterUnsave:new DN.customEvent({passArgs:true}),afterChange:new DN.customEvent({passArgs:true}),addListeners:function(){var links=DN.getAll(“.save-content”);for(n=0;n<links.length;n++){if(!links(n).getAttribute("data-bound")){links(n).setAttribute("data-bound",1);DN.event.bind(links(n),"click",DN.saveContentHandler.clickHandler)}}links=DN.getAll(".remove-content");for(n=0;n<links.length;n++){if(!links(n).getAttribute("data-bound")){links(n).setAttribute("data-bound",1);DN.event.bind(links(n),"click",DN.saveContentHandler.clickHandler)}}},clickHandler:function(e){DN.preventDefault(e);var contentId=this.getAttribute("data-id");var contentType=this.getAttribute("data-type");if(contentId&&contentType){var key=contentType+contentId;var isUnsave=DN.hasClass(this,"remove-content");if(isUnsave){key+="remove"}if(!DN.saveContentHandler.objCache(key)||!DN.saveContentHandler.objCache(key).contentElement){DN.saveContentHandler.objCache(key)=new DN.saveContent(this)}var saveContentObj=DN.saveContentHandler.objCache(key);saveContentObj.doAction(isUnsave)}}}}DN.onDOMReady.bind(DN.saveContentHandler.addListeners);
/* content_overflow_menu */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props(i);descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}(function(scopeVar){var ContentOverflowMenu=function(){"use strict";function ContentOverflowMenu(){_classCallCheck(this,ContentOverflowMenu)}_createClass(ContentOverflowMenu,({key:"attachListeners",value:function attachListeners(){var menus=DN.getAll(".content-card .action-menu");for(var x=0;x<menus.length;x++){if(menus(x).getAttribute("data-overflow-menu-bound")!=="true"){DN.event.bind(menus(x),"mouseenter",this.setAttributes,this);DN.event.bind(menus(x),"focus",this.setAttributes,this);menus(x).setAttribute("data-overflow-menu-bound","true")}}}},{key:"setAttributes",value:function setAttributes(ev){var menu=DN.getRealTarget(ev);var sheet=DN.get(menu.dataset.bottomSheetId);if(sheet){DN.get(".open-link",sheet).href=menu.dataset.offerUrl;DN.get(".alert-signup",sheet).setAttribute("category",menu.dataset.category);DN.get(".alert-signup",sheet).setAttribute("brand",menu.dataset.brand);DN.get(".alert-signup",sheet).setAttribute("store",menu.dataset.store);if(menu.dataset.expired==="1"){DN.get(".report-error",sheet).classList.add("hidden");DN.get(".report-error",sheet).setAttribute("data-id","");DN.get(".report-error",sheet).setAttribute("data-type","")}else{DN.get(".report-error",sheet).classList.remove("hidden");DN.get(".report-error",sheet).setAttribute("data-id",menu.dataset.contentId);DN.get(".report-error",sheet).setAttribute("data-type",menu.dataset.contentType)}var shareSheet=DN.get(DN.get(".action-menu-share",sheet).dataset.bottomSheetId);DN.get(".share-email",shareSheet).href=menu.dataset.shareEmailUrl;DN.get(".share-facebook",shareSheet).href=menu.dataset.shareFacebookUrl;DN.get(".share-twitter",shareSheet).href=menu.dataset.shareTwitterUrl;DN.get(".share-pinterest",shareSheet).href=menu.dataset.sharePinterestUrl}}}));return ContentOverflowMenu}();scopeVar.ContentOverflowMenu=ContentOverflowMenu})(DN);DN.onDOMReady.bind(function(){if(!DN.contentOverflowMenu){DN.contentOverflowMenu=new DN.ContentOverflowMenu}DN.contentOverflowMenu.attachListeners()});
/* content_card */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;ip>a”,this.card);if(el){this.addSalesLeadAttributes(el,”snippet”)}el=DN.get(“div.summary>p>a”,this.card);if(el){this.addSalesLeadAttributes(el,”summary”)}var related=DN.getAll(“div.related-offers>ul>li>a”,this.card);for(var x=0;x<related.length;x++){related(x).dataset.saleslead="related"}var image=DN.getAll(".cover-link, .attractor, .title-link",this.card);if(image){DN.event.bind(image,"click",function(e){if(!DN.hasClass(_this.card,"expanded")){if(_this.ctaDisabled){DN.preventDefault(e)}var fakeEvent={target:_this.media,srcElement:_this.media};_this.mediaClick(fakeEvent);e.stopPropagation()}},this)}this.expandButton=DN.get(".expand",this.card);if(this.expandButton){DN.event.bind(this.expandButton,"click",this.expand,this);DN.event.bind(this.expandButton,"keydown",this.expand,this)}var expandDefaults=DN.getAll(".expand-default",this.card);if(expandDefaults){DN.event.bind(expandDefaults,"click",function(){this.expand()},this)}this.collapseButton=DN.get(".collapse",this.card);if(this.collapseButton){DN.event.bind(this.collapseButton,"click",this.collapse,this);DN.event.bind(this.collapseButton,"keydown",this.collapse,this)}var less=DN.get(".less",this.card);if(less){DN.event.bind(less,"click",this.collapse,this);DN.event.bind(less,"keydown",this.collapse,this)}var more=DN.get(".more",this.card);if(more){DN.event.bind(more,"click",this.expand,this);DN.event.bind(more,"keydown",this.expand,this)}}},{key:"mediaClick",value:function mediaClick(e){var foundAnchor=false;var target=DN.getTarget(e);while(target!=this.media){if(target.tagName=="A"){foundAnchor=true;break}target=target.parentNode}if(!foundAnchor){if(!DN.hasClass(this.card,"expanded")){this.expand(e)}}}},{key:"expand",value:function expand(e){if(e){if(e.keyCode&&!(e.keyCode==13||e.keyCode==32)){return}DN.preventDefault(e)}if(this.detailsLoaded){this.revealDetails()}else{new DN.xhr(this.expandBaseURL+this.media.getAttribute("data-id")+".html",this.loadDetails,null,this,{"Accept":"dealnews/json","Content-Accept":"dealnews/json"})}}},{key:"collapse",value:function collapse(e){if(e){if(e.keyCode&&!(e.keyCode==13||e.keyCode==32)){return}DN.preventDefault(e)}this.card.classList.remove("expanded");this.media.classList.remove("details");this.card.setAttribute("aria-expanded","false");this.setStyle(this.collapseButton,"display","none");this.setStyle(this.expandButton,"display","inline-block");if(this.cta&&this.ctaDisabled){this.cta.setAttribute("disabled","")}}},{key:"revealDetails",value:function revealDetails(){var card=this.card;var scrollIntoView=function(){var cardRegion=DN.getRegion(card);var block;if(cardRegion.topdocument.documentElement.scrollTop+document.documentElement.clientHeight){block=”end”}if(block){card.scrollIntoView({behavior:”smooth”,block:block})}};this.card.classList.add(“expanded”);this.media.classList.add(“details”);this.card.setAttribute(“aria-expanded”,”true”);this.setStyle(this.expandButton,”display”,”none”);this.setStyle(this.collapseButton,”display”,”inline-block”);if(this.cta&&this.ctaDisabled){this.cta.removeAttribute(“disabled”)}window.setTimeout(scrollIntoView,100)}},{key:”setStyle”,value:function setStyle(elem,style,value){if(elem){elem.style(style)=value}}},{key:”loadDetails”,value:function loadDetails(responseText){try{var response=JSON.parse(responseText)}catch(error){var response=null}if(response){DN.loadDNJson(this.detailsContainer,response);this.detailsLoaded=true;this.revealDetails()}}}));return ContentCard}();scopeVar.ContentCard=ContentCard})(DN);DN.onDOMReady.bind(function(){DN.createObjects(“contentCards”,”.content-card”,DN.ContentCard)});
/* get_code */
DN.getCode=function(el){this.handleClick=function(e){var href=this.el.getAttribute(“data-href”);if(!href){href=this.el.getAttribute(“href”)}var permalink=this.el.getAttribute(“data-permalink”);if(permalink&&href){DN.preventDefault(e);window.open(permalink);window.location.href=href}};this.el=el;DN.event.bind(el,”click”,this.handleClick,this)};DN.onDOMReady.bind(function(){DN.createObjects(“getCodeObjects”,”.get-code”,DN.getCode,false)});
/* views */
DN.contentViewTracker=function(){this.content={};this.viewed={};this.sent={};this.scrollTimer=null;this.sendTimer=null;this.init=function(){if(typeof publicationID==”undefined”||publicationID===null||publicationID===0){return}var contentElements=DN.getAll(“.article, .content-view”);for(var x=0;x<contentElements.length;x++){var c=contentElements(x);if(!c.getAttribute("data-id")||c.getAttribute("data-id").lengthviewTop&&c.center=200){this.makeRequest(content);content={};count=0}}if(count>0){this.makeRequest(content);this.viewed={}}};this.makeRequest=function(content){var url=document.location.protocol+”//”+document.location.hostname+”/lw/views.php”;var data={publicationID:publicationID,content:content};data=DN.addStdLogData(data);data=JSON.stringify(data);try{DN.xhr(url,null,data)}catch(e){}};this.init()};DN.onDOMReady.bind(function(){if(!DN.contentViewTrackerObject){DN.contentViewTrackerObject=new DN.contentViewTracker}else{DN.contentViewTrackerObject.init()}});
/* lightbox_pop */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(“Cannot call a class as a function”)}}function _defineProperties(target,props){for(var i=0;i0){for(var i=0;i0){for(var h=0;h<offers.length;h++){attr=offers(h).getAttribute("data-singleuseloaded");if(!attr){offers(h).setAttribute("data-singleuseloaded",1);new DN.singleUseCouponLightbox(offers(h))}}}var continue_browsing=DN.get(".continue-browsing");if(continue_browsing&&DN.hasOwnProperty("lightboxPanels")&&DN.lightboxPanels.hasOwnProperty("singleusecouponpanel")){DN.event.bind(continue_browsing,"click",function(){DN.lightboxPanels("singleusecouponpanel").hide()})}});
/* loading_bar */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props(i);descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}(function(scopeVar){var LoadingBar=function(){"use strict";function LoadingBar(elem){_classCallCheck(this,LoadingBar);this.elem=elem;this.id=elem.id;this.scrim_elem=DN.get(this.id+"_scrim")}_createClass(LoadingBar,({key:"show",value:function show(){DN.removeClass(this.elem,"loading-ellipsis-hide");if(this.scrim_elem){DN.removeClass(this.scrim_elem,"loading-ellipsis-hide")}}},{key:"hide",value:function hide(){DN.addClass(this.elem,"loading-ellipsis-hide");if(this.scrim_elem){DN.addClass(this.scrim_elem,"loading-ellipsis-hide")}}}));return LoadingBar}();DN.onDOMReady.bind(function(){scopeVar.LoadingBar=LoadingBar;DN.createObjects("loadingBars",".loading-ellipsis",LoadingBar)})})(DN);
/* wizard */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i=this.step_timeout){clearInterval(this.interval);this.interval=null;this.activateStep(this.error_step_name)}}else{if(!DN.empty(this.interval)){clearInterval(this.interval);this.interval=null}for(var i in this.steps){if(i===step_name){DN.addClass(this.steps(i),”dnwizard-step-active”);this.active_step=step_name;this.stepActivated.fire(step_name)}else{DN.removeClass(this.steps(i),”dnwizard-step-active”)}}this.hideBar()}}},{key:”cancelStep”,value:function cancelStep(deactivate_loadingbar){if(typeof deactivate_loadingbar===”undefined”){deactivate_loadingbar=true}if(!DN.empty(this.interval)){clearInterval(this.interval);this.interval=null}if(deactivate_loadingbar){this.hideBar()}}},{key:”showBar”,value:function showBar(){this.initializeObject(“loadingbar”,this.loadingbar_id,DN.loadingBars);if(this.loadingbar){this.loadingbar.show()}}},{key:”hideBar”,value:function hideBar(){this.initializeObject(“loadingbar”,this.loadingbar_id,DN.loadingBars);if(this.loadingbar){this.loadingbar.hide()}}},{key:”initializeObject”,value:function initializeObject(property_name,object_name,object_container){if(!this(property_name)){if(object_container&&typeof object_container===”object”){if(object_container.hasOwnProperty(object_name)){this(property_name)=object_container(object_name)}}}}},{key:”initialize”,value:function initialize(){this.steps={};this.steps_status={};this.default_step=null;var step_name=null;var step_status=0;var step_default=0;var steps=DN.getAll(“.dnwizard-step”,this.elem);if(steps&&steps.length>0){for(var i=0;i=o.length)return{done:true};return{done:false,value:o(i++)}},e:function(e){throw e},f:F}}throw new TypeError(“Invalid attempt to iterate non-iterable instance.nIn order to be iterable, non-array objects must have a (Symbol.iterator)() method.”)}var normalCompletion=true,didErr=false,err;return{s:function(){it=o(Symbol.iterator)()},n:function(){var step=it.next();normalCompletion=step.done;return step},e:function(e){didErr=true;err=e},f:function(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o===”string”)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n===”Object”&&o.constructor)n=o.constructor.name;if(n===”Map”||n===”Set”)return Array.from(o);if(n===”Arguments”||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2(i)=arr(i)}return arr2}(function(scopeVar){if(!scopeVar.recaptchaLoaded){window.CaptchaCallback=function(){var recaptchas=DN.getAll(".g-recaptcha-explicit");if(recaptchas){var _iterator=_createForOfIteratorHelper(recaptchas),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var el=_step.value;var id=grecaptcha.render(el,{"sitekey":el.getAttribute("data-sitekey"),"theme":el.getAttribute("data-theme"),"size":el.getAttribute("data-size"),"tabindex":el.getAttribute("data-tabindex"),"callback":el.getAttribute("data-callback"),"expired-callback":el.getAttribute("data-expired-callback"),"error-callback":el.getAttribute("data-error-callback"),"client-id":el.getAttribute("data-widget-id")});el.setAttribute("data-widget-id",id)}}catch(err){_iterator.e(err)}finally{_iterator.f()}}if(DN.MessageBus){DN.MessageBus.post("recaptchaAvailable")}};var js=document.createElement("script");js.src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit";js.async=true;js.defer=true;document.head.appendChild(js);scopeVar.recaptchaLoaded=true}})(DN);
/* async_form */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i0){for(var x=0;x<fields.length;x++){if(fields(x).type!=="submit"&&(fields(x).type!=="checkbox"||fields(x).checked)){if(post_data!==""){post_data+="&"}post_data+=fields(x).name+"="+encodeURIComponent(fields(x).value)}}}}return post_data}},{key:"responseCallback",value:function responseCallback(responseText){var response={};try{response=JSON.parse(responseText)}catch(e){response={};console.log(e)}if(response){this.submitted.fire(response,this.form)}}},{key:"initialize",value:function initialize(){if(this.form){DN.event.bind(this.form,"submit",this.submitForm,this)}}}));return AsyncForm}();scopeVar.AsyncForm=AsyncForm})(DN);
/* google_login */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props(i);descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}(function(scopeVar){if(scopeVar.GoogleLogin){return}var GoogleLogin=function(){"use strict";function GoogleLogin(){_classCallCheck(this,GoogleLogin);this.ready=false;this.onReady=new DN.customEvent;this.onSignIn=new DN.customEvent({passArgs:true,returnResult:false,returnArgs:false});this.clientId="240283651047-2k9j9dpqt61kh002lfn5f9dptm2vo4bt.apps.googleusercontent.com"}_createClass(GoogleLogin,({key:"load",value:function load(){(function(d,s,id){var js,fjs=d.getElementsByTagName(s)(0);if(d.getElementById(id)){return}js=d.createElement(s);js.id=id;js.src="https://accounts.google.com/gsi/client";js.async=true;js.defer=true;fjs.parentNode.insertBefore(js,fjs)})(document,"script","google-jssdk");var self=this;window.onGoogleLibraryLoad=function(){if(!self.ready){google.accounts.id.initialize({client_id:self.clientId,context:"signin",itp_support:true,callback:function(CredentialResponse){self.onSignIn.fire(CredentialResponse)}});self.setReady();google.accounts.id.prompt()}}}},{key:"setReady",value:function setReady(){this.ready=true;this.onReady.fire()}},{key:"attachOnReadyCallback",value:function attachOnReadyCallback(callback){if(this.ready){callback()}else{this.onReady.bind(callback)}}},{key:"renderButton",value:function renderButton(container){if(this.ready){google.accounts.id.renderButton(container,{type:"standard",shape:"rectangular",theme:"outline",text:"continue_with",size:"large",logo_alignment:"left",width:240})}else{this.onReady.bind(function(){this.renderButton(container)},this)}}}));return GoogleLogin}();scopeVar.GoogleLogin=new GoogleLogin;if(DN.MessageBus){DN.MessageBus.post("thirdPartyLoginAvailable")}})(DN);
/* facebook_login */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props(i);descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}(function(scopeVar){if(scopeVar.FacebookLogin){return}var FacebookLogin=function(){"use strict";function FacebookLogin(){_classCallCheck(this,FacebookLogin);this.FB=null;this.onReady=new DN.customEvent}_createClass(FacebookLogin,({key:"load",value:function load(){(function(d,s,id){var js,fjs=d.getElementsByTagName(s)(0);if(d.getElementById(id)){return}js=d.createElement(s);js.id=id;js.src="https://connect.facebook.net/en_US/sdk.js";fjs.parentNode.insertBefore(js,fjs)})(document,"script","facebook-jssdk")}},{key:"setFB",value:function setFB(FB){this.FB=FB;this.onReady.fire()}},{key:"loginOrPop",value:function loginOrPop(callback,context){var that=this;this.FB.getLoginStatus(function(response){if(response.status==="connected"){that.loadUser(callback,context)}else{that.FB.login(function(response){if(response.authResponse){that.loadUser(callback,context)}},{scope:"public_profile,email"})}})}},{key:"loadUser",value:function loadUser(callback,context){this.FB.api("/me?fields=email,name",function(response){if(context){callback.apply(context,(response))}else{callback.apply(null,(response))}})}},{key:"attachListener",value:function attachListener(element,callback,context){if(this.FB){DN.event.bind(element,"click",function(){this.loginOrPop(callback,context)},this)}else{this.onReady.bind(function(){this.attachListener(element,callback,context)},this)}}},{key:"attachOnReadyCallback",value:function attachOnReadyCallback(callback){if(this.FB){callback()}else{this.onReady.bind(callback)}}}));return FacebookLogin}();scopeVar.FacebookLogin=new FacebookLogin;if(DN.MessageBus){DN.MessageBus.post("thirdPartyLoginAvailable")}})(DN);window.fbAsyncInit=function(){FB.init({appId:"16976398217",xfbml:true,version:"v3.3"});FB.AppEvents.logPageView();DN.FacebookLogin.setFB(FB)};
/* login */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i0){for(var i=0;i0){for(var j=0;j0){for(var x=0;x<fields.length;x++){if(fields(x).type!=="submit"&&(fields(x).type!=="checkbox"||fields(x).checked)){if(post_data!==""){post_data+="&"}post_data+=fields(x).name+"="+encodeURIComponent(fields(x).value)}}}this.beforeSubmit.fire(post_data);if(!DN.empty(post_data)){new DN.xhr(this.endpoint,this.responseCallback,post_data,this,this.postFormResultsHeaders,"POST")}}}},{key:"responseCallback",value:function responseCallback(responseText){this.form=null;var response={};try{response=JSON.parse(responseText)}catch(e){console.log(e)}if(response&&DN.isDNJson(response)){if(DN.loadDNJson(this.container,response)){this.form=DN.get(this.form_selector,this.container);if(this.form){DN.event.bind(this.form,"submit",this.submitForm,this)}this.dnjsonLoaded.fire()}}else if(response){this.success.fire(response)}}},{key:"postAuthCallback",value:function postAuthCallback(responseText){var response={};try{response=JSON.parse(responseText)}catch(e){console.log(e)}if(response&&response.hasOwnProperty("post_auth")){if(this.form){if(this.postauth_field){var field=DN.get(this.postauth_field,this.form);field.value=response.post_auth;this.postData()}}}}}));return XHRForm}();scopeVar.XHRForm=XHRForm})(DN);
/* modal/onboard */
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i0){for(var x=0;x0){for(var y=0;y0){for(var j=0;j0){var step_index=0;if(step||this.wizard.active_step){if(step){step_index=steps.indexOf(step)}else if(this.wizard.active_step){step_index=steps.indexOf(this.wizard.active_step)}if(step_index>=0){step_index++}}if(step_index>=0&&steps(step_index)){next_step=steps(step_index)}else{next_step=false}}if(!DN.hasOwnProperty(“onboardpreferences”)||!DN.onboardpreferences){if(next_step===”entry”||next_step===”preferences”||next_step===”success”){next_step=this.getNextStep(next_step)}}else if(DN.userLoggedIn&&(next_step===”entry”||next_step===”account”)){next_step=this.getNextStep(next_step)}else if(DN.userHasPref&&(next_step===”preferences”||next_step===”success”)){if(next_step===”preferences”||!this.pref_changed){next_step=this.getNextStep(next_step)}}else if(!DN.userHasPref&&next_step===”success”){next_step=this.getNextStep(next_step)}if(next_step===”entry”||next_step===”success”){var cookie_name=this.entry_cookie_name;if(next_step===”success”){cookie_name=this.success_cookie_name}var cookie=DN.getCookie(cookie_name);if(!DN.empty(cookie)){next_step=this.getNextStep(next_step)}}return next_step}}));return Onboard}();scopeVar.Onboard=new Onboard})(DN);
/* modal/onboard-login */
DN.loginForm={show:function(e){if(DN.hasOwnProperty(“Onboard”)){if(typeof e!==”object”){if(typeof this===”object”&&this instanceof HTMLElement){e={currentTarget:this}}}DN.Onboard.toggle(e)}}};
/* widgets/newsletter */
DN.NewsletterSignup=function(baseElement){this.baseElement=DN.get(baseElement);if(baseElement.tagName==”FORM”){this.element=this.baseElement}else{this.element=DN.get(“form”,this.baseElement)}this.onSuccess=new DN.customEvent({passArgs:true});this.onFailure=new DN.customEvent;this.onSubmit=new DN.customEvent;this.shown=false;this.scrollTimer=null;this.source=””;this.source_type=””;this.lastResponse={};this.campaignCheckbox=false;this.closeEl=false;this.closeCookieName=false;this.baseURL=document.location.protocol+”//”+document.location.hostname+”/async/newsletter/signup/”;this.data={};this.submitForm=function(responseText){if(responseText){var data=JSON.parse(responseText);if(data(“post_auth”)){var queryData=””;for(var i in this.data){if(queryData.length>0){queryData+=”&”}queryData+=i+”=”;if(i==”campaign”){queryData+=this.data(i).join(“,”)}else{queryData+=encodeURIComponent(this.data(i))}}queryData+=”&post_auth=”+encodeURIComponent(data(“post_auth”));var buttons=DN.getAll(“.button, input(type=submit)”,this.element);if(buttons){for(var x=0;x<buttons.length;x++){buttons(x).setAttribute("disabled","1")}}this.logNavEvent("submitted");var xhr=new DN.xhr(this.baseURL,this.handleResponse,queryData,this);return}}alert("An unknown error has occured.")};this.validate=function(e){if(e){DN.preventDefault(e)}this.data={};this.getData();if(!this.data.hasOwnProperty("uid")&&!this.data.hasOwnProperty("email")){alert("An unknown error has occured. Please reload the page and try again.");return}else if(!this.data.hasOwnProperty("uid")&&DN.empty(this.data.email)){alert("You must provide a valid email address in order to subscribe.");return}if((!this.data.hasOwnProperty("campaign")||this.data.campaign.length<1)&&this.campaignCheckbox===true){alert("Please choose at least one newsletter campaign, before clicking "Subscribe".");return}if(!this.data.hasOwnProperty("source")&&!this.data.hasOwnProperty("source_page")){alert("An unknown error has occured. Please reload the page and try again.");return}this.onSubmit.fire();this.pA.fetch()};this.getData=function(){if(JSON.stringify(this.data)=="{}"){var emailField=DN.get(".nl-email",this.element);var uidField=DN.get(".nl-user_id",this.element);var zipField=DN.get(".nl-zipcode",this.element);var pubField=DN.get(".nl-pub",this.element);if(emailField){this.data("email")=emailField.value}if(uidField&&!DN.empty(uidField.value)){this.data("uid")=uidField.value}if(zipField&&!DN.empty(zipField.value)){this.data("zip")=zipField.value}if(pubField&&!DN.empty(pubField.value)){this.data("pub")=pubField.value}else if(publicationID){this.data("pub")=publicationID}this.getSource();if(this.source_type=="form"){this.data("source")=this.source}else if(this.source_type=="page"){this.data("source_page")=this.source}this.data("campaign")=this.getCampaigns()}};this.handleResponse=function(responseText){if(responseText){var data=JSON.parse(responseText);this.lastResponse=data;if(data("success")){frmBlock=DN.get(".frm",this.baseElement);if(data("sent_confirm")){successBlock=DN.get(".success-confirm-sent",this.baseElement)}else{successBlock=DN.get(".success-confirmed",this.baseElement)}if(frmBlock&&successBlock){if(successBlock.innerHTML===""){successBlock.innerHTML=data("message_html")}emailSpan=DN.get(".email",successBlock);if(emailSpan){emailSpan.innerHTML=data("email")}frmBlock.style.display="none";successBlock.style.display="block";this.logNavEvent("subscribed");if(this.closeEl){this.setCloseCookie();var self=this;this.scrollTimer=setTimeout(function(){self.dismiss.call(self)},5000)}}this.onSuccess.fire(data)}else{errorBlock=DN.get(".nl-error",this.element);if(errorBlock){errorBlock.innerHTML=data("errors")(0)}else{alert(data("errors")(0))}var buttons=DN.getAll(".button, input(type=submit)",this.element);if(buttons){for(var x=0;xdocument.body.scrollTop){viewTop=document.documentElement.scrollTop}else{viewTop=document.body.scrollTop}if(document.documentElement&&document.documentElement.clientHeight>document.body.clientHeight){viewBottom=viewTop+document.body.clientHeight}else{viewBottom=viewTop+document.documentElement.clientHeight}var center=region.top+region.height/2;if(center>viewTop&¢er<viewBottom){this.isShown()}}};this.isShown=function(){if(!this.shown){this.shown=true;this.logNavEvent("shown");DN.event.unbind(window,"optimizedScroll",this.checkOnScreen)}};this.handleScroll=function(){if(this.scrollTimer){clearTimeout(this.scrollTimer)}var self=this;this.scrollTimer=setTimeout(function(){self.checkOnScreen.call(self)},500)};this.getSource=function(){var sourceValue=null;if(this.source===""||this.source_type===""){var sourcePageField=DN.get(".nl-source-page",this.element);var sourceField=DN.get(".nl-source",this.element);if(sourceField){sourceValue=encodeURIComponent(sourceField.value);this.source=sourceValue;this.source_type="form"}else if(sourcePageField){sourceValue=encodeURIComponent(sourcePageField.value);this.source=sourceValue;this.source_type="page"}}else{sourceValue=this.source}return sourceValue};this.getCampaigns=function(){var campaignFields=DN.getAll(".nl-campaign",this.element);var camps=();if(campaignFields){for(x=0;x0){for(var i=0;i<buttons.length;i++){if(buttons(i).getAttribute("data-manage-newsletters")!=="1"){DN.event.bind(buttons(i),"click",DN.manage_newsletters.action);buttons(i).setAttribute("data-manage-newsletters","1")}}}}};DN.onDOMReady.bind(DN.manage_newsletters.init);
/* back_to_top */
DN.backToTop=function(){this.el=DN.get(".back-to-top-outer");if(this.el){DN.event.bind(this.el,"click",function(e){DN.preventDefault(e);DN.scrollTo(document.body)},this)}};DN.onDOMReady.bind(function(){DN.backToTopButton=new DN.backToTop});