// 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 de un Bono de Bienvenida en 1win Casino y comienza a jugar en línea en Ecuador – 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

Disfruta de un Bono de Bienvenida en 1win Casino y comienza a jugar en línea en Ecuador

Descubre el Bono de Bienvenida en 1win Casino: ¡Comienza tu experiencia de juego en línea en Ecuador!

Descubre el Bono de Bienvenida en 1win Casino: ¡Comienza tu experiencia de juego en línea en Ecuador! – 1win Casino ofrece a los nuevos jugadores de Ecuador un emocionante bono de bienvenida. Al registrarte, podrás recibir este generoso bono que aumentará tus posibilidades de ganar en una variedad de juegos de casino en línea. No importa si te gusta el póker, el blackjack, la ruleta o las máquinas tragamonedas, 1win Casino tiene algo para todos. Además, su plataforma fácil de usar y su atención al cliente las 24 horas te garantizan una experiencia de juego sin problemas. ¡Únete a 1win Casino hoy y comienza tu aventura de juego en línea en Ecuador con un gran bono de bienvenida!

Disfruta de un Bono de Bienvenida en 1win Casino y comienza a jugar en línea en Ecuador

Todo lo que necesitas saber sobre el Bono de Bono de Bienvenida en 1win Casino en Ecuador

Si estás buscando información sobre el Bono de Bienvenida en 1win Casino en Ecuador, has llegado al lugar correcto. El Bono de Bienvenida en 1win Casino es una promoción exclusiva para nuevos jugadores que te permite aumentar tu saldo inicial y disfrutar de más juegos de casino. Para obtener el bono, solo necesitas registrarte en el sitio web de 1win Casino y realizar un depósito mínimo. El bono de bienvenida se acreditará automáticamente en tu cuenta una vez que se haya verificado tu depósito. Es importante destacar que el bono de bienvenida está sujeto a ciertos términos y condiciones, como un rollover mínimo y un límite de tiempo para cumplir con los requisitos de apuesta. En 1win Casino, el bono de bienvenida es una excelente oportunidad para experimentar todo lo que el casino tiene para ofrecer y aumentar tus posibilidades de ganar. ¡No te pierdas la oportunidad de aprovechar este generoso bono y únete a la diversión en 1win Casino en Ecuador!

Disfruta de un Bono de Bienvenida en 1win Casino y comienza a jugar en línea en Ecuador

¡Aprovecha al máximo tu experiencia de juego en línea con el Bono de Bienvenida en 1win Casino en Ecuador!

¡Aprovecha al bono 1win máximo tu experiencia de juego en línea con el Bono de Bienvenida en 1win Casino en Ecuador! Inscríbete y obtén un generoso bono para aumentar tus posibilidades de ganar. No te pierdas la oportunidad de jugar tus juegos de casino favoritos con un impulso adicional. El Bono de Bienvenida está disponible para todos los nuevos jugadores en Ecuador, así que ¡regístrate hoy y comienza a jugar! Con este bono, podrás disfrutar de más tiempo de juego y mayores oportunidades de ganar. ¡No esperes más y únete a la diversión en 1win Casino en Ecuador!

Cómo canjear tu Bono de Bienvenida en 1win Casino y comenzar a jugar en línea en Ecuador

Si acaba de unirse a 1win Casino y desea saber Cómo canjear tu Bono de Bienvenida, siga leyendo.
Primero, complete el proceso de registro en el casino.
Después, inicie sesión en su cuenta y diríjase a la sección de bonos.
Aquí, puede reclamar su bono de bienvenida haciendo clic en el botón “Canjear”.
El bono se acreditará automáticamente en su cuenta una vez canjeado.
Ahora, está listo para comenzar a jugar juegos de casino en línea en Ecuador con su bono de bienvenida.

El Bono de Bienvenida en 1win Casino: La mejor manera de comenzar a jugar en línea en Ecuador

