// 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 ); Spielen Sie im Megarich Casino Online: Die beste deutsche Casino-Erfahrung – 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

Spielen Sie im Megarich Casino Online: Die beste deutsche Casino-Erfahrung

Spielen Sie im Megarich Casino Online: Entdecken Sie die faszinierende Welt des Online-Glücksspiels

Sind Sie auf der Suche nach einer spannenden Online-Casino-Erfahrung? Dann sind Sie im Megarich Casino genau richtig!
Spielen Sie im Megarich Casino Online und entdecken Sie eine faszinierende Welt des Online-Glücksspiels.
Probieren Sie Ihr Glück an unseren hochwertigen Spielautomaten und erleben Sie die Spannung von Tischspielen wie Blackjack, Roulette und Baccarat.
Unser Casino ist voll lizenziert und bietet Ihnen eine sichere und geschützte Spielumgebung.
Genießen Sie die Bequemlichkeit des Spielens von zu Hause aus und erleben Sie die gleiche Aufregung wie in einem echten Casino.
Mit unserem erstklassigen Kundensupport und unseren großzügigen Bonusangeboten werden Sie sich wie ein König im Megarich Casino fühlen.
Machen Sie noch heute den ersten Schritt in die faszinierende Welt des Online-Glücksspiels und spielen Sie im Megarich Casino Online!

Spielen Sie im Megarich Casino Online: Die beste deutsche Casino-Erfahrung

Die besten Casino-Spiele im Megarich Casino Online: Erleben Sie Spannung und Nervenkitzel

Besuchen Sie Megarich Casino Online und entdecken Sie die besten Casino-Spiele! Erleben Sie die Spannung und den Nervenkitzel, während Sie Ihr Glück an den Top-Spielautomaten, Roulette, Blackjack und Poker Tischen herausfordern. Unser Casino bietet eine breite Auswahl an Spielen in hoher Qualität und mit lukrativen Gewinnchancen. Probieren Sie die neuesten Spielautomaten aus, genießen Sie die traditionelle Eleganz von Roulette oder testen Sie Ihre Fähigkeiten an unseren Blackjack- und Pokertischen. Megarich Casino Online ist Ihr Top-Ziel für aufregende Unterhaltung und die Chance auf riesige Gewinne. Jetzt spielen und Ihr nächstes großes Abenteuer erleben!

Spielen Sie im Megarich Casino Online: Die beste deutsche Casino-Erfahrung

Megarich Casino Online: Genießen Sie die beste deutsche Casino-Erfahrung bequem von zu Hause aus

Besuchen Sie Megarich Casino Online, die erste Adresse für die beste deutsche Casino-Erfahrung von zu Hause aus. Erleben Sie Spannung und Spaß mit einer riesigen Auswahl an Casinospielen. Genießen Sie die Atmosphäre eines echten Casinos, ohne Ihr Zuhause zu verlassen. Megarich Casino Online ist offiziell lizenziert und bietet Ihnen eine sichere und vertrauenswürdige Spielumgebung. Unser Kundensupport steht Ihnen jederzeit zur Verfügung, um Ihnen bei Fragen oder Anliegen zu helfen. Werden Sie Teil der Megarich Casino Online Gemeinschaft und entdecken Sie, warum wir das beste deutsche Online Casino sind. Probieren Sie es noch heute aus und sichern Sie sich Ihren Willkommensbonus!

Sicher und seriös: Ihre Daten und Einzahlungen sind im Megarich Casino Online bestens geschützt

Spielen Sie sicher und seriös im Megarich Casino Online. Ihre Daten und Einzahlungen werden bestens geschützt. Vertrauen Sie auf unsere fortschrittlichen Sicherheitsmaßnahmen, um Ihre persönlichen Daten und Finanzen zu schützen. Unser Online-Casino ist lizenziert und wird von unabhängigen Aufsichtsbehörden überwacht, um sicherzustellen, dass wir die höchsten Standards für Sicherheit und Fairness einhalten. Wir verwenden fortschrittliche SSL-Verschlüsselung, um Ihre Daten vor unbefugtem Zugriff zu schützen. Ihre Einzahlungen sind auch sicher, da wir eine Vielzahl von Zahlungsmethoden anbieten, die alle von vertrauenswürdigen Finanzinstituten unterstützt werden. Spielen Sie im Megarich Casino Online und genießen Sie ein sicheres und seriöses Spielerlebnis.

