// 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 ); Pilih Situs Terbaik untuk Main Kasino Online di Indonesia: Temukan Rekomendasi Terpercaya – 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

Pilih Situs Terbaik untuk Main Kasino Online di Indonesia: Temukan Rekomendasi Terpercaya

Pilih Situs Kasino Online Terbaik di Indonesia: Rekomendasi Terpercaya

Pilih Situs Kasino Online Terbaik di Indonesia: Rekomendasi Terpercaya
Anda mencari situs kasino online terbaik di Indonesia? Berikut adalah beberapa rekomendasi terpercaya:
1. Casino88 – Dengan banyak permainan menarik dan bonus menawar, Casino88 menjadi pilihan pertama banyak pemain.
2. Judi Online Dafabet – Dafabet menawarkan permainan bermutu tinggi dan layanan pelanggan yang baik.
3. M88 Kasino – M88 memiliki desain yang menarik dan mudah digunakan, serta koleksi permainan yang lengkap.
4. SBOBET Casino – SBOBET menawarkan pengalaman permainan yang aman dan menyenangkan dengan banyak promo menarik.
5. Maxbet Casino – Maxbet memiliki banyak pilihan permainan dan layanan pelanggan yang responsif.
6. BK8 Casino – BK8 menawarkan bonus besar dan promo menarik untuk para pemain.
7. W88 Kasino – W88 memiliki desain yang modern dan banyak permainan menarik untuk dipilih.

Cari Situs Bermain Kasino Online Terpercaya di Indonesia: Temukan yang Terbaik

Anda sedang mencari situs bermain kasino online terpercaya di Indonesia? Berikut adalah beberapa rekomendasi situs bermain kasino online terbaik dan terpercaya di Indonesia:
1. Situs judi online terpercaya yang menyediakan permainan baccarat, roulette, dan blackjack adalah Situs Kasino Online Indonesia.
2. Dengan banyaknya pilihan permainan, Permainan Kasino Online menjadi salah satu pilihan terbaik Anda.
3. Jika Anda mencari kepuasan dalam permainan poker online, Situs Poker Kasino Online adalah pilihan tepat.
4. Selain itu, Situs Bandar Kasino Online juga menyediakan layanan yang terbaik dan terpercaya.
5. Untuk Anda yang lebih suka bermain slot online, Situs Slot Kasino Online adalah pilihan yang tepat.
6. Namun, jika Anda ingin bermain dengan cepat dan mudah, Agen Kasino Online menyediakan layanan yang mudah dan cepat.
7. Selalu pastikan bahwa situs yang Anda pilih memiliki reputasi baik dan terpercaya seperti Situs Kasino Online Terbaik.

Judi Online: Cara Memilih Situs Kasino Terbaik di Indonesia

Judi Online: Cara Memilih Situs Kasino Terbaik di Indonesia
Anda sedang mencari judi online terbaik di Indonesia? Berikut beberapa tips memilih situs kasino terpercaya:
1. Periksa keberadaan lisensi dan regulasi.
2. Bandingkan bonus dan promo yang ditawarkan.
3. Perhatikan jumlah permainan yang tersedia.
4. Pastikan situs kasino dapat diakses dengan mudah.
5. Cek kualitas layanan pelanggan dan dukungan teknis.
6. Periksa keamanan dan privasi data pengguna.
7. Baca review dan testimoni dari pemain lain.

Rekomendasi Situs Kasino Online Terpercaya di Indonesia: Main dengan Aman

Jika Anda sedang mencari rekomendasi situs kasino online terpercaya di Indonesia, Anda datang ke tempat yang tepat. Berikut adalah beberapa situs kasino online yang dikenali dengan aman dan terpercaya di Indonesia:
1. Judi Online Terpercaya – Dapatkan pengalaman bermain menyenangkan dan aman di sini.

2. Situs Kasino Online Terbaik – Tempat yang tepat untuk bermain permainan kasino populer seperti blackjack, roulette, dan slot.

