// 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 ); Tauchen Sie ein in die Welt des Online-Glücksspiels: Erleben Sie tucancasino, das Casino online in Deutschland – 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

Tauchen Sie ein in die Welt des Online-Glücksspiels: Erleben Sie tucancasino, das Casino online in Deutschland

Entdecke Tucancasino: Das führende Online-Casino in Deutschland

Entdecke Tucancasino: Das führende Online-Casino in Deutschland. Erlebe eine breite Palette von Casino-Spielen, darunter Slots, Roulette, Blackjack und mehr. Genieße die bequeme und sichere Spielumgebung von Tucancasino. Profitiere von schnellen Auszahlungen und kompetentem Kundensupport. Spiele jetzt bei Tucancasino und erlebe die Zukunft des Online-Glücksspiels in Deutschland. Tucancasino – das beste Online-Casino in Deutschland erwartet dich!

Tauchen Sie ein in die Welt des Online-Glücksspiels: Erleben Sie tucancasino, das Casino online in Deutschland

Online-Glücksspiel in Deutschland: Tucancasino – Ihr sicheres und unterhaltsames Zuhause

Online-Glücksspiel in Deutschland hat mit Tucan Casino eine neue Heimat gefunden. Hier erleben Sie sicheres und unterhaltsames Spielen in einer ansprechenden Umgebung. Tucan Casino ist eine vertrauenswürdige Plattform mit einer breiten Palette von Spielen, einschließlich Slots, Tischspielen und Live-Casino-Spielen. Genießen Sie die Bequemlichkeit des Spielens von zu Hause aus und lassen Sie sich von der exotischen Atmosphäre des Tucan Casinos verzaubern. Das Casino ist voll lizenziert und bietet faire Spiele und sichere Zahlungen. Werden Sie Teil der Tucan Casino-Community und erleben Sie ein aufregendes Online-Glücksspiel-Erlebnis in Deutschland.

Willkommen in der Welt von Tucancasino: Das beste Online-Casino in Deutschland

Willkommen in der Welt von Tucancasino – dem besten Online-Casino in Deutschland! Wir bieten eine breite Palette von Casinospielen, die Sie begeistern werden. Genießen Sie unsere Spielautomaten, Tischspiele und Live-Casino-Spiele. Unser Casino ist lizenziert und reguliert, was Ihnen ein faires und sicheres Spielerlebnis garantiert. Wir bieten auch großzügige Boni und Promotionen für unsere Spieler an. Werden Sie noch heute ein Teil von Tucancasino und erleben Sie die Welt des Online-Glücksspiels auf eine neue Art und Weise!

Tucancasino: Erleben Sie die Spannung und den Nervenkitzel des Online-Glücksspiels in Deutschland

Tauchen Sie ein in die Welt des Online-Glücksspiels mit Tucancasino – erleben Sie Spannung und Nervenkitzel, direkt von zu Hause aus. Entdecken Sie eine riesige Auswahl an Spielen, von klassischen Tischspielen wie Blackjack und Roulette bis hin zu modernen Slots. Tucancasino ist die offizielle Seite erste Wahl für deutsche Spieler, die ein authentisches Casino-Erlebnis suchen. Unsere sichere und zuverlässige Plattform ist speziell auf den deutschen Markt zugeschnitten und bietet Ihnen eine beispiellose Spielvielfalt. Genießen Sie die Aufregung von Echtgeldspielen und erleben Sie die besten Online-Casino-Spiele in Deutschland. Treten Sie noch heute dem Tucancasino bei und erleben Sie die Faszination des Online-Glücksspiels!

Sichern Sie sich Ihren Willkommensbonus bei Tucancasino – Dem besten Online-Casino in Deutschland

Sichern Sie sich Ihren Willkommensbonus bei Tucancasino, dem besten Online-Casino in Deutschland! Registrieren Sie sich noch heute und erhalten Sie einen großzügigen Bonus auf Ihre erste Einzahlung. Spielen Sie eine Vielzahl von Casinospielen wie Slots, Roulette, Blackjack und mehr. Profitieren Sie von schnellen Auszahlungen und hervorragendem Kundenservice. Machen Sie Ihre erste Einzahlung und sichern Sie sich Ihren Willkommensbonus bei Tucancasino – dem besten Online-Casino in Deutschland. Entdecken Sie die Welt des Online-Glücksspiels mit uns!

Glücksspiel in Deutschland: Tucancasino bietet eine Vielzahl von Spielen und Gewinnmöglichkeiten

Erleben Sie das Glücksspiel in Deutschland auf eine neue Art mit Tucancasino. Entdecken Sie unsere vielfältige Spielauswahl, die von Klassikern wie Blackjack und Roulette bis hin zu modernen Slots reicht. Bei Tucancasino haben Sie die Chance, große Gewinne zu erzielen und Ihr Spielerlebnis zu maximieren. Unser Casino ist in deutscher Sprache verfügbar, um sicherzustellen, dass sich unsere deutschen Spieler wohlfühlen. Probieren Sie Ihr Glück noch heute aus und erleben Sie die Aufregung von Tucancasino!

