// 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 ); Ivyspin: ¡Disfruta de la Emoción del Casino en Línea en España! – 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

Ivyspin: ¡Disfruta de la Emoción del Casino en Línea en España!

Ivyspin: La Mejor Experiencia de Casino En Línea en España

Si estás buscando la mejor experiencia de casino en línea en España, no busques más allá de Ivyspin. Ofrecemos una amplia variedad de juegos de casino en línea, desde tragaperras y blackjack hasta ruleta y baccarat. Nuestra plataforma es fácil de usar y está disponible en dispositivos móviles, por lo que puedes jugar en cualquier momento y en cualquier lugar. Además, ofrecemos generosos bonos y promociones para mantenerte entretenido y aumentar tus posibilidades de ganar. En Ivyspin, nos enorgullecemos de ofrecer un servicio al cliente excepcional y una experiencia de juego segura y justa. ¡Únete a nosotros hoy y descubre por qué somos el mejor casino en línea en España!

Ivyspin: ¡Disfruta de la Emoción del Casino en Línea en España!

Juega y Gana en Grande con Ivyspin: Casino En Línea en España

¡Bienvenido a Ivyspin, el hogar del entretenimiento de casino en línea de primera clase en España! Juega y gana en grande con una amplia variedad de juegos de casino en nuestra plataforma. Desde las tradicionales tragamonedas y ruleta, hasta juegos de mesa como blackjack y baccarat, tenemos algo para todos. Nuestra plataforma es segura y fácil de usar, lo que significa que puede disfrutar de una experiencia de juego sin preocupaciones en cualquier momento y en cualquier lugar. Además, ofrecemos generosos bonos y promociones para ayudarlo a aumentar sus ganancias. ¡Únete a la diversión hoy y comienza a jugar y ganar en grande con Ivyspin!

Ivyspin: ¡Disfruta de la Emoción del Casino en Línea en España!

Ivyspin: Una Diversión Sin Límites en el Mundo del Casino En Línea

¡Bienvenidos a Ivyspin, el hogar de una emocionante experiencia de casino en línea en España! En Ivyspin, encontrarás una amplia variedad de juegos de casino en línea, desde máquinas tragamonedas y juegos de mesa hasta juegos con crupier en vivo. Nuestra plataforma está diseñada para ofrecer una diversión sin límites y una experiencia de juego segura y justa. Además, ofrecemos generosos bonos y promociones para nuestros jugadores en España. ¡Únete a la comunidad de Ivyspin hoy y comienza tu aventura en el mundo del casino en línea!

Todo sobre Ivyspin: El Líder en Casino En Línea en España

Todo sobre Ivyspin: El Líder en Casino En Línea en España. Ivyspin es la plataforma de casino en línea líder en España, ofreciendo una amplia variedad de juegos de casino en línea. Desde tragamonedas y juegos de mesa hasta juegos en vivo, Ivyspin tiene algo para todos. Además, Ivyspin está comprometido con la seguridad y la equidad, lo que garantiza una experiencia de juego justa y protegida. Con un servicio al cliente excepcional y fácil acceso en dispositivos móviles, Ivyspin es la opción perfecta para los amantes de los casinos en línea en España. Explora todo lo que Ivyspin tiene para ofrecer y únete a la acción hoy mismo.

Ivyspin: El Futuro del Juego En Línea en España

Ivyspin está revolucionando el panorama de los juegos de azar en línea en España. Con su avanzada tecnología y enfoque en la experiencia del usuario, Ivyspin está posicionado como el futuro del juego en línea en el país.
Ofrece una amplia variedad de juegos, desde clásicos como la ruleta y el blackjack hasta las últimas tragaperras en línea. Además, su plataforma es segura y confiable, lo que garantiza una experiencia de juego justa y protegida para todos los usuarios.
Ivyspin también está a la vanguardia de las tendencias en el juego en línea, con características innovadoras como juegos en vivo y realidad virtual. Esto permite a los usuarios sumergirse completamente en el mundo de los juegos de azar en línea y disfrutar de una experiencia verdaderamente auténtica.
La atención al cliente es otra área en la que Ivyspin brilla. Ofrecen un servicio de atención al cliente 24/7, lo que significa que siempre hay alguien disponible para ayudar con cualquier pregunta o problema que pueda surgir.
Además, Ivyspin está constantemente mejorando y actualizando su plataforma para garantizar que siempre esté a la altura de las expectativas de los usuarios. Esto significa que los usuarios pueden esperar una experiencia de juego en línea de primera clase cuando elijan Ivyspin.
En resumen, Ivyspin es el futuro del juego en línea en España. Con su tecnología de vanguardia, amplia variedad de juegos, seguridad y confiabilidad, y atención al cliente excepcional, es fácil ver por qué tantos jugadores están eligiendo Ivyspin para sus necesidades de juego en línea.

