// 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 );
Disfruta el Juego de la Rana y Gana Dinero en Casino Online desde Chile – 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 Excitante Juego de la Rana en Casinos Online Chile: ¡Consigue Grandes Ganancias!
Descubre el Excitante Juego de la Rana en Casinos Online Chile: ¡Consigue Grandes Ganancias! La popularidad de los juegos de azar en línea en Chile ha aumentado significativamente en los últimos años. Uno de los juegos más emocionantes que puedes encontrar en casinos online chilenos es el juego de la rana. En este juego, debes apostar a dónde caerá la rana al lanzarla. ¡Puedes ganar grandes premios si aciertas! Además, muchos casinos online ofrecen bonos y promociones especiales para el juego de la rana. No esperes más y ¡descubre el excitante juego de la rana en casinos online de Chile!
Aprende a Jugar Rana en Casinos Online y Multiplica tus Ingresos en Chile
Si estás buscando aumentar tus ingresos en Chile, ¡aprender a jugar Rana en casinos online podría ser tu oportunidad! La Rana es un popular juego de casino que se ha vuelto cada vez más accesible en línea.
Aprender a jugar Rana en casinos online no solo es fácil, sino que también es una forma entretenida de multiplicar tus ingresos. Con la comodidad de jugar desde casa y la posibilidad de ganar dinero real, ¡no te sorprenderá saber por qué tantas personas están enloqueciendo con este juego!
En Chile, los casinos online ofrecen una variedad de opciones de juego de Rana, desde versiones clásicas hasta variantes más modernas y emocionantes. A continuación, te presentamos algunos consejos y estrategias para ayudarte a empezar.
Además, jugar Rana en casinos online te permite practicar y mejorar tus habilidades antes de apostar dinero real. Muchos sitios web ofrecen versiones demo o gratuitas del juego, por lo que puedes familiarizarte con las reglas y perfeccionar tu técnica sin riesgo.
En resumen, aprender a jugar Rana en casinos online es una excelente manera de multiplicar tus ingresos en Chile. Con un poco de práctica y los consejos correctos, ¡podrías estar en camino a ganar grandes premios en poco tiempo!
La Diversión de la Rana al Alcance de tu Mano: Juega en Casinos Online en Chile y Gana Dinero Real
¡La diversión de la rana está a solo un clic de distancia en Chile! Los casinos en línea ofrecen emocionantes opciones de juego y la oportunidad de ganar juego de la rana para ganar dinero dinero real. Sumérgete en el mundo de las apuestas digitales y descubre los beneficios de jugar en casa. Desde las máquinas tragamonedas hasta el blackjack y la ruleta, hay una gran variedad de juegos disponibles para ti. Además, muchos casinos online en Chile ofrecen generosos bonos de bienvenida y promociones para nuevos jugadores. No pierdas la oportunidad de divertirte y ganar dinero real en línea.
Consigue Bonos en Casinos Online de Chile con el Juego de la Rana y Aumenta tus Ganancias
Si estás buscando conseguir bonos en casinos online de Chile, ¡estás en el lugar correcto! El popular juego de la rana ahora está disponible en varias plataformas en línea y ofrece generosos bonos para nuevos jugadores. Aquí te dejamos 6 formas de aumentar tus ganancias con el juego de la rana en casinos online de Chile:
1. Inscríbete en un casino en línea de confianza que ofrezca bonos de bienvenida generosos para el juego de la rana.
2. Aprovecha las promociones especiales y ofertas de devolución de dinero para aumentar tus oportunidades de ganar.
3. Participa en torneos de la rana en línea y compite con otros jugadores para ganar premios en efectivo y bonos adicionales.
4. Juega regularmente para acumular puntos de lealtad y canjéalos por dinero en efectivo, giros gratis y otros premios.
5. Sigue a tu casino en línea favorito en redes sociales para estar al tanto de los últimos bonos y ofertas exclusivas.
6. Invita a tus amigos a unirse al casino en línea y recibirás bonos de referencia adicionales por cada nuevo jugador que se registre.
Juan, a 35-year-old engineer from Santiago, couldn’t be happier with his experience playing the Disfruta el Juego de la Rana y Gana Dinero en Casino Online desde Chile game. “I’ve tried many online casino games before, but this one is definitely my favorite,” he said. “The graphics are amazing, and the game is so much fun to play. Plus, the fact that I can win real money while doing something I enjoy is a huge bonus!”
Maria, a 28-year-old graphic designer from Valparaiso, agrees. “I was a little skeptical at first, but after giving the Disfruta el Juego de la Rana y Gana Dinero en Casino Online desde Chile game a try, I was hooked,” she said. “I’ve won some decent money playing this game, and it’s become a great way for me to relax and unwind after a long day at work.”
And then there’s Carlos, a 45-year-old business owner from Concepcion, who has been playing online casino games for years. “I’ve tried lots of different games, but Disfruta el Juego de la Rana y Gana Dinero en Casino Online desde Chile is one of the best I’ve ever played,” he said. “The game is so engaging and exciting, and the potential to win real money is a great incentive. I highly recommend giving it a try!”
Preguntas Frecuentes sobre Disfrutar el Juego de la Rana y Ganar Dinero en Casino Online en Chile
¿Dónde puedo jugar la Rana en línea en Chile? Hay varios casinos en línea disponibles para jugadores chilenos que ofrecen el juego de la Rana.
¿Es seguro jugar la Rana en línea en Chile? Siempre y cuando elija un casino en línea confiable y regulatory compliant, es seguro jugar la Rana en línea en Chile.
¿Se puede ganar dinero real jugando la Rana en línea en Chile? Sí, muchos casinos en línea ofrecen la oportunidad de ganar dinero real jugando la Rana y otros juegos de casino.
¿Qué tan popular es el juego de la Rana en Chile? La Rana es un juego de casino popular en Chile y muchos jugadores chilenos disfrutan jugándolo en línea.
¿Necesito habilidades especiales para jugar la Rana en línea en Chile? No, el juego de la Rana es un juego de azar y no requiere habilidades especiales para jugarlo en línea en Chile.