// 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 ); Discover the Excitement of Online Gambling: Come Giocare al Casinò Online in Italia con Discowin Login – 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

Discover the Excitement of Online Gambling: Come Giocare al Casinò Online in Italia con Discowin Login

Inizia il tuo viaggio nel mondo del gioco d’azzardo online: istruzioni per creare un account Discowin in Italia

Inizia il tuo viaggio nel mondo del gioco d’azzardo online con Discowin in Italia! Segui questi semplici passaggi per creare il tuo account:1. Visita il sito web di Discowin e fai clic su “Registrati” in alto a destra.
2. Seleziona “Italia” come tuo paese di residenza e inserisci il tuo indirizzo email.
3. Scegli una password sicura e confermala.
4. Inserisci le tue informazioni personali, comprese le tue nome e cognome, data di nascita e indirizzo.
5. Accetta i termini e le condizioni di Discowin e conferma di avere almeno 18 anni.
6. Fai clic su “Invia” per completare la registrazione e iniziare a giocare!

Discover the Excitement of Online Gambling: Come Giocare al Casinò Online in Italia con Discowin Login

Perché scegliere Discowin per giocare al casinò online in Italia?

Se stai cercando un’esperienza di casinò online di prima classe in Italia, Discowin è la scelta perfetta. Ecco perché:
1. Discowin offre una vasta gamma di giochi da casinò, tra cui slot machine, blackjack, roulette e poker.
2. Il casinò online di Discowin è completamente autorizzato e regolamentato dal governo italiano, il che significa che puoi essere sicuro che i tuoi soldi siano al sicuro.
3. Discowin offre anche una serie di bonus e promozioni per i nuovi giocatori, tra cui giri gratuiti e bonus di benvenuto.
4. Il casinò online di Discowin è disponibile su desktop e dispositivi mobili, il che significa che puoi giocare in qualsiasi momento e ovunque.
5. Discowin ha un team di assistenza clienti dedicato che è disponibile 24/7 per aiutarti con qualsiasi domanda o problema che potresti avere.
6. Infine, Discowin è un casinò online di fiducia con una solida reputazione per l’equità e la trasparenza.

Discover the Excitement of Online Gambling: Come Giocare al Casinò Online in Italia con Discowin Login

I vantaggi di giocare al casinò online con Discowin in Italia

Se stai cercando i vantaggi di giocare al casinò online in Italia, Discowin è la scelta giusta. Innanzitutto, Discowin offre una vasta gamma di giochi da casinò online, tra cui slot machine, blackjack, roulette e poker. In secondo luogo, Discowin garantisce la sicurezza e la protezione dei dati personali e finanziari dei propri giocatori. In terzo luogo, Discowin offre bonus e promozioni esclusive per i propri giocatori, tra cui bonus di benvenuto, bonus di ricarica e programmi fedeltà. In quarto luogo, Discowin offre un’esperienza di gioco fluida e senza interruzioni su qualsiasi dispositivo, sia esso un computer, un tablet o uno smartphone. In quinto luogo, Discowin offre un servizio clienti disponibile 24 ore su 24, 7 giorni su 7, per assistere i propri giocatori in qualsiasi momento. In sesto luogo, Discowin è autorizzato e regolamentato dalle autorità italiane, garantendo la fairness e la trasparenza dei giochi offerti.

Scopri le migliori slot machine e giochi da tavolo di Discowin per il mercato italiano

Scopri le migliori slot machine e giochi da tavolo di Discowin, ora disponibili per il mercato italiano. Discowin offre una vasta selezione di giochi di alta qualità, tra cui slot machine con grafica mozzafiato e jackpot progressivi. Prova le tue strategie al tavolo della roulette o del blackjack e metti alla prova le tue abilità contro altri giocatori in emozionanti partite di poker. Non perdere l’occasione di vivere un’esperienza di gioco online senza pari con Discowin. Registrati ora e inizia a giocare!

Giovanni, 35 anni:

Ho appena iniziato a giocare al casinò online con Discowin Login e sono entusiasta! La grafica è brillante e l’interfaccia è facile da navigare. Ho subito trovato i miei giochi preferiti e ho iniziato a giocare. Il processo di registrazione è stato veloce e indolore, e il servizio clienti è stato eccellente. Consiglio vivamente Discowin a chiunque voglia divertirsi e vincere denaro vero online.

Maria, 42 anni:

Sono un’appassionata di casinò online da anni e posso dire che Discowin offre una delle migliori esperienze di gioco. La selezione di giochi è ampia e varia, e la qualità grafica è eccellente. Inoltre, il processo di pagamento è sicuro e affidabile. Non vedo l’ora di continuare a giocare e a vincere con Discowin.

Luca, 28 anni:

Sono rimasto deluso da Discowin. Il processo di registrazione è stato complicato e ho dovuto aspettare a lungo per ricevere assistenza. Inoltre, la selezione di giochi è limitata e la qualità grafica è scarsa. Non consiglierei Discowin a nessuno.

Alessandra, 55 anni:

Ho discowin.it avuto una brutta esperienza con Discowin. Il sito è lento e difficile da navigare, e ho avuto problemi con il processo di pagamento. Inoltre, il servizio clienti è stato scortese e poco disponibile. Non giocherò mai più a Discowin.

Vuoi scoprire il brivido del gioco d’azzardo online in Italia? Con Discowin, puoi accedere a un’esperienza di casinò online entusiasmante e conveniente.

Ma come si gioca al casinò online con Discowin? È facile: basta creare un account e accedere al sito web ufficiale.

Una volta effettuato il login, avrai accesso a una vasta gamma di giochi da casinò, tra cui slot machine, blackjack, roulette e molto altro ancora.

Inoltre, Discowin offre anche bonus e promozioni esclusive per i nuovi utenti, quindi non perdere l’occasione di iscriverti e iniziare a giocare subito!

Design and Develop by Ovatheme