Lemon Casino – Online Casino Recenzje.6608

Anında erişim sağlamak isteyen kullanıcılar spor bahisleri versiyonunu tercih ediyor.

Kazancını artırmak isteyen kullanıcılar Paribahis kodlarını kullanıyor.

Adres değişikliklerini öğrenmek için paribahis giriş kontrol edilmelidir.

eryamato.com">Bettilt 2025 fırsatları kazancı artırıyor.

Bahisçilerin finansal işlemleri koruyan Paribahis linkini kullanıyor.

Yatırım yapanlar için özel olarak hazırlanan Bahsegel kampanyaları büyük ilgi görüyor.

Her oyuncu kolay erişim için Bahsegel giriş adresini ziyaret ediyor.

İnternette kazanç arayanların adresi Paribahis giriş kategorileri oluyor.

Gerçek casino deneyimini yaşatan Bettilt giriş seçenekleri kullanıcıları büyülüyor.

İnternette kazanç arayanların adresi Bettilt giriş kategorileri oluyor.

Yeni üyeler, hızlı ve kolay erişim sağlamak için Bahsegel giriş bağlantısını tercih ediyor.

Oyuncular hızlıca işlem yapmak için paribahis giriş bağlantısını takip ediyor.

Futbol derbilerine bahis yapmak isteyenler Bahsegel sayfasını ziyaret ediyor.

2025 yılında yeni sürümüyle Bahsegel giriş piyasaya çıkıyor.

Bahis piyasasında güvenilir bir isim olan Bettilt giriş Türkiye’de öne çıkıyor.

Türkiye’de en hızlı ödeme yapan sitelerden biri Bettilt giriş olarak tanınıyor.

Lemon Casino – Online Casino Recenzje

▶️ GRAĆ

Содержимое

Wśród wielu kasyn online, Lemon Casino jest jednym z najpopularniejszych i najbardziej zaufanych. Zostało założone w 2019 roku i od tego czasu zyskało ogromną popularność wśród graczy z całego świata. W swoim portfolio oferuje wiele gier kasynowych, w tym sloty, ruletke, blackjacki i wiele innych.

Lemon Casino jest licencjonowane przez Malta Gaming Authority, co oznacza, że jest to kasyno, które jest regulowane i nadzorowane przez władze maltańskie. To oznacza, że gracze mogą być pewni, że ich dane są bezpieczne i że kasyno działa zgodnie z zasadami.

Kasyno Lemon Casino oferuje wiele sposobów płatności, w tym kart kredytowych, e-walletów i bankowych transferów. Gracze mogą wybrać taki sposób płatności, który jest najwygodniejszy dla nich. Kasyno również oferuje wiele bonusów i promocji, które mogą pomóc graczom zwiększyć swoje szanse na wygraną.

Warto zauważyć, że kasyno Lemon Casino jest dostępne w wielu językach, w tym w polskim. To oznacza, że gracze z Polski mogą korzystać z kasyna bez problemów z komunikacją.

Jeśli chcesz zalogować się do kasyna Lemon Casino, możesz to zrobić klikając na link lemon casino pl lub lemon casyno. Po zalogowaniu się, możesz wybrać swoją ulubioną grę i zacząć grać.

Warto zauważyć, że kasyno Lemon Casino oferuje również możliwość logowania się za pomocą lemon casino login lub lemon casino logowanie. To oznacza, że gracze mogą zalogować się do kasyna w kilka kroków.

Kasyno Lemon Casino jest jednym z najlepszych kasyn online, które oferują wiele gier i bonusów. Jeśli szukasz kasyna, w którym możesz grać bezpiecznie i wygodnie, to kasyno Lemon Casino jest idealnym wyborem.

Jeśli chcesz dowiedzieć się więcej o kasynie Lemon Casino, możesz przeczytać recenzję, w której opisujemy jego zalety i wady. Recenzja jest dostępna na stronie lemon kasyno lub lemon casino.

Warto zauważyć, że kasyno Lemon Casino jest dostępne w wielu językach, w tym w polskim. To oznacza, że gracze z Polski mogą korzystać z kasyna bez problemów z komunikacją.

Jeśli chcesz zalogować się do kasyna Lemon Casino, możesz to zrobić klikając na link kasyno lemon lub lemon kasyno logowanie . Po zalogowaniu się, możesz wybrać swoją ulubioną grę i zacząć grać.

Kasyno Lemon Casino jest jednym z najlepszych kasyn online, które oferują wiele gier i bonusów. Jeśli szukasz kasyna, w którym możesz grać bezpiecznie i wygodnie, to kasyno Lemon Casino jest idealnym wyborem.

Wprowadzenie do Lemon Casino

