function openCalendar(n){window.CalendarWidget.open(n,{recipeId:window.CalendarWidget.parseRecipeId(n),onClose:function(){},onMonthChange:handleMonthChange,onDateSelected:function(){},onDone:handleDoneCallback,onConfirm:function(){window.CalendarWidget.close();window.location.href=mealPlanUrl}})}function handleMonthChange(n,t,i){var r=$.datepicker.formatDate("yy-mm-dd",n),u=$.datepicker.formatDate("yy-mm-dd",t);return window.MealPlanAPI.getMeals(r,u,function(n,t){if(!t){var r=n.content.map(function(n){return n.date});i({meals:r})}})}function handleDoneCallback(n,t){function f(i,r){if(i.statusCode!=200&&(n.confirmationMessage=i.message),!r)return t();t({action:"error",confirmationMessage:window.ErrorHandler(r.message,{mealType:n.mealType.replace("MEAL_TYPE_","").toLowerCase()}),confirmationBtnText:mealplan_js_dictionary.MP_Close,onConfirm:window.CalendarWidget.close})}var i=n.recipeId,r=n.mealType,u=n.date,e;window.WeeklyCalendarAPI?window.WeeklyCalendarAPI.copyRecipe(i,r,u,f):(e=[{date:$.datepicker.formatDate("yy-mm-dd",u),meals:[{mealType:r,recipeId:i}]},],window.MealPlanAPI.postMeal(e,f))}function bindAddMeal(){$("button[data-action='add-to-meal-plan']").on("click keypress keydown",function(n){var t=n.keyCode===32,i=n.keyCode===13;(t||i||n.type==="click")&&(n.preventDefault(),n.stopPropagation(),openCalendar(n.currentTarget))})}function getFirstDayOfTheWeek(n){var t=n;return n.getDay()==0?t=n:n.getDay()==1?t.setDate(n.getDate()-1):n.getDay()==2?t.setDate(n.getDate()-2):n.getDay()==3?t.setDate(n.getDate()-3):n.getDay()==4?t.setDate(n.getDate()-4):n.getDay()==5?t.setDate(n.getDate()-5):n.getDay()==6&&t.setDate(n.getDate()-6),t}function onCurrentWeek(n){var t=getFirstDayOfTheWeek(new Date);return t.setHours(0,0,0,0),t.getTime()<=n.getTime()&&n.getTime()<t.getTime()+WEEK_LENGTH}function filterDateWise(n){var u=[],r=new Date(WeeklyCalendar.currentSelectedDate),t=new Date(WeeklyCalendar.currentSelectedDate),f;for(t.setDate(t.getDate()+(7-t.getDay())%7),WeeklyCalendar.currentSelectedDate.getDay()==0&&(t.setDate(t.getDate()+(7-t.getDay())%7+7),t.toISOString().split("T")[0]),onCurrentWeek(r)||(r=new Date(getFirstDayOfTheWeek(r))),j=r;j<=t;j.setDate(j.getDate()+1))for(f=j.toISOString().split("T")[0],i=0;i<=n.length;i++)n[i]!=undefined&&n[i].date==f&&u.push(n[i]);return u}function getMealRecipeUrls(){var n=window.WeeklyCalendarAPI.mealsData,t=[];if(n!=undefined)for(n=filterDateWise(n),i=0;i<=n.length;i++)if(n[i]!=undefined)for(j=0;j<n[i].meals.length;j++)t.includes(n[i].meals[j].recipe.customurl)||t.push(n[i].meals[j].recipe.customurl);return t.forEach(UpdateToValidUrl),t}function UpdateToValidUrl(n,t,i){i[t]=n.replace("qacamcus.mkcsites.com","www.mccormick.com").replace("qamcus.mkcsites.com","www.mccormick.com").replace("devmcus.mkcsites.com","www.mccormick.com")}function addToList(){var n=getMealRecipeUrls();whisk.queue.push(function(){whisk.shoppingList.addRecipesToList({recipes:n})})}function viewList(){whisk.queue.push(function(){whisk.shoppingList.viewList({styles:{type:"modal"}})})}(function(){"use strict";function b(){t.length&&(n.root.removeClass("is-hidden").attr("aria-hidden",!0),f=$.jsPanel(w).minimize(),ot(n.views.calendar,y,ft),d(n,e),i(n,u()))}function u(){return Object.assign({},l)}function r(){var n,t;if(arguments||arguments.length){for(n=Object.assign({},l),t=0;t<arguments.length;t++)n=Object.assign({},n,arguments[t]),l=n;return n}}function i(n,t){var i=n.content.find("[data-step]"),r=i.filter("[data-step='"+t.step+"']").get(0);n.root.attr("data-action",t.action);n.root.attr("aria-label",t.title);n.header.find("h2").text(t.title);n.views.alert.find("p").text(t.confirmationMessage);n.buttons.alertCTA.text(t.confirmationBtnText);i.attr({"aria-hidden":!0});$(r).attr({"aria-hidden":null});n.buttons.done.attr("disabled",!t.mealType);n.buttons.done.attr("aria-disabled",!t.mealType);n.buttons.done.attr("tabindex",0);setTimeout(function(){var u=parseInt(n.root.attr("data-step"),10),i;n.root.attr("data-step",t.step);n.buttons.back.attr("aria-hidden",n.buttons.back.is(":hidden"));st(n.views.calendar,t.meals,t.date);k(n.views.calendar,t.date);n.root.attr("aria-hidden")||u===t.step||(i=window.ally.query.firstTabbable({context:r,defaultToContext:!0,strategy:"all"}),window.ally.element.focus(i),g(n.mealtypeInputs,t.date,t.mealData),v(e,f))},150)}function k(n,t){var i=new Date(t),r=n.find("a.ui-datepicker-prev"),u=n.find("a.ui-datepicker-next");r.attr({tabindex:0,title:null,role:"button","aria-disabled":!1,"aria-label":mealplan_js_dictionary.MP_Previous_Month});u.attr({tabindex:0,title:null,role:"button","aria-disabled":!1,"aria-label":mealplan_js_dictionary.MP_Next_Month});n.find(".ui-datepicker-calendar").attr("role","grid");n.find(".ui-state-disabled").attr("aria-disabled",!0);n.find(".ui-state-highlight").attr("aria-current","date");n.find(".ui-state-active").attr("aria-current",!0);n.find("thead th span").each(function(){$(this).parent().attr("abbr",$(this).attr("title"))});n.find("a.ui-state-default").attr("role","button").attr("tabindex",0).each(function(){var t=$(this),r=parseInt(t.text()),f=t.hasClass("has-meals"),u,n;isNaN(r)||(u=new Date(new Date(i).setDate(r)),n=s("MM dd, yy",u),$(this).attr("aria-label",f?n+"; with Meals":n))})}function d(n,t){n.buttons.back.on("click",it);n.buttons.close.on("click",h);n.buttons.done.on("click",rt);n.buttons.alertCTA.on("click",ut);n.views.menu.find(".btn").on("click",et);n.mealtypeInputs.on("change",function(){var t=n.mealtypeInputs.filter(":checked").first().val(),u=r({mealType:t});i(n,u)});n.views.calendar.on("keypress, keydown","[data-event='click']",function(n){var t=n.keyCode===32,i=n.keyCode===13;(t||i)&&(n.preventDefault(),n.stopPropagation(),$(n.target).trigger("click"))});n.root.on("keypress",function(n){var t=n.keyCode===27;t&&h()});$(window).on("resize orientationchange",lt(function(){v(t,f)},100))}function g(n,t,i){var u=s("yy-mm-dd",t),r;n.prop("disabled",null);n.parent().removeClass("disabled");i&&i.date===u&&(r=i.meal.mealType,n.filter("[value='"+r+"']").prop("disabled",!0).parent().addClass("disabled"))}function nt(t){var i=!t.recipe.customurl;n.views.menu.find("[data-action=view]").attr({"aria-disabled":i,disabled:i})}function tt(t,s){var l,h,a;if(e=t,delete s.step,n.content.addClass("no-animations"),l=u(),h=r(c,{step:s.mealData?-1:0,title:s.mealData?"Editing Meal":l.title,action:s.recipeId?"add":l.action,minDate:s.recipeId||s.mealData?new Date:null,date:s.mealData&&s.mealData.date?new Date(new Date(s.mealData.date).setHours(24)):new Date},s),n.root.attr("aria-hidden",null),n.root.attr("data-step",h.step),n.root.attr("data-recipeid",h.recipeId),n.root.attr("data-mealid",h.mealData?h.mealData.meal.id:null),n.views.calendar.datepicker("setDate",h.date),n.views.calendar.datepicker("option","minDate",h.minDate),n.views.calendar.datepicker("refresh"),h.displayAt){var w=p(h.displayAt)===p(h.date),b=h.displayAt.getMonth()===h.date.getMonth(),k=Math.abs(ht(h.displayAt,h.date));!w&&!b&&k>=7&&n.views.calendar.datepicker("setDate",h.displayAt)}h.mealData&&(nt(h.mealData.meal),a=h.mealData.meal.recipe.customurl,n.header.find("h2").addClass("visible"),n.views.menu.find("[data-action=view]").attr("href",a));y();n.mealtypeInputs.prop("disabled",null);n.mealtypeInputs.prop("checked",!1);i(n,h);f.normalize();v(e,f);o&&o.disengage();o=window.ally.maintain.tabFocus({context:n.wrapper.get(0)});setTimeout(function(){n.content.removeClass("no-animations");n.buttons.close.focus()},50)}function h(){var t=u();f.minimize();n.header.find("h2").removeClass("visible");$(e).trigger("focus");e=null;typeof t.onClose=="function"&&t.onClose();o&&o.disengage();i(n,r(c));n.root.attr("aria-hidden",!0)}function it(){var t=u();n.mealtypeInputs.prop("checked",null).trigger("change");i(n,r({step:t.action==="remove"?-1:t.step-1}))}function rt(){var t=u(),f=r({step:t.step+1});if(n.buttons.done.attr({disabled:!0,tabindex:-1,"aria-disabled":!0}),typeof t.onDone=="function"){t.onDone(f,a(f));return}i(n,f)}function ut(){var n=u();if(typeof n.onConfirm=="function")n.onConfirm(n,a())}function y(t,r){var e=u(),f=new Date(e.date),o,s;if(t&&r&&(f.setFullYear(t),f.setMonth(r-1),e.date=f),typeof e.onMonthChange=="function"){o=new Date(f.getFullYear(),f.getMonth(),1);s=new Date(f.getFullYear(),f.getMonth()+1,0);e.onMonthChange(o,s,a(e));return}i(n,e)}function ft(t,f){var e=u(),o=new Date(t),c=s("DD, MM dd, yy",o),l=f.settings.dayNamesMin[o.getDay()];if(n.views.mealtype.find(".calendar-widget__selected-date").attr("aria-label","Choosing meal type for "+c),n.views.mealtype.find(".calendar-widget__dayName").text(l),n.views.mealtype.find(".calendar-widget__dayNumber").text(f.selectedDay),typeof e.onDateSelected=="function")e.onDateSelected(o,s("yy-mm-dd",o));if(!e.recipeId&&!e.mealData)return h();i(n,r({date:o,step:e.step+1}))}function et(t){var u=$(t.currentTarget).attr("data-action");switch(u){case"remove":i(n,r({step:2,action:u,title:mealplan_js_dictionary.MP_Remove_recipe,confirmationMessage:mealplan_js_dictionary.MP_Are_You_sure,confirmationBtnText:mealplan_js_dictionary.MP_Remove}));break;case"copy":i(n,r({step:0,action:u,title:mealplan_js_dictionary.MP_Copy_Recipe,confirmationMessage:mealplan_js_dictionary.MP_Recipe_Copied,confirmationBtnText:mealplan_js_dictionary.MP_Close}));break;case"change":i(n,r({step:0,action:u,title:mealplan_js_dictionary.MP_Change_Date,confirmationMessage:mealplan_js_dictionary.MP_Date_Changed,confirmationBtnText:mealplan_js_dictionary.MP_Close}))}}function a(t){return function(u){i(n,r(t,u))}}function ot(n,t,i){n.datepicker("destroy");n.datepicker({firstDay:7,defaultDate:new Date,monthNamesShort:$.datepicker._defaults.monthNames,dayNamesMin:$.datepicker._defaults.dayNamesShort,onChangeMonthYear:t,onSelect:i})}function st(n,t,i){Array.isArray(t)&&t.forEach(function(t){var r=t.split("-").map(function(n){return parseInt(n)}),u=new Date(r[0],r[1]-1,r[2]),f;i.getMonth()===u.getMonth()&&(f=n.find("tbody .ui-state-default"),$.each(f,function(){parseInt(this.textContent,10)===u.getDate()&&$(this).addClass("has-meals")}))})}function p(n){var t=new Date(n),i=new Date(t.getFullYear(),0,1),r=(t-i)/864e5;return Math.ceil((r+i.getDay()+1)/7)}function ht(n,t){var i=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()),r=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate());return Math.floor((r-i)/864e5)}function v(n,t){var f,e,i;if(n&&jQuery.contains(document,$(n)[0])){var r=$(n).outerWidth(),u={left:Math.round($(n).offset().left+r/2),right:Math.round(window.innerWidth-($(n).offset().left+r))},o=Math.round(u.left)-Math.round(t.width()/2),s=0;if(u.right<t.width()/2&&r<t.width()&&(s=Math.round((u.right+15)*-1)),window.innerWidth<1024){f=$(window).innerWidth();e=(f-t.width())/2;t.reposition({minLeft:f<=375?e:e,minTop:100,offsetTop:window.scrollY,fixed:!1});return}i=t.outerHeight()+20>$(n).offset().top;t.reposition({of:n,my:i?"center-top":"center-bottom",at:i?"center-bottom":"center-top",offsetY:i?17:-17,offsetX:o>=0?s:o*-1+15});ct(n,t,!i)}}function ct(n,t,i){var r=t.find(".calendar-widget__arrow");r.toggleClass("calendar-widget__arrow--bottom",i);var f=$(n).offset().left-r.css("left",0).offset().left,e=$(n).outerWidth()/2,u=f+e-r.outerWidth()/2;u>=t.outerWidth()-r.outerWidth()&&(u-=20);r.css("left",u)}function lt(n,t,i){var r;return function(){var u=this,f=arguments,e=function(){r=null;i||n.apply(u,f)},o=i&&!r;clearTimeout(r);r=setTimeout(e,t);o&&n.apply(u,f)}}var t=$(".calendar-widget"),f=null,e=null,n={root:t,wrapper:t.find(".calendar-widget__wrapper"),header:t.find(".calendar-widget__header"),content:t.find(".calendar-widget__body"),views:{menu:t.find(".calendar-widget__menu"),calendar:t.find("#datepicker"),mealtype:t.find(".calendar-widget__mealtype"),alert:t.find(".calendar-widget__alert")},datepicker:{prev:t.find(".ui-datepicker-prev"),next:t.find(".ui-datepicker-next")},buttons:{close:t.find(".btn-close"),back:t.find(".btn-back"),done:t.find(".btn-done"),alertCTA:t.find(".btn-alert-cta")},mealtypeInputs:t.find(".calendar-widget__mealtype input[name='type']")},w={id:"calendar-widget",headerRemove:!0,contentSize:{width:t.outerWidth(),height:t.outerHeight()},content:t.remove(),resizable:!1,onminimized:function(){$(this).attr("aria-hidden",!0).hide()},onnormalized:function(){$(this).attr("aria-hidden",!1).show()}},c={step:0,title:mealplan_js_dictionary.MP_Add_To_Mealplanner,confirmationMessage:mealplan_js_dictionary.MP_Meal_Added,confirmationBtnText:mealplan_js_dictionary.MP_Goto_MealPlanner,action:"pick",minDate:null,meals:[],date:new Date,recipeId:null,mealType:null,mealData:null,onClose:null,onDateSelected:null,onDone:null,onMonthChange:null,onConfirm:null},l=c,o=null,s=$.datepicker.formatDate.bind($.datepicker);window.CalendarWidget={open:tt,close:h,update:function(t){i(n,r(t))},parseRecipeId:function(n){var t=$(n).attr("data-sid");return t?t.replace(/[{}-]/g,""):null}};b()})();window.addEventListener("DOMContentLoaded",function(){$("button[data-action='add-to-meal-plan']").on("click keypress keydown",function(n){var t=n.keyCode===32,i=n.keyCode===13;(t||i||n.type==="click")&&(n.preventDefault(),n.stopPropagation(),openCalendar(n.currentTarget))})});const WEEK_LENGTH=6048e5;$(document).ajaxStop(function(){bindAddMeal()})