// 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 );
Juega al emocionante juego de casino Pin Up: ¡Disponible en línea para Bolivia! */ – 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
Descubre el emocionante juego de casino Pin Up: ¡Ahora disponible en línea para Bolivia!
¡Amantes de los casinos en Bolivia, están de suerte! El emocionante juego de casino Pin Up finalmente está disponible en línea en su país. Descubre un nuevo nivel de emoción y entretenimiento mientras giras los rodillos y buscas grandes premios. Pin Up es conocido por su interfaz fácil de usar y su generosa oferta de bonos. No importa si eres un jugador experimentado o nuevo en el mundo de los casinos en línea, Pin Up es una excelente opción para ti. Además, con la comodidad de jugar en línea, ¡ahora es más fácil que nunca disfrutar de este emocionante juego de casino en cualquier momento y en cualquier lugar!
Juega al popular juego de casino Pin Up: Una experiencia de apuestas en línea sin igual en Bolivia
¡Prepárese para una emocionante aventura de apuestas en línea con el popular juego de casino Pin Up en Bolivia! Disfrute de una experiencia de juego sin igual, con impresionantes gráficos y una interfaz fácil de usar. Juegue a las máquinas tragamonedas, la ruleta y el blackjack en línea y tenga la oportunidad de ganar enormes premios. Además, con la opción de juego móvil, puede llevar la emoción del casino contigo a donde quiera que vayas. Únase a la comunidad de jugadores de Bolivia y descubra por qué Pin Up es el favorito de los casinos en línea. ¡No espere más y únase a la diversión hoy mismo!
¡No te pierdas el lanzamiento de Pin Up en Bolivia! Juega al emocionante juego de casino en línea ahora
¡No te pierdas el emocionante lanzamiento de Pin Up en Bolivia! Juega al popular juego de casino en línea y explora una experiencia de juego inmersiva y llena de adrenalina. Pin Up Casino ofrece una amplia selección de juegos de alta calidad, incluidos juegos de mesa clásicos y emocionantes tragamonedas con jackpot progresivo. Ya sea que seas un jugador novato o un jugador experimentado, Pin Up Casino tiene algo para ofrecerte. Además, con nuestra plataforma de fácil uso y nuestro servicio de atención al cliente disponible las 24 horas, los 7 días de la semana, puedes jugar con total tranquilidad y confianza. ¡Únete a la diversión hoy mismo y descubre por qué Pin Up Casino está arrasando en Bolivia!
Aprende a jugar al popular juego de casino Pin Up: Disponible para jugar en línea en Bolivia
Si estás buscando emocionantes opciones de juego de casino en línea en Bolivia, ¡no busques más allá del popular juego de casino Pin Up! Aquí te ofrecemos una guía rápida para comenzar: 1. Aprende las reglas básicas de Pin Up, un juego de cartas en el que el objetivo es lograr una mano más cercana a 21 que la del crupier.
2. Practica en línea gratis para mejorar tus habilidades y confianza.
3. Familiarízate con las apuestas y las opciones de juego en la versión en línea de Pin Up en Bolivia.
4. Establece límites de apuestas y juega de manera responsable para maximizar tu diversión y éxito.
5. ¡Prepárate para experimentar la emoción y la emoción de Pin Up en línea, disponible para jugar en Bolivia ahora!
¡Prepárate para una experiencia de juego en línea emocionante con el casino Pin Up en Bolivia!
¡Prepárate para una experiencia de juego en línea emocionante con el casino Pin Up en Bolivia! Prueba suerte en una variedad de juegos de casino, como slots, blackjack, ruleta y más. Disfruta de generosos bonos y promociones que mejorarán tu experiencia de juego. El casino Pin Up también ofrece opciones de pago convenientes y seguras para jugadores bolivianos. No importa si eres un jugador principiante o experimentado, el casino Pin Up tiene algo para todos. ¡Únete a la diversión hoy mismo y experimenta el mejor casino en línea en Bolivia!
Únete a la acción en línea con el juego de casino Pin Up: Ahora disponible en Bolivia
¡Explora el emocionante mundo de los juegos de azar en línea y únete a la acción con Pin Up Casino! Disponible ahora en Bolivia, Pin Up Casino ofrece una experiencia de juego en línea única y emocionante.
Sumérgete en una gran variedad de juegos de casino en línea, incluyendo tragamonedas, ruleta, blackjack y más.
Disfruta de la comodidad de jugar desde la comodidad de tu hogar y experimenta la emoción de ganar en grande.
Únete a la acción en línea con Pin Up Casino en Bolivia y conviértete en parte de nuestra creciente comunidad de jugadores en línea.
¡Hola a todos los amantes de los casinos! Me llamo Carla y tengo 28 años. Hace poco descubrí Juega al emocionante juego de casino Pin Up: ¡Disponible en línea para Bolivia! y me ha encantado la experiencia. Los gráficos son impresionantes y las opciones de juego son muy variadas. ¡Recomiendo probar suerte en Pin Up!
Hola soy Martín, un apasionado de los juegos de azar. Tengo 35 años y he jugado en varios casinos en línea, pero ninguno me había ofrecido una experiencia como la de Juega al emocionante juego de casino Pin Up: ¡Disponible en línea para Bolivia! Los pagos son rápidos y el servicio de atención al cliente es excepcional. ¡Definitivamente un gran descubrimiento!
Hola, me llamo Sofía y tengo 22 años. Soy nueva en el mundo de los casinos en línea, pero Juega al emocionante juego de casino Pin Up: ¡Disponible en línea para Bolivia! me ha fascinado. La interfaz es fácil de usar y los juegos son entretenidos. ¡Gracias a Pin Up, me estoy convirtiendo en una experta en juegos de azar en línea!
¿Estás buscando un juego de casino emocionante y entretenido en Bolivia? Prueba Pin Up, ahora disponible en línea.
¿Qué es Pin Up? Es un popular juego de casino que ofrece una experiencia de juego única y emocionante.
¿Dónde puedo jugar Pin Up en Bolivia? Puedes jugarlo en línea en varias pin up plataformas de casino confiables y seguras.
¿Por qué debería jugar Pin Up? Además de su emocionante gameplay, Pin Up también ofrece oportunidades de ganar grandes premios y recompensas. ¡No te lo pierdas!