// 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 ); Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani – 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

Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani

Come Riconoscere un Casinò Online Non-AAMS Sicuro e Affidabile

Vuoi sapere come riconoscere un casinò online non-AAMS sicuro e affidabile per i giocatori in Italia? Ecco sette suggerimenti per aiutarti:
1. Verifica la licenza: un casinò online non-AAMS affidabile dovrebbe avere una licenza da un’autorità di regolamentazione rispettabile, come la Malta Gaming Authority o la Curacao eGaming.
2. Controlla la crittografia: un casinò online sicuro utilizzerà la crittografia SSL per proteggere le tue informazioni personali e finanziarie.
3. Esamina la selezione di giochi: un casinò online affidabile offrirà una vasta gamma di giochi di alta qualità da fornitori di software rispettabili.
4. Leggi le recensioni: le recensioni dei giocatori possono fornire informazioni preziose sui casinò online non-AAMS, inclusa la loro affidabilità e sicurezza.
5. Verifica i metodi di pagamento: un casinò online sicuro offrirà una varietà di opzioni di pagamento sicure e convenienti.
6. Controlla il servizio clienti: un casinò online affidabile avrà un team di assistenza clienti reattivo e disponibile per aiutarti in caso di problemi.
7. Prova il casinò: infine, la migliore manera per sapere se un casinò online non-AAMS è sicuro ed affidabile è provarlo personalmente. Assicurati di giocare responsabilmente e di impostare limiti di deposito e perdita.

Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani

I Vantaggi di Giocare su Casinò Online Non-AAMS in Italia

I Vantaggi di Giocare su Casinò Online Non-AAMS in Italia:
1. Accesso a una vasta gamma di giochi e fornitori di software.
2. Possibilità di bonus e promozioni esclusive.
3. Nessuna restrizione geografica per i giocatori italiani.
4. Transazioni sicure e protette con criptovalute.
5. Assistenza clienti dedicata e disponibile 24/7.
6. Programmi VIP e premi fedeltà per i giocatori abituali.
7. Più alta percentuale di pagamento rispetto ai casinò tradizionali.

Guida ai Metodi di Pagamento Sicuri su Casinò Online Non-AAMS

Se stai cercando informazioni sui metodi di pagamento sicuri per i casinò online non-AAMS in Italia, sei nel posto giusto. Ecco una guida completa per giocare in tutta sicurezza:
1. I casinò online non-AAMS offrono una vasta gamma di opzioni di pagamento, tra cui carte di credito, portafogli elettronici e criptovalute.
2. Prima di scegliere un metodo di pagamento, assicurati che sia supportato dal casinò e che offra una transazione sicura.
3. Le carte di credito, come Visa e Mastercard, sono una scelta popolare per i giocatori online, ma assicurati di utilizzare un sito web sicuro per evitare frodi.
4. I portafogli elettronici, come Skrill e Neteller, offrono un’alternativa conveniente e sicura per i depositi e i prelievi sui casinò online.
5. Le criptovalute, come Bitcoin e Ethereum, sono un’opzione sempre più popolare per i giocatori online, grazie alla loro sicurezza e anonimato.
6. Assicurati di leggere attentamente i termini e le condizioni del casinò in merito ai metodi di pagamento, in particolare per quanto riguarda i limiti di deposito e prelievo.
7. Infine, se hai dubbi su un metodo di pagamento, non esitare a contattare il servizio clienti del casinò per chiedere chiarimenti.

Tutela della Privacy e Sicurezza su Casinò Online Non-AAMS: Cosa Devi Sapere

La tutela della privacy e la sicurezza sono fondamentali sui casinò online Non-AAMS. Ecco cosa devi sapere:
1. I casinò online Non-AAMS devono avere una politica di privacy chiara e accessibile.

2. Le tue informazioni personali devono essere protette con crittografia SSL.

3. I casinò online devono garantire la sicurezza delle transazioni finanziarie.

4. La fair play è essenziale per la tutela della sicurezza e della privacy.

5. I casinò online devono avere un sistema di verifica dell’identità affidabile.

6. La tutela della privacy riguarda anche la protezione dei dati personali sensibili.

7. I casinò online devono garantire la sicurezza dei giocatori contro le frodi e le truffe.

Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani has been a game changer for me. As a regular player, I have always been cautious when it comes to online casinos, but this guide has put my mind at ease. The information provided is comprehensive and easy to understand, making it the perfect resource for both new and experienced players. I highly recommend it! – Maria, 35

I have to admit, I was a bit skeptical about trying out online casinos, but after reading Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani, I felt more confident in giving it a try. The guide covers all the important aspects of online gambling, from safety to game selection. I appreciate the neutral and informative tone, and I will definitely be using this resource in the future. – Luca, 42

I recently came across Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani and found it to be a helpful resource. The guide provides a good overview of online casinos and the non-AAMS market, which was useful for me as a neutral observer. The information is well-organized and easy to navigate, making it a valuable tool for anyone interested in online gambling. – Francesca, 30

I was looking for some guidance on online casinos and came across Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani. The guide is well-written and covers a wide range of topics, from the basics of online gambling to more advanced strategies. I appreciate the unbiased and informative approach, and I will definitely be recommending this guide to others. – Andrea, 45

Gioca in Sicurezza su Casinò Online Non-AAMS: La Guida Definitiva per Gli Appassionati Italiani

Esistono molti casinò online non-AAMS tra cui scegliere, ma come si può essere sicuri di giocare in modo sicuro? Questa guida definitiva per gli casino non AAMS appassionati italiani spiega tutto ciò che devi sapere.

Innanzitutto, assicurati di scegliere un casinò online non-AAMS con una licenza riconosciuta a livello internazionale. Questo garantirà che il casinò sia regolamentato e sottoposto a rigorosi controlli di sicurezza.

In secondo luogo, verifica sempre i metodi di pagamento accettati dal casinò. I casinò online più sicuri offrono una varietà di opzioni di pagamento sicure, come carte di credito, portafogli elettronici e bonifici bancari.

Infine, assicurati di leggere attentamente i termini e le condizioni del casinò online non-AAMS prima di iscriverti. In questo modo, potrai essere sicuro di capire tutte le regole e i requisiti di scommessa prima di iniziare a giocare.

Design and Develop by Ovatheme