PageSourceSearch

https://www.sluttymeets.com/landing/resource/id/81bab38520cad4f7cf2c5131e3f7dca6.js

js sluttymeets.com collected 2026-10-04 17:16:17 UTC 31,283 bytes, 87 lines download raw bytes

1;
2;document.addEventListener('DOMContentLoaded',function(){var xhr=new XMLHttpRequest();xhr.open('GET','/landing/webPushData');xhr.onreadystatechange=function(){if(xhr.readyState===4&&xhr.status===200){try{var response=JSON.parse(xhr.response);webPushService.init(JSON.parse(atob(response.data)))}catch(error){}}};xhr.send()})
3;const hiddeForm=document.querySelector('.register-hidden-form');document.body.dataset.orientation=hiddeForm.dataset.orientation.trim();document.body.dataset.pageType=hiddeForm.dataset.pageType.trim()
4;setTimeout(()=>{const lpConcept=regform.getFieldsElement('age').closest('.form-item').dataset.lpConcept;if(['downshift','instapolls','360','bounce','cccards','crux','dontdoit','fbcrush','fornax','freepass','halfphoto','grid','hor','insta','jmplp_yal','latex','locadates','lpjumpmemb','lynx','map3','memb_22','memb_new','memb_old','membcllg','morning','part','peach','pinkb','pkair','purple','question','roundphoto','snapyellow','snap','soaplands','strs','tiktok','timer_ae','tinot2_fb','trickpic2','ttok','whjumlp','whjumplp','roundprofile','side','shakesexyline','test','fuckbook','fortune','entertain2','babes_25459','astra','grb','illustration','mainstr','mmacc','onlyfans','tinmap','rhomb','snaur'].includes(lpConcept)){const nextBtnEl=regform.multiStep.nextBtns[0];const defaultNextBtnText=nextBtnEl.innerHTML;function setAgeBtnText(){const isAgeActiveStep=regform.multiStep.currentStep.querySelector('select[name="UserForm[age]"]');if(isAgeActiveStep){nextBtnEl.innerHTML='<span>Confirm</span>'}else{nextBtnEl.innerHTML=defaultNextBtnText}}
5setAgeBtnText();regform.formContainer.addEventListener('step-next',setAgeBtnText);regform.formContainer.addEventListener('step-prev',setAgeBtnText)}},0)
6;const gendersFieldCountry=document.querySelector('.form-item[data-form-item="orientation"]').dataset.country;if(gendersFieldCountry==='EGY'||gendersFieldCountry==='DZA'){document.querySelectorAll('.form-item[data-form-item="orientation"] option[value="homo"]').forEach(option=>option.remove())}
7;hiddeForm.insertAdjacentHTML("beforeend",'<input type="hidden" name="UserForm[userParams][sexual_role]" data-type="sexual_role" value=""/>');document.querySelector('.sexual-role-select').addEventListener('change',function(){document.querySelector('input[data-type="sexual_role"]').value=this.value})
8;const locationItems=document.querySelectorAll('[data-form-item="location"]');locationItems.forEach(item=>{if(item.dataset.locationCountry==='JPN'){const regionFormItem=document.querySelectorAll('[data-form-item-name="region"]');const locationHiddenElement=document.querySelectorAll('.register-hidden-form [name="UserForm[location]"]');const createRegionOptions=({data:{regions}})=>{const defaultOption='<option value selected disabled>Select your prefecture</option>';const regionOptions=Object.values(regions).reduce((acc,item)=>{const isSelected=item==='Tōkyō'||item==='東京都'?'':'';return acc+`<option ${isSelected}>${item}</option>`},'');return defaultOption+regionOptions};const addRegionOptions=(dataOptions)=>{regionFormItem.forEach(item=>{if(item.querySelector('.select-value')&&item.querySelector('.select-dropdown')){item.querySelector('.select-value').remove();item.querySelector('.select-dropdown').remove()}
9const existingSelect=item.querySelector('select');existingSelect.innerHTML=createRegionOptions(dataOptions)})};const getDataRegion=()=>{locationHiddenElement.forEach(hiddenField=>hiddenField.setAttribute('name','UserForm[region]'));locationHiddenElement.forEach(hiddenField=>hiddenField.setAttribute('data-error-name','UserForm_region'));fetch('/api/v1/geo/states?country=JPN&mode=regions',{method:"GET",headers:{'x-requested-with':'XMLHttpRequest',"Content-Type":"application/json"}}).then((res)=>res.json()).then((res)=>{if(res.meta.code===200){addRegionOptions(res);new FieldEvents(['.form-item[data-form-item-name="region"]']);item.querySelector('.select-value').remove();item.querySelector('.select-dropdown').remove();new FieldEvents(['.form-item[data-form-item-name="region"]'])}})};getDataRegion()}else if(item.dataset.locationCountry==='US'&&item.dataset.visibleLocationValueUs==='false'&&item.dataset.visibleLocationValueUs){const locationHiddenEl=document.querySelector('.register-hidden-form [name="UserForm[location]"]');const locationEl=item.querySelector('.form-input input');locationHiddenEl.value='';locationEl.value='';locationEl.placeholder='Enter your ZIP code'}else{const locationEl=item.querySelector('.form-input input');locationEl.placeholder='Enter city or postal code'}})
10;var passwordIcons=document.querySelectorAll('.password-icon');passwordIcons.forEach(icon=>{icon.addEventListener("click",function(e){e.target.classList.toggle('active');const passwordEl=e.target.closest('.form-input').querySelector('input');if(passwordEl.type=='password'){passwordEl.setAttribute('type','text')}else{passwordEl.setAttribute('type','password')}})})
11let focusStartTime=0;let totalFocusTime=0;var passwordFields=document.querySelectorAll('.reg-form .form-input input[type="password"]');passwordFields.forEach(field=>
11{const form=field.closest('.reg-form-container')?.querySelector('.register-hidden-form');if(form){form.insertAdjacentHTML('beforeend',`<input type="hidden" name="UserForm[fft][password]" value="0">`,)}
12field.addEventListener('focus',()=>{focusStartTime=Date.now()});field.addEventListener('blur',()=>{const currentDuration=Date.now()-focusStartTime;totalFocusTime+=currentDuration;const hiddenInput=form?.querySelector('input[name="UserForm[fft][password]"]');if(hiddenInput){hiddenInput.value=totalFocusTime.toString()}})})
13;const formTerms=document.querySelectorAll('.form-terms');formTerms.forEach(terms=>{const checkboxItems=terms.querySelectorAll('.terms-checkbox-item');const checkboxes=terms.querySelectorAll('input');const siteBrand=terms.dataset.siteBrand;const country=terms.dataset.country;const lpConcept=terms.dataset.lpConcept;const hasTermsWithCheckboxes=terms.dataset.hasTermsWithCheckboxes;const isTermsChecked=terms.dataset.isTermsChecked;if(hasTermsWithCheckboxes){checkboxItems.forEach(item=>{item.addEventListener('click',e=>{if(e.target.nodeName==='A')return;if(e.target.nodeName!=='INPUT'){const checkbox=e.currentTarget.querySelector('input');const hasChecked=checkbox.checked;checkbox.checked=!checkbox.checked;checkbox.dispatchEvent(new Event('change'))}})});checkboxes.forEach(checkbox=>{if(!isTermsChecked){checkbox.checked=!1}
14checkbox.value=checkbox.checked})}
15if(siteBrand==='coins'&country==="US"&lpConcept==='index_coin'){const termsContainer=document.querySelectorAll('.without-checkboxes .terms-visible-us, .with-checkboxes');termsContainer.forEach(container=>{const privacyLink=container.querySelector('.policy-link');if(privacyLink&&container){const commaText=document.createTextNode(', ');const consentLink=document.createElement('a');consentLink.href='/staticPage/consentAgreement';consentLink.rel='nofollow';consentLink.className='consent-agreement-link';consentLink.textContent='Consent Agreement';consentLink.onclick=function(){return!window.open(this.href,'','toolbar=no,directories=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=700,height=500')};privacyLink.after(commaText,consentLink)}})}})
16;class FieldEvents{constructor(root=['.form-item'],options={}){this.fields=this.setFields(root);this.props=this.initProps(options);this.setEvents()}
17initProps(options){const defaults={fieldContainer:'.form-item',activeClass:'is-visible',focusClass:'is-focused',hasFocusClass:'has-focused',select:{selectContainer:'.form-select',selectedValue:'select-value',selectDropdown:'select-dropdown',selectDropdownItem:'select-item',},};return{...defaults,...options}}
18setFields(root){const fields=root.reduce((acc,parent)=>{document.querySelectorAll(parent).forEach(item=>{item.querySelectorAll('input, select').forEach(el=>acc.push(el))});return acc},[]);return fields}
19setEvents(){const{activeClass,select:{selectContainer,selectedValue,selectDropdownItem},}=this.props;const inputs=this.fields.filter(input=>input.tagName==='INPUT');const selects=this.fields.filter(select=>select.tagName==='SELECT');inputs.forEach(input=>{input.value?this.addFocus(input):this.removeFocus(input);input.addEventListener('focus',e=>{this.addFocus(e.currentTarget);e.currentTarget.closest(this.props.fieldContainer).classList.add(this.props.hasFocusClass)});input.addEventListener('blur',({currentTarget})=>{currentTarget.value?this.addFocus(currentTarget):this.removeFocus(currentTarget);currentTarget.closest(this.props.fieldContainer).classList.remove(this.props.hasFocusClass)})});selects&&this.renderCustomSelects(selects);let openedSelectedValue;selects&&selects.forEach(select=>{const parent=select.closest(selectContainer);const selected=parent.querySelector(`.${selectedValue}`);select.addEventListener('change',({currentTarget})=>{selected.textContent=currentTarget[currentTarget.selectedIndex].textContent});const selectedValueClickHandler=e=>{e.stopPropagation();const openedSelect=document.querySelector(`${this.props.select.selectContainer}.${this.props.activeClass}`);openedSelectedValue=openedSelect&&openedSelect.querySelector(`.${selectedValue}`);if(openedSelect&&openedSelect!==e.currentTarget){openedSelect.classList.remove(this.props.activeClass)}
20e.currentTarget.classList.toggle(activeClass);e.currentTarget.closest(this.props.fieldContainer).classList.toggle(this.props.hasFocusClass)};parent.addEventListener('click',selectedValueClickHandler);parent.addEventListener('keypress',e=>{if(e.keyCode==13){selectedValueClickHandler(e)}});const dropdownOptionClickHandler=e=>{e.stopPropagation();const gender=e.currentTarget.dataset.genderValue;const value=e.currentTarget.getAttribute('value');selected.textContent=e.currentTarget.textContent;select.value=value;if(gender){select.dataset.genderSelected=gender;select.querySelector(`option[value="${value}"][data-gender-value="${gender}"]`).selected=!0}
21parent.classList.remove(activeClass);this.addFocus(e.currentTarget);select.dispatchEvent(new Event('change'))};parent.querySelectorAll(`.${selectDropdownItem}`).forEach(item=>{item.addEventListener('click',dropdownOptionClickHandler);item.addEventListener('keypress',e=>{if(e.keyCode==13){dropdownOptionClickHandler(e)}})})});document.addEventListener('click',e=>{if(e.target!==openedSelectedValue){const openedSelect=document.querySelector(`${selectContainer}.${this.props.activeClass}`);
21if(openedSelect){openedSelect.classList.remove(this.props.activeClass);openedSelect.closest(this.props.fieldContainer).classList.remove(this.props.hasFocusClass)}}})}
22addFocus(el){const{fieldContainer,focusClass}=this.props;el.closest(fieldContainer).classList.add(focusClass)}
23removeFocus(el){const{fieldContainer,focusClass}=this.props;el.closest(fieldContainer).classList.remove(focusClass)}
24renderCustomSelects(selects){const{selectContainer,selectedValue,selectDropdown,selectDropdownItem}=this.props.select;selects.forEach(select=>{const dropdown=document.createElement('div');dropdown.className=selectDropdown;const selected=document.createElement('div');selected.className=selectedValue;selected.tabIndex='0';select.querySelectorAll('option').forEach(option=>{if(option.selected){selected.textContent=option.textContent;this.addFocus(select)}
25let clone=`<div class="${selectDropdownItem}" value="${option.value}" tabindex="0">${option.textContent}</div>`;if(option.dataset.genderValue){clone=`<div class="${selectDropdownItem}" value="${option.value}" data-gender-value="${option.dataset.genderValue}" tabindex="0">${option.textContent}</div>`}
26dropdown.insertAdjacentHTML('beforeend',clone)});select.closest(selectContainer).appendChild(selected);select.closest(selectContainer).appendChild(dropdown)})}}
27class KeyboardBehaviorHelper{constructor(props){this.props=this.initProps(props);this.init()}
28initProps(options){const defaults={formContainer:document.querySelector('.reg-form-container').parentElement,fields:document.querySelector('.reg-form-container').parentElement.querySelectorAll('.form-item:not(.terms-checkbox-item)'),scrollIntoViewOptions:{block:"start",behavior:"smooth"},};return{...defaults,...options}}
29init(){if(this.isAndroid()){this.setObserver()}}
30setObserver(){const observer=new MutationObserver((mutations)=>this.onFocusedState(mutations));this.props.fields.forEach((field)=>this.observeForChanges(observer,field))}
31observeForChanges(observer,element){observer.observe(element,{attributes:!0})}
32onFocusedState(mutationsList){const{formContainer,scrollIntoViewOptions}=this.props;for(const mutation of mutationsList){if(mutation.type!=="attributes"||mutation.attributeName!=="class")return;if(mutation.target.querySelector('input')===document.activeElement){document.activeElement.scrollIntoView(scrollIntoViewOptions);document.activeElement.scrollIntoViewIfNeeded();return}}}
33isAndroid(){return navigator.userAgent.toLowerCase().includes('android')}}
34new KeyboardBehaviorHelper()
35;const regformContainer=document.querySelector('.reg-form-container');const orientationType=document.body.dataset.orientation;const pageType=document.body.dataset.pageType;let options={};if(pageType==='multistep'){options={...options,hasMultiSteps:!0,}}
36const regform=new Regform(regformContainer,options);new FieldEvents(['.reg-form-container .form-item']);const orientationBlock=document.querySelector('.form-step-item[data-step-name="orientation"]');orientationBlock.dataset.orientationType=orientationType;if(orientationType==='gay'){regform.setOrientation('male','homo')}
37if(orientationType==='lesbi'){regform.setOrientation('female','homo')}
38function isWebviewBrowser(){return navigator.userAgent.includes('BytedanceWebview')||navigator.userAgent.includes('FBAV')||navigator.userAgent.includes('ByteLocale')||navigator.userAgent.includes('Snapchat')}
39if(isWebviewBrowser()){const inputs=regform.state.fields.map(field=>field.element).filter(el=>el.tagName==='INPUT');inputs.forEach(input=>{input.addEventListener('focus',e=>{document.querySelector("html").dataset.formInputAction="focus";regform.multiStep.currentStep.querySelector(".form-input input").scrollIntoView({block:"center",behavior:"smooth"})})
40input.addEventListener('focusout',e=>{document.querySelector("html").dataset.formInputAction="focusout"})})}
41;class LoginAndRecovery extends Utils{constructor(formContainer,options={}){super();this.formContainer=formContainer;this.props=this.initProps(options);this.state=this.initState(this.formContainer);this.errorList=[];this.isSubmitted=!1;this.setEvents()}
42initProps(options){const defaults={login:{formNamespace:'LoginForm',actionURL:'/site/checkLogin',formElement:'.login-form',emailElement:'.login-email-field',emailError:'[data-error-name="email"]',msisdnError:'[data-error-name="msisdn"]',passwordElement:'.login-password-field',passwordError:'[data-error-name="password"]',submitElement:'.login-form-submit',},recovery:{formNamespace:'RecoveryForm',actionURL:'/account/remindPassword',formElement:'.recovery-form',emailElement:'.recovery-email-field',emailError:'[data-error-name="email"]',emailSuccess:'[data-success-name="email"]',submitElement:'.recovery-form-submit',},fieldContainer:'.form-item',fieldElement:'.form-input input',errorContainer:'.form-error-block',errorClass:'error-field',validClass:'valid-field',};return this.mergeDeep(defaults,options)}
43initState(formContainer){const{login,recovery,errorContainer}=this.props;const loginForm=formContainer.querySelector(login.formElement);const recoveryForm=formContainer.querySelector(recovery.formElement);const fields=this.initFields(loginForm,recoveryForm);const errorContainers=formContainer.querySelectorAll(errorContainer);return{loginForm,recoveryForm,fields,errorContainers,}}
44initFields(loginForm,recoveryForm){const{login,recovery}=this.props;const loginEmailField=loginForm.querySelector(login.emailElement);const loginEmailError=loginForm.querySelector(login.emailError);const loginMsisdnError=loginForm.querySelector(login.msisdnError);const loginPasswordField=loginForm.querySelector(login.passwordElement);const loginPasswordError=loginForm.querySelector(login.passwordError);const recoveryEmailField=recoveryForm.querySelector(recovery.emailElement);const recoveryEmailError=recoveryForm.querySelector(recovery.emailError);const recoveryEmailSuccess=recoveryForm.querySelector(recovery.emailSuccess);return[{name:loginEmailField.name,element:loginEmailField,value:null,error:loginEmailError,},{name:`${login.formNamespace}[msisdn]`,element:loginEmailField,value:null,error:loginMsisdnError,},{name:loginPasswordField.name,element:loginPasswordField,value:null,error:loginPasswordError,},{name:recoveryEmailField.name,element:recoveryEmailField,value:null,error:recoveryEmailError,success:recoveryEmailSuccess,},]}
45getField(key,value){return this.state.fields.find(field=>field[key]===value)}
46setEvents(){const{login,recovery}=this.props;const{loginForm,recoveryForm,fields}=this.state;const inputs=fields.map(field=>field.element);
46inputs.forEach(input=>{input.addEventListener('keypress',e=>{if(e.keyCode===13){e.preventDefault();e.currentTarget.name==='RecoveryForm[email]'?this.validate(recovery.actionURL,recoveryForm):this.submit(login.actionURL,loginForm)}})});const loginSubmitBtn=loginForm.querySelector(login.submitElement);loginSubmitBtn.addEventListener('click',e=>{e.preventDefault();this.submit(login.actionURL,loginForm)});const recoverySubmitBtn=recoveryForm.querySelector(recovery.submitElement);recoverySubmitBtn.addEventListener('click',e=>{e.preventDefault();this.validate(recovery.actionURL,recoveryForm)});const forgotPassword=this.formContainer.querySelector('.recovery-password-btn');forgotPassword.addEventListener('click',e=>{this.switchToForm('login','recovery')});const backToLogin=this.formContainer.querySelector('.login-switch-btn');backToLogin.addEventListener('click',e=>{this.switchToForm('recovery','login')})}
47hasSameValues(form){const sameValues=[];form.querySelectorAll(this.props.fieldElement).forEach(({name,value})=>{const elem=this.getField('name',name);sameValues.push(elem.value===value)});return sameValues.every(Boolean)}
48switchToForm(from,to){const fromForm=this.formContainer.querySelector(this.props[from].formElement);const toForm=this.formContainer.querySelector(this.props[to].formElement);fromForm.classList.remove('visible');fromForm.classList.add('hidden');
48toForm.classList.remove('hidden');toForm.classList.add('visible');document.body.dataset.signInVisibleForm=to;const fromElem=this.getField('name',`${this.props[from].formNamespace}[email]`);const toElem=this.getField('name',`${this.props[to].formNamespace}[email]`);toElem.element.value=fromElem.element.value}
49updateState(form){form.querySelectorAll(this.props.fieldElement).forEach(({name,value})=>{const elem=this.getField('name',name);elem.value=value})}
50redirect(url){const exp=new RegExp(/\/\/(www|m)/);if(!exp.test(url)){url=location.protocol+'//'+location.host+(url[0]==='/'?url:'/'+url)}
51window.location.href=url}
52prepareFetchOptions(form){const body=new FormData(form);const headers=new Headers({'x-requested-with':'XMLHttpRequest'});return{method:'POST',headers,body,}}
53validate(url,form){this.updateState(form);const options=this.prepareFetchOptions(form);return fetch(url,options).then(res=>res.json()).then(({data,status,meta})=>{if(meta.code===302&&meta.redirect){this.redirect(meta.redirect);return}
54if(status==='error'){this.renderErrors(meta.description,form);document.dispatchEvent(new CustomEvent('login-field-validate',{detail:{meta,}}))}
55if(status==='success'){if(data.valid){this.renderErrors(data,form);return}
56this.errorList=[]}
57return this.errorList}).catch(err=>{throw err})}
58renderErrors(data,form){const{login,recovery,errorClass,validClass}=this.props;if(data.type){const errorName=`${login.formNamespace}[${data.type}]`;const elem=this.getField('name',errorName);this.renderMessage(elem.error,data.message,errorClass,form);this.errorList.push(errorName)}
59const recoveryName=`${recovery.formNamespace}[email]`;const recoveryElem=this.getField('name',recoveryName);if(data.email)this.renderMessage(recoveryElem.error,data.email[0],errorClass,form);if(data.valid)this.renderMessage(recoveryElem.success,data.message,validClass,form)}
60renderMessage(container,message,className,form){this.resetErrors();container.innerHTML=message;form.querySelectorAll(this.props.fieldContainer).forEach(div=>{div.classList.add(className)})}
61resetErrors(){const{errorContainers}=this.state;const{fieldContainer,errorClass,validClass}=this.props;errorContainers.forEach(container=>{container.innerHTML='';container.closest(fieldContainer).classList.remove(errorClass);container.closest(fieldContainer).classList.remove(validClass)})}
62async submit(url,form){if(!this.isSubmitted){const errors=await this.validate(url,form);if(!errors.length&&!this.isSubmitted){document.dispatchEvent(new Event('loginform-submit'));this.isSubmitted=!0;form.submit()}}}}
63const loginFormContainer=document.querySelector('.login-form-wrapper');const loginForm=new LoginAndRecovery(loginFormContainer,{login:{formElement:'.login-form'},});new FieldEvents(['.login-form-wrapper .form-item'])
64;class YBTextLoader{constructor(root=document){this.titles=[root.querySelector('.loader-title-1'),root.querySelector('.loader-title-2'),root.querySelector('.loader-title-3'),].filter(
64Boolean)}
65split(el){const tNode=el.querySelector('t');const content=(tNode?.getAttribute('message')||tNode?.textContent||el.textContent||'').trim();el.innerHTML='';for(const ch of content){const span=document.createElement('span');span.textContent=ch===' '?'\u00A0':ch;el.appendChild(span)}
66return el.querySelectorAll('span')}
67animateSpans(spans,{show,totalMs}){const count=spans.length;const step=Math.max(8,Math.floor(totalMs/count));if(show){spans.forEach((s,i)=>setTimeout(()=>s.classList.add('visible'),step*(i+1)));return step*count}else{Array.from(spans).reverse().forEach((s,i)=>setTimeout(()=>s.classList.remove('visible'),step*(i+1)));return step*count}}
68async sequence(){const[t1,t2,t3]=this.titles;this.titles.forEach(el=>el.classList.remove('active'));t1?.classList.add('active');const s1=this.split(t1);const s2=this.split(t2);const s3=this.split(t3);const show1=this.animateSpans(s1,{show:!0,totalMs:700});await new Promise(r=>setTimeout(r,show1+500));const hide1=this.animateSpans(s1,{show:!1,totalMs:500});await new Promise(r=>setTimeout(r,hide1+50));t1.classList.remove('active');t2?.classList.add('active');const show2=this.animateSpans(s2,{show:!0,totalMs:700});await new Promise(r=>setTimeout(r,Math.max(0,3000-(show1+hide1))));const hide2=this.animateSpans(s2,{show:!1,totalMs:500});await new Promise(r=>setTimeout(r,hide2+50));t2.classList.remove('active');t3?.classList.add('active');this.animateSpans(s3,{show:!0,totalMs:700})}}
69const loader=new YBTextLoader(document);const observer=new MutationObserver(mutations=>{for(const m of mutations){if(m.type==='attributes'&&m.attributeName==='data-reg-mode'){const value=document.body.getAttribute('data-reg-mode');if(value==='apex'){loader.sequence();observer.disconnect()}}}});observer.observe(document.body,{attributes:!0});if(document.body.getAttribute('data-reg-mode')==='apex'){loader.sequence()}
70;(()=>{const EXITOFFER_BITMASK=8;const IDLE_MS=3000;const START_AFTER_CONFIRM_MS=2000;const btn=document.querySelector(".exit-offer-btn");if(!btn)return;let tdsAoRaw=btn.dataset.tds||"";tdsAoRaw=tdsAoRaw.replace(/\//g,"").trim();const tdsAo=Number(tdsAoRaw);if(!tdsAo||(tdsAo&EXITOFFER_BITMASK)===0)return;btn.classList.remove("is-active");document.body.append(btn);let started=!1;let shown=!1;let timer=null;const showOnceAfterIdle=()=>{if(shown)return;clearTimeout(timer);timer=setTimeout(()=>{if(shown)return;shown=!0;btn.classList.add("is-active")},IDLE_MS)};const startIdle=(delay=0)=>{if(started)return;started=!0;setTimeout(()=>{showOnceAfterIdle();["mousemove","scroll","keydown","touchstart","pointermove"].forEach((ev)=>window.addEventListener(ev,showOnceAfterIdle,{passive:!0}))},delay)};btn.addEventListener("click",()=>{document.body.dispatchEvent(new CustomEvent("ExitClick"))});const agePopupExists=()=>!!document.querySelector(".age-popup-wrapper");const isConfirm=(t)=>!!t&&!!t.closest(".age-popup-wrapper .next-btn");if(!agePopupExists()){startIdle(0);return}["click","pointerup","mouseup","touchend"].forEach((ev)=>{document.addEventListener(ev,(e)=>{if(isConfirm(e.target))startIdle(START_AFTER_CONFIRM_MS);},!0)});document.addEventListener("keyup",(e)=>{if((e.key==="Enter"||e.key===" ")&&isConfirm(document.activeElement)){startIdle(START_AFTER_CONFIRM_MS)}},!0);setTimeout(()=>{if(!started)startIdle(0);},3000)})()
71;class RegAndLoginForms extends Utils{constructor(formInstances,options={}){super();this.formInstances=formInstances;this.props=this.initProps(options);this.state=this.initState();this.movingContainers();this.setEvents();this.initRegisteredUserLogic()}
72initProps(options){const defaults={selectors:{formBlock:'.form-block',formSwitchLinksBlock:'.form-switch-links',loginLink:'.login-link',regLink:'.reg-link',loginFormPopup:'.login-form-popup-block',loginFormPopupTitle:'.login-form-title',closeLoginFormPopup:'.close-login-form',},classes:{visible:'is-visible',},textKeys:{loginLink:'',regLink:'Sign up',},};return this.mergeDeep(defaults,options)}
73initState(){const{formBlock,formSwitchLinksBlock,loginLink,regLink,loginFormPopup,loginFormPopupTitle,closeLoginFormPopup}=this.props.selectors;const formBlockElement=document.querySelector(formBlock);const formSwitchLinksBlockElement=document.querySelector(formSwitchLinksBlock);const loginLinkElement=document.querySelector(loginLink);const regLinkElement=document.querySelector(regLink);const loginFormPopupElement=document.querySelector(loginFormPopup);const loginFormPopupTitleElement=document.querySelector(loginFormPopupTitle);const closeLoginFormElement=document.querySelector(closeLoginFormPopup);return{refs:{formBlockElement,formSwitchLinksBlockElement,loginLinkElement,regLinkElement,loginFormPopupElement,loginFormPopupTitleElement,closeLoginFormElement,},}}
74move(container,place,elem){container.insertAdjacentElement(place,elem)}
75movingContainers(){const{formContainer}=this.formInstances.regform;const{formBlockElement}=this.state.refs;formContainer&&this.move(formBlockElement,'afterbegin',formContainer)}
76switchForm(name){const{formBlockElement,formSwitchLinksBlockElement}=this.state.refs;formBlockElement.dataset.visibleForm=name;formSwitchLinksBlockElement.dataset.visibleForm=name;document.body.dataset.formIsOpen=name}
77setEvents(){const{loginLinkElement,regLinkElement,loginFormPopupElement,closeLoginFormElement}=this.state.refs;const{visible}=this.props.classes;loginLinkElement.addEventListener('click',()=>{this.switchForm('login');document.dispatchEvent(new Event('loginform-openclick'));this.showLoginForm()});loginLinkElement.addEventListener('keypress',e=>{if(e.keyCode==13)this.switchForm('login')});regLinkElement.addEventListener('click',()=>this.switchForm('register'));regLinkElement.addEventListener('keypress',e=>{if(e.keyCode==13)this.switchForm('register')});loginLinkElement.addEventListener('click',()=>{});regLinkElement.addEventListener('click',()=>{loginFormPopupElement.classList.remove(visible)});closeLoginFormElement.addEventListener('click',()=>{loginFormPopupElement.classList.remove(visible);this.switchForm('register')});loginFormPopupElement.addEventListener('click',e=>{if(e.target===e.currentTarget){e.currentTarget.classList.remove(visible);this.switchForm('register')}})}
78showLoginForm(){const{loginFormPopupElement}=this.state.refs;const{visible}=this.props.classes;loginFormPopupElement.classList.add(visible);document.dispatchEvent(new Event('loginform-open'))}
79initRegisteredUserLogic(){const{regform,loginForm}=this.formInstances;const{formBlockElement,loginLinkElement,loginFormPopupTitleElement}=this.state.refs;const hasUserLogout=+formBlockElement.dataset.hasUserLogout;if(hasUserLogout){this.showLoginForm();loginFormPopupTitleElement.innerHTML='Log in for great dates!'}
80setTimeout(function(){const loginEmail=loginForm.state.fields.find(field=>field.name==='LoginForm[email]').element;const regformEmail=regform.state.fields.find(field=>field.fieldName.includes('email')).element;regform.formContainer.addEventListener('field-validate',e=>{const[fieldName]=Object.keys(e.detail.response);if(fieldName==='UserForm_email'){const hasUserRegistered=+e.detail.header.get('x-hal');if(hasUserRegistered){loginFormPopupTitleElement.innerHTML='We noticed you registered! Log in and enjoy.';loginEmail.value=regformEmail&&regformEmail.element&&regformEmail.element.value;loginLinkElement.dispatchEvent(new Event("click"))}}})}
80,0)}}
81setTimeout(function(){regAndLoginInstance=new RegAndLoginForms({regform,loginForm},{})},0)
82;var readmoreLink=document.querySelectorAll('.read-more-link');var seoContent=document.querySelector('.content-hidden');if(readmoreLink.length&&seoContent){[].forEach.call(readmoreLink,function(link){link.addEventListener('click',function(){link.style.display='none';slideDown(seoContent,500)})})}
83function slideDown(target,duration){target.style.removeProperty('display');let display=window.getComputedStyle(target).display;if(display==='none')display='block';target.style.display=display;let height=target.offsetHeight;target.style.overflow='hidden';target.style.height=0;target.style.paddingTop=0;target.style.paddingBottom=0;target.style.marginTop=0;target.style.marginBottom=0;target.offsetHeight;target.style.boxSizing='border-box';target.style.transitionProperty="height, margin, padding";target.style.transitionDuration=duration+'ms';target.style.height=height+'px';target.style.removeProperty('padding-top');target.style.removeProperty('padding-bottom');target.style.removeProperty('margin-top');target.style.removeProperty('margin-bottom');window.setTimeout(function(){target.style.removeProperty('height');target.style.removeProperty('overflow');target.style.removeProperty('transition-duration');target.style.removeProperty('transition-property')},duration)}
84;(function(){var xmlhttp=new XMLHttpRequest();xmlhttp.open('GET','/api/v1/site/copyrights');xmlhttp.setRequestHeader('X-Requested-With','XMLHttpRequest');xmlhttp.send();xmlhttp.onload=function(e){try{var code=JSON.parse(xmlhttp.response);var wrappers=document.querySelectorAll('.site-copyrights');var range=document.createRange();if(wrappers.length>0){wrappers.forEach((wrapper)=>{wrapper.appendChild(range.createContextualFragment(code.data.copyright));range.setStart(wrapper,0)})}}catch(error){}}})()
85;const cookieAcceptBtns=document.querySelectorAll('.cookie-btn__accept');cookieAcceptBtns.forEach(btn=>{btn.addEventListener('click',(e)=>{e.target.closest('.cookie-popup-block').classList.add('is-hidden')})})
86;setTimeout(function(){const{formSwitchLinksBlockElement,loginLinkElement,regLinkElement}=regAndLoginInstance.state.refs;const headerElement=document.querySelector('header .center');loginLinkElement.innerHTML='Log in';regAndLoginInstance.move(headerElement,'beforeend',formSwitchLinksBlockElement)},0)
87;const sloganTitle=document.querySelector('.slogan');sloganTitle.innerHTML="<span class=\"k-rows-wrap\"><span class=\"k-row-1\">Meet your</span> <span class=\"k-row-2\">picture-perfect lady!</span></span>"

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.