// 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 ); Jogue no Alfuscasino: o melhor cassino online em Português – 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

Jogue no Alfuscasino: o melhor cassino online em Português

Descubra porque Alfuscasino é o cassino online preferido em Portugal

Descubra porque Alfuscasino é o cassino online preferido em Portugal. Oferecemos uma ampla variedade de jogos de casino online, desde slots clássicos até jogos de mesa em tempo real. Além disso, nossa plataforma é segura e confiável, oferecendo transações rápidas e eficientes.
Experimente nossos jogos de blackjack e roulette, ou tente sua sorte em nossos slots progressivos com jackpots gigantescos. Alfuscasino também oferece promoções e ofertas exclusivas para jogadores portugueses, incluindo freerolls diários e torneios de slot.
Com suporte ao cliente disponível 24/7 e uma equipe de especialistas dedicados a ajudar você a maximizar sua experiência de jogo, é fácil ver por que Alfuscasino é o cassino online preferido em Portugal.
Registre-se hoje e descubra por si mesmo por que tantos jogadores em Portugal escolhem Alfuscasino como seu cassino online de confiança.

Jogue no Alfuscasino: o melhor cassino online em Português

Se procuras um cassino online em Português de confiança, recomendamos o Alfuscasino! Oferecemos uma ampla variedade de jogos de casino, Alfus casino login incluindo slots, blackjack, roulette e muito mais. Todos os nossos jogos são auditados regularmente para garantir a equidade e a aleatoriedade. Além disso, oferecemos opções de pagamento seguras e convenientes, bem como um excelente serviço de atendimento ao cliente. Jogue no Alfuscasino e experimente o melhor cassino online em Português!

Vantagens de jogar no Alfuscasino, o melhor cassino online em PT

Se procuras um cassino online de confiança em Portugal, recomendamos vivamente o Alfuscasino. Eis algumas vantagens de se jogar no Alfuscasino:
1. Jogo em PT: O Alfuscasino oferece uma plataforma completa em português, facilitando a navegação e o jogo.
2. Ampla variedade de jogos: Desfrute de uma vasta gama de jogos de cassino, desde slots e jogos de mesa até jogos ao vivo.
3. Bônus e promoções: O Alfuscasino oferece generosos bônus de boas-vindas e promoções regulares para manter a diversão.
4. Transações seguras: Com criptografia de ponta a ponta, os jogadores podem ter a certeza de que as suas transações estão seguras.
5. Suporte ao cliente 24/7: O Alfuscasino disponibiliza assistência ao cliente em português, a qualquer hora do dia ou da noite.
6. Programa de fidelidade: Os jogadores podem aproveitar vantagens adicionais através do programa de fidelidade do Alfuscasino.
7. Jogos justos: O Alfuscasino utiliza um gerador de números aleatórios para garantir que os jogos sejam justos e aleatórios.
8. Dispositivos móveis: Com a plataforma móvel do Alfuscasino, os jogadores podem jogar os seus jogos preferidos em qualquer lugar e em qualquer hora.

Jogue no Alfuscasino: o melhor cassino online em Português

Como se registrar e começar a jogar no Alfuscasino

Para se registrar e começar a jogar no Alfuscasino em Portugal, siga estes passos simples:
1. Visite o site oficial do Alfuscasino e clique no botão “Registrar-se” na parte superior direita da página.
2. Preencha o formulário de registro com suas informações pessoais, incluindo nome, endereço de e-mail e data de nascimento.
3. Escolha um nome de usuário e uma senha segura para sua conta.
4. Verifique sua conta por meio do e-mail enviado pelo Alfuscasino.
5. Faça um depósito na sua conta usando um dos métodos de pagamento disponíveis, como cartões de crédito ou portefólios eletrônicos.
6. Navegue pelo catálogo de jogos do Alfuscasino e escolha o jogo que deseja jogar.
7. Clique no botão “Jogar agora” e aguarde a página do jogo ser carregada.
8. Comece a jogar e desfrute da emoção do Alfuscasino!

