// 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 ); Ar galite iškart mėgautis lošimais didesniame ekrane atsisiųsdami verde casino app download ir laimė – 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

Ar galite iškart mėgautis lošimais didesniame ekrane atsisiųsdami verde casino app download ir laimėti didžiausius prizus?

Šiandien internetinėje erdvėje lošimų pasaulis yra patikimai pasiekiamas vos keliais paspaudimais. Atsisiuntus verde casino app download, galite mėgautis mėgstamais lošimų automatais, stalo žaidimais ir kitomis emocijomis bet kur ir bet kada. Tai puikus būdas patirti azarto jausmą, nepalyginti su tradiciniais lošimų namais, kur reikia keliauti ir praleisti laiką susisiekimui. Mobilioji aplikacija suteikia jums galimybę žaisti patogiai ir saugiai.

Mobiliojo Kazino Privalumai: Patogumas ir Prieinamumas

Šiuolaikinis gyvenimo būdas reikalauja greičio ir patogumo. Mobilusis kazino programėlė suteikia galimybę mėgautis lošimais bet kur, net jei esate kelionėje ar tiesiog neturite laiko apsilankyti tradiciname lošimų namuose. Atsisiuntimas ir naudojimas paprastas, todėl net pradedantiesiems tai nesukels jokių sunkumų. Greitas prisijungimas leidžia iškart patekti prie žaidimų, o nuolatiniai atnaujinimai užtikrina, kad visada turėsite prieigą prie naujausių ir patraukliausių žaidimų.

Privalumas Aprašymas
Patogumas Žaiskite bet kur ir bet kada.
Prieinamumas Lengvas prisijungimas prie žaidimų.
Atnaujinimai Nuolatinis naujų žaidimų prieinamumas.
Sauga Aukštas saugumo lygis, apsaugantis jūsų duomenis.

Greitas ir Saugus Prieėjimas Prie Žaidimų

Mobilioji aplikacija ne tik suteikia patogumą, bet ir užtikrina saugumą. Visi jūsų asmeniniai duomenys yra saugomi naudojant moderniausius šifravimo metodus, o tai apsaugo nuo neteisėto priėjimo. Be to, aplikacija reguliariai atnaujinama, įdiegiant naujausius saugumo pataisymus ir užtikrinant, kad jūsų lošimų patirtis būtų kuo saugesnė. Patikima licencija garantuoja, kad kazino veikia teisėtai ir laikosi aukštų standartų.

Bonusai ir Akcijos Mobiliajame Kazino

Mobilieji kazino dažnai siūlo specialius bonusus ir akcijas, skirtas mobiliųjų aplikacijų vartotojams. Šie bonusai gali būti įvairūs: nuo nemokamų sukimų iki piniginių priedų. Naudojantis mobiliąja aplikacija galima gauti akcijas kaip verde casino app download, kurios nėra prieinamos žaidėjams, naudojantiems kompiuterinę versiją. Tai puiki galimybė padidinti savo šansus laimėti ir gauti dar daugiau naudos iš žaidimo.

Populiariausi Žaidimai Mobiliajame Kazino

Mobiliajame kazino rasite daugybę įvairių žaidimų, skirtų kiekvieno skoniui. Populiariausi žaidimai apima lošimų automatus, stalo žaidimus (pvz., pokerį, ruletę, blackjack), ir live kazino žaidimus, kuriuose galite žaisti su tikrais dalininkais. Nuolatos atnaujinamas žaidimų asortimentas užtikrina, kad visada rasite kažką naujo ir įdomaus. Atsisiuntus mobiliąją programėlę, visada turėsite prieigą prie šios įvairovės.

  • Lošimų Automatai: klasikinis pasirinkimas su daugybe temų ir funkcijų.
  • Stalo Žaidimai: pokeris, ruletė, blackjack – tikras pasirinkimas profesionalams.
  • Live Kazino: žaidimas su tikrais dalininkais, suteikiantis realistišką lošimų patirtį.
  • Jackpot Žaidimai: galimybė laimėti didelius prizus.

