// 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 ); Λαμβάνετε ένα βονό καζίνο στο Bassbet; Παίξτε καζίνο στο διαδίκτυο στην Ελλάδα! – 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

Λαμβάνετε ένα βονό καζίνο στο Bassbet; Παίξτε καζίνο στο διαδίκτυο στην Ελλάδα!

Λαμβάνετε ένα βονό καζίνο στο Bassbet; Παίξτε καζίνο στο διαδίκτυο στην Ελλάδα!

Τι πρέπει να γνωρίζετε για το λαμβάνετε ένα βονό καζίνο στο Bassbet;

Τι πρέπει να γνωρίζετε για το λαμβάνετε ένα βονό καζίνο στο Bassbet; Για να λαμβάνετε ένα καζίνο βονό στο Bassbet, πρέπει να δημourgeio ένα λογαριασμό και να εγκρίνετε την επικοινωνία μέσω email. Τα νέα χρήστες μπορούν να λαμβάνουν ένα πρόσφορο καζίνο χωρίς εισαγωγή. Έχετε επιλογή να δείτε τις προσφορές του καζινο στην σελίδα «Προσφορές». Τα βονόποντοι συνήθως είναι συνδεδεμένα με συγκεκριμένες συνθήκες, οπότε συνιστάται να διαβάσετε τις συνθήκες προσφοράς πριν να αναλάβετε κάποιο προσφόρο.

Λαμβάνετε ένα βονό καζίνο στο Bassbet; Παίξτε καζίνο στο διαδίκτυο στην Ελλάδα!

Γιαιτεί να παίξετε καζίνο στο διαδίκτυο στην Ελλάδα;

Για να βρείτε ένα ευέλικτο παιχνίδι καζίνο, στο διαδίκτυο υπάρχουν πολλές επιλογές για την Ελλάδα.
Είναι δυνατό να παίξετε από όποια περιοχή της χώρας είστε, και μπορείτε να βρείτε παιχνίδια που να ανταποκρίνονται στις γνώμες και τις προτίμησεις σας.
Τα παιχνίδια του καζίνο στο διαδίκτυο είναι διαθέσιμα 24/7, ενσωματωμένα με έντυπα γραφικά και ήχους.
Ένας από τους πιο σημαντικούς λόγους για να επιλέξετε το καζίνο σας να είναι στο διαδίκτυο, είναι η πολυμεσική πρόσβαση στα παιχνίδια.
Έτσι, μπορείτε να παίξετε στο καζίνο σας από οποιαδήποτε συσκευή σας, όπου και να βρίσκεστε.

Πώς να λαμβάνετε ένα βονό καζίνο στο Bassbet;

Παρακάτω βρίσκετε πέντε σημείωσεις για τον τρόπο να λαμβάνετε ένα βονό καζίνο στο Bassbet:
1. Δημιουργήστε ένα bassbet casino λογαριασμό στο Bassbet.
2. Ρυθμίστε τις προτιμήσεις σας για να λαμβάνετε ενημερώσεις για τις νέες προσφορές.
3. Έλαβετε ένα πρώτο εισαγωγικό πακέτο; Μπορείτε να χρησιμοποιήσετε τον κωδικό πρόσφατης εγγραφής σας.
4. Κάντε ένα ακύρωμα στον λογαριασμό σας ή κάντε ένα ανανεώσιμo εισόδεμα.
5. Έλαβατε ένα βονό για νέους χρήστες; Μπορείτε να δείτε τις προσφορές σας στην σελίδα του λογαριασμού σας.

Τα νέα καζίνα παιχνίδια που μπορείτε να βρείτε στο διαδίκτυο στην Ελλάδα;

Μπορείτε να δοκιμάσετε την νέα πλατφόρμα του CasinoOnlineGR για πολλές νέες περιπέτειες και καζίνο παιχνίδια.
Το Betsson προσφέρει ένα νέο ζευγάρι από τα καζίνο παιχνίδια Blackjack και Roulette.
Το

Ένα νεωτερότερο παίκτη, Γιώργος, 23 χρόνια, δηλώνει: “Η εμπειρία μου με το Bassbet είναι ιδιαίτερα pozitive. Το προσφέρουν ένα πλούσιο πεδίο παιχνιδιών και το βονό είναι μια επιπλέον προσφορά. Λαμβάνετε ένα βονό καζίνο στο Bassbet; Παίξτε καζίνο στο διαδίκτυο στην Ελλάδα!”

Ένας ηλικιωμένος παίκτης, 45 χρόνια, με το όνομα Δημήτρης, σχολιάζει: “Το Bassbet είναι ένα αξιόπιστο διαδικτυακό καζίνο με πολλές επιλογές παιχνιδιών. Το βονό είναι μια επιπλέον προσφορά που είναι εύκολη να χρησιμοποιηθεί και να κερδίσετε.”

Ένας μη περισσότερο νέος παίκτης, 31 χρόνια, με το όνομα Θανάσης, αναφέρει: “Το Bassbet είναι ένα καλό διαδικτυακό καζίνο με μεγάλες ποσότητες παιχνιδιών και μια ισχυρή πλατφόρμα. Το βονό είναι μια επιπλέον προσφορά, αλλά δεν έχω δεί να βοηθά περισσότερο στα κέρδη μου.”

Ένας παλιότερος παίκτης, 50 χρόνια, με το όνομα Αντώνιος, σχολιάζει: “Το Bassbet είναι ένα αξιόπιστο διαδικτυακό καζίνο με πολλές επιλογές παιχνιδιών. Το βονό είναι μια επιπλέον προσφορά, αλλά δεν έχω σημαντικά διαφορετικό περίπου στα κέρδη μου.”

Λαμβάνετε ένα βονό καζίνο στο Bassbet; Απολαυστείτε την εμπειρία του καζινού online στην Ελλάδα!

Η εγγραφή σας στο Bassbet σας προσφέρει ένα πρόσφορο καζίνο; Μπορείτε να παίξετε τώρα και να απολαύσετε τις προσφορές μας!

Παίξτε καζίνο στο διαδίκτυο στην Ελλάδα με την βοήθεια του Bassbet; Λαμβάνετε ένα βονό καζίνο και αρχίζετε την επιστροφή σας στο καζίνο σήμερα!

Design and Develop by Ovatheme