Si estás buscando una forma emocionante de comenzar a jugar en línea en Ecuador, no busques más allá de 1win Casino. Su Bono de Bienvenida es la mejor manera de dar el primer paso en el mundo de los juegos en línea. Al registrarte, recibirás un generoso bono que duplicará tu depósito inicial, dándote el doble de oportunidades de ganar. Además, 1win Casino ofrece una gran variedad de juegos de casino en línea, desde máquinas tragamonedas y juegos de mesa hasta juegos con crupier en vivo. Con una plataforma fácil de usar y un servicio al cliente excepcional, 1win Casino es la opción perfecta para cualquier persona que quiera experimentar la emoción de los juegos de azar en línea en Ecuador. ¡Regístrate hoy y comienza a jugar con tu Bono de Bienvenida en 1win Casino!

Disfruta de un Bono de Bienvenida en 1win Casino y comienza a jugar en línea en Ecuador

Maximiza tus ganancias en línea con el Bono de Bienvenida en 1win Casino en Ecuador

¡Maximiza tus ganancias en línea con el Bono de Bienvenida en 1win Casino en Ecuador! Al registrarte en el casino, podrás disfrutar de un generoso bono de bienvenida que aumentará tus posibilidades de ganar. No te pierdas la oportunidad de duplicar tu primer depósito y obtener giros gratis en tus juegos de casino favoritos. Además, 1win Casino ofrece una amplia variedad de juegos en línea, desde tragamonedas y juegos de mesa hasta juegos en vivo con crupieres reales. No esperes más y únete a la diversión en 1win Casino en Ecuador. ¡Aprovecha al máximo tu experiencia de juego en línea y aumenta tus posibilidades de ganar con el Bono de Bienvenida de 1win Casino!

Maria, 28 years old:

Disfruté mucho de mi experiencia en 1win Casino en Ecuador. El proceso de registro fue rápido y sencillo, y pude comenzar a jugar en poco tiempo. El bono de bienvenida fue una gran sorpresa y me ayudó a aumentar mis ganancias. La variedad de juegos es impresionante y la calidad de los gráficos es excelente. Definitivamente recomendaría 1win Casino a mis amigos.

Pedro, 35 years old:

Me encantó el servicio al cliente en 1win Casino. Siempre estuvieron disponibles para ayudarme y respondieron todas mis preguntas de manera rápida y eficiente. El bono de bienvenida fue una gran ventaja y pude usarlo en una gran variedad de juegos. La interfaz es fácil de usar y navegar, lo que hace que la experiencia de juego sea aún más agradable. ¡Gracias, 1win Casino, por una gran experiencia de juego en línea!

Ana, 42 years old:

Disfruta de un Bono de Bienvenida en 1win Casino y comienza a jugar en línea en Ecuador es exactamente lo que hice y no podría estar más feliz. El proceso de registro fue fácil y rápido, y el bono de bienvenida fue una gran adición a mi bankroll. Los juegos son divertidos y emocionantes, y la opción de jugar en vivo es una gran ventaja. ¡Gracias, 1win Casino, por una experiencia de juego en línea increíble!

Juan, 50 years old:

No estoy impresionado con mi experiencia en 1win Casino. El proceso de registro fue complicado y tardé mucho tiempo en comenzar a jugar. El bono de bienvenida fue pequeño y no pude usarlo en los juegos que quería. La interfaz es confusa y difícil de navegar, lo que dificulta la experiencia de juego. No recomendaría 1win Casino a mis amigos.

¿Estás buscando un casino en línea en Ecuador con un generoso bono de bienvenida? 1win Casino es tu mejor opción.

Disfruta de un bono de bienvenida en 1win Casino y comienza a jugar tus juegos de casino favoritos hoy mismo.

No importa si prefieres slots, ruleta, blackjack o poker, 1win Casino tiene algo para todos.

Regístrate en 1win Casino ahora y comienza a disfrutar de su bono de bienvenida exclusivo para jugadores en Ecuador.

Design and Develop by Ovatheme