var ProductDescription=function(){function n(n,t,i,r){i===void 0&&(i=null);r===void 0&&(r=!1);this.isBrandNameEnabled=!1;this.$container=n;this.showReadMore=!1;this.lineXHeight=t;this.$fullDescriptionElements=i;this.$container.find(".read-more-padding").length>0&&(this.$readMorePadding=this.$container.children(".read-more-padding"));this.$container.find(".read-more").length>0&&(this.$readMoreButton=this.$container.children(".read-more"));this.$container.parent().find(".modernised-read-more").length>0&&(this.$modernisedReadMoreButton=this.$container.parent().find(".modernised-read-more"));this.$textContainer=this.$container.children(".partial-description-text");this.isPartialDescriptionLoaded=!1;this.lineLimit=parseInt(this.$container.attr("data-line-limit"),10);this.isBrandNameEnabled=r;this.addEventListeners()}return n.prototype.transformToFull=function(){this.$container&&(this.$container.css({height:"",display:""}),this.$textContainer.hide(),this.$readMoreButton.hide(),this.$readMorePadding.hide(),this.$fullDescriptionElements&&this.$fullDescriptionElements.show())},n.prototype.openPartial=function(){this.$textContainer.hide();this.$readMoreButton.hide();this.$container&&(this.$container.css({height:"",display:""}),this.$container.addClass("open"))},n.prototype.transformToPartial=function(n){var t,i,u,r;if(n===void 0&&(n=!1),n||this.isBrandNameEnabled)this.$container.hasClass("open")||(this.descriptionProperties=this.showPartialDescription(),this.isPropertiesValid=!0);else return(t=this.$container.children(".pDescription"),t=t[0]?t:this.$container.children("#ToneOfVoice"),t.text()===""||t.css("display")==="none")?(this.transformToFull(),!1):(this.$fullDescriptionElements&&this.$fullDescriptionElements.hide(),Next.Settings.Channel.ToneOfVoiceHtmlDecodingEnabled?(i=$("#hdnTovPartialDescription").val(),i?(u=/<[a-z][\s\S]*>/i.test(i),u?Next.Settings.Channel.WebDataFields.IsEnabled&&Next.Settings.Channel.WebDataFields.ToneOfVoice?this.descriptionProperties=this.showPartialDescription():(r=$(".partial-description")[0].style.height.split("ex")[0],r&&(this.descriptionProperties={xHeight:Number(r),content:this.$textContainer.text()})):this.descriptionProperties=this.showPartialDescription()):this.descriptionProperties=this.showPartialDescription()):this.descriptionProperties=this.showPartialDescription(),this.isPropertiesValid=!0,this.$container.text()===""?(this.$container.hide(),this.$textContainer.hide()):this.$container.siblings(".description-padding").show(),!0)},n.prototype.openDescription=function(){Next.Settings.Channel.PDPModernisedPartialDescription?(this.$container.hasClass("modernised-partial-description-closed")&&this.$container.removeClass("modernised-partial-description-closed"),this.$container.hasClass("modernised-partial-description-open")||this.$container.addClass("modernised-partial-description-open"),this.$modernisedReadMoreButton&&this.$modernisedReadMoreButton.text(nxt.jstranslations.common.showless)):(this.$textContainer&&this.$textContainer.hide(),this.$container&&this.$container.css("height",""),this.$readMoreButton&&this.$readMoreButton.text(nxt.jstranslations.common.showless),this.$container&&this.$container.addClass("open"))},n.prototype.addEventListeners=function(){var n=this;$(window).on("resize",function(){n.redrawDescription(250)});$(window).on("redrawDescription",function(){n.redrawDescription(0)});this.ReadbuttonClicked()},n.prototype.redrawDescription=function(n){var t=this,i;this.isPropertiesValid=!1;clearTimeout(i);i=setTimeout(function(){t.$container.hasClass("open")||(t.descriptionProperties=t.showPartialDescription(),t.isPropertiesValid=!0,t.showReadMore=!0)},n)},n.prototype.ReadbuttonClicked=function(){var n=this;if(this.$modernisedReadMoreButton)this.$modernisedReadMoreButton.on("click",function(){var t=n.$container.hasClass("modernised-partial-description-open");t?(n.$container.removeClass("modernised-partial-description-open"),n.$container.addClass("modernised-partial-description-closed"),n.$modernisedReadMoreButton.text(nxt.jstranslations.common.readmore)):(n.$container.removeClass("modernised-partial-description-closed"),n.$container.addClass("modernised-partial-description-open"),n.$modernisedReadMoreButton.text(nxt.jstranslations.common.showless))});if(this.$readMoreButton)this.$readMoreButton.on("click",function(){var t=n.$container.hasClass("open"),i,r;t?(n.$container.css("height",n.descriptionProperties.xHeight+"ex"),n.$textContainer.show(),n.$readMoreButton.text(nxt.jstranslations.common.readmore),n.$container.removeClass("open"),n.isPropertiesValid||(n.descriptionProperties=n.showPartialDescription(),n.isPropertiesValid=!0)):(n.$textContainer.hide(),n.$container.css("height",""),n.$readMoreButton.text(nxt.jstranslations.common.showless),n.$container.addClass("open"));i=$(n).parent("#quickBuyTray").length;i||typeof TrackGAEvent=="function"&&(r="pdp-description-panel-"+(t?"collapsed":"expanded"),TrackGAEvent("PDP","tap",r))})},n.prototype.showPartialDescription=function(){var h,r,u,c,o,e,w,v,y;if(Next.Settings.Channel.PDPModernisedPartialDescription)this.$container.show(),h=!0,this.$container.hasClass("modernised-partial-description-closed")&&(this.$container.addClass("modernised-partial-description-open"),this.$container.removeClass("modernised-partial-description-closed"),h=!1),r=this.$container.css("line-height"),u=0,this.$container.children().each(function(){$(this).css("display")!="none"&&(u=u+$(this).height())}),r&&r.indexOf("px")!==-1&&(r=r.replace("px",""),c=parseInt(r),c>0&&u>0&&(Math.round(u/c)>this.lineLimit?this.$modernisedReadMoreButton.show():this.$modernisedReadMoreButton.hide())),h?this.$modernisedReadMoreButton.text(nxt.jstranslations.common.showless):(this.$container.addClass("modernised-partial-description-closed"),this.$container.removeClass("modernised-partial-description-open"),this.$modernisedReadMoreButton.text(nxt.jstranslations.common.readmore));else{this.$textContainer.hide();this.$readMoreButton&&this.$readMoreButton.hide();var p=':not([style*="display: none"])',l=this.lineLimit===4?"#ToneOfVoice":p,i="",a=!1;typeof isHomewarePDPPage!="undefined"&&isHomewarePDPPage&&(a=!0);i=Next.Settings.Channel.WebDataFields.IsEnabled&&Next.Settings.Channel.WebDataFields.ToneOfVoice&&!a?this.$container.children(l).map(function(n,t){return $(t).html().replace("&nbsp;"," ").replace(/(<([^>]+)>)/ig," ").replace(/\s{2,}/gi," ").trim()}).get().join(" ").trim().replace(/\.*$\s+/gm,". "):a?this.$container.children(l).map(function(n,t){return $(t).html().replace("&nbsp;"," ").replace("&amp;","&").replace(/(<([^>]+)>)/ig," ").replace(/\s{2,}/gi," ").trim()}).get().join(" ").trim().replace(/\.*$\s+/gm,". "):this.$container.children(l).map(function(n,t){return $(t).text()}).get().join(" ").trim().replace(/\.*$\s+/gm,". ");i.substr(i.length-7,7)==="Also In"&&(i=i.substring(0,i.length-8));this.$container.show();this.$textContainer.show();this.$readMorePadding&&this.$readMorePadding.show();this.$readMoreButton&&this.$readMoreButton.show();this.$container.removeClass("open");this.$readMorePadding&&this.$readMorePadding.css("height","");this.$readMoreButton&&this.$readMoreButton.text(nxt.jstranslations.common.readmore);$(document.body).css("overflow-y","scroll");o=i.split(" ");this.$textContainer.text(o[0]);for(var s=this.$textContainer.height(),d=s,f=0,n=0,b=Next.Settings.UI.EnableNextGel3Styling&&dataLayer[0].page_type==="productPage"||this.isBrandNameEnabled,k=b?this.lineXHeight:0,t=[];f<this.lineLimit&&o.length>0;)t.push(o.shift()),this.$textContainer.text(""+t.join(" ")),this.$textContainer.height()>s&&(s=this.$textContainer.height(),f++,this.$textContainer.text(t.join(" ")+" ..."),this.lineLimit===4?n+=this.lineXHeight:(n+=f<this.lineLimit?this.lineXHeight:this.lineXHeight+k,this.$readMorePadding.css("height",n+"ex")));if(this.$readMorePadding.css("height",n-this.lineXHeight+"ex"),e=this.$textContainer.text(),f===this.lineLimit){if(w=this.$container.hasClass("mobile-tray")&&Next.Settings.UI.EnableNextGel3Styling,w&&t.length>2)for(this.$textContainer.text(t.join(" ")+" ..."),v=0;$("#productTrayPartialDescription").height()>25&&v<10;)t=t.slice(0,t.length-2),this.$textContainer.text(t.join(" ")+" ..."),v++;else for(y=!0;y;)t.pop(),e=t.join(" ")+" ...",this.$textContainer.text(e),this.$textContainer.height()<s&&(y=!1);this.$container.css("height",n+"ex")}else Next.Settings.Channel.EnablePDPDescriptionSpotFix?(n+=this.lineXHeight,this.$readMorePadding.css("height",n+"ex"),this.$container.css("height",n+"ex")):this.$textContainer.nextAll(p).length>1?(this.$readMorePadding.css("height",n+"ex"),n+=this.lineXHeight,this.$container.css("height",n+"ex")):(e="",this.$textContainer.hide(),this.$container.css("height",""),this.$readMorePadding.css("height",0),this.$readMoreButton.hide());return f==0&&(this.showReadMore&&Next.Settings.Channel.EnablePDPDescriptionSpotFix?(this.$readMoreButton.show(),n+=this.lineXHeight,this.$readMorePadding.css("height",n+"ex")):(this.$readMoreButton.hide(),n=this.lineXHeight,this.$readMorePadding.css("height",n-this.lineXHeight+"ex"),this.$container.css("height",n+"ex"))),Next.Settings.Channel.EnablePDPDescriptionSpotFix&&(this.$textContainer.css("visibility","visible"),this.$readMoreButton.css("visibility","visible")),$(document.body).css("overflow-y",""),{xHeight:n,content:e}}},n}()