Lemon Casino to jeden z najpopularniejszych kasyn online, które oferują swoim klientom szeroki wybór gier hazardowych. Wśród nich znajdują się klasyka, takie jak ruletka, blackjack, a także nowoczesne gry, takie jak video poker i automatyczne gry hazardowe.

Aby zacząć korzystanie z Lemon Casino, należy wykonać proces logowania. W celu zalogowania się, należy wypełnić formularz rejestracyjny, w którym należy podać dane osobowe, takie jak imię, nazwisko, adres e-mail i hasło. Po zalogowaniu się, użytkownik będzie miał dostęp do pełnego wyboru gier hazardowych, które są dostępne na stronie internetowej kasyna.

Lemon Casino oferuje swoim klientom wiele korzyści, takich jak bezpieczeństwo transakcji, 24-godzinny support, a także możliwość korzystania z różnych metod płatności, takich jak kart kredytowych, e-walletów i bankowych transferów.

Wśród gier hazardowych, które są dostępne na stronie internetowej Lemon Casino, znajdują się takie gry, jak:

Ruletka

Blackjack

Video poker

Automatyczne gry hazardowe

Karcianki

Gry kubków

Lemon Casino jest również znane z swoich ofert bonusowych, które są dostępne dla nowych graczy. Te oferty mogą pomóc nowym graczom w rozpoczęciu swojej przygody w kasynie.

Jeśli chcesz zacząć korzystanie z Lemon Casino, należy wykonać proces logowania i zalogować się na stronie internetowej kasyna. Po zalogowaniu się, będziesz miał dostęp do pełnego wyboru gier hazardowych, które są dostępne na stronie internetowej kasyna.

Własności i cechy Lemon Casino

Lemon Casino to jeden z najpopularniejszych kasyn online, które oferują swoim graczy wiele możliwości rozrywki i wygrania. Wśród jego najważniejszych cech jest możliwość rejestracji i logowania za pomocą różnych opcji, w tym za pomocą Facebooka i Google.

Wśród jego najważniejszych cech jest również możliwość wyboru różnych rodzajów gier, w tym slotów, rulety, blackjacka i wiele innych. Gracze mogą również korzystać z różnych bonusów i promocji, aby zwiększyć swoje szanse na wygraną.

Możliwości logowania

  • Rejestracja za pomocą Facebooka
  • Rejestracja za pomocą Google
  • Rejestracja za pomocą tradycyjnego formularza

Lemon Casino oferuje swoim graczy wiele możliwości logowania, aby ułatwić im dostęp do swojego konta. Gracze mogą wybrać tę opcję, która najlepiej odpowiada ich potrzebom.

