(function(n){n.widget("LocalPortugal.Imc",{options:{},_create:function(){this.BindEvents()},_destroy:function(){},_setOption:function(){},BindEvents:function(){n("input.jq_numeric").numeric({decimal:!1,negative:!1});n(".LocalPortugalImcController .has-uniform").length==0&&n(".form__field--select").uniform()}})})(window.jQuery),function(n){n.widget("LocalPortugal.managedButton",{options:{validation:!1},_create:function(){this.$errorDiv=n('<div class="form__error-summary padding-small"><\/div>');this.BindEvents()},_destroy:function(){},_setOption:function(){},BindEvents:function(){var t=this;this.element.click(function(i){return n(this).hasClass("is-disabled")?(i.preventDefault(),!1):t.options.validation&&!n(this).closest("form").valid()?!0:(t._ShowSpinnerAndDisableButton(),!0)})},ShowErrorMessage:function(n){this._RemoveSpinner();this.$errorDiv.html("<p>"+n+"<\/p>");this.element.before(this.$errorDiv)},ShowSuccess:function(){this._RemoveSpinner();this.RemoveErrorMessage()},RemoveErrorMessage:function(){this.$errorDiv.remove()},_ShowSpinnerAndDisableButton:function(){this.RemoveErrorMessage();this.element.addClass("btn--waiting is-disabled")},_RemoveSpinner:function(){this.element.removeClass("btn--waiting is-disabled")}})}(window.jQuery),function(n){typeof define=="function"&&define.amd?define(["jquery"],n):n(window.jQuery)}(function(n){n.fn.numeric=function(t,i){typeof t=="boolean"&&(t={decimal:t,negative:!0,decimalPlaces:-1});t=t||{};typeof t.negative=="undefined"&&(t.negative=!0);var r=t.decimal===!1?"":t.decimal||".",u=t.altDecimal===!1?"":t.altDecimal||r,f=t.negative===!0?!0:!1,e=typeof t.decimalPlaces=="undefined"?-1:t.decimalPlaces;return i=typeof i=="function"?i:function(){},this.data("numeric.decimal",r).data("numeric.altDecimal",u).data("numeric.negative",f).data("numeric.callback",i).data("numeric.decimalPlaces",e).keypress(n.fn.numeric.keypress).keyup(n.fn.numeric.keyup).blur(n.fn.numeric.blur)};n.fn.numeric.keypress=function(t){var u=n.data(this,"numeric.decimal"),h=n.data(this,"numeric.negative"),o=n.data(this,"numeric.decimalPlaces"),s=n.data(this,"numeric.altDecimal"),i=t.charCode?t.charCode:t.keyCode?t.keyCode:0,r,f,e;if(i==13&&this.nodeName.toLowerCase()=="input")return!0;if(i==13)return!1;if((r=!1,t.ctrlKey&&i==97||t.ctrlKey&&i==65)||t.ctrlKey&&i==120||t.ctrlKey&&i==88||t.ctrlKey&&i==99||t.ctrlKey&&i==67||t.ctrlKey&&i==122||t.ctrlKey&&i==90||t.ctrlKey&&i==118||t.ctrlKey&&i==86||t.shiftKey&&i==45)return!0;if(i<48||i>57){if(f=n(this).val(),n.inArray("-",f.split(""))!==0&&h&&i==45&&(f.length===0||parseInt(n.fn.getSelectionStart(this),10)===0))return!0;u&&i==u.charCodeAt(0)&&n.inArray(u,f.split(""))!=-1&&(r=!1);i!=8&&i!=9&&i!=13&&i!=35&&i!=36&&i!=37&&i!=39&&i!=46?r=!1:typeof t.charCode!="undefined"&&(t.keyCode==t.which&&t.which!==0?(r=!0,t.which==46&&(r=!1)):t.keyCode!==0&&t.charCode===0&&t.which===0&&(r=!0));(u&&i==u.charCodeAt(0)||s&&i==s.charCodeAt(0))&&(r=n.inArray(u,f.split(""))==-1?!0:!1)}else r=!0,u&&o>0&&(e=n.inArray(u,n(this).val().split("")),e>=0&&n(this).val().length>e+o&&(r=!1));return r};n.fn.numeric.keyup=function(){var t=n(this).val(),c,l,i,u,o,h,a,f,y,e;if(t&&t.length>0){var v=n.fn.getSelectionStart(this),s=n.fn.getSelectionEnd(this),r=n.data(this,"numeric.decimal"),w=n.data(this,"numeric.negative"),p=n.data(this,"numeric.decimalPlaces"),b=n.data(this,"numeric.altDecimal");for(r!==""&&r!==null&&(e=n.inArray(r,t.split("")),e===0&&(this.value="0"+t,v++,s++),e==1&&t.charAt(0)=="-"&&(this.value="-0"+t.substring(1),v++,s++),t=this.value),c=[0,1,2,3,4,5,6,7,8,9,"-",r],l=t.length,i=l-1;i>=0;i--){for(u=t.charAt(i),i!==0&&u=="-"?t=t.substring(0,i)+t.substring(i+1):i!==0||w||u!="-"||(t=t.substring(1)),o=!1,h=0;h<c.length;h++)if(u==c[h]){o=!0;break}o||u!=b||(t=t.substring(0,i)+r+t.substring(i+1),o=!0);o&&u!=" "||(t=t.substring(0,i)+t.substring(i+1))}if(a=n.inArray(r,t.split("")),a>0)for(f=l-1;f>a;f--)y=t.charAt(f),y==r&&(t=t.substring(0,f)+t.substring(f+1));r&&p>0&&(e=n.inArray(r,t.split("")),e>=0&&(t=t.substring(0,e+p+1),s=Math.min(t.length,s)));this.value=t;n.fn.setSelection(this,[v,s])}};n.fn.numeric.blur=function(){var u=n.data(this,"numeric.decimal"),f=n.data(this,"numeric.callback"),t=n.data(this,"numeric.negative"),i=this.value,r;i!==""&&(r=new RegExp("^"+(t?"-?":"")+"\\d+$|^"+(t?"-?":"")+"\\d*"+u+"\\d+$"),r.exec(i)||f.apply(this))};n.fn.removeNumeric=function(){return this.data("numeric.decimal",null).data("numeric.altDecimal",null).data("numeric.negative",null).data("numeric.callback",null).data("numeric.decimalPlaces",null).unbind("keypress",n.fn.numeric.keypress).unbind("keyup",n.fn.numeric.keyup).unbind("blur",n.fn.numeric.blur)};n.fn.getSelectionStart=function(n){if(n.type==="number")return undefined;if(n.createTextRange&&document.selection){var t=document.selection.createRange().duplicate();return(t.moveEnd("character",n.value.length),t.text=="")?n.value.length:Math.max(0,n.value.lastIndexOf(t.text))}try{return n.selectionStart}catch(i){return 0}};n.fn.getSelectionEnd=function(n){if(n.type==="number")return undefined;if(n.createTextRange&&document.selection){var t=document.selection.createRange().duplicate();return t.moveStart("character",-n.value.length),t.text.length}return n.selectionEnd};n.fn.setSelection=function(n,t){if(typeof t=="number"&&(t=[t,t]),t&&t.constructor==Array&&t.length==2)if(n.type==="number")n.focus();else if(n.createTextRange){var i=n.createTextRange();i.collapse(!0);i.moveStart("character",t[0]);i.moveEnd("character",t[1]-t[0]);i.select()}else{n.focus();try{n.setSelectionRange&&n.setSelectionRange(t[0],t[1])}catch(r){}}}}),function(n){n.widget("Supermarkets.SupermarketsHome",{options:{genericErrorMessage:"",regionsObject:null,regionalRankingCode:"",regionalRankingText:"",selectACityText:""},_create:function(){this.BindEvents();n(window).load(function(){n("#SupermarketsHomeForm").get(0).reset();n("#SelectedRegion").change()})},_destroy:function(){},_setOption:function(){},BindEvents:function(){var t=this;n("#btnSubmit").managedButton({validation:!0});n("#SelectedRegion").change(function(){t.SelectedRegionChanged(n(this).val())})},SelectedRegionChanged:function(n){var t=this,i;(t._clearCitiesDDL(),n!==undefined&&n!=null&&n!=="")&&(i=t._findCitiesForRegion(n),t._updateCitiesDDL(i))},_clearCitiesDDL:function(){n("#SelectedCity").children().remove();n("#SelectedCity").empty();n("#SelectedCity").prev("span").text("")},_updateCitiesDDL:function(t){n("#SelectedCity").append(n("<option><\/option>").attr("value","").text(this.options.selectACityText));n.each(t,function(){n("#SelectedCity").append(n("<option><\/option>").attr("value",this.CityCode).text(this.CityName))});n("#SelectedCity").append(n("<option><\/option>").attr("value",this.options.regionalRankingCode).text(this.options.regionalRankingText));n("#SelectedCity").change()},_findCitiesForRegion:function(n){for(var i=this.options.regionsObject.Regions,t=0;t<i.length;t++)if(i[t].RegionCode==n)return i[t].Cities;return console.log("no city found for regionCode: "+n),null},HandleResult:function(t){t.action=="redirect"?window.location.href=t.nextStep:t.action=="error"?n("#btnSubmit").managedButton("ShowErrorMessage",t.errorMessage):n("#btnSubmit").managedButton("ShowErrorMessage",this.options.genericErrorMessage)},OnError:function(){n("#btnSubmit").managedButton("ShowErrorMessage",this.options.genericErrorMessage)}})}(jQuery),function(n){n.widget("Supermarkets.SupermarketsFamilyAndProducts",{options:{genericErrorMessage:""},_create:function(){this.BindEvents()},_destroy:function(){},_setOption:function(){},BindEvents:function(){var t=this;n("#btnSubmit").managedButton({validation:!0})},HandleResult:function(t){t.action=="redirect"?window.location.href=t.nextStep:t.action=="error"?n("#btnSubmit").managedButton("ShowErrorMessage",t.errorMessage):n("#btnSubmit").managedButton("ShowErrorMessage",this.options.genericErrorMessage)},OnError:function(){n("#btnSubmit").managedButton("ShowErrorMessage",this.options.genericErrorMessage)}})}(jQuery),function(n){n.widget("Supermarkets.ResultsPage",{options:{genericErrorMessage:"",pageSize:0,supermarkets:0},CurrentPage:1,_create:function(){this.BindEvents();this.ShowPage(1,this.options.pageSize)},_destroy:function(){},_setOption:function(){},BindEvents:function(){var t=this;n(".previous-page").on("click",{Widget:t,ShowPage:t.ShowPage,PageSize:t.options.pageSize,Supermarkets:t.options.supermarkets},t.ShowPreviousPage);n(".next-page").on("click",{Widget:t,ShowPage:t.ShowPage,PageSize:t.options.pageSize,Supermarkets:t.options.supermarkets},t.ShowNextPage);n(".pagination-element").on("click",{Widget:t,ShowPage:t.ShowPage,PageSize:t.options.pageSize,Supermarkets:t.options.supermarkets},t.ShowPageByNumer)},ShowPreviousPage:function(t){t.data.ShowPage(parseInt(t.data.Widget.CurrentPage)-1,t.data.PageSize);t.data.Widget.CurrentPage=parseInt(t.data.Widget.CurrentPage)-1;t.data.Widget.CurrentPage==1&&n(".previous-page-li").hide();n(".next-page-li").show();n(".pagination__item").removeClass("pagination__item--current");n(n(".pagination__item").get(parseInt(t.data.Widget.CurrentPage)-1)).addClass("pagination__item--current")},ShowNextPage:function(t){t.data.ShowPage(parseInt(t.data.Widget.CurrentPage)+1,t.data.PageSize);t.data.Widget.CurrentPage=parseInt(t.data.Widget.CurrentPage)+1;t.data.Widget.CurrentPage*t.data.PageSize>=t.data.Supermarkets&&n(".next-page-li").hide();n(".previous-page-li").show();n(".pagination__item").removeClass("pagination__item--current");n(n(".pagination__item").get(parseInt(t.data.Widget.CurrentPage)-1)).addClass("pagination__item--current")},ShowPageByNumer:function(t){var i=n(t.target).data("page");t.data.ShowPage(parseInt(i),t.data.PageSize);t.data.Widget.CurrentPage=i;i==1?n(".previous-page-li").hide():n(".previous-page-li").show();t.data.Widget.CurrentPage*t.data.PageSize>=t.data.Supermarkets?n(".next-page-li").hide():n(".next-page-li").show();n(".pagination__item").removeClass("pagination__item--current");n(t.target).parent().addClass("pagination__item--current")},ShowPage:function(t,i){var r=n(".supermarket").get();n.each(r,function(t,i){n(i).hide()});r=r.slice((t-1)*i,t*i);n.each(r,function(t,i){n(i).show()})}})}(jQuery)