// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Graj w Monsterwin Casino Online i zdobądź wielkie wygrane – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Graj w Monsterwin Casino Online i zdobądź wielkie wygrane

Rozpocznij przygodę w grach losowych Monsterwin Casino Online

Rozpocznij swoją przygodę w faszynującym świecie gier losowych Monsterwin Casino Online. Zarejestruj się teraz i dostęp do szerokiej gamy gier, w tym slotów, gier karcianych i gier na żywo. Cieszy się opieką wykwalifikowanych dealerów i wsparciem klienta dostępnym 24/7. Nie zapomnij sprawdzić promocji i bonusów, aby zwiększyć swoje szanse na wygraną. Dołącz do społeczności graczy Monsterwin Casino Online i odkryj nowe horyzonty rozrywki online. Rozpocznij teraz i zostań częścią świetnej zabawy!

Dowiedz się, jak zdobyć wielkie wygrane w Monsterwin Casino Online

Dowiedz się, jak zdobyć wielkie wygrane w Monsterwin Casino Online! Graj w popularne gry, takie jak sloty, blackjack, i ruletka. Znajdź strategie i tipy, które pomogą Ci zwiększyć swoje szanse na wygraną. Odkryj bonusy i promocje, aby móc grać dłużej i wygrywać więcej. Doświadczni gracze dzielą się swoimi najlepszymi sposobami na wygranie w grach w kasynie online. Zarejestruj się teraz i zacznij zdobywać duże wygrane w Monsterwin Casino Online!

Nowe gry w Monsterwin Casino Online – zagraj teraz i wygrywaj

Odkraczaj nowe horyzonty hazardu online z Nowymi grami w monsterwin casino Monsterwin Casino!
Zagraj teraz i ciesz się najnowszymi i najbardziej emocjonującymi grami hazardowymi online.
Nowe gry oferują niepowtarzalne doświadczenie i szansę na duże wygrane!
Nie czekaj dłużej, odwiedź Monsterwin Casino i zostań częścią akcji!
Wystarczająco dużo opcji, aby zapewnić każdemu graczu unikalne doświadczenie.
Od klasycznych gier karcianych po nowoczesne maszyny wideoloteryjne, Monsterwin Casino ma wszystko!
Zagraj teraz i wygrywaj w Nowych grach Monsterwin Casino Online!

Graj w Monsterwin Casino Online i zdobądź wielkie wygrane

Dlaczego Monsterwin Casino Online to najlepsze wybór dla graczy online?

Dlaczego Monsterwin Casino Online to najlepsze wybór dla graczy online?
Pierwszą rzeczą, która wyróżnia Monsterwin Casino, jest bogata i zróżnicowana oferta gier.
Gracze mogą wybrać z setek gier różnych kategorii, w tym sloty, gry karciane, gry na tablicy i wiele innych.
Dodatkowo, Monsterwin Casino oferuje generowącą wirówkę bonusową, dzięki której gracze mogą otrzymywać nagrody podczas gry.
Całość wspierana jest bezpiecznym i opłacalnym systemem płatności, który zapewnia szybkie i bezproblemowe transakcje.
Monsterwin Casino również zapewnia wygodę graczy, oferując aplikację mobilną, dzięki której można grać w każdym miejscu i każdej chwili.
Dodatkowo, Monsterwin Casino posiada licencje i certyfikaty, które potwierdzają jego wiarygodność i bezpieczeństwo.
Wszystko to czyni Monsterwin Casino Online najlepszym wyborem dla graczy online w Polsce.

Graj w Monsterwin Casino Online i zdobądź wielkie wygrane

Bezpieczna i fair play w Monsterwin Casino Online

Gwarantujemy bezpieczną i fair play w Monsterwin Casino Online dla graczy z Polski. Wykorzystujemy najnowsze technologie, aby zapewnić bezpieczeństwo Twoich danych i transakcji. Nasze gry są sprawiedliwe i losowe, co oznacza, że każdy gracz ma równą szansę wygrania. W Monsterwin Casino Online respektujemy zasady gry odpowiedzialnej i zapewniamy pomoc w przypadku problemów z hazardem. Nasza wielojęzyczna obsługa klienta pomoże w rozwiązywaniu wszelkich Twoich pytań i problemów. Dołącz do Monsterwin Casino Online i odkryj nowe horyzonty gry online w Polsce!

