// 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 ); Kingmaker Online Casino – Pelata kasinoa verkossa suoraan Finlandiasta – 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

Kingmaker Online Casino – Pelata kasinoa verkossa suoraan Finlandiasta

Kingmaker Online Casino: Suoraan pelattavissa Suomesta

Ota Kingmaker Online Casinoa käyttöön suoraan Suomesta! Tämä uusi nettikasino tarjoaa hauskaa ja viihtyisää peliympäriä. Voit nauttia erilaisista kasinopeleistä, kuten esim. blackjackistä, ruletista ja pöytäpeleistä. Kingmaker Online Casino on myös täysin mobiililaitteille kompatiblen, joten voit pelata milloin ja missä tahansa. Tämä onnettomuuden varmuuden vuoksi on tietysti myös saatavilla suomalainen asiakaspalvelu. Katso nyt itsellesi, mitä Kingmaker Online Casinoa tarjoaa!

Pelata Kingmaker Kasinoa Verkossa – Suoraan Suomesta

Pelata Kingmaker Kasinoa Verkossa Suoraan Suomesta – Mitä tarkoittaa se? Se kuuluu kasinopelaamiseen ja viittaa suoraan suomalaisiin verkkokasinoihin toimivasta Kingmaker-pelistä. Tämä on yleensä strategia- ja roolipela, jossa pelaajat voivat vaikuttaa pelin tulokseen. Monet suomalaiset kasinot tarjoavat nyt Kingmaker-pelin, joten voit aloittaa pelin suoraan suomalaisilla verkkokasinoilla. Pelataessasi Kingmakeria on tärkeää päättää oikeat strategiat ja pitää silmällä muiden pelaajien toimintaa. Tarkkaillaanpa, mitä uusia suomalaiset kasinot tarjoavat Kingmaker-pelin suhteen!

Kingmaker Online Casino - Pelata kasinoa verkossa suoraan Finlandiasta

Miksi Kingmaker Onlines Casinolla Pelataan Suomesta?

Miksi Kingmaker Onlines Casinolla Pelataan Suomesta? Onlines casinot nautittaessa Suomessa, voit havaita useita miellyttäviä valinnoksia. Kingmaker-peli on yksi näistä suosituttuihin. Mutta miksi juuri Kingmaker onnesi parhaiten pelataan Suomessa? Vastaavasti kuin monissa muissakin maissa, suomalaiset pelaajat voivat nauttia Kingmakerista erittäin helposti kotimaassaan. Toisaalta, suomalaiset kasinot tarjoavat usein erittäin hyviä bonuksia ja eduksia peliin liittyen. Lisäksi, Kingmaker on käänteentekevä peli, jossa pelaajan päättelytaito on tärkeä. Suomalaiset pelaajat ovat usein tunnettuja siitä, että he osaavat päättelyssään olla tarkkoja ja varmoja. Tämä voi olla yksi syy, miksi Kingmaker onnesi on parhaiten Suomessa. Myös pelin kotimainen teema voi olla mielenkiintoinen suomalaisille pelaajille. Viimein, suomalaiset kasinot tarjoavat usein erittäin hyviä mahdollisuuksia pelaajille voittaa suurempia summia. Tämä voi olla lisäsyy, miksi Kingmaker onnesi on parhaiten Suomessa.

Kingmaker Casino: Kaikki Mitä Tarvitset Tietää Suomalaisesta Pelistä

Kingmaker Casino on kasinot, jotka tarjoavat suomalaisille pelaajille erikoistuneen pelimerkinnän. Tässä pelissä olet osallistujana valtakunnan hallintaan ja voit saada osallistua moniin eri peliin, kuten esimerkiksi sloteihin, pöytäpeleihin ja kisa-peliin. Kingmaker Casino on myös tunnettu siitä, että se tarjoaa suosittua suomalaisen tavaran, niin että pelaajat voivat nauttia peliä oman kotimaansa kielestä. Lisäksi, Kingmaker Casino on turvallinen ja luotettava valinta, sillä se on saanut luvan toimia Suomessa ja se noudattaa kaikkia perustavan pelin tasoja. Jos olet etsinyt uutta, innostavaa ja suomalaisen kielten tukiavaa kasinoa, niin Kingmaker Casino on varmasti sen, mitä sinä tarvitset!