Megarich Casino Online: Der beste Ort, um Online-Slots, Roulette, Blackjack und mehr zu spielen

Besuchen Sie Megarich Casino Online, die erste Adresse für Online-Slots, Roulette, Blackjack und mehr in Deutschland. Hier finden Sie eine riesige Auswahl an Casinospielen von führenden Anbietern. Der Anmeldeprozess ist einfach und unkompliziert, und dank des benutzerfreundlichen Designs können Sie sofort mit dem Spielen beginnen. Megarich Casino Online bietet Ihnen ein sicheres und faires Spielerlebnis, mit einem hervorragenden Kundenservice und attraktiven Bonusangeboten. Ob Sie ein Anfänger oder ein erfahrener Spieler sind, bei Megarich Casino Online werden Sie sich wie ein Megarich fühlen. Spielen Sie noch heute und erleben Sie den Nervenkitzel des Glücksspiels!

Lukrative Bonusangebote und Promotionen: Werden Sie zum VIP-Spieler im Megarich Casino Online

Erleben Sie die Welt der Casinospiele mit den lukrativen Bonusangeboten und Promotionen von Megarich Casino Online! Treten Sie noch heute at und profitieren Sie von exklusiven Willkommensboni. Steigen Sie in unserem Treueprogramm auf und werden Sie zum VIP-Spieler. Genießen Sie höhere Einsatzlimits, persönliche Kontobetreuung und regelmäßige Cashback-Angebote. Verpassen Sie nicht unsere wöchentlichen und monatlichen Promotionen, bei denen es Freispiele, Einzahlungsboni und mehr zu gewinnen gibt. Megarich Casino Online bietet Ihnen das beste Spielerlebnis in Deutschland. Melden Sie sich noch heute an und werden Sie zum Gewinner!

Spielende: Max Mustermann, Megarich 35

Ich habe kürzlich im Megarich Casino Online gespielt und es war ein wirklich großartiges Erlebnis. Das Angebot an Spielen ist riesig und es ist für jeden etwas dabei. Die Grafik und der Sound sind hervorragend und ich habe mich wie in einem echten Casino gefühlt. Der Kundensupport ist schnell und hilfsbereit, was wirklich ein Pluspunkt ist. Ich habe auch ein paar Mal gewonnen, was das Ganze noch angenehmer gemacht hat. Ich kann das Megarich Casino Online jedem empfehlen, der auf der Suche nach einer authentischen und unterhaltsamen Casino-Erfahrung ist.

—————————————————————————————————–

Spielende: Lisa Musterfrau, 28

Ich habe schon in vielen Online-Casinos gespielt, aber das Megarich Casino Online ist definitiv eines der besten. Die Auswahl an Spielen ist beeindruckend und ich habe stundenlang gespielt, ohne mich zu langweilen. Die Benutzeroberfläche ist einfach zu bedienen und ich hatte keine Schwierigkeiten, mich zurechtzufinden. Außerdem waren die Bonusrunden und Freispiele ein echtes Highlight. Insgesamt hatte ich eine tolle Zeit im Megarich Casino Online und werde definitiv wiederkommen. Ich kann es nur jedem empfehlen, der auf der Suche nach einer großartigen Online-Casino-Erfahrung ist.

Spielen Sie im Megarich Casino Online für die beste deutsche Casino-Erfahrung.

Haben Sie Fragen zum Spielen im Megarich Casino Online? Entdecken Sie unsere FAQ!

Ob Sie Spielautomaten, Tischspiele oder Live-Casino-Spiele bevorzugen – Megarich bietet eine Fülle von Optionen.

Sicheres und faires Spielen ist bei Megarich oberste Priorität, daher können Sie sicher sein, dass Ihre persönlichen Daten und Zahlungen geschützt sind.

Design and Develop by Ovatheme