var fancyCheckBox=fancyCheckBox||{init:function(n){var t=this;$("input[type=checkbox].fancy-checkbox").each(function(){var i=$(this),f=i.attr("id"),n=$(t.template),r=n.find("input"),u;r.attr("id",f);r.attr("checked",i.attr("checked"));r.attr("disabled",i.attr("disabled"));n.find("label").attr("for",f);i.replaceWith(n);u=function(t){t.is(":checked")?(n.find("span.ticked").show(),n.find("span.unticked").hide()):(n.find("span.ticked").hide(),n.find("span.unticked").show())};u(n.find("input"));r.click(function(){u($(this))})});typeof n=="function"&&n()},template:'<label class="fancy-checkbox">\t<input type="checkbox" style="display:none;"> \t<span class="tick-container">\t\t<span class="ticked fa fa-check-square"><\/span>\t\t<span class="unticked fa fa-square"><\/span>\t<\/span><\/label>'},orderCheckout=orderCheckout||{init:function(n){var t=this;t.userLoginUrl=n.userLoginUrl;t.userLogoutUrl=n.userLogoutUrl;t.VerificationToken=n.VerificationToken},authenticateUser:function(n,t,i,r,u){var f=this,e={__RequestVerificationToken:f.VerificationToken,Email:n,Password:t};newShoppingCart.genericSubmit(f.userLoginUrl,e,i,r,u)},logoutUser:function(n,t,i){var r=this;newShoppingCart.genericSubmit(r.userLogoutUrl,{__RequestVerificationToken:r.VerificationToken},n,t,i)},handleMiniSummaryScrolling:function(n,t){var i=$("#"+n),r=$(i.siblings()[0]);$(window).scroll(function(){var n=$("#"+t);i.css("height",r.css("height"));var u=$(window).scrollTop(),f=i.offset().top+parseInt(i.css("height"))-20,e=n.offset().top+parseInt(n.css("height"));e>=f&&n.css("position")!="absolute"?n.css({position:"absolute",bottom:0}):u+100<n.offset().top&&n.css("position")=="absolute"&&n.css({position:"fixed",bottom:"auto"})})}},formValidations=formValidations||{init:function(n){var t=this,f=function(n){var t=n.data("same-as-billing-id"),i=$("#"+t);return i.is(":checked")},r=function(n,t){return{method:function(t,i){return f(i)?!0:n.method(t,i)},message:t||n.message}},u,i;for(t.clientValidators={optional:{method:function(){return!0},message:""},notnull:{method:function(n){return typeof n=="undefined"||n==null?!1:n==""||n.trim().length==0?!1:!0},message:"Field can't be empty"},email:{method:function(n,i){return t.clientValidators.notnull.method(n,i)?/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,7})+$/.test(n):!1},message:"Invalid email address!"},phone:{method:function(n,i){return t.clientValidators.notnull.method(n,i)},message:"Invalid phone number!"},postcode:{method:function(n,i){return t.clientValidators.notnull.method(n,i)},message:"Invalid postcode value!"},street:{method:function(n,i){return t.clientValidators.notnull.method(n,i)?n.length>50?!1:!0:!1},message:"Invalid street value!"},emailconfirm:{method:function(n,i){if(!t.clientValidators.email.method(n,i))return!1;var r=i.data("target-id"),u=$("#"+r);return u.val()==n},message:"Invalid email address!"}},t.clientValidators.physical_address_notnull=r(t.clientValidators.notnull),t.clientValidators.physical_address_street=r(t.clientValidators.street),t.clientValidators.physical_address_suburb=r(t.clientValidators.street,"Invalid suburb value!"),t.clientValidators.physical_address_postcode=r(t.clientValidators.postcode),t.clientValidators.physical_address_state=r(t.clientValidators.street,"Invalid state value!"),t.clientValidators.physical_address_country=r(t.clientValidators.street,"Invalid country value!"),t.updateStepUrl=n.updateStepUrl,t.steps=n.steps,t.miniCartSummaryDivId=n.miniCartSummaryDivId,t.eWayDirectPaymentUrl=n.eWayDirectPaymentUrl,t.miniCartSummaryDivId&&(u=$("#"+t.miniCartSummaryDivId),t.refreshCartSummary=function(){var n=u.find("span.toggle-icon").hasClass("collapsed"),t=u.data("refreshUrl")+"/"+n,i=u.data("targetId");console.log("refreshCartSummary");$.get(t,function(n){var t=$(n);$("#"+i).replaceWith(t)})}),i=0;i<t.steps.length;i++)t.steps[i].prevStep=i>0?t.steps[i-1]:null,t.verifyWholeStep(t.steps[i],!1,null,!1),t.registerChangeEvent(t.steps[i])},collectAndSubmitStep:function(n,t,i){var u=this,f={StepId:n.index,StepName:n.cssName,Fields:[]},e,r;for(e in n.fieldIds)r=n.fieldIds[e],f.Fields.push({FieldId:r,Value:u.getInputValue(r)});newShoppingCart.genericSubmit(u.updateStepUrl,f,function(){},t,i)},showButtonModal:function(n,t){var i=n.data("getModalUrl"),r=n.data("hostingDivId"),u=n.data("targetModalId");$.get(i,function(n){var f=$(n),i;if($("#"+r).replaceWith(f),i=f.find("#"+u),typeof t=="function")i.on("hidden.bs.modal",function(){t()});i.modal({show:!0,keyboard:!1,backdrop:"static"})})},verifyWholeStep:function(n,t,i,r){var u=this;if(typeof r=="undefined"&&(r=!0),n.isValid=u.isAvalidStep(n),n.prevStep!=null&&(n.isValid=n.isValid&&n.prevStep.isValid),n.isValid){var f=function(t){u.steps.length>n.index&&u.disableStep(u.steps[n.index],!1);$("."+n.cssName).addClass("completed-step");typeof i=="function"&&i();r&&t&&t.NeedRefreshSummary&&typeof u.refreshCartSummary=="function"&&n.index==u.steps.length&&u.refreshCartSummary();n.index<u.steps.length&&u.verifyWholeStep(u.steps[n.index],!0,null,r)},e=function(n){var i,t;u.showErrorMessages(n);i=n.ErrorMessage&&n.ErrorMessage.length>0||n.FieldsResults.length>0;i&&typeof n.StepId!="undefined"&&(t=n.StepId,u.steps.length>t&&u.disableStep(u.steps[t],!0))},o=u.getStepErrorPanel(n.cssName);o.hide();t?u.collectAndSubmitStep(n,f,e):f()}else u.steps.length>n.index&&u.disableStep(u.steps[n.index],!0)},getInput:function(n){var t=$("#"+n);return t.length!=0?t:(t=$("input[name="+n+"]"),t.length!=0)?t:$("button[name="+n+"]")},getInputValue:function(n){var t=this.getInput(n);return t.length>0?t.attr("type")=="radio"?t.filter(":checked").val():t.attr("type")=="checkbox"?t.is(":checked"):t.attr("type")=="button"?undefined:t.val():undefined},registerChangeEvent:function(n){var t=this,u,r;$("."+n.cssName).on("mousedown",function(){$(this).hasClass("completed-step")||t.showFirstError()});for(u in n.fieldIds){var e=n.fieldIds[u],i=t.getInput(e),f=i.data("validator");if(f&&t.clientValidators[f]){r=function(){var i=$(this).attr("id")||$(this).attr("name");t.validateOneField(i,!0);t.verifyWholeStep(n,!0)};i.on("change",r);if(i.hasClass("fancy-checkbox"))i.on("click",r)}}},isAvalidStep:function(n){var t=this;for(var r in n.fieldIds){var i=n.fieldIds[r],u=t.getInput(i),f=u.data("validator");if(f&&!t.validateOneField(i,!1))return!1}return!0},showFieldError:function(n,t){var u=this,r=u.getInput(n),i=$("span.validation-error#"+n+"-error");r.addClass("input-validation-error");r.removeClass("input-validation-success");i.length==0&&(i=$('<span class="validation-error"><\/span>'),i.attr("id",n+"-error"),i.insertAfter(r));i.text(t);i.show()},verifyNoErrors:function(){return $(".input-validation-error").length==0&&$(".step-error-message").filter(":visible").length==0?!0:(this.showFirstError(),!1)},showFirstError:function(){var n=$(".input-validation-error"),t=$(n[0]);if(n.length>0?t=$(n[0]):(n=$(".step-error-message").filter(":visible"),n.length>0&&(t=$(n[0]))),t&&t.offset()){$("html, body").animate({scrollTop:t.offset().top-60},"slow");return}},showErrorMessages:function(n){var r=this,i,t;if(n&&!n.Success){if(n.FieldsResults.length>0){for(i=0;i<n.FieldsResults.length;i++)n.FieldsResults[i].Success||r.showFieldError(n.FieldsResults[i].FieldId,n.FieldsResults[i].ErrorMessage);n.ErrorMessage||n.ErrorMessage==""||(t=$(".input-validation-error")[0],t&&t.offset()&&$("html, body").animate({scrollTop:t.offset().top-60},"slow"))}n.FieldsResults.length==0&&(t=r.getStepErrorPanel(n.StepName),t.text(n.ErrorMessage),t.show(),t&&t.offset()&&$("html, body").animate({scrollTop:t.offset().top-60},"slow"))}},getStepErrorPanel:function(n){return $("div.checkout-step-body").filter("."+n).find(".step-error-message")},validateOneField:function(n,t){var u=this,i=u.getInput(n),r=$("span.validation-error#"+n+"-error"),f,e,o;if(t&&(i.removeClass("input-validation-error"),i.removeClass("input-validation-success"),r.hide()),f=i.data("validator"),f&&u.clientValidators[f]){if(e=u.clientValidators[f],o=e.method(u.getInputValue(n),i),!o)return t&&(i.addClass("input-validation-error"),r.length==0&&(r=$('<span class="validation-error"><\/span>'),r.attr("id",n+"-error"),r.insertAfter(i)),r.text(e.message),r.show()),!1;o&&i.addClass("input-validation-success")}return!0},validateFields:function(n,t){var i=!0,r,u;for(r in n)u=n[r],this.validateOneField(u,t)||(i=!1);return i},disableFields:function(n,t){var i,r,u;for(i in n)r=n[i],u=this.getInput(r),u.attr("disabled",t)},disableStep:function(n,t){var i=this;i.disableFields(n.fieldIds,t);$("."+n.cssName).removeClass("completed-step");t&&n.index<i.steps.length&&i.disableStep(i.steps[n.index],t)},validateStep:function(n,t){var i=this;i.validateFields(n.fieldIds,t)},submitStep:function(){var n=this}},toggleSwitchButton=toggleSwitchButton||{init:function(n){var t=this;$("input.toggle-switch").each(function(){var n=$(this),u=n.attr("id"),r=$(t.template),i=r.find("input");i.attr("id",u);i.attr("checked",n.attr("checked"));i.attr("disabled",n.attr("disabled"));i.data("toggle",n.data("toggle"));i.data("target",n.data("target"));r.find("label").attr("for",u);n.replaceWith(r)});typeof n=="function"&&n()},template:'<div class="toggle-switch-container" >\t<input type="checkbox" class="switch-button-checkbox" style="display:none;"> \t<label class="switch-button-label">\t\t<span class="switch-button-inner"><\/span>\t\t<span class="switch-button-switch"><\/span>\t<\/label><\/div>'},productPageEssentials=productPageEssentials||{getActiveOption:function(){return $("div.card-option.active")[0]},getBoolData:function(n,t){return n.data(t).toLowerCase()=="true"},getIntData:function(n,t){return parseInt(n.data(t)||"0")},resetEntry:function(){$("#modalCardQuantity").val(1);$("#modalCardValue").val(100)},getDataModel:function(){var n=this;return{Quantity:$("#modalCardQuantity").val(),Value:$("#modalCardValue").val(),Type:n.getIntData($(n.getActiveOption()),"giftCardType")}},makeModalReady:function(n){var t=n.isDigitalCard?"modalDigitalCard":"modalPhysicalCard",i=$("#"+t+"-template").text();$("#modals-target-container").empty();$(i).appendTo("#modals-target-container")},showModalForCards:function(n,t){var r=this,f,o;r.makeModalReady(t);var u=t.isDigitalCard?"modalDigitalCard":"modalPhysicalCard",i=$("#"+u),e=function(){toggleSwitchButton.init(function(){i.find("#add-personal-message-checkbox").on("click",function(){$(this).is(":checked")?i.find("#personal-message-div").show(350).addClass("in"):i.find("#personal-message-div").hide(350).removeClass("in")})})},s={modalDigitalCard:function(){e();var t=function(n,t){i.find(".card-theme-preview > div").hide();i.find(".card-theme-preview > div > img").hide();i.find(".card-theme-preview > div#card-preview-type-"+n).show();i.find(".card-theme-preview > div > img").filter(".product-id-"+t).show()};toggleSwitchButton.init(function(){i.find("#add-greeting-card").on("click",function(){$(this).is(":checked")?(i.find(".greeting-card-options").show(350),i.find('input[name="greeting-card-type"]:checked').length==0&&(i.find('input[id="greeting-card-type-3"]').prop("checked",!0),t(3,n.CardType))):(i.find('input[name="greeting-card-type"]').prop("checked",!1),i.find(".greeting-card-options").hide(350))})});i.find(".greeting-card-thumb").hide();i.find(".greeting-card-thumb").filter(".product-id-"+n.CardType).show();i.find(".card-theme-preview > div").hide();i.find(".card-theme-preview > div > img").hide();n.GreetingCardType&&n.GreetingCardType>0&&t(n.GreetingCardType,n.CardType);$('input[name="greeting-card-type"]').on("change",function(){var i=$(this).val();console.log("calling fncShowCardPreview("+i+","+n.CardType+")");t(i,n.CardType)})},modalPhysicalCard:function(){e();i.find("#add-greeting-card").on("change",function(){$(this).is(":checked")?(i.find(".greeting-card-options").show(),i.find('input[name="greeting-card-type"]:checked').length==0&&i.find('input[id="greeting-card-type-1"]').prop("checked",!0),i.find("#add-personal-message-checkbox").prop("checked",!0),i.find("#personal-message-div").show().addClass("in")):(i.find('input[name="greeting-card-type"]').prop("checked",!1),i.find(".greeting-card-options").hide(),i.find("#add-personal-message-checkbox").prop("checked",!1),i.find("#personal-message-div").hide().removeClass("in"))})}};s[u]();i.find("#save-button").text(r.saveBtnTitle);i.find("#checkout-button").text(r.checkoutBtnTitle);i.find("#product-image").prop("src",t.productImage);i.find("#short-description").text(t.shortDescription);i.find("#product-name").text(t.cardTypeDescription);i.find("#product-image").prop("src",t.productImage);i.find("#card-quantity").text(n.Quantity);i.find("#card-value").text("$"+n.Value);f=n.To&&n.To.length>0||n.From&&n.From.length>0||(n.Message&&n.Message.length)>0;i.find("#add-personal-message-checkbox").prop("checked",f);i.find("#add-personal-message-checkbox").trigger("change");f?i.find("#personal-message-div").addClass("in"):i.find("#personal-message-div").removeClass("in");i.find("#message-to-field").val(n.To);i.find("#message-from-field").val(n.From);i.find("#message-field").val(n.Message);i.data("Quantity",n.Quantity);i.data("Value",n.Value);i.data("CardType",n.CardType);i.data("CardIds",JSON.stringify(n.CardIds));i.find("#add-greeting-card").prop("checked",n.HasGreetingCard||n.IsCustomisedECard);i.find("#add-greeting-card").trigger("change");n.HasGreetingCard||n.IsCustomisedECard?(i.find('input[id="greeting-card-type-'+n.GreetingCardType+'"]').prop("checked",!0),i.find(".greeting-card-options").show()):i.find(".greeting-card-options").hide();t.isDigitalCard||i.find("#add-gift-box").prop("checked",n.HasGiftBox);o={modalDigitalCard:function(n,t){r.submitDigitalModal(n,t)},modalPhysicalCard:function(n,t){r.submitPhysicalModal(n,t)}};i.find("button.save-form").click(function(){o[u](i,$(this).data("checkout"))});i.modal("show")},submitGenericModal:function(n,t,i){var r=this,u;typeof t=="function"?(n.find("button.submit").prop("disabled",!0),u=t(),newShoppingCart.updateShoppingCart(u,function(){n.find("button.submit").prop("disabled",!1)},function(t){if(i)window.location.assign(newShoppingCart.checkoutUrl);else if(n.modal("hide"),typeof r.onAfterSaveItemCallback=="function")r.onAfterSaveItemCallback(t)})):n.modal("hide")},submitDigitalModal:function(n,t){var i=this,r=function(){var t={CardIds:$.parseJSON(n.data("CardIds")),Quantity:n.data("Quantity"),Value:n.data("Value"),CardType:n.data("CardType"),HasGiftBox:!1,IsCustomisedECard:n.find("#add-greeting-card").is(":checked"),GreetingCardType:0,AddPersonalMessage:n.find("#add-personal-message-checkbox").is(":checked")};return t.IsCustomisedECard&&(t.GreetingCardType=$('input[name="greeting-card-type"]:checked').val()),t.AddPersonalMessage&&(t.AddPersonalMessage=!0,t.To=n.find("#message-to-field").val(),t.From=n.find("#message-from-field").val(),t.Message=n.find("#message-field").val()),t};i.submitGenericModal(n,r,t)},submitPhysicalModal:function(n,t){var i=this,r=function(){var t={CardIds:$.parseJSON(n.data("CardIds")),Quantity:n.data("Quantity"),Value:n.data("Value"),CardType:n.data("CardType"),HasGiftBox:n.find("#add-gift-box").is(":checked"),HasGreetingCard:n.find("#add-greeting-card").is(":checked"),GreetingCardType:0,AddPersonalMessage:n.find("#add-personal-message-checkbox").is(":checked")};return t.AddPersonalMessage&&(t.AddPersonalMessage=!0,t.To=n.find("#message-to-field").val(),t.From=n.find("#message-from-field").val(),t.Message=n.find("#message-field").val()),t.HasGreetingCard&&(t.GreetingCardType=$('input[name="greeting-card-type"]:checked').val()),t};i.submitGenericModal(n,r,t)},init:function(n){var t=this,i,r;n&&(t.onAfterSaveItemCallback=n.onAfterSaveItemCallback,t.saveBtnTitle=n.saveBtnTitle?n.saveBtnTitle:"Save & Continue shopping",t.checkoutBtnTitle=n.checkoutBtnTitle?n.checkoutBtnTitle:"Check out");i=function(n){var i=null;n?($("#digital-option").addClass("active"),$("#physical-option").removeClass("active"),$("#digital-card-type-option").addClass("active"),$("#physical-card-type-option").removeClass("active"),i=$("#digital-option")):($("#digital-option").removeClass("active"),$("#physical-option").addClass("active"),$("#digital-card-type-option").removeClass("active"),$("#physical-card-type-option").addClass("active"),i=$("#physical-option"));$("#modalCardValue").prop("step",t.getIntData(i,"price-step-value"));$("#modalCardValue").prop("min",t.getIntData(i,"min-price-value"));$("#modalCardValue").prop("max",t.getIntData(i,"max-price-value"))};$(".card-type-button").on("click",function(){i(t.getBoolData($(this),"isDigitalCard"))});$(".option-column:not(.out-of-stock)").on("click",function(){var r=t.getActiveOption(),n=$(this).find(".card-option")[0];r!==n&&i(t.getBoolData($(n),"isDigitalCard"))});r=function(){$('input[type="number"].attach-buttons').each(function(n,t){var i=$(t),u,r;if(!i.data("has-buttons")){u=i.prop("id");i.data("has-buttons",!0);r=$('<button class="spinner increment">+<\/button><button class="spinner decrement">-<\/button>');i.after(r);r.filter("button.increment").on("click",function(){var n=$("#"+u),t=parseInt(n.prop("step")||"1"),i=parseInt(n.val()),r;typeof n.prop("max")!="undefined"&&(r=parseInt(n.prop("max")),t+i>r)||(n.val(t+i),n.trigger("change"))});r.filter("button.decrement").on("click",function(){var n=$("#"+u),t=parseInt(n.prop("step")||"1"),i=parseInt(n.val()),r;typeof n.prop("min")!="undefined"&&(r=parseInt(n.prop("min")),i-t<r)||(n.val(i-t),n.trigger("change"))})}})};r()}}