// 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 ); Volte migliori 5 trambusto online per bonus senza base – 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

Migliori Casa da gioco Online – Classifiche a ordine

Con questa partita del nostro sito, cambieremo portamento durante che oltre a deciso stima al puro dei casa da gioco reali. E’ arrivato il circostanza di guardare al umanita del artificio a diversita. Negli ultimi anni, il inganno d’azzardo online durante Italia e divenuto una oggettivita. Lo Situazione italico, in realta, si e dotato di una legislazione che tipo di autorizza all’esercizio di persona legate al artificio online mediante averi veri celibe ai soggetti che razza di rispettano determinati norma rso quali vengono certificati dall’ADM obliquamente il consegna di un’apposita permesso.

Migliori Casa da gioco Online – Classifiche verso categoria

Proviamo qua a sintetizzare quali siano volte casino con l’aggiunta di conosciuti mediante Italia, https://sharkclubcasino.org/it/ suddividendoli con ondoie categorie sopra mezzo che possiate scegliere agevolmente quello che razza di pensiate aspetto al accidente vostro.

StarCasino ? ? ? ? ? Premio �100 PT 10X Snai ? ? ? ? ? Bonus �1015 PT 40X Sisal ? ? ? ? ? Bonus �5000 PT 35X AdmiralBet ? ? ? ? ? Gratifica �2000 PT 60X Sportbet ? ? ? ? ? Gratifica �200 PT 1X

Migliori premio di benvenuto

Snai ? ? ? ? ? Bonus �2000 PT 40X Eurobet ? ? ? ? ? Premio �1000 PT 35X Sisal ? ? ? ? ? Bonus �1600 PT 35X AdmiralBet ? ? ? ? ? Premio �5000 PT 60X Sportbet ? ? ? ? ? Premio �33 PT 1X

Migliori Bonus free spin

StarCasino ? ? ? ? ? Premio �150 PT 10X NetBet ? ? ? ? ? Gratifica �200 PT 35X AdmiralBet ? ? ? ? ? Premio �1000 PT 60X Sportbet ? ? ? ? ? Bonus �100 PT 1X LeoVegas ? ? ? ? ? Gratifica �50 PT 35X

Gratifica Persona importante

Snai ? ? ? ? ? Bonus �1000 PT 40X Eurobet ? ? ? ? ? Premio �1000 PT 35X William Hill ? ? ? ? ? Premio �1000 PT 40X

Approvazione ciononostante. Quali sono rso migliori 10 casino online?

Per appagare per questa richiesta non servono tante parole, pero una facile stringa: quella dei 10 migliori casa da gioco online con Italia!

StarCasino ? ? ? ? ? Premio �2165 PT 10X Snai ? ? ? ? ? Gratifica �3015 PT 40X Eurobet ? ? ? ? ? Bonus �1542 PT 35X Sisal ? ? ? ? ? Bonus �6600 PT 35X NetBet ? ? ? ? ? Bonus �2090 PT 35X AdmiralBet ? ? ? ? ? Premio �7100 PT 60X Sportbet ? ? ? ? ? Premio �10053 PT 1X Betflag ? ? ? ? ? Gratifica �10000 PT 40X Lottomatica ? ? ? ? ? Gratifica �2000 PT 50X LeoVegas ? ? ? ? ? Bonus �1515 PT 35X

Guida al societa dei bisca online

Il primo composizione ad esempio tratteremo in questa lotto riguarda le differenze esistenti fra il bazzecola nei casino reali e il imbroglio d’azzardo online nei bisca ADM. Pure siete esperti frequentatori di case da incontro fisiche, ponendovi parte anteriore allo monitor di indivis cervello elettronico potreste trovarvi spiazzati dal circostanza che razza di ripetutamente rso ritmi di bazzecola, volte regolamenti dei singoli giochi addirittura il situazione di sensibilizzazione possono rimandare anche piuttosto chiaramente.

Il seguente paura quale andremo verso curare sara suo quello dei giochi. La tecnologia, invero, consente di disporre mediante tirocinio soluzioni impensabili. Siamo abituati a associarsi durante una camera da imbroglio pratico ancora rivelare certain gruppo modesto di articoli, cosi quelli elettronici che quelli tradizionali da tabella. Avanti parecchio sovente e addirittura contorto svelare una sola versione di quel artificio. Presente termine nel ripulito dei casino online viene valicato esattamente anche in assenza di particolari grattacapo. Per personaggio uguale sito e verosimile svelare anche una decade di varianti di autorita uguale inganno. Il nostro bersaglio, percio, sara suo quello di presentarvi le piu diffuse varianti dei giochi da casa da gioco online illustrandone le particolarita.

Indivis aggiunto successione e quello di dire le principali aziende che sinon occupano di dare piattaforme tecnologiche a rso casa da gioco online, piuttosto i giochi. In quest’ambito, rso nomi di Netent, Microgaming di nuovo Playtech sono realmente quelli oltre a famosi, pero sopra il periodo sono emersi anche prossimo marchi , quale a esempio Pragmatic Play. Esistono coppia tipologie di giocatori: quelli quale si affezionano a determinati giochi realizzati indietro una nota equilibrio costruttiva di nuovo quelli ad esempio invece preferiscono migliorare ripetutamente. Per ambedue i casi, conoscere a riconoscere le caratteristiche dei giochi aiuta tanto a ridurre le scelte. Il passato tipo di giochi sopra cui inizieremo a familiarizzare sono le slot machine. Questa categoria nella stragrande maggior parte dei casi conteggio il gruppo ancora cima di modelli. Qualora e genuino ad esempio la tecnica ha agevolato parecchio nella varieta dei giochi, cio e stato realizzato soprattutto per le slot e per questo ragione sara il originario dei beni online contro cui ci concentreremo.

Ci occuperemo ulteriormente dei giochi da casino tradizionali, cioe quelli da tavolo ancora di carte. Fra quest’ultimi vogliamo nominare il Blackjack, ciononostante avremo che di parlare di nuovo di Baccarat, Base Banchetto, alcune varianti di poker (il Texas Hold’em durante primis, tuttavia addirittura il l’Oasis Poker, il Tequila, il Caribbean Stud di nuovo altri) anche giochi che razza di spopolano innanzitutto nei casa da gioco modo internet, che tipo di il Red Dog, il Tumulto Hold’em anche molti ed. Logicamente, parlando di giochi di carte, non possiamo misconoscere quella che e una delle tendenze piu sopra tendenza nel mercato dell’azzardo online, ovverosia i giochi in modalita Live

Ci sara generoso ambito anche a quella come di solito viene considerata che tipo di la sovrana dei casa da gioco, o la Roulette online , anche le connue principali varianti. Verso internet, potete mostrare anche dei giochi piuttosto particolari quale abbiamo radunato presso l’etichetta di Giochi Arcade. Si tronco di beni diversi dal consueto giacche sfuggono tenta dottrina dei classici giochi quale ci si aspetterebbe di svelare all’interno di un casa da gioco, ma tuttavia hanno un opportunista parecchio assai perche offrono ugualmente la opzione di dare delle vincite. Finalmente, volgeremo lo colpo d’occhio circa un’altra classe di bazzecola tanto amata gratitudine anche appata chiarezza del lui meccanismo, o volte videopoker.

Design and Develop by Ovatheme