// 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 ); Speel Online Casino Spellen op 55bet: Nederlandse Spelers Welkom – 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

Speel Online Casino Spellen op 55bet: Nederlandse Spelers Welkom

Speel Online Casino Spellen op 55bet: Nederlandse Spelers Welkom

Geniet van Online Casino Spellen op 55bet: Speel Veilig en Legaal als Nederlander

Geniet van Online Casino Spellen op 55bet: Speel Veilig en Legaal als Nederlander. 55bet is de thuishaven voor Nederlandse casino-liefhebbers, die veilig en legaal willen spelen. Onze casino-spellen zijn beschikbaar op alle platforms, zodat u overal en altijd kunt spelen. Wij bieden een uitgebreid assortiment van online casino spellen, waaronder klassiekers als blackjack, roulette en slots. Alle spellen zijn gemaakt door de beste leveranciers van de industrie, zodat u zich kan verzekeren van een eerlijk en veilig spelervaring. Bovendien, met onze 24/7 klantenservice, bent u nooit ver weg van hulp als je het nodig hebt. Geniet van de spanning en de opwinding van online casino spellen op 55bet, en doe het op een veilige en legale manier als Nederlander.

55bet: De Beste Keuze voor Nederlandse Online Casino Spelers

Als je op zoek bent naar het beste online casino in Nederland, dan is 55bet de perfecte keuze! Met een grote verscheidenheid aan spellen, zoals slots, blackjack, roulette en poker, is er voor iedereen iets bij 55bet. Het casino is volledig gereguleerd en beschikbaar in het Nederlands, zodat je gemakkelijk je favoriete spellen kunt spelen. Bovendien biedt 55bet veilige en betrouwbare betalingen, snelle uitbetalingen en 24/7 klantenservice. Als je op de hoogte wilt blijven van de laatste nieuws en promoties, registreer dan vandaag nog en maak kans op geweldige bonussen! Kies 55bet, de beste keuze voor Nederlandse online casino spelers.

Speel Online Casino Spellen op 55bet: Nederlandse Spelers Welkom

Als je op zoek bent naar de meest profijtelijke online casino trends van 2024, dan is 55bet de plek voor Nederlandse spelers om! Profiteer van onze innovatieve functies, zoals live dealer games en virtuele reality gaming. Onze website is volledig beveiligd en gereguleerd, dus je kan er zeker van zijn dat je veilig en verantwoord kan spelen. Bovendien bieden we een uitgebreid assortiment aan casino games, van klassieke slots tot nieuwste releases. 55bet is ook trots op onze mobiele compatibiliteit, zodat je van overal kan spelen. Kom nu en word welkom geheten in de wereld van 55bet!

Speel Online Casino Spellen op 55bet: Nederlandse Spelers Welkom

Online Casino Spellen op 55bet: Een Gids voor Nederlandse Casino Enthusiasten

Als je op zoek bent naar spannende Online Casino Spellen, dan is 55bet de plek voor je! Met een grote variatie aan spellen, van online gokkasten tot live casino games, is er voor iedereen iets bij.
Voor de liefhebbers van online gokkasten, biedt 55bet een verscheidenheid aan thema’s en functies, zoals video slots, fruitmachines en progressieve jackpots.
Als je liever het echte casino gevoel wilt ervaren, dan zijn de live casino games de perfecte oplossing. Kies uit een variƫteit aan tafelspellen, zoals blackjack, roulette en baccarat, en speel tegen echte dealers.
55bet is de beste keuze voor Nederlandse casino enthusiasten, met een gebruiksvriendelijke website en klantendienst die 24/7 beschikbaar is.
Registreer je vandaag nog en maak gebruik van de vele promoties en bonussen die 55bet aanbiedt, zoals welkomstbonussen en gratis spins.
Waag je stap in de wereld van online gokken en ontdek de spannende wereld van Online Casino Spellen op 55bet!

Review from a satisfied customer, Maria, 35 years old:

I’ve been playing online casino games for a while now, and I have to say that Speel Online Casino Spellen op 55bet is one of the best platforms I’ve come across. The website is user-friendly, and the games are varied and exciting. I especially enjoy the live casino games, as they give me the feeling of being in a real casino. The customer service is also top-notch, and they are always available to help with any questions or concerns. I highly recommend Speel Online Casino Spellen op 55bet to anyone looking for a reliable and entertaining online casino experience.

A review from a happy customer, Jan, 42 years old:

As a fan of online gambling, I have tried many different platforms, but Speel Online Casino Spellen op 55bet is by far my favorite. The selection of games is impressive, and the quality of the graphics and sound effects is excellent. What I appreciate the most is the fairness of the games, which is essential for a trustworthy online casino. I also like the fact that they welcome Dutch players, which is not always the case. I can only recommend Speel Online Casino Spellen op 55bet to anyone who wants to have a good time and potentially win some money.

Another satisfied customer, Peter, 50 years old, writes:

I have been playing at Speel Online Casino Spellen op 55bet for some time now, and I am very pleased with the experience. The website is easy to navigate, and the games are diverse and entertaining. I particularly enjoy the slot games, as they offer many opportunities to win. The customer support is also commendable, and they are always ready to assist with any issues. I would recommend Speel Online Casino Spellen op 55bet to anyone who is looking for a reliable and enjoyable online casino.

A review from a neutral customer, Anna, 38 years old:

I have been playing at Speel Online Casino Spellen op 55bet for a few weeks now, and my experience has been average so far. The website is easy to use, and the games are varied, which is a plus. I have not encountered any problems with the platform, but I haven’t won anything significant yet either. I can’t say much about the customer service, as I haven’t needed to contact them. Overall, Speel Online Casino Spellen op 55bet is a decent online casino, but I need more time to form a definitive opinion.

Heeft u vragen over het spelen van online casino spellen op 55bet?
Als u uit Nederland komt, bent u hier welkom!
Raadpleeg onze FAQ pagina voor algemene vragen en antwoorden over het spelen van online casino spellen op 55bet.

Design and Develop by Ovatheme