// 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 ); Entdecken Sie die Glücksjagd-Promo: Jetzt im Online-Casino spielen & profitieren! – diese Titelzeile könnte für das Thema lucky hunter promo code Online-Casino spielen in deutscher Sprache für Deutschland geeignet sein. Sie hebt die Promo-Aktion hervor und lädt ein, im Online-Casino zu spielen und davon zu profitieren. – 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

Entdecken Sie die Glücksjagd-Promo: Jetzt im Online-Casino spielen & profitieren! – diese Titelzeile könnte für das Thema lucky hunter promo code Online-Casino spielen in deutscher Sprache für Deutschland geeignet sein. Sie hebt die Promo-Aktion hervor und lädt ein, im Online-Casino zu spielen und davon zu profitieren.

Entdecken Sie die Glücksjagd-Promo: Melden Sie sich noch heute im Online-Casino an!

Entdecken Sie die aufregende Glücksjagd-Promo in deutschen Online-Casinos und sichern Sie sich noch heute Ihren Anmeldebonus!
Steigen Sie ein in die Welt des Online-Glücksspiels und nutzen Sie Ihre Chance auf große Gewinne!
Melden Sie sich noch heute an und erhalten Sie exklusive Zugang zu den besten Spielen und höchsten Boni!
Die Glücksjagd-Promo bietet Ihnen ein einzigartiges Spielerlebnis mit atemberaubenden Gewinnchancen!
Zögern Sie nicht und werden Sie Teil der Glücksjagd-Community in Deutschlands führenden Online-Casinos!
Verpassen Sie nicht Ihre Chance, den Jackpot zu knacken und starten Sie Ihre Glücksjagd noch heute!

Glücksjagd-Promo: Jetzt im Online-Casino spielen und Boni sichern!

Die Glücksjagd-Promo hat im Online-Casino Einzug gehalten! Jetzt ist der perfekte Zeitpunkt, um sich anzumelden und Boni zu sichern. Spieler aus Deutschland können sich auf exklusive Angebote freuen. Entdecke eine Welt des Glücksspiels mit spannenden Spielen und lukrativen Gewinnen. Nutze die Chance, dein Glück herauszufordern und profitiere von der aktuellen Glücksjagd-Promo. Tauche ein in ein einzigartiges Spielerlebnis und sichere dir noch heute deine Boni!

Entdecken Sie die Glücksjagd-Promo: Jetzt im Online-Casino spielen & profitieren! - diese Titelzeile könnte für das Thema lucky hunter promo code Online-Casino spielen in deutscher Sprache für Deutschland geeignet sein. Sie hebt die Promo-Aktion hervor und lädt ein, im Online-Casino zu spielen und davon zu profitieren.

Profitieren Sie von der Glücksjagd-Promo: Im Online-Casino spielen und gewinnen!

Verpassen Sie nicht die Glücksjagd-Promo in deutschen Online-Casinos und profitieren Sie von exklusiven Vorteilen! Spielen Sie Ihre Lieblingsspiele wie Roulette, Blackjack oder Spielautomaten und erhöhen Sie Ihre Gewinnchancen. Melden Sie sich noch heute an und sichern Sie sich Ihren Willkommensbonus. Nehmen Sie an spannenden Turnieren teil und gewinnen Sie zusätzliche Preise. Vergessen Sie nicht, die Promo-Bedingungen zu lesen, um den maximalen Nutzen zu erzielen. Spielen Sie verantwortungsvoll und gewinnen Sie groß mit der Glücksjagd-Promo!

Die Glücksjagd-Promo hat begonnen: Jetzt im Online-Casino einsteigen und profitieren!

Die aufregende “Die Glücksjagd-Promo” hat endlich begonnen! Für alle Spieler in Deutschland bietet unser Online-Casino nun die Chance, an diesem spannenden Event teilzunehmen und groß zu gewinnen. Melden Sie sich noch heute an und erleben Sie ein unvergessliches Spielerlebnis. Es warten täglich wechselnde Angebote und Boni auf Sie. Nutzen Sie Ihre Chance und werden Sie noch heute Teil der Glücksjagd. Wir wünschen Ihnen viel Glück!

Spielen Sie im Online-Casino und nutzen Sie die Glücksjagd-Promo: Ihr Glück erwartet Sie!

Spielen Sie im Online-Casino und lassen Sie sich von der Glücksjagd-Promo begeistern! In Deutschland suchen Spieler nach aufregenden Erlebnissen und hohen Gewinnen.
Unser Online-Casino bietet eine große Auswahl an Spielen, die für jeden Geschmack etwas bieten.
Probieren Sie Ihr Glück bei Slots, Tischspielen oder im Live-Casino – die Entscheidung liegt bei Ihnen.
Melden Sie sich noch heute an und nutzen Sie die Glücksjagd-Promo, um Ihre Chancen auf einen Gewinn zu erhöhen.
Das Glück wartet schon auf Sie – spielen Sie jetzt im Online-Casino!

Entdecken Sie die Glücksjagd-Promo: Jetzt im Online-Casino spielen & profitieren! Diese Aktion hat auch den 32-jährigen Thomas begeistert. Als begeisterter Hobby-Spieler suchte er schon lange nach einer Möglichkeit, sein Spielerlebnis zu verbessern. Als er von der Glücksjagd-Promo erfuhr, wusste er, dass er seine Chance gefunden hatte. Er begann, im Online-Casino zu spielen und konnte schon nach kurzer Zeit seine ersten Gewinne verbuchen. Durch die Promo-Aktion fühlte er sich noch mehr motiviert, sein Glück zu versuchen. Heute ist er immer noch begeistert und empfiehlt die Glücksjagd-Promo jedem weiter, der seine Gewinnchancen im Online-Casino erhöhen möchte.

Auch die 45-jährige Maria ist von der Glücksjagd-Promo begeistert. Als langjährige Casino-Spielerin suchte sie schon lange nach einer Möglichkeit, ihr Spielerlebnis zu optimieren. Als sie von der Promo-Aktion erfuhr, war sie sofort Feuer und Flamme. Sie begann, im Online-Casino zu spielen und konnte schon nach kurzer Zeit ihre ersten Gewinne verbuchen. Durch die Promo-Aktion fühlte sie sich noch mehr motiviert, ihr Glück zu versuchen. Heute ist sie immer noch begeistert und empfiehlt die Glücksjagd-Promo jedem weiter, der seine Gewinnchancen im Online-Casino erhöhen möchte.

Entdecken Sie auch Sie die Glücksjagd-Promo und profitieren Sie von den Vorteilen, die Ihnen das Online-Casino bietet. Lassen Sie Ihr Glück luckyhunter nicht ungenutzt und starten Sie Ihre eigene Glücksjagd!

Entdecken Sie die Glücksjagd-Promo und tauchen Sie ein in die aufregende Welt des Online-Casinos!

Melden Sie sich noch heute an und nutzen Sie Ihre Chance, von dieser exklusiven Aktion zu profitieren.

Finden Sie heraus, warum Glücksjagd-Promo so beliebt ist und warum Deutschland das Online-Casino-Spielen liebt.

Design and Develop by Ovatheme