PageSourceSearch

https://www.bonusfinder.ie/wp-content/cache/min/1/wp-content/themes/bonusfinder/js/review.js?ver=1789560877

js bonusfinder.ie collected 2026-09-26 03:37:58 UTC 6,156 bytes, 23 lines download raw bytes

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.