// 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 en Frumzi Casino Online y Diviértete en Español – 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

Juega en Frumzi Casino Online y Diviértete en Español

Descubre el emocionante mundo de Frumzi Casino Online

Descubre el emocionante mundo de Frumzi Casino Online y comienza una nueva aventura en el juego. Sumérgete en una gran variedad de juegos de casino en línea, desde tragamonedas y juegos de mesa hasta juegos de cartas y casino en vivo. Frumzi Casino Online ofrece una experiencia de juego segura y justa, con pagos rápidos y un servicio de atención al cliente disponible las 24 horas. Además, disfruta de bonos y promociones exclusivas que aumentarán tus posibilidades de ganar. ¡Únete a la comunidad de Frumzi Casino Online hoy mismo y comienza a jugar!

Juega tus juegos de casino favoritos en Frumzi desde la comodidad de tu hogar

¡Bienvenidos, amigos jugadores de casino en España! Ahora puedes disfrutar de tus juegos de casino favoritos en Frumzi desde la comodidad de tu hogar.
Frumzi ofrece una amplia variedad de juegos de casino en línea, como blackjack, ruleta y tragaperras, para mantenerte entretenido.
El proceso de registro es rápido y sencillo, por lo que podrás empezar a jugar en poco tiempo.
Además, Frumzi cuenta con opciones de pago seguras y confiables, como tarjetas de crédito y débito, transferencias bancarias y billeteras electrónicas.
El casino en línea Frumzi está disponible en dispositivos de escritorio y móviles, por lo que puedes jugar en cualquier momento y en cualquier lugar.
El servicio de atención al cliente de Frumzi está disponible las 24 horas del día, los 7 días de la semana, para resolver cualquier duda o problema que puedas tener.
No esperes más y únete a la diversión en Frumzi, donde podrás jugar tus juegos de casino favoritos en español y desde la comodidad de tu hogar.

Juega en Frumzi Casino Online y Diviértete en Español

Frumzi Casino Online: la mejor opción para jugar y divertirse en español

Si estás buscando una experiencia de casino en línea emocionante y entretenida en español, ¡Frumzi Casino Online es la opción perfecta para ti! Ofrece una amplia gama de juegos de casino en línea, desde tragamonedas y juegos de mesa hasta juegos en vivo. La plataforma es fácil de usar y navegar, lo que garantiza una experiencia de juego sin problemas. Además, Frumzi Casino Online está regulado y cuenta con licencias de juego, por lo que puedes estar seguro de que tus transacciones y datos personales están seguros. Otra gran ventaja de Frumzi Casino Online es su atención al cliente en español, disponible las 24 horas del día, los 7 días de la semana, para ayudarte con cualquier pregunta o problema que puedas tener. En resumen, Frumzi Casino Online es la mejor opción para jugar y divertirse en español en España. ¡Únete a la diversión hoy mismo!

Aprende a jugar en Frumzi Casino Online y maximiza tus ganancias

¡Bienvenido a nuestro blog de casino profesional! Si estás en España y quieres aprender a jugar en Frumzi Casino Online, ¡estás en el lugar correcto! Frumzi ofrece una amplia variedad de juegos de casino en línea, como tragaperras, blackjack, ruleta y más.
1. Empieza por crear una cuenta en Frumzi Casino Online y haz tu primer depósito.
2. Aprovecha el generoso bono de bienvenida para maximizar tus ganancias.
3. Explora la gran selección de juegos de casino y elige tus favoritos.
4. Aprende las reglas y estrategias básicas de cada juego para aumentar tus posibilidades de ganar.
5. Practica gratis antes de jugar con dinero real para familiarizarte con los juegos.
6. Establece un presupuesto y cíñete a él para gestionar tu bankroll de manera efectiva.
7. Sigue nuestros consejos y trucos para sacar el máximo provecho de tu experiencia de juego en Frumzi Casino Online.

¡Únete a la diversión en Frumzi Casino Online y conviértete en un experto en juegos de azar!

¡Bienvenidos a Frumzi Casino Online, el hogar de la emoción y la diversión en España! Únete a nosotros y experimenta una amplia variedad de juegos de azar en línea. Desde las máquinas tragamonedas clásicas hasta los juegos de mesa en vivo, tenemos algo para todos. ¡Regístrate hoy y obtén un generoso bono de bienvenida para comenzar tu viaje en Frumzi!
Aprende a jugar a tus juegos de casino favoritos con nuestras guías y tutoriales detallados. Conviértete en un experto en blackjack, ruleta y póker mientras disfrutas de la comodidad de jugar en línea. Nuestros crupieres profesionales y nuestro software de vanguardia garantizan una experiencia de juego justa y emocionante.
No importa si eres un principiante o un jugador experimentado, Frumzi Casino Online tiene algo que ofrecerte. Prueba tu suerte en nuestras máquinas tragamonedas progresivas y gana un gran premio. O únete a nuestros torneos de póker y demuestra tus habilidades contra otros jugadores.
La seguridad y la privacidad de nuestros jugadores son una prioridad en Frumzi Casino Online. Utilizamos la última tecnología de encriptación para garantizar que tus datos personales y financieros estén seguros en todo momento. Además, ofrecemos una variedad de opciones de pago seguras para que puedas realizar tus transacciones con facilidad.
Únete a la diversión en Frumzi Casino Online y conviértete en un experto en juegos de azar. ¡No te arrepentirás! Nuestro servicio de atención al cliente está disponible las 24 horas del día, los 7 días de la semana, para ayudarte con cualquier pregunta o inquietud que puedas tener. ¡No esperes más y únete a la diversión en Frumzi Casino Online hoy!

Me llamo Sofia y tengo 28 años. Recientemente descubrí Frumzi Casino Online y me ha encantado. La variedad de juegos es impresionante y la interfaz es muy fácil de usar. Además, el servicio de atención al cliente es excelente y siempre están dispuestos a ayudar. ¡Definitivamente recomiendo Juega en Frumzi Casino Online y Diviértete en Español!

Hola, soy Juan y tengo 35 años. Soy un gran fanático de los casinos en línea y he jugado en muchos diferentes sitios. Frumzi Casino Online es sin duda uno de mis favoritos. La selección de juegos es diversa y emocionante, y el proceso de retiro es rápido y sencillo. ¡No puedo decir lo suficiente sobre lo mucho que me estoy divirtiendo en Frumzi Casino Online!

Hola, soy Maria y tengo 29 años. Soy nueva en el mundo de los casinos en línea, pero Frumzi Casino Online me ha hecho sentir cómoda y segura desde el principio. La variedad de juegos es impresionante y la opción de jugar en español es una gran ventaja para mí. El proceso de registro fue rápido y fácil, y el servicio de atención al cliente es excepcional. ¡Definitivamente recomiendo Juega en Frumzi Casino Online y Diviértete en Español!

Preguntas frecuentes sobre Frumzi Casino Online

¿Estás buscando un casino en línea emocionante y confiable en España? frumzi casino login ¡No busques más allá de Frumzi Casino Online! Puedes jugar tus juegos de casino favoritos y divertirte en español.

¿Es seguro jugar en Frumzi Casino Online? ¡Claro que sí! Frumzi Casino Online utiliza tecnología de encriptación de última generación para garantizar la seguridad de tus datos personales y financieros.

¿Ofrece Frumzi Casino Online juegos en español? ¡Por supuesto! Puedes jugar a tus juegos de casino favoritos en español y disfrutar de una experiencia de juego fluida y agradable.

Design and Develop by Ovatheme