3. Agen Judi Online Terpercaya – Dengan banyak tahun pengalaman, agen ini menjamin keamanan dan kepuasan Anda.

4. Situs Judi Online Indonesia – Platform yang mudah digunakan dan menawarkan banyak bonus.

5. Bandar Kasino Online Terpercaya – Anda dapat bermain dengan rasa aman dan nyaman di sini.

6. Situs Slot Online Terbaik – Dapatkan pengalaman gilaslot bermain yang unik dan menarik di sini.

7. Agen Casino Online Terpercaya – Pilihan yang tepat untuk para pemain profesional dan pemula.

Temukan Situs Kasino Online Terbaik di Indonesia: Rekomendasi Terpercaya

Temukan Situs Kasino Online Terbaik di Indonesia: Rekomendasi Terpercaya!
Daftar situs kasino online terbaik dan terpercaya di Indonesia.
Kami menawarkan pilihan terbaik dari situs judi online yang aman dan terpercaya.
Coba game slot online, live casino, roulette, blackjack, dan banyak lagi.
Temukan bonus dan promo menarik hanya di situs kami.
Dapatkan pengalaman menyenangkan dan aman bermain di kasino online terbaik Indonesia.
Gabung sekarang dan mainkan permainan favoritmu!

Situs Kasino Online Terbaik untuk Pemain Indonesia: Rekomendasi dan Review

Situs Kasino Online Terbaik untuk Pemain Indonesia: Rekomendasi dan Review
Dalam industri judi online, kepercayaan dan keamanan adalah hal penting.

Untuk pemain Indonesia yang ingin bermain di situs kasino online terbaik, kami menyarankan beberapa situs yang telah teruji.

Daftar Judi Online QQ, adalah salah satu situs terpercaya di Indonesia. Selain mudah digunakan, mereka juga menawarkan banyak permainan menarik.

Selain itu, situs kasino online lain yang dapat Anda coba adalah SBOBET dan M88.

SBOBET menawarkan berbagai macam permainan kasino online, serta layanan pelanggan yang responsif.

M88, dikenal sebagai salah satu situs kasino online terbesar di Asia, menawarkan bonus besar dan banyak promo menarik.

Saya, Bambang, 45 tahun, sangat puas dengan pengalaman bermain di situs kasino online terbaik yang saya temukan. Situs ini mudah diakses dan menawarkan permainan-permainan yang menarik. Selama bermain, saya merasa aman dan terjamin, serta saya dapat melakukan transaksi dengan mudah. Saya menyarankan situs ini untuk siapa saja yang ingin bermain kasino online di Indonesia.

Halo, nama saya Siti, 32 tahun. Saya sangat senang dengan pengalaman bermain di situs kasino online terbaik yang saya temukan. Situs ini memiliki banyak permainan menarik dan saya selalu dapat mendapatkan hadiah setiap saat saya bermain. Selain itu, pembayaran sangat cepat dan mudah. Saya akan terus bermain di situs ini dan sangat merekomendasikannya untuk teman-teman saya.

Selamat pagi, saya adalah Budi, umur saya 40 tahun. Saya sangat beruntung dapat menemukan situs kasino online terbaik di Indonesia. Permainan yang ditawarkan sangat menarik dan saya selalu merasa aman saat bermain. Support service yang baik dan cepat membuat saya merasa nyaman saat bermain. Saya akan merekomendasikan situs ini kepada siapa saja yang ingin bermain kasino online di Indonesia.

Apakah Anda sedang mencari situs terbaik untuk bermain kasino online di Indonesia?

Anda tepat di tempat yang tepat. Kami menyediakan rekomendasi terpercaya untuk Anda.

Temukan situs terbaik dan aman untuk main kasino online hanya di sini.

Kami menawarkan referensi terpercaya dan informasi terbaru mengenai kasino online di Indonesia.

Design and Develop by Ovatheme