Os melhores jogos de cassino online estão no Alfuscasino

Se procuras os melhores jogos de casino online, o Alfuscasino é o lugar certo para você

Proteja sua segurança e privacidade jogando no Alfuscasino

Se você está procurando por um cassino online em que possa se sentir seguro e protegido, então o Alfuscasino é a escolha perfeita para você. Com uma ênfase especial em segurança e privacidade, o Alfuscasino garante que suas informações pessoais e financeiras estejam sempre protegidas.
A plataforma de cassino online do Alfuscasino é totalmente encriptada, o que significa que suas informações estão sempre codificadas e seguras contra invasores. Além disso, o Alfuscasino nunca compartilha suas informações com terceiros, o que garante que sua privacidade seja respeitada em todo momento.
Mas a segurança e a privacidade não são as únicas coisas que o Alfuscasino tem a oferecer. Com uma ampla variedade de jogos de cassino, incluindo slots, blackjack, roulette e muito mais, o Alfuscasino tem algo para todos os gostos.
Além disso, o Alfuscasino oferece regularmente promoções e ofertas especiais, o que significa que há sempre algo a ganhar. E com um excelente serviço de atendimento ao cliente, você pode ter a certeza de que suas perguntas e preocupações serão atendidas em tempo hábil.
Então, se você quer se divertir e ganhar dinheiro ao mesmo tempo, não procure mais. Proteja sua segurança e privacidade jogando no Alfuscasino.
Inscreva-se hoje mesmo e comece a jogar no melhor cassino online do momento!

Maria, 35, escreve:

Joguei no Alfuscasino e fiquei impressionada com a qualidade da plataforma e a variedade de jogos disponíveis. O suporte ao cliente foi rápido e eficiente, e eu me senti segura ao realizar meus depósitos e retiradas. Recomendo o Alfuscasino para qualquer pessoa que queira experimentar a melhor experiência de casino online em português!

Pedro, 45, escreve:

O Alfuscasino é simplesmente o melhor cassino online em Português. A seleção de jogos é fantástica, e a equipe de suporte ao cliente é sempre pronta para ajudar. Eu me sinto confortável jogando lá, sabendo que meus dados e transações estão seguros. Jogue no Alfuscasino e veja por si mesmo por que é tão popular!

Ana, 28, escreve:

Eu sou uma jogadora em casinos online há alguns anos, e posso dizer que o Alfuscasino é realmente o melhor em português. Eles têm uma grande variedade de jogos e oferecem promoções emocionantes. O processo de registro é rápido e fácil, e o suporte ao cliente é excelente. Eu recomendo o Alfuscasino para qualquer pessoa que queira experimentar a melhor experiência de casino online em português.

Carlos, 50, escreve:

Eu não sou um grande fã de casinos online, mas eu decidi dar uma chance no Alfuscasino. Infelizmente, eu não fiquei impressionado. A plataforma é confusa e difícil de navegar, e eu tive problemas para encontrar os jogos que eu queria jogar. Além disso, o suporte ao cliente foi lento em responder às minhas perguntas. Não recomendaria o Alfuscasino para outras pessoas.

Laura, 32, escreve:

Eu tinha ouvido muito sobre o Alfuscasino, então eu decidi dar uma chance. Infelizmente, minha experiência não foi boa. Eu tive problemas com minha conta e o suporte ao cliente não foi capaz de ajudar. Além disso, eu achei que os jogos eram muito parecidos com os de outros casinos online. Não acho que o Alfuscasino vale a pena o tempo e o dinheiro.

Jogue no Alfuscasino: o melhor cassino online em Português

O Alfuscasino oferece a melhor experiência de casino online em português.

Com uma ampla variedade de jogos, incluindo slots, blackjack e roulette, você encontrará certeza algo que amar.

Além disso, o Alfuscasino oferece generosos bônus e promoções para mantê-lo jogando e ganhando.

Experimente o Alfuscasino hoje e descubra por que é o melhor cassino online em português.

Design and Develop by Ovatheme