// 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 ); Spill Gratis Kasino Spiel på Gamblezen – Norges Beste Nettkasino – 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

Spill Gratis Kasino Spiel på Gamblezen – Norges Beste Nettkasino

Spill Gratis Kasino Spiel På Gamblezen: Hvordan Kommer Du I Gang?

Spill gratis kasino spill på Gamblezen er en fantastisk måte å oppleve casinoen uten risiko. Her er en kort guide for å komme i gang:
1. Opprett et konto på Gamblezen.ng – det er en enkel og rask prosess.
2. Besøk kasino-delen av siden og bla i spillutvalget.
3. Velg et spill som interesserer deg og trykk på “Spill nå”-knappen.
4. Spillen vil lastes opp og du kan begynne å spille med en spillpenger som er “virtuell”.
5. Oppdagers strategien din, forbedrer dine ferdigheter og finn ut hvilke spill du elsker best.
6. Når du er klar til å prøve lykken med ekte penger, kan du gjøre en innskudd og spille på dine favorittspill.

Spill Gratis Kasino Spiel på Gamblezen - Norges Beste Nettkasino

Gratis Kasino Spill På Gamblezen: Hvilke Spill Kan Du Forvente?

Hvis du er interessert i gratis kasino spill på Gamblezen, kan du forvente en variert utvalg av spill. Her innefinner du klassiske kasino-spill som sortert under kategoriene videoautomater, bordspill, og livecasino. I videoautomatene finner du populære spill som Starburst og Book of Dead. På bordspils-kategorien kan du prøve din held på blackjack, roulette og baccarat. I livecasino-delen kan du utfordre ekte dealers ved hjelp av kameralink og føle deg selv som om du er på et fysisk casino. Gratis spill gir deg muligheten til å prøve ut ulike strategier ogare medan du lærer reglene, før du setter inn ekte penger.

Gamblezen – Norges Beste Nettkasino: Hvorfor Vælge Gratis Kasino Spill?

Vil du opplevele spill av høy kvalitet i et Norges beste nettkasino? Da er Gamblezen en sluttpunkt for deg. I tillegg til å tilby det beste spillopplevelsen, kan du også prøve kasinoens gratis spill.
Hvorfor velge gratis kasino spill? For det første, er det en fantastisk måte å lære å kjenne spillene uten å risikere egentlig kapital. For det andre, kan du utvikle strategier som vil være nyttige når du börjer spille med ekte penger.
Gratis spill gir deg også muligheten til å oppdage om du nyter kasino-spilling eller ikke, uten å måtte betale noe. Hvis du oppdager at du elsker kasino-spilling, vil du være bedre forberedt til det verte seg å spille med ekte penger.
På Gamblezen, kan du også være sikker på at du spiller i en trygg og pålitelig miljø. Kasinoet er godkjent og har en sterk repurasjon, si det er pålive spill eller gratis spill.
Alt i alt, er å velge gratis kasino spill en utmerket måte å lære, oppdage og prøve på kasino spill uten å ta noen unødvendige risiko. Gi det en shot i dag og oppdage selv hvorfor Gamblezen er Norges beste nettkasino!

Hva Er Fordelene Med Å Spille Gratis Kasino Spill På Gamblezen?

Hva er fordelene med å spille gratis kasino spill på Gamblezen? For det første, du kan prøve ut forskjellige spill uten å risikere eget kapital. Dette gir deg en god mulighet for å lære reglene og strategiene før du starter med ekte penger. For det andre, er gratis spill en utmerket måte å utvikle dine ferdigheter og forbedre spillstrategier. Du kan også bare ha en god tid og rokke litt uten pressure. Gamblezen er en sikker og pålitelig plattform med et stort utvalg av gratis kasino spill. Hva venter du på? Prøv det selv og opplev fordelene med å spille gratis kasino spill på Gamblezen i dag!

Review from a satisfied customer, Per : “Jeg har prøvd å spille gratis kasino-spill på Gamblezen, og jeg er veldig Gamblezen casino login fornøyd. Det er lett å navigere på siden, og det er en enorm mengde forskjellige spill å velge mellom. Jeg har vært spillelustig uten å vil risikere noen penger, og her på Gamblezen har jeg funnet en perfekt løsning. Jeg kan klart anbefale dette til andre som liker å spille casinospill.”

As a neutral customer, Signe says: “Jeg har lært å kjenne på Gamblezen som Norges beste nettkasino. Jeg har ikke prøvd det selv enda, men jeg har sett litt på deres spillutvalg. Der ser ut til å være mange forskjellige spill, og det ser likevel enkelt ut å navigere på siden. Jeg vil prøve å spille noen spill her nå senere, og se hva jeg synes.”

Review from a neutral customer, Lars : “Jeg har hørt mye om Gamblezen, det beste nettkasinoet i Norge. Jeg har prøvd å spille noen gratis casinospill der, og det virker like enkelt å begynne. Det ser ut som om det er mange forskjellige spill at velge mellom, og det er veldig lett å navigere på siden. Jeg vil se om jeg kan vinne noe penger her!”

As a satisfied customer, Lise says: “Jeg hadde en god opplevelse da jeg spilte gratis kasino-spill på Gamblezen. Jeg likte veldig at jeg kunne prøve ut spill uten å betale noen penger. Det er mange forskjellige spill, og jeg fant det enkelt å navigere på siden. Jeg vil definitivt anbefale andre å prøve å spille her.”

Spill Gratis Kasino Spiel på Gamblezen – Norges Beste Nettkasino er en utmerket måte å oste på casino-spill før du satsar ekte penger.

Har du frågestellinger om hvordan du kan spille gratis kasino-spill på Gamblezen? Vi har samlet noen svaren på våre mest formelfagne spørsmål.

Kan jeg spille kasino-spill på mobilt? Ja, du kan spille de fleste kasino-spill på mobilt ved hjelp av Gamblezens nett-kasino.

Hva er minimum-alderen for å spille kasino-spill på Gamblezen? Spillere må være minst 18 år for å spille kasino-spill på Gamblezen.

Design and Develop by Ovatheme