1class Review{constructor(){this.final_average_rating=((parseFloat(document.getElementById('average_rating')?.value)*(parseInt(document.getElementById('review_count')?.value)-1))+parseFloat(document.getElementById('review_data_rating')?.value))/parseInt(document.getElementById('review_count')?.value);this.operatorItem=document.querySelector('#reviewDataBonus .operator-item')||{dataset:{}};this.checkIfYouMustBeLoggedInIsClick();this.leaveReviewJumpLink();this.dataLayerSubmitReview();this.tableAnchorLinkClick();this.userRatingClick()} 2userRatingClick=()=>{if(document.getElementById('user_rating_top')){const user_rating_top=document.getElementById('user_rating_top') 3user_rating_top.addEventListener('click',(event)=>{event.preventDefault();const reviews=document.getElementById('reviews');const yOffset=-this.getStickyOverlayOffset();const y=reviews.getBoundingClientRect().top+window.pageYOffset+yOffset;window.scrollTo({top:y});window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'user_rating_top_scroll',length_of_review:parseInt(window.length_of_review??0),operator:this.operatorItem.dataset.operator,number_of_reviews:parseInt(document.getElementById('review_count').value),average_rating_at_time_of_review:this.final_average_rating,table_present:!!document.querySelector('.content-table-wrapper'),object_of_review:this.operatorItem.dataset.product,offer:parseInt(this.operatorItem.dataset.offer_id)})})}} 4tableAnchorLinkClick=()=>{if(document.querySelector('.content-table-wrapper ul')){const contentTableLis=document.querySelectorAll('.content-table-wrapper ul li') 5contentTableLis.forEach((contentTableLi)=>{if(contentTableLi.querySelector('a')){const hash=new URL(contentTableLi.querySelector('a').href).hash;if(hash==="#reviews"){contentTableLi.addEventListener('click',()=>{window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'table_anchor_link',length_of_review:parseInt(window.length_of_review??0),operator:this.operatorItem.dataset.operator,number_of_reviews:parseInt(document.getElementById('review_count').value),average_rating_at_time_of_review:this.final_average_rating,table_present:!!document.querySelector('.content-table-wrapper'),object_of_review:this.operatorItem.dataset.product,offer:parseInt(this.operatorItem.dataset.offer_id)})})}}})}} 6dataLayerSubmitReview=()=>{if(document.querySelector('button.glsr-button[type="submit"]')){const submitReviewButton=document.querySelector('button.glsr-button[type="submit"]') 7let hasTrackedSubmitSuccess=!1;submitReviewButton.addEventListener('click',()=>{const reviewTextarea=document.querySelector('.glsr-textarea') 8window.length_of_review=reviewTextarea.value.length 9hasTrackedSubmitSuccess=!1}) 10const target=document.querySelector('.glsr-form-message');if(target){const observer=new MutationObserver((mutationsList)=>{for(const mutation of mutationsList){if(mutation.type==='attributes'&&mutation.attributeName==='class'){if(target.classList.contains('glsr-form-success')&&!hasTrackedSubmitSuccess){hasTrackedSubmitSuccess=!0;window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'submit_review_success',length_of_review:parseInt(window.length_of_review??0),operator:this.operatorItem.dataset.operator,number_of_reviews:parseInt(document.getElementById('review_count').value),average_rating_at_time_of_review:this.final_average_rating,table_present:!!document.querySelector('.content-table-wrapper'),object_of_review:this.operatorItem.dataset.product,offer:parseInt(this.operatorItem.dataset.offer_id)})}}}});observer.observe(target,{attributes:!0})}}} 11getStickyOverlayOffset=()=>{let offset=24;const header=document.getElementById('header-v2');if(header){offset+=header.getBoundingClientRect().height} 12const stickyOffer=document.querySelector('.bottom-float.active');if(stickyOffer){offset+=stickyOffer.getBoundingClientRect().height} 13return offset} 14leaveReviewJumpLink=()=>{const anchor_link_texts=document.querySelectorAll('.anchor_link_text');if(!anchor_link_texts.length){return} 15anchor_link_texts.forEach((anchor_link_text)=>{anchor_link_text.addEventListener('click',(event)=>{event.preventDefault();const scrollTarget=document.querySelector('.glsr-form-wrap')||document.querySelector('.glsr-login-register')||document.getElementById('reviews');if(scrollTarget){const yOffset=-this.getStickyOverlayOffset();const y=scrollTarget.getBoundingClientRect().top+window.pageYOffset+yOffset;window.scrollTo({top:y})} 16window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:'leave_review_scroll_button',length_of_review:parseInt(window.length_of_review??0),operator:this.operatorItem.dataset.operator,number_of_reviews:parseInt(document.getElementById('review_count').value),average_rating_at_time_of_review:this.final_average_rating,table_present:!!document.querySelector('.content-table-wrapper'),object_of_review:this.operatorItem.dataset.product,offer:parseInt(this.operatorItem.dataset.offer_id)})})})} 17checkIfYouMustBeLoggedInIsClick=()=>
17{if(document.querySelector('.glsr-login-register')){let checkIfYouMustBeLoggedInButton=document.querySelector('.glsr-login-register') 18let headerSubscriptionForm=document.querySelector('.header-subscription-form-wrapper');const menuToggle=document.getElementById('menu-toggle');let overlay=document.getElementById('subscription-overlay');checkIfYouMustBeLoggedInButton.addEventListener('click',()=>{if(menuToggle){menuToggle.checked=!1} 19headerSubscriptionForm.classList.add('active');overlay.classList.add('active');sessionStorage.removeItem('hideSubscriptionForm');sessionStorage.setItem('userWantsToRegister','false');const loginFormContainer=document.querySelector('.login-form-container');const registerFormContainer=document.querySelector('.register-form-container');const signInBanner=document.getElementById('already-sign-in-banner');const noAccountBanner=document.getElementById('no-account-banner');if(loginFormContainer){loginFormContainer.classList.add('active')} 20if(registerFormContainer){registerFormContainer.classList.remove('active')} 21if(signInBanner){signInBanner.classList.remove('active')} 22if(noAccountBanner){noAccountBanner.classList.add('active')}})}}} 23new Review()
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.