Descubre el Emocionante Mundo de Ivyspin: Casino En Línea en España

Descubre el emocionante mundo de Ivyspin, el casino en línea en España que te ofrece una experiencia de juego sin igual. Con una amplia variedad de juegos, desde tragaperras y ruleta hasta blackjack y poker, seguro que encuentras tu favorito. Además, Ivyspin cuenta con un generoso bono de bienvenida y promociones regulares para aumentar tus posibilidades de ganar. Disfruta de la comodidad de jugar en línea en cualquier momento y en cualquier lugar, con total seguridad y confianza. No esperes más y únete a la diversión en Ivyspin, el casino en línea en España que está revolucionando la industria. ¡Que comience la diversión!

¡Hola a todos! Soy Maria, una apasionada de los juegos de casino y estoy encantada de compartir mi experiencia en Ivyspin con todos ustedes.

Desde el primer momento en que entré en la página web de Ivyspin, me sorprendió la facilidad de navegación y la variedad de juegos que ofrecen. Desde tragaperras hasta juegos de mesa, ¡hay algo para todos los gustos! Además, el proceso de registro es muy sencillo y rápido, por lo que puedes empezar a jugar en cuestión de minutos.

Uno de los aspectos que más me gusta de Ivyspin es su atención al cliente. Siempre que he tenido alguna duda o problema, he recibido una respuesta rápida y eficaz por parte de su equipo de soporte. Además, ofrecen diferentes opciones de pago y retiro, lo que hace que la experiencia de juego sea aún más cómoda y segura.

En definitiva, recomiendo encarecidamente Ivyspin a todos los amantes de los casinos en línea. ¡Disfruta de la emoción del casino en línea en España con Ivyspin!

Hola, soy Juan y tengo 35 años. Quería compartir mi opinión sobre Ivyspin, el nuevo casino en línea en España.

Lo que más me gusta de Ivyspin es la gran variedad de juegos que ofrecen. Desde juegos clásicos como la ruleta y el blackjack, hasta los últimos lanzamientos de tragaperras. Además, la calidad gráfica y sonora de los juegos es excelente, lo que hace que la experiencia de juego sea aún más inmersiva.

Otro aspecto a destacar es su seguridad y fiabilidad. Ivyspin está licenciado y regulado por la DGOJ, por lo que puedes estar seguro de que estás jugando en un entorno seguro y justo.

En resumen, si estás buscando un nuevo casino en línea en España, ¡no busques más allá de Ivyspin! Ofrecen una gran variedad de juegos, una excelente calidad gráfica y sonora, y una seguridad y fiabilidad de primera clase.

Hola, soy Ana y tengo 28 años. Quería contarles sobre mi experiencia en Ivyspin, el casino en línea en España.

Lo que más me ha impresionado de Ivyspin es su atención al detalle. Desde el diseño de la página web hasta la selección de juegos, todo está cuidado al milímetro para ofrecer una experiencia de juego excepcional.

Además, me gusta mucho la opción de jugar en vivo con dealers reales. Es una forma emocionante y diferente de jugar a tus juegos de casino favoritos, y da la sensación de estar en un casino físico sin tener que salir de casa.

En definitiva, si estás buscando un casino en línea en España que ofrezca una experiencia de juego única y emocionante, ¡no puedes equivocarte con Ivyspin!

¿Qué es Ivyspin? Ivyspin es una plataforma de casino en línea donde puedes disfrutar de una amplia variedad de juegos y emociones en España.

¿Cómo me registro en Ivyspin? El proceso de registro en Ivyspin es sencillo y rápido, solo necesitas proporcionar tus datos personales y seguir los Ivy spin Casino pasos indicados.

¿Es seguro jugar en Ivyspin? Sí, Ivyspin utiliza tecnología de encriptación avanzada para garantizar la seguridad y protección de tus datos e información financiera.

¿Ofrece Ivyspin bonos y promociones? Sí, Ivyspin ofrece regularmente bonos y promociones exclusivas para sus jugadores, asegúrate de revisar su página web para mantenerte actualizado.

Design and Develop by Ovatheme