Spielen Sie Ihre Lieblingsspiele in Ihrer Muttersprache und gewinnen Sie echtes Geld. Tucancasino ist stolz darauf, eine der besten Glücksspielplattformen in Deutschland zu sein. Unser Team arbeitet hart daran, unseren Spielern das beste Online-Casinoerlebnis zu bieten. Genießen Sie die Vielzahl von Spielen und Gewinnmöglichkeiten, die Tucancasino zu bieten hat.

Sind Sie auf der Suche nach einem zuverlässigen und vertrauenswürdigen Online-Casino in Deutschland? Dann sind Sie bei Tucancasino genau richtig. Wir bieten eine sichere und faire Spielumgebung, in der Sie Ihr Glücksspielabenteuer genießen können. Unsere Spiele sind von den führenden Softwareanbietern zertifiziert und werden regelmäßig überprüft, um sicherzustellen, dass sie den höchsten Standards entsprechen.

Tucancasino ist die Heimat der besten Online-Slots in Deutschland. Wir bieten eine riesige Auswahl an Spielautomaten, die für jeden Geschmack etwas bieten. Egal, ob Sie ein Fan von klassischen Slots oder modernen Video-Slots sind, wir haben sicherlich das Richtige für Sie. Unsere Slots sind vollgepackt mit Bonusfunktionen und Freispielen, die Ihre Gewinnchancen erhöhen.

Wenn Sie ein Fan von Tischspielen sind, werden Sie Tucancasino lieben. Wir bieten eine breite Palette von Tischspielen, die von Blackjack und Roulette bis hin zu Baccarat und Craps reichen. Unsere Tischspiele sind von höchster Qualität und bieten ein realistisches Casinoerlebnis. Spielen Sie gegen echte Dealer und erleben Sie die Aufregung von Tucancasino.

Tucancasino ist stolz darauf, eine große Auswahl an Live-Dealer-Spielen anzubieten. Spielen Sie Ihre Lieblingsspiele mit echten Dealern und genießen Sie die Interaktion mit anderen Spielern. Unsere Live-Dealer-Spiele sind in HD-Qualität und bieten ein realistisches Casinoerlebnis. Spielen Sie Blackjack, Roulette oder Baccarat mit echten Dealern und erleben Sie die Aufregung von Tucancasino.

Tucancasino ist die beste Wahl für Glücksspiel in Deutschland. Wir bieten eine sichere und faire Spielumgebung, eine riesige Auswahl an Spielen und großzügige Boni und Promotionen. Unser Team ist immer bereit, Ihre Fragen zu beantworten und Ihnen zu helfen. Melden Sie sich noch heute bei Tucancasino an und erleben Sie die Aufregung von Deutschlands bestem Online-Casino.

Positive Review 1:

“Ich liebe Tauchen Sie ein in die Welt des Online-Glücksspiels: Erleben Sie tucancasino, das Casino online in Deutschland! Ich habe schon auf vielen Online-Casino-Seiten gespielt, aber Tucan Casino ist mit Abstand mein Favorit. Die Spiele sind unterhaltsam und die Auszahlungen sind immer pünktlich. Ich kann Tucan Casino jedem empfehlen, der auf der Suche nach einem vertrauenswürdigen und unterhaltsamen Online-Casino ist.” – Max, 35

Positive Review 2:

“Ich habe kürzlich angefangen, Tauchen Sie ein in die Welt des Online-Glücksspiels: Erleben Sie tucancasino, das Casino online in Deutschland auszuprobieren und ich bin sehr beeindruckt. Die Seite ist einfach zu navigieren und die Spiele sind sehr unterhaltsam. Ich habe schon ein paar Mal gewonnen und die Auszahlungen waren immer schnell und einfach. Ich kann Tucan Casino auf jeden Fall weiterempfehlen.” – Lisa, 28

Negative Review:

“Ich habe nicht sehr gute Erfahrungen mit Tauchen Sie ein in die Welt des Online-Glücksspiels: Erleben Sie tucancasino, das Casino online in Deutschland gemacht. Die Spiele sind zwar unterhaltsam, aber ich hatte Probleme mit der Auszahlung meiner Gewinne. Es dauerte sehr lange und ich musste mehrere Male nachhaken, bis ich mein Geld endlich bekam. Ich werde in Zukunft lieber ein anderes Online-Casino nutzen.” – Markus, 42

Tauchen Sie ein in die Welt des Online-Glücksspiels mit tucancasino, dem Casino online für Deutschland. Hier finden Sie eine riesige Auswahl an Spielen, von Klassikern wie Blackjack und Roulette bis hin zu den neuesten Video-Slots.

Bei tucancasino können Sie sicher und geschützt spielen, dank unserer modernen Verschlüsselungstechnologie und unserem Engagement für verantwortungsvolles Spielen.

Registrieren Sie sich noch heute und erhalten Sie einen Willkommensbonus, mit dem Sie Ihr Spielerlebnis bei tucancasino noch weiter verbessern können.

Design and Develop by Ovatheme