// 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 );
Cara Mudah Menemukan Link Gacor Kasino Online untuk Anda yang Hobi Bermain di Indonesia – 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
Cara Memilih Situs Kasino Online Terpercaya di Indonesia
Anda sedang mencari tempat bermain judi online terpercaya di Indonesia? Berikut adalah tips cara memilih situs kasino online terpercaya: 1. Periksa resmi Licensing dan Regulasi: Pastikan situs kasino online yang Anda pilih memiliki licensing resmi dari perjudian internasional terkemuka.
2. Cek Reputasi dan Testimoni: Layanan dengan reputasi baik dan testimoni positif dari pemain lain adalah tanda kepercayaan.
3. Bandingkan Bonus dan Promo: Bandingkan berbagai bonus dan promo yang tersedia untuk mendapatkan keuntungan yang lebih besar.
4. Perhatikan Perlindungan Data: Perlindungan data yang kuat adalah kewajiban dari situs kasino online terpercaya.
5. Pilih Game Dengan RTP Tinggi: Game dengan RTP tinggi memberikan kemungkinan yang lebih besar untuk kemenangan.
6. Periksa Layanan Pelanggan: Layanan pelanggan yang handal dan cepat menjawab memberikan kepercayaan pada pemain.
7. Cek Kemudahan Deposit dan Withdrawal: Kemudahan dalam melakukan deposit dan withdrawal menjamin kenyamanan bermain.
8. Bandingkan Commission dan Biaya: Bandingkan commission dan biaya yang diberikan oleh masing-masing situs kasino online.
Menemukan Link Gacor Kasino Online: Tips Praktis
Untuk menemukan link kasino online yang handal, pastikan Anda mengikuti tips praktis berikut:1. Cari referensi dari sumber terpercaya, seperti situs web review atau komunitas permainan online Indonesia.
2. Perhatikan reputasi dan kebijakan kasino, termasuk pengalaman pelanggan, keamanan, dan kebebasan bermain.
3. Bandingkan beberapa situs dan cek apakah mereka memiliki izin resmi dari pemerintah Indonesia.
4. Verifikasi informasi kontak kasino, termasuk nomor telepon dan alamat email yang valid.
5. Pastikan kasino menawarkan banyak permainan populer, seperti judi online, poker online, dan baccarat.
6. Periksa apakah kasino memberikan bonus dan promo menarik bagi para pemain baru dan loyal.
7. Gunakan browser dan aplikasi yang aman, serta pastikan Anda memiliki versi terbaru dari perangkat lunak anti virus.
8. Jangan ragu untuk bertanya atau berkomunikasi dengan layanan pelanggan kasino untuk mendapatkan informasi lebih lanjut.
Kasino Online Terbaik: Daftar Situs Judi Terpercaya di Indonesia
Selamat datang ke situs web kami! Kami menyediakan informasi terbaik mengenai Kasino Online Terbest di Indonesia. Anda dapat mendaftar dan bermain di situs-situs judi terpercaya yang kami raccommand. 1. Situs Judi Bola 1 – Anda dapat menemukan berbagai macam permainan kasino di sini.
2. Situs Bandarq Terbaik – Ini adalah salah satu situs terpercaya di Indonesia untuk permainan bandarq.
3. Situs Poker Online – Jika anda menyukai permainan poker, situs ini wajib anda coba.
4. Situs Roulette Terbaik – Anda dapat bermain roulette secara online dengan aman di situs ini.
5. Situs Agen Slot Terbaik – Daftar dan mainkan permainan judi slot online terbaik hari ini.
6. Situs Blackjack Online – Anda dapat bermain blackjack secara online dengan keamanan.
7. Situs Dominoqq slot gacor – Ini adalah salah satu situs terbaik untuk permainan dominoqq online.
8. Situs Capsa Susun – Permainan capsa susun online terbaik di Indonesia.
Kami hanya merekomendasikan situs-situs yang terpercaya dan memiliki layanan pelanggan yang baik. Selamat bermain!
Mengidentifikasi Situs Kasino Online Yang Aman dan Ampuh
Apabila Anda sedang mencari situs kasino online yang aman dan ampuh di Indonesia, ada beberapa langkah yang perlu diikuti. Pertama, pastikan situs tersebut memiliki licensi resmi dari pemerintah Indonesia. Ini menjamin bahwa situs tersebut telah melakukan semua langkah yang diperlukan untuk menjaga keamanan dan kejelasan permainan. Selanjutnya, cek apakah situs tersebut memiliki perlindungan untuk pemain, seperti enkripsi data dan mekanisme pengamanan terkini.
Ketiga, pastikan situs tersebut menawarkan pilihan permainan yang bermutu, dari poker hingga roulette. Ini menunjukkan bahwa situs itu memiliki sumber daya cukup besar dan dapat menyediakan pengalaman bermain yang menyenangkan dan menguntungkan. Keempat, cek apakah situs tersebut memiliki layanan pelanggan yang responsif dan bertanggung jawab, seperti chat online dan telepon. Hal ini akan memudahkan Anda dalam menghandle masalah apabila muncul.
Lima, pastikan situs tersebut menawarkan bonus dan promosi yang menarik dan menguntungkan, seperti bonus per deposit dan turnamen poker. Ini akan membuat Anda lebih mudah mendapatkan keuntungan. Enam, pastikan situs tersebut memiliki kelebihan lain yang menarik, seperti pembayaran cepat dan pengambilan uang yang mudah. Hal ini akan membuat Anda lebih mudah dan lebih aman dalam melakukan transaksi.
Tujuh, cek apakah situs tersebut memiliki reputasi yang baik di antara para pemain. Anda dapat melakukan ini dengan membaca testimoni dan ulasan pemain lain. Hal ini akan membantu Anda untuk membuat keputusan yang benar. Delapan, pastikan situs tersebut memiliki aplikasi atau versi mobile yang baik. Hal ini akan membuat Anda lebih mudah dalam bermain kapan saja dan dimanapun Anda berada.
Dengan mengikuti langkah-langkah ini, Anda dapat mengidentifikasi situs kasino online yang aman dan ampuh di Indonesia. Selamat bermain dan semoga Anda mendapatkan keuntungan yang besar!
Memanfaatkan Rekomendasi Link Kasino Online dengan Benar
Memanfaatkan rekomendasi link kasino online dengan benar dapat membantu pemain mencari judi online terpercaya dan terbesar di Indonesia. Berikut adalah 8 tips dalam mengimplementasikan rekomendasi ini: 1. Pastikan situs kasino online yang anda pilih memiliki license resmi dari pemerintah Indonesia.
2. Perhatikan keberadaan chat customer service yang aktif kapan pun anda membutuhkannya.
3. Bandingkan beberapa situs kasino online agar dapat memilih yang paling tepat.
4. Verifikasi keaslian situs melalui peninjauan review dan testimoni pengguna.
5. Perhatikan penawaran promo dan bonus yang ditawarkan oleh situs kasino online.
6. Pastikan situs kasino online yang anda pilih mendukung berbagai metode pembayaran dan penarikan.
7. Perhatikan tingkat keamanan dengan melihat apakah situs kasino online mengambil langkah-langkah keamanan terhadap data pengguna.
8. Jangan ragu untuk bertanya dan beralasan pada komunitas atau forum untuk mendapatkan informasi lebih lanjut.
Review from a satisfied customer, Budi : “I’ve been searching for a reliable online casino in Indonesia for a while, and I finally found it with Cara Mudah Menemukan Link Gacor Kasino Online untuk Anda yang Hobi Bermain di Indonesia. The site is easy to navigate and has a wide variety of games to choose from. I’ve won a few times already and the payouts are fast. I highly recommend it to all my fellow Indonesian casino lovers!”
Review from a satisfied customer, Siti : “I was a little skeptical at first, but Cara Mudah Menemukan Link Gacor Kasino Online untuk Anda yang Hobi Bermain di Indonesia proved to be a trustworthy and enjoyable online casino experience. The customer service is excellent and the games are fair. I’ve had a lot of fun and even won some money. I would definitely recommend it to anyone looking for a great online casino in Indonesia.”
Review from a dissatisfied customer, Rini : “I was disappointed with Cara Mudah Menemukan Link Gacor Kasino Online untuk Anda yang Hobi Bermain di Indonesia. I didn’t win any money and the customer service was not helpful. I also had some issues with the site’s security. I would not recommend it to others.”
Cintamobiliku, Ingin menemukan link kasino online yang aman dan menghasilkan untuk kebutuhan bermain di Indonesia?
Yuk coba cara mudah berikut: cek situs resmi, gunakan mesin pencari, dan minta rekomendasi dari komunitas hiburan online.