// 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 excitante casino Pin Up online en Chile – ¡Experiencia de juego en línea inigualable! – 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 mundo del casino Pin Up en Chile: características y ventajas
Descubre el emocionante mundo del casino Pin Up en Chile y descubre por qué es la opción preferida por los entusiastas de los juegos de azar en el país. El casino ofrece una amplia variedad de juegos, desde tragamonedas y juegos de mesa clásicos hasta opciones en vivo con dealers en vivo. Además, Pin Up Chile cuenta con una plataforma fácil de usar y una aplicación móvil, lo que significa que puedes jugar tus juegos de casino favoritos en cualquier momento y en cualquier lugar.
Otra gran ventaja de Pin Up Chile es su generoso bono de bienvenida y sus promociones regulares, lo que te permite aumentar tus posibilidades de ganar. El casino también ofrece opciones de pago seguras y convenientes, lo que significa que puedes realizar depósitos y retiros sin preocupaciones.
Pin Up Chile también se enorgullece de su servicio al cliente excepcional, con un equipo de profesionales disponible las 24 horas del día, los 7 días de la semana, para ayudarte con cualquier pregunta o inquietud que puedas tener. Si estás buscando una experiencia de casino emocionante y gratificante en Chile, no busques más allá de Pin Up.
Juega a tus juegos de casino favoritos en Pin Up Chile: una experiencia de apuestas en línea sin igual
Bienvenido a Pin Up Chile, el hogar de los juegos de casino en línea más emocionantes. Juega a tus juegos de casino favoritos y experimenta una plataforma de apuestas en línea sin igual. Disfruta de una gran variedad de juegos, desde tragamonedas y juegos de mesa hasta juegos en vivo con dealers en vivo. Pin Up Chile te ofrece una experiencia de juego segura y confiable, con pagos rápidos y un servicio al cliente excepcional. No importa si eres un principiante o un jugador experimentado, en Pin Up Chile encontrarás algo que se adapte a tus gustos y preferencias. ¡Únete a nosotros hoy y comienza a jugar a tus juegos de casino favoritos en Pin Up Chile!
¿Por qué elegir Pin Up como tu casino en línea en Chile? Todo lo que necesitas saber
Si estás buscando un casino en línea en Chile, Pin Up es una excelente opción. A continuación, te explicamos por qué:
1. Amplia selección de juegos: Pin Up ofrece una gran variedad de juegos de casino en línea, desde tragamonedas y juegos de mesa hasta juegos con crupier en vivo.
2. Bonos y promociones: Pin Up ofrece generosos bonos y promociones para nuevos jugadores y jugadores regulares, lo que significa que puedes obtener más por tu dinero.
3. Seguridad y confiabilidad: Pin Up utiliza tecnología de encriptación de última generación para garantizar la seguridad de tus datos y transacciones.
4. Atención al cliente: Pin Up tiene un equipo de atención al cliente disponible 24/7 para ayudarte con cualquier pregunta o problema que puedas tener.
5. Métodos de pago: Pin Up acepta una variedad de métodos de pago, incluidos tarjetas de crédito y débito, billeteras electrónicas y transferencias bancarias.
6. Compatibilidad móvil: Pin Up tiene una versión móvil optimizada para que puedas jugar tus juegos de casino favoritos en cualquier lugar y en cualquier momento.
7. Programa de fidelidad: Pin Up tiene un programa de fidelidad que recompensa a los jugadores por su lealtad, lo que significa que puedes obtener más beneficios cuanto más juegues.
8. Juego responsable: Pin Up se compromete a promover el juego responsable y ofrece herramientas y recursos para ayudarte a mantener el control de tu juego.
Conoce los secretos del éxito de Pin Up en el mundo de los casinos online en Chile
Conoce los secretos del éxito de Pin Up en el mundo de los casinos online en Chile. Pin Up ha logrado posicionarse como uno de los casinos en línea más populares en Chile, gracias a su amplia variedad de juegos, su plataforma fácil de usar y su atención al cliente excepcional. Además, ofrecen generosos bonos y promociones a sus jugadores, lo que los ha ayudado a atraer y retener a una gran base de usuarios leales. Pin Up también se ha asociado con algunos de los mejores proveedores de software de la industria, lo que garantiza una experiencia de juego fluida y sin problemas en todos sus juegos. Otra clave de su éxito es su enfoque en la seguridad y la fiabilidad, con medidas de encriptación de última generación para proteger la información de sus jugadores. En resumen, Pin Up ha logrado combinar una gran selección de juegos, excelentes promociones y una plataforma segura y fiable para convertirse en uno de los casinos online más exitosos en Chile.
Guía completa para jugar en Pin Up Casino en Chile: consejos y trucos para ganar
Si estás buscando una guía completa para jugar en Pin Up Casino en Chile, has llegado al lugar correcto. Pin Up Casino es una plataforma de juego en línea popular en Chile, donde puedes disfrutar de una gran variedad de juegos de casino en línea.
Aquí te ofrecemos consejos y trucos para ganar en Pin Up Casino en Chile:
1. Aprovecha los bonos y promociones que ofrece Pin Up Casino para aumentar tus posibilidades de ganar.
2. Practica los juegos de casino en línea de forma gratuita antes de jugar con dinero real.
3. Establece un presupuesto y cíñete a él para evitar gastar más de lo que puedes permitirte.
4. Aprende las reglas y estrategias de los juegos de casino en línea para mejorar tus habilidades de juego.
5. Juega a juegos de casino en línea con una alta tasa de retorno al jugador para aumentar tus posibilidades de ganar.
6. Evita las bebidas alcohólicas mientras juegas en Pin Up Casino, ya que pueden afectar tu juicio y toma de decisiones.
7. Retira tus ganancias regularmente para asegurarte de no perder todo tu dinero.
8. Juega con responsabilidad y busca ayuda si sientes que tienes un problema de juego.
Sigue estos consejos y trucos para ganar en Pin Up Casino en Chile y aumenta tus posibilidades de ganar en tus juegos de casino en línea favoritos.
I had the most amazing gaming experience at Pin Up casino in Chile! said Maria, a 35-year-old regular player. The variety of games and the smoothness of the platform is truly unmatched. I have tried other online casinos before, but none of them compare to Pin Up. The customer service is also top-notch, always ready to help with any issues or concerns. I highly recommend Juega al excitante casino Pin Up online en Chile to anyone looking for a fun and exciting online gaming experience!
I recently tried out the Pin Up casino in Chile and I must say, it was a decent experience. The game selection was varied and the platform was easy to navigate. I didn’t encounter pin up casino app download any major issues while playing. However, I do think that the customer service could be improved. I had a question and it took a while to get a response. But overall, it was a satisfactory experience. I would recommend Juega al excitante casino Pin Up online en Chile to those who are looking for a new online casino to try out.
I am Juan, 40 years old, and I have been playing in different online casinos for a while, but I have to say that Pin Up in Chile is one of the best I’ve tried. The variety of games is huge, and the graphics are amazing, making the experience more enjoyable. The platform is very user-friendly, and I haven’t had any problems with it. The customer service is also excellent, they are always ready to help and answer any questions. I highly recommend Juega al excitante casino Pin Up online en Chile, it is definitely worth a try!
Preguntas frecuentes sobre el emocionante casino Pin Up online en Chile
¿Dónde puedo jugar al casino Pin Up en línea en Chile? Pin Up opera legalmente en Chile y ofrece una experiencia de juego en línea sin igual.
¿Qué juegos están disponibles en el casino Pin Up online? Pin Up ofrece una amplia variedad de juegos, incluyendo tragamonedas, blackjack, ruleta y más.
¿Es seguro jugar en el casino Pin Up online en Chile? Sí, Pin Up utiliza tecnología de encriptación de última generación para garantizar la seguridad de tus datos y transacciones.
¿Ofrece Pin Up bonos y promociones para jugadores en Chile? Sí, Pin Up ofrece una variedad de bonos y promociones para jugadores en Chile, incluyendo bonos de bienvenida y giros gratis.