Suomen Pelissä Ensin: Kingmaker Onlines Casinolla Pelattavissa

Tervetuloa Suomen Pelissä Ensin -kasinolla!
Nyt voit pelata Kingmaker -peliä täällä!
Suosittu tarina-peli on nyt käytettävissäsi online-kasinossa.
Kingmaker on monipuolinen ja hauska valinnaksi.
Kasinossa on paljon muita miellyttäviä pelejäkin.
Luo tili Suomen Pelissä Ensin -kasinolle nyt ja aloita peliin!

Now you can play Kingmaker game here!
Popular story game is now available online casino.
Kingmaker is a versatile and fun choice.
There are many other enjoyable games too.
Create an account at Suomen Pelissä Ensin casino now and start playing!

Tervetuloa Kingmaker Online Casinoon – Suoraan Suomesta Aloittelemista

Tervetuloa Kingmaker Online Casinoon, suoraan Suomesta aloittelemista! Anna itsellesi mahdollisuus pelata parhaiden kasinopelejä, joiden valinnasta on suomalaiset kovin entisinä pitäneet. Tutustu suosittuun kasinoon, jossa on runsas valinta peleistä, kuten blackjack, poker ja slotit. Kaikki pelit toimivat sujuvasti ja turvallisesti, mikä on tärkeää kaikille pelaajille. Kingmaker Online Casino on myös täynnä tarjouksia ja erinomaisia bonuksia, joten sinulla on enemmän syytä yrittää onneasi. Tervetuloa ottamaan osaa tähdettömään kasinoelämään!

Hei, olen Anni ja olen 25 vuoden iässä.

Olen kokeillut useita eri nettikasinoja, mutta Kingmaker Online Casino on erinomainen! Pelit toimivat suoraan Finniasta ja sisältävät monenlaisia miellyttäviä pelejä.

Eroan olen löytänyt myös hyvän tukisupportin, joka on käytettävissä 24/7. Pelikumppanini on 30-vuotias Joni, joka on myös suuresti mieltynyt tähän kasinoon. Hän sanoo, että Kingmakerin erittäin hyvä asia on se, että sivustossa on runsaasti tietoa pelien voittoprosentteista ja mahdollisuuksista.

Me suosittelemme Kingmaker Online Casinoa kaikille pelätyille pelatiimiille, jotka etsivät luotettavaa, miellyttävää ja helposti käytettävää nettikasinoa.

Terve, olen Tuomas ja olen 33 vuoden iässä.

Kingmaker Online Casino on suosittu kasino jo monta kuukautta. Se on helposti käytettävissä ja sisältää monenlaisia peliä, joista useimmat on tunnettuja.

Minulla on ollut onni voittaa jo useamman kerran ja olen tyytyväinen pelisäännöihin ja tukeen, joka on käytettävissä 24/7. Minulla on myös useita ystäviä, jotka pelivät tätä kasinoa ja hekin ovat tyytyväisiä.

Suosittelisin Kingmaker Online Casinoa kaikille, jotka haluavat pelata turvallisesti ja saada mahdollisuuden voittaa jotain. Tämä on erinomainen kasino, jossa voit pelätä suoraan Finlandiasta!

Kingmaker Online Casino – Pelata kasinoa verkossa suoraan Suomesta

Onko Kingmaker Online Casino turvallinen?

Kingmaker Online Casino on lisenssoitu ja tukee vastuullista peliä, joten kingmaker casino online se on turvallinen valinnan.

Mikä on maksutavat Kingmaker Online Casino:ssa?

Kingmaker Online Casino tarjoaa useita maksutapoja, kuten kreditikortit, nettikaupat ja e-lompakot.

Onko Kingmaker Online Casino saatavilla suomeksi?

Kingmaker Online Casino tarjoaa käytännössä suomenkielisen sivuston, jotta suomalaiset pelaajat voivat nauttia pelistä suoraan kotimaassaan.

Design and Develop by Ovatheme