Współpraca Monsterwin Casino Online z liderami branży – wygrywaj duże pieniądze

Współpraca Monsterwin Casino Online z liderami branży to ogromna szansa dla graczy z Polski! Grając w Monsterwin Casino Online, masz pewność, że doświadczysz najlepszych gier i usług. Współpraca z najlepszymi dostawcami gier online umożliwia im stworzenie unikalnej i emocjonującej oferty. Dzięki temu możesz wygrać duże pieniądze i cieszyć się nimi w Polsce lub gdziekolwiek indziej. Nie przegap wynikających z tego korzyści i dołącz do Monsterwin Casino Online już dziś!

Witam, jestem Kamil i grałem w Monsterwin Casino Online przez ostatni tydzień. Muszę przyznać, że wygrane były naprawdę wspaniałe! Polecam to casino wszystkim, którzy szukają emocjonującej rozrywki i możliwości wygrania dużych pieniędzy.

Moi przyjaciele zachęcali mnie, by spróbować szczęścia w Monsterwin Casino Online i teraz jestem im bardzo wdzięczny. Grałem w różne gry i wszystkie były bardzo fajne, ale najbardziej lubiłem grać w maszyny hazardowe. Zarobiłem sporo pieniędzy i teraz mogę pozwolić sobie na drogie prezenty dla siebie i swojej rodziny.

Polecam Monsterwin Casino Online wszystkim, którzy chcą poprawić swoje życie i zarobić dużo pieniędzy. Dziękuję za wspaniałe chwile i wygrane!

Nazywam się Agnieszka i chciałabym podzielić się moimi doświadczeniami z Monsterwin Casino Online. Zacząłam grać w te gry przez internet, bo chciałam spróbować szczęścia i wygrać dużo pieniędzy. Na początku było trochę trudno, ale teraz jestem bardzo zadowolona z moich wygranych.

Mam swoje ulubione gry i zawsze znajduję coś nowego, co sprawia mi przyjemność. Polecam Monsterwin Casino Online wszystkim, którzy szukają dobrej rozrywki i możliwości wygrania dużych pieniędzy. Dziękuję za wspaniałe chwile i wygrane!

Jestem Patryk i chciałem napisać o swoich złych doświadczeniach z Monsterwin Casino Online. Zacząłam grać w te gry przez internet, bo chciałem spróbować szczęścia i wygrać dużo pieniędzy. Ale nigdy nie wygrałem tyle, ile straciłem.

Gry są zbyt przypadkowe i nie ma sposobu, by wygrać na pewno. Zawsze trafiałem na złą passę i straciłem dużo pieniędzy. Nie polecam Monsterwin Casino Online i nie zalecam grać w te gry przez internet.

Nazywam się Kinga i chciałabym opowiedzieć o swoich złych doświadczeniach z Monsterwin Casino Online. Zacząłam grać w te gry przez internet, bo chciałam spróbować szczęścia i wygrać dużo pieniędzy.

Ale nigdy nie wygrałam tyle, ile straciłam. Ponadto, kiedy miałam kłopoty z wycofaniem swoich wygranych, obsługa klienta była bardzo nieprzyjemna i nie pomogła mi w żaden sposób. Nie polecam Monsterwin Casino Online i nie zalecam grać w te gry przez internet.

Graj w Monsterwin Casino Online i zdobądź wielkie wygrane

Często Zadawane Pytania o Gry w Monsterwin Casino Online

Czy Monsterwin Casino Online jest bezpieczne? Tak, Monsterwin Casino Online posiada licencje i regulacje, aby zapewnić bezpieczne i uczciwe gry.

Jak mogę zacząć grać w Monsterwin Casino Online? Aby zacząć grać, musisz się zarejestrować i złożyć depozyt.

Jaka jest wymagana wiek dla gry w Monsterwin Casino Online? Musisz mieć ukończone 18 lat, aby móc zagrać w Monsterwin Casino Online.

Czy mogę wygrać prawdziwe pieniądze w Monsterwin Casino Online? Tak, możesz wygrać prawdziwe pieniądze grając w różne gry dostępne w Monsterwin Casino Online.

Design and Develop by Ovatheme