Lošimų Automatai: Tema, Grafika Ir Funkcijos

Lošimų automatai yra vieni populiariausių žaidimų mobiliajame kazino. Jų didelė įvairovė leidžia pasirinkti automatus pagal savo skonį. Yra teminiai automatai, skirti įvairioms kultūroms, filmams, muzikai ar istorijai. Grafika dažnai būna aukštos kokybės, o garso efektai pritraukia dėmesį. Be to, automatuose dažnai yra įvairios papildomos funkcijos, pvz., nemokami sukimai, bonusų žaidimai ar daugybiniai likimai. Žaidžiant verde casino app download, patartina išbandyti skirtingus automatus ir rasti tuos, kurie jums patinka labiausiai.

Stalo Žaidimai: Strategija ir Azartas

Stalo žaidimai, tokie kaip pokeris, ruletė ir blackjack, reikalauja strateginio mąstymo ir azarto. Pokeris yra žaidimas, kuriame reikia įvertinti savo ir varžovų kortas, blufauti ir priimti sprendimus, paremtus tikimybe. Ruletė yra azarto žaidimas, kuriame reikia numatyti, kur nukris kamuoliukas. Blackjack – tai žaidimas, kuriame reikia surinkti kortų sumą, artimiausią 21, bet neviršijant jos. Šie žaidimai yra puikus pasirinkimas žaidėjams, kurie mėgsta išbandyti savo intelektą.

Mokėjimo Būdai Mobiliajame Kazino

Mobiliajame kazino siūlomi įvairūs mokėjimo būdai, skirti patenkinati kiekvieno žaidėjo poreikius. Populiariausi mokėjimo būdai apima kreditines ir debetines korteles (pvz., Visa, Mastercard), elektronines pinigines (pvz., Skrill, Neteller) ir banko pavedimus. Svarbu pasirinkti saugų ir patikimą mokėjimo būdą, kuris atitiktų jūsų poreikius. Dažniausiai turimi būdai yra greiti ir patogūs, leidžiantys greitai įnešti pinigus ir atsiimti laimėjimus.

Mokėjimo Būdas Aprašymas
Kreditinės/Debetinės Kortelės Platus priėmimo galimybių spektras, patogumas.
Elektroninės Piniginės Greitas ir saugus būdas įnešti ir atsiimti pinigus.
Banko Pavedimas Saugaus, patikimo metodo pasirinkimas.
Kriptovaliuta Atsisakymas kontrolės trečiosios šalies.

Saugumas Ir Konfidencialumas Mokėjimo Operacijų

Saugumas ir konfidencialumas yra labai svarbūs, kai kalbame apie mokėjimo operacijas mobiliajame kazino. Visi jūsų finansiniai duomenys yra saugomi naudojant moderniausius šifravimo metodus, o tai apsaugo nuo neteisėto priėjimo. Be to, kazino paprastai reikalaus papildomos patikros, pvz., kortelės patvirtinimo kodo, siekiant užtikrinti, kad jūsų operacijos būtų saugios. Atsisiuntus verde casino app download, neturėtumėte rūpintis savo pinigų saugumu.

  1. Naudokite tik patikimus mokėjimo būdus.
  2. Patikrinkite, ar kazino turi licenciją.
  3. Būkite atsargūs su savo finansiniais duomenimis.
  4. Reguliariai keiskite slaptažodžius.

Atsakingas Lošimas Mobiliajame Kazino

Lošimas gali būti linksmas ir įdomus, tačiau svarbu žaisti atsakingai. Nustatykite sau biudžetą ir jo neviršykite. Žaiskite tik pinigais, kuriuos galite sau leisti pralošti. Nežaiskite lošimų, jei esate emociškai pažeidžiamas ar turite problemų su priklausomybe. Jei jaučiate, kad lošimai tampa problema, kreipkitės į specialistus pagalbos. Atminkite, kad lošimas turi būti pramoga, o ne būdas uždirbti pinigų. Žaidėjai turėtų visada atsiimti laimėjimą pagal verde casino app download išankstinius susitarimus.

Design and Develop by Ovatheme