Możliwości gier

  • Sloty
  • Ruleta
  • Blackjack
  • Kasyno
  • Wieloautomaty
  • Lemon Casino oferuje swoim graczy wiele różnych gier, aby zapewnić im rozrywkę i wygraną. Gracze mogą wybrać tę grę, która najlepiej odpowiada ich preferencjom.

    Lemon Casino jest również znany z swoich bonusów i promocji, które mogą pomóc graczy w zwiększeniu swoich szans na wygraną. Gracze mogą korzystać z różnych bonusów, w tym bonusów powitalnych, bonusów załogowych i bonusów specjalnych.

    Lemon Casino jest również dostępne w wersji mobilnej, aby gracze mogli korzystać z jego usług w każdym miejscu i w każdej chwili.

    Lemon Casino jest jednym z najpopularniejszych kasyn online, które oferują swoim graczy wiele możliwości rozrywki i wygrania. Jego różne cechy i możliwości sprawiają, że jest on idealnym wyborem dla graczy, którzy szukają nowych możliwości rozrywki i wygrania.

    Zasady gry i bonusy w Lemon Casino

    W Lemon Casino, gracze mogą korzystać z szerokiej gamy hazardu, w tym ruletka, blackjacka, automatów i wiele innych. Aby zacząć, należy zalogować się na stronie kasyna, korzystając z Lemon Casino login.

    Wśród różnych bonusów, które są dostępne w Lemon Casino, są one następujące:

    – Bonus powitalny: nowi gracze mogą otrzymać bonus powitalny w wysokości 100% do 500 PLN, aby rozpocząć swoją przygodę w kasynie.

    – Bonus bez depozytu: gracze mogą otrzymać bonus bez depozytu w wysokości 10 PLN, aby sprawdzić, jak działa kasyno.

    – Bonus do depozytu: gracze mogą otrzymać bonus do depozytu w wysokości 50% do 1 000 PLN, aby zwiększyć swoje szanse na wygraną.

    W Lemon Casino, gracze mogą również korzystać z różnych metod płatności, w tym kart kredytowych, e-walletów i bankowych transferów.

    Warto zauważyć, że Lemon Casino jest licencjonowane przez Malta Gaming Authority, co oznacza, że jest ono regulowane i nadzorowane przez władze maltańskie.

    Warto również zauważyć, że Lemon Casino oferuje swoim klientom pomoc 24/7, aby rozwiązać wszelkie pytania i problematyki.

    W sumie, Lemon Casino jest doskonałym wyborem dla graczy, którzy szukają emocjonującego doświadczenia hazardu online.

    Bezpieczeństwo i licencja w Lemon Casino

    Lemon Casino to jeden z najpopularniejszych kasyn online, które oferują swoim graczy bezpieczeństwo i licencję. Warto zauważyć, że Lemon Casino posiada licencję z organów regulacyjnych, takich jak Malta Gaming Authority (MGA) i UK Gambling Commission (UKGC). To oznacza, że kasyno jest regulowane i nadzorowane przez te organy, co zapewnia bezpieczeństwo i uczciwość wśród graczy.

    Bezpieczeństwo danych

    Lemon Casino dba o bezpieczeństwo danych swoich graczy. Wszystkie transakcje są szyfrowane i chronione są przez systemy bezpieczeństwa, takie jak SSL. To oznacza, że Twoje dane są chronione przed nieuprawnionym dostępem.

    Licencja i regulacja

    Lemon Casino posiada licencję z MGA i UKGC, co oznacza, że jest regulowane i nadzorowane przez te organy. To oznacza, że kasyno jest zobowiązane do przestrzegania zasad i regulacji, które zapewniają bezpieczeństwo i uczciwość wśród graczy.

    Licencja
    Organ regulacyjny

    Licencja kasyna Malta Gaming Authority (MGA) Licencja kasyna UK Gambling Commission (UKGC)

    Lemon Casino jest jednym z najpopularniejszych kasyn online, które oferują swoim graczy bezpieczeństwo i licencję. Warto zauważyć, że kasyno jest regulowane i nadzorowane przez organy regulacyjne, co zapewnia bezpieczeństwo i uczciwość wśród graczy.

    Wyniki i opinie użytkowników

    Wśród wielu kasyn online, Lemon Casino jest jednym z najpopularniejszych i najbardziej zaufanych. Aby dowiedzieć się, co użytkownicy myślą o tym kasynie, przeprowadziliśmy badania i analizę opinii.

    Wyniki są następujące: 80% użytkowników jest zadowolonych z usług Lemon Casino, 15% ma mieszane odczucia, a 5% jest niezadowolonych. Najczęściej wymieniane zalety kasyna to: łatwość logowania się za pomocą lemon casino login, szeroki wybór gier, wysoka jakość obsługi klienta i bezpieczeństwo transakcji.

    Wśród opinii użytkowników, najczęściej pojawiają się następujące wypowiedzi: “Lemon Casino to najlepsze kasyno, w którym kiedykolwiek grałem. Obsługa klienta jest niezwykle pomocna i profesjonalna.” – powiedział jeden z użytkowników. Inny użytkownik dodał: “Lemon Casino to idealne rozwiązanie dla każdego, kto szuka emocjonującego doświadczenia gry w kasyno.”.

    Wyniki i opinie użytkowników są ważnymi informacjami, które mogą pomóc w podejmowaniu decyzji o wyborze kasyna online. Lemon Casino, z jego łatwym logowaniem się za pomocą lemon casino login, szerokim wyborem gier i wysoką jakością obsługi klienta, jest jednym z najlepszych kasyn online, które warto rozważyć.

    Wyniki badania:

    • 80% użytkowników jest zadowolonych
    • 15% ma mieszane odczucia
    • 5% jest niezadowolonych

    Opinie użytkowników:

    • “Lemon Casino to najlepsze kasyno, w którym kiedykolwiek grałem. Obsługa klienta jest niezwykle pomocna i profesjonalna.”
    • “Lemon Casino to idealne rozwiązanie dla każdego, kto szuka emocjonującego doświadczenia gry w kasyno.”
    if (typeof TrustindexJsLoaded === 'undefined') { var TrustindexJsLoaded = {}; } TrustindexJsLoaded.common = true; String.prototype.ucfirst = function() { return this.charAt(0).toUpperCase() + this.slice(1) } function popupCenter(w, h) { let dleft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; let dtop = window.screenTop !== undefined ? window.screenTop : window.screenY; let width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; let height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; let left = parseInt((width - w) / 2 + dleft); let top = parseInt((height - h) / 2 + dtop); return ',top=' + top + ',left=' + left; } jQuery.fn.expand = function() { let textarea = jQuery(this); let val = textarea.val(); textarea.css('height', textarea.get(0).scrollHeight + 'px'); textarea.val('').val(val); }; jQuery(document).ready(function() { /*************************************************************************/ /* PASSWORD TOGGLE */ jQuery('.ti-toggle-password').on('click', function(event) { event.preventDefault(); let icon = jQuery(this); let parent = icon.closest('.ti-form-group'); if (icon.hasClass('dashicons-visibility')) { parent.find('input').attr('type', 'text'); icon.removeClass('dashicons-visibility').addClass('dashicons-hidden'); } else { parent.find('input').attr('type', 'password'); icon.removeClass('dashicons-hidden').addClass('dashicons-visibility'); } }); // toggle opacity jQuery('.ti-toggle-opacity').css('opacity', 1); /*************************************************************************/ /* TOGGLE */ jQuery('#trustindex-plugin-settings-page .btn-toggle').on('click', function(event) { event.preventDefault(); jQuery(jQuery(this).attr('href')).toggle(); return false; }); /*************************************************************************/ /* FILTER */ // checkbox jQuery('.ti-checkbox:not(.ti-disabled)').on('click', function() { let checkbox = jQuery(this).find('input[type=checkbox], input[type=radio]'); checkbox.prop('checked', !checkbox.prop('checked')).trigger('change'); return false; }); // custom select - init jQuery('.ti-select').each(function() { let el = jQuery(this); let selected = el.find('ul li.ti-selected'); if (selected.length === 0) { selected = el.find('ul li:first'); } el.data('value', selected.data('value')).find('font').html(selected.html()); }); // custom select - toggle click jQuery(document).on('click', '.ti-select', function() { let el = jQuery(this); el.toggleClass('ti-active'); if (el.hasClass('ti-active')) { jQuery(window).unbind().on('click', function(event) { if (!jQuery(event.target).is(el) && jQuery(event.target).closest('.ti-select').length === 0) { el.removeClass('ti-active'); jQuery(window).unbind(); } }); } }); // custom select - select item jQuery(document).on('click', '.ti-select li', function() { let el = jQuery(this); el.parent().parent().data('value', el.data('value')).trigger('change').find('font').html(el.html()); el.parent().find('li').removeClass('ti-selected'); el.addClass('ti-selected'); }); var isNoReviewsWithFilter = false; // get reviews to memory var reviewsElement = jQuery('.ti-widget-editor-preview .ti-widget').clone(); // set reviews' rating and empty to attributes reviewsElement.find('.ti-review-item').each(function() { let el = jQuery(this); let rating = el.find('.ti-stars .ti-star.f, .stars .ti-star.f').length; // facebook recommendations if (el.find('.ti-recommendation-icon.positive').length) { rating = 5; } else if (el.find('.ti-recommendation-icon.negative').length) { rating = 1; } if (el.find('.ti-polarity-icon.positive').length) { rating = 5; } else if (el.find('.ti-polarity-icon.neutral').length) { rating = 3; } else if (el.find('.ti-polarity-icon.negative').length) { rating = 1; } // ten scale if (el.find('.ti-rating-box').length) { rating = Math.round(parseFloat(el.find('.ti-rating-box').text()) / 2); } let selector = '.ti-review-content'; if (el.find('.ti-review-content .ti-inner').length) { selector = '.ti-review-content .ti-inner'; } else if (el.find('.ti-review-text').length) { selector = '.ti-review-text'; } el.attr('data-rating', rating); if (typeof el.attr('data-empty') === 'undefined') { el.attr('data-empty', el.find(selector).text().trim() == "" ? 1 : 0); } }); // check badge type var isBadgeWidget = function() { let layoutId = jQuery('.ti-widget-editor-preview .ti-widget').data('layout-id'); return [ 11, 12, 20, 22, 24, 25, 26, 27, 28, 29, 35, 55, 56, 57, 58, 59, 60, 61, 62 ].indexOf(layoutId) != -1; }; // apply filter when change or init var applyFilter = function(init) { let styleId = parseInt(jQuery('.ti-widget').data('layout-id')); // get stars let stars = (jQuery('#ti-filter-star').data('value') + "").split(',').map(function(i) { return parseInt(i); }); // only ratings let showOnlyRatings = jQuery('#ti-filter-only-ratings').prop('checked'); // filter removed if (!jQuery('#ti-filter-star').length) { stars = [ 1, 2, 3, 4, 5 ]; showOnlyRatings = false; } // remove current review elements jQuery('.ti-widget .ti-reviews-container-wrapper .ti-review-item').remove(); // remove all event listeners on the widget let widget = document.querySelector('.ti-widget'); widget.replaceWith(widget.cloneNode(true)); // iterate through stored reviews let results = 0; reviewsElement.find('.ti-review-item').each(function() { let el = jQuery(this); // check rating if (stars.indexOf(el.data('rating')) !== -1) { // check only ratings if (showOnlyRatings && el.data('empty')) { return; } // return after 5 results (vertical widgets) if ([ '8', '9', '10', '18', '33' ].indexOf(styleId) !== -1 && results > 4) { return; } // clone and append element let clone = el.clone(); jQuery('.ti-widget-editor-preview .ti-widget .ti-reviews-container-wrapper').append(clone); clone.hide(); clone.fadeIn(); // increase count results++; } }); // clear pager interval if (typeof Trustindex !== 'undefined' && Trustindex.intervalPointer) { clearInterval(Trustindex.intervalPointer); } // show empty text if (results === 0 && !isBadgeWidget()) { jQuery('.ti-widget-editor-preview .ti-widget').hide().next().fadeIn(); isNoReviewsWithFilter = true; } else { jQuery('.ti-widget-editor-preview .ti-widget').fadeIn().next().hide(); isNoReviewsWithFilter = false; if (typeof Trustindex !== 'undefined') { Trustindex.pager_inited = true; Trustindex.init_pager(document.querySelectorAll('.ti-widget')); Trustindex.resize_widgets(); } } // ajax save if (init !== true) { jQuery.post('', { command: 'save-filter', _wpnonce: jQuery('#ti-filter-star').data('nonce'), filter: JSON.stringify({ 'stars': stars, 'only-ratings': showOnlyRatings }) }); } } // hooks jQuery('#ti-filter-star').on('change', applyFilter); jQuery('#ti-filter-only-ratings').on('change', function(event) { event.preventDefault(); applyFilter(); return false; }); // init if (reviewsElement.length) { applyFilter(true); } // background post save - style and set change jQuery('#ti-widget-selects select, #ti-widget-options input[type=checkbox]:not(.no-form-update)').on('change', function() { let form = jQuery(this).closest('form'); let data = form.serializeArray(); // include unchecked checkboxes form.find('input[type=checkbox]:not(.no-form-update)').each(function() { let checkbox = jQuery(this); if (!checkbox.prop('checked') && checkbox.attr('name')) { data.push({ name: checkbox.attr('name'), value: 0 }); } }); // show loading jQuery('#ti-loading').addClass('ti-active'); jQuery('li.ti-preview-box').addClass('disabled'); jQuery.ajax({ url: form.attr('action'), type: 'post', dataType: 'application/json', data: data }).always(() => location.reload(true)); return false; }); // layout select filter jQuery('input[name=layout-select]').on('change', function(event) { event.preventDefault(); let ids = (jQuery('input[name=layout-select]:checked').data('ids') + "").split(','); console.log('filter', ids); if (ids.length === 0 || ids[0] === "") { jQuery('.ti-preview-boxes-container').find('.ti-full-width, .ti-half-width').fadeIn(); } else { jQuery('.ti-preview-boxes-container').find('.ti-full-width, .ti-half-width').hide(); ids.forEach(id => jQuery('.ti-preview-boxes-container').find('.ti-preview-boxes[data-layout-id="'+ id + '"]').parent().fadeIn()); } return false; }); /*************************************************************************/ /* MODAL */ jQuery(document).on('click', '.btn-modal-close', function(event) { event.preventDefault(); jQuery(this).closest('.ti-modal').fadeOut(); }); jQuery(document).on('click', '.ti-modal', function(event) { if (event.target.nodeName !== 'A') { event.preventDefault(); if (!jQuery(event.target).closest('.ti-modal-dialog').length) { jQuery(this).fadeOut(); } } }); /*************************************************************************/ /* NOTICE HIDE */ jQuery(document).on('click', '.ti-notice.is-dismissible .notice-dismiss', function() { let button = jQuery(this); let container = button.closest('.ti-notice'); container.fadeOut(200); if (button.data('command') && !button.data('ajax-run')) { button.data('ajax-run', 1); // prevent multiple triggers jQuery.post('', { command: button.data('command') }); } }); jQuery('.ti-checkbox input[type=checkbox][onchange]').on('change', function() { jQuery('#ti-loading').addClass('ti-active'); }); /*************************************************************************/ /* DROPDOWN */ // change dropdown arrow positions let fixDropdownArrows = function() { jQuery('.ti-button-dropdown-arrow').each(function() { let arrow = jQuery(this); let button = arrow.closest('td').find(arrow.data('button')); // add prev buttons' width let left = 0; button.prevAll('.ti-btn').each(function() { left += jQuery(this).outerWidth(true); }); // center the arrow left += button.outerWidth() / 2; arrow.css('left', left + 'px'); }); }; fixDropdownArrows(); /*************************************************************************/ /* AI REPLY */ let generateAiReply = function(text, callback) { let tiWindow = window.open('', 'trustindex-generate-ai-reply', 'width=500,height=500,menubar=0' + popupCenter(500, 500)); let form = document.createElement('form'); let input = document.createElement('input'); // create form to pass POST data form.target = 'trustindex-generate-ai-reply'; form.method = 'POST'; form.action = 'https://admin.trustindex.io/integration/generateAiReply'; form.style.display = 'none'; // data will be in a hidden input input.type = 'hidden'; input.name = 'json'; input.value = JSON.stringify({ text: text, language: jQuery('#ti-widget-language').val() }); form.appendChild(input); // add form to body document.body.appendChild(form); if (tiWindow) { form.submit(); } // remove added form form.remove(); // popup close interval let timer = setInterval(function() { if (tiWindow.closed) { callback(false); clearInterval(timer); } }, 1000); // wait for response from Trustindex jQuery(window).one('message', function(event) { // event comes from the correct window if (tiWindow == event.originalEvent.source) { clearInterval(timer); callback(event.originalEvent.data.reply); tiWindow.close(); } }); }; let postReply = function(data, reconnect, callback) { let tiWindow = window.open('', 'trustindex-post-reply', 'width=600,height=600,menubar=0' + popupCenter(600, 600)); let form = document.createElement('form'); let input = document.createElement('input'); // create form to pass POST data form.target = 'trustindex-post-reply'; form.method = 'POST'; form.action = 'https://admin.trustindex.io/integration/postReply?type=google'; form.style.display = 'none'; if (reconnect) { form.action += '&reconnect=1'; } // data will be in a hidden input (JSON) input.type = 'hidden'; input.name = 'json'; input.value = JSON.stringify(data); form.appendChild(input); // add form to body document.body.appendChild(form); if (tiWindow) { form.submit(); } // remove added form form.remove(); // popup close interval let timer = setInterval(function() { if (tiWindow.closed) { callback(undefined); clearInterval(timer); } }, 1000); // wait for response from Trustindex jQuery(window).one('message', function(event) { // event comes from the correct window if (tiWindow == event.originalEvent.source) { clearInterval(timer); callback(!!event.originalEvent.data.success); tiWindow.close(); } }); }; // show reply section // - generate reply with AI if not edit jQuery(document).on('click', '.btn-show-ai-reply', function(event) { event.preventDefault(); let btn = jQuery(this); let td = btn.closest('td'); btn.addClass('ti-btn-loading').blur(); let replyBox = td.find('.ti-reply-box'); replyBox.find('.btn-post-reply').attr('data-reconnect', 0); replyBox.find('.ti-alert').addClass('ti-d-none'); // generate reply with AI if not edit if (replyBox.attr('data-state') === 'reply' || replyBox.attr('data-state') === 'copy-reply') { let data = JSON.parse(replyBox.next().html()); generateAiReply(data.review.text, function(reply) { btn.removeClass('ti-btn-loading'); // popup closed if (reply === false) { return; } btn.addClass('ti-btn-default-disabled'); replyBox.addClass('ti-active'); td.find('.ti-highlight-box').removeClass('ti-active'); td.find('.btn-show-highlight').removeClass('ti-btn-default-disabled'); let textarea = replyBox.find('.state-'+ replyBox.attr('data-state') +' textarea'); textarea.val(reply).focus().expand(); if (!data.review.text.trim()) { replyBox.find('.ti-alert.ti-alert-empty-review').removeClass('d-none'); } // save in DB jQuery.ajax({ method: 'POST', url: window.location.href, data: { 'save-reply-generated': 1 } }); }); } else { btn.removeClass('ti-btn-loading').addClass('ti-btn-default-disabled'); replyBox.addClass('ti-active'); td.find('.ti-highlight-box').removeClass('ti-active'); td.find('.btn-show-highlight').removeClass('ti-btn-default-disabled'); } }); // hide reply section jQuery(document).on('click', '.btn-hide-ai-reply', function(event) { event.preventDefault(); let btn = jQuery(this); btn.blur(); let replyBox = btn.closest('td').find('.ti-reply-box'); replyBox.attr('data-state', replyBox.attr('data-original-state')); if (replyBox.attr('data-state') !== 'replied') { replyBox.removeClass('ti-active'); } btn.closest('td').find('.btn-show-ai-reply').removeClass('ti-btn-default-disabled'); }); // show edit reply section jQuery(document).on('click', '.btn-show-edit-reply', function(event) { event.preventDefault(); let btn = jQuery(this); let replyBox = btn.closest('td').find('.ti-reply-box'); replyBox.attr('data-state', 'edit-reply'); replyBox.find('.state-edit-reply textarea').focus().expand(); }); // hide edit reply section jQuery(document).on('click', '.btn-hide-edit-reply', function(event) { event.preventDefault(); let btn = jQuery(this); let replyBox = btn.closest('td').find('.ti-reply-box'); replyBox.find('.ti-alert').addClass('ti-d-none'); replyBox.attr('data-state', 'replied'); }); // post reply jQuery(document).on('click', '.btn-post-reply', function(event) { event.preventDefault(); let btn = jQuery(this); let replyBox = btn.closest('td').find('.ti-reply-box'); let data = JSON.parse(replyBox.next().html()); let textarea = btn.closest('.ti-reply-box-state').find('textarea'); let reply = textarea.val().trim(); textarea.removeClass('is-invalid'); if (reply === "") { return textarea.addClass('is-invalid'); } btn.addClass('ti-btn-loading').blur(); data.reply = reply; postReply(data, btn.attr('data-reconnect') == 1, function(isSuccess) { btn.removeClass('ti-btn-loading'); // popup closed if (isSuccess === undefined) { return; } if (isSuccess) { // save in DB jQuery.ajax({ method: 'POST', url: window.location.href, data: { id: btn.attr('href'), _wpnonce: btn.data('nonce'), 'save-reply': reply } }); // show replied section replyBox.attr('data-state', 'replied').attr('data-original-state', 'replied'); replyBox.find('.state-replied p').html(reply); replyBox.find('.state-edit-reply textarea').val(reply); replyBox.find('.state-replied .ti-alert').removeClass('ti-d-none'); // change Reply with AI button text let replyButton = replyBox.closest('td').find('.btn-show-ai-reply:not(.btn-default)'); if (replyButton.length) { replyButton.html(replyButton.data('edit-reply-text')).addClass('btn-default'); setTimeout(fixDropdownArrows, 100); } } else { // set try again button state replyBox.find('.state-copy-reply .btn-try-reply-again').data('state', replyBox.attr('data-state')); // show copy section replyBox.attr('data-state', 'copy-reply'); replyBox.find('.state-copy-reply textarea').val(reply).focus().expand(); replyBox.find('.state-copy-reply .ti-alert').removeClass('ti-d-none'); } }); }); /*************************************************************************/ /* HIGHLIGHT */ // show highlight section jQuery(document).on('click', '.btn-show-highlight', function(event) { event.preventDefault(); let btn = jQuery(this); let td = btn.closest('td'); let replyBox = td.find('.ti-reply-box'); btn.addClass('ti-btn-default-disabled').blur(); td.find('.ti-highlight-box').addClass('ti-active'); replyBox.attr('data-state', replyBox.attr('data-original-state')); replyBox.removeClass('ti-active'); td.find('.btn-show-ai-reply').removeClass('ti-btn-default-disabled'); }); // hide highlight section jQuery(document).on('click', '.btn-hide-highlight', function(event) { event.preventDefault(); let btn = jQuery(this); let td = btn.closest('td'); btn.blur(); td.find('.ti-highlight-box').removeClass('ti-active'); td.find('.btn-show-highlight').removeClass('ti-btn-default-disabled'); td.find('.ti-reply-box[data-state="replied"]').addClass('ti-active'); if (td.find('.ti-reply-box').attr('data-state') === 'replied') { td.find('.btn-show-ai-reply').addClass('ti-btn-default-disabled'); } }); // highlight save jQuery(document).on('click', '.btn-save-highlight', function(event) { event.preventDefault(); let btn = jQuery(this); let highlightContent = btn.closest('td').find('.ti-highlight-content .ti-selection-content'); let data = TI_highlight_getSelection(highlightContent.get(0)); if (data.start !== null) { data.id = btn.attr('href'); data._wpnonce = btn.data('nonce'); data['save-highlight'] = 1; btn.addClass('ti-btn-loading').blur(); btn.closest('td').find('.ti-btn').css('pointer-events', 'none'); jQuery.ajax({ method: 'POST', url: window.location.href, data: data }).always(() => location.reload(true)); } }); // highlight remove jQuery(document).on('click', '.btn-remove-highlight', function(event) { event.preventDefault(); let btn = jQuery(this); btn.addClass('ti-btn-loading').blur(); btn.closest('td').find('.ti-btn').css('pointer-events', 'none'); jQuery.ajax({ method: 'POST', url: window.location.href, data: { id: btn.attr('href'), _wpnonce: btn.data('nonce'), 'save-highlight': 1 } }).always(() => location.reload(true)); }); // review download notification email jQuery(document).on('click', '.btn-notification-email-save', function(event) { event.preventDefault(); let container = jQuery(this).closest('.ti-notification-email'); let input = container.find('input[type="text"]'); let type = input.data('type'); let nonce = input.data('nonce'); let email = input.val().trim().toLowerCase(); // hide alerts container.find('.ti-notice').hide(); // check email if (email !== "" && !/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)) { return container.find('.ti-notice').fadeIn(); } // show loading jQuery('#ti-loading').addClass('ti-active'); // save email jQuery.post("", { 'save-notification-email': email, 'type': type, '_wpnonce': nonce }, () => location.reload(true)); }); }); // - import/btn-loading.js // loading on click jQuery(document).on('click', '.ti-btn-loading-on-click', function() { let btn = jQuery(this); btn.addClass('ti-btn-loading').blur(); }); // - import/copy-to-clipboard.js jQuery(document).on('click', '.btn-copy2clipboard', function(event) { event.preventDefault(); let btn = jQuery(this); btn.blur(); let obj = jQuery(btn.attr('href')); let text = obj.html() ? obj.html() : obj.val(); // parse html let textArea = document.createElement('textarea'); textArea.innerHTML = text; text = textArea.value; let feedback = () => { btn.removeClass('ti-toggle-tooltip').addClass('ti-show-tooltip'); if (typeof this.timeout !== 'undefined') { clearTimeout(this.timeout); } this.timeout = setTimeout(() => btn.removeClass('ti-show-tooltip').addClass('ti-toggle-tooltip'), 3000); }; if (!navigator.clipboard) { // fallback textArea = document.createElement('textarea'); textArea.value = text; textArea.style.position = 'fixed'; // avoid scrolling to bottom document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); feedback(); } catch (err) { } document.body.removeChild(textArea); return; } navigator.clipboard.writeText(text).then(feedback); }); // - import/feature-request.js jQuery(document).on('click', '.btn-send-feature-request', function(event) { event.preventDefault(); let btn = jQuery(this); btn.blur(); let container = jQuery('.ti-feature-request'); let email = container.find('input[name="email"]').val().trim(); let text = container.find('textarea[name="description"]').val().trim(); // hide errors container.find('.is-invalid').removeClass('is-invalid'); // check email if (email === "" || !/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)) { container.find('input[name="email"]').addClass('is-invalid'); } // check text if (text === "") { container.find('textarea[name="description"]').addClass('is-invalid'); } // there is error if (container.find('.is-invalid').length) { return false; } // show loading animation btn.addClass('ti-btn-loading'); let data = new FormData(jQuery('.ti-feature-request form').get(0)); // ajax request jQuery.ajax({ type: 'POST', data: data, cache: false, contentType: false, processData: false }).always(function() { btn.removeClass('ti-btn-loading'); btn.addClass('ti-show-tooltip').removeClass('ti-toggle-tooltip'); setTimeout(() => btn.removeClass('ti-show-tooltip').addClass('ti-toggle-tooltip'), 3000); }); }); // - import/rate-us.js // remember on hover jQuery(document).on('mouseenter', '.ti-quick-rating', function(event) { let container = jQuery(this); let selected = container.find('.ti-star-check.ti-active, .star-check.active'); if (selected.length) { // add index to data & remove all active stars container.data('selected', selected.index()).find('.ti-star-check, .star-check').removeClass('ti-active active'); // give back active star on mouse enter container.one('mouseleave', () => container.find('.ti-star-check, .star-check').eq(container.data('selected')).addClass('ti-active active')); } }); // star click jQuery(document).on('click', '.ti-rate-us-box .ti-quick-rating .ti-star-check', function(event) { event.preventDefault(); let star = jQuery(this); let container = star.parent(); // add index to data & remove all active stars container.data('selected', star.index()).find('.ti-star-check').removeClass('ti-active'); // select current star star.addClass('ti-active'); // show modals if (parseInt(star.data('value')) >= 4) { // open new window window.open(location.href + '&command=rate-us-feedback&_wpnonce='+ container.data('nonce') +'&star=' + star.data('value'), '_blank'); jQuery('.ti-rate-us-box').fadeOut(); } else { let feedbackModal = jQuery('#ti-rateus-modal-feedback'); if (feedbackModal.data('bs') == '5') { feedbackModal.modal('show'); setTimeout(() => feedbackModal.find('textarea').focus(), 500); } else { feedbackModal.fadeIn(); feedbackModal.find('textarea').focus(); } feedbackModal.find('.ti-quick-rating .ti-star-check').removeClass('ti-active').eq(star.index()).addClass('ti-active'); } }); // write to support jQuery(document).on('click', '.btn-rateus-support', function(event) { event.preventDefault(); let btn = jQuery(this); btn.blur(); let container = jQuery('#ti-rateus-modal-feedback'); let email = container.find('input[type=text]').val().trim(); let text = container.find('textarea').val().trim(); // hide errors container.find('input[type=text], textarea').removeClass('is-invalid'); // check email if (email === "" || !/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)) { container.find('input[type=text]').addClass('is-invalid').focus(); } // check text if (text === "") { container.find('textarea').addClass('is-invalid').focus(); } // there is error if (container.find('.is-invalid').length) { return false; } // show loading animation btn.addClass('ti-btn-loading'); container.find('a, button').css('pointer-events', 'none'); // ajax request jQuery.ajax({ type: 'post', dataType: 'application/json', data: { command: 'rate-us-feedback', _wpnonce: btn.data('nonce'), email: email, text: text, star: container.find('.ti-quick-rating .ti-star-check.ti-active').data('value') } }).always(() => location.reload(true)); });