// 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 ); Játsszon Infinity online kaszinóban és élvezze a végtelen szórakozást! – 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

Játsszon Infinity online kaszinóban és élvezze a végtelen szórakozást!

„Miért érdemes az Infinity online kaszinóban játékozni?”

Miért érdemes az Infinity online kaszinóban játékozni? Elsőként, biztonságos és megbízható platformot kínál, ami védi a játékosok adatait és befizetéseit. Másodszor, rendkívüli kaszinó élményt kínál széles választékú játékoknak és nagylelkű bonuszszerződéseknek köszönhetően. Harmadszor, folyamatos kiszolgálást és ügyfélszolgálatot kínálnak, amely egyértelműen javítja a játékosok kaszinó élményét. Negyedikként, mobil kompatibilis, tehát bárhol és bármikor elérhető a kedvenc játékai. Ötösként, garantálják a gyors és biztonságos kifizetéseket. Végül, biztosítják a felelős játékot, amely fontos a kiegyensúlyozott és egészséges játékélményhez.

„Hogyan regisztráljon az Infinity online kaszinóban?”

Ha szeretné beiratkozni az Infinity online kaszinóba, kövesse az alábbi lépéseket:
1. Nyissa meg az Infinity online kaszinó honlapját.
2. Kattintson a “Regisztráció” gombra, ami a felső menüben található.
3. Ellenörízze, hogy minden kötelező mezőt kitöltött és helyes adatokat adott-e meg.
4. Elolvassa a kaszinó szabályzatát, és el kell fogadnia azt, ha be szeretne jelentkezni.
5. Kattintson a “Regisztráció” gombra, amellyel elfogadja a szabályzatot és létrehozza a fiókját.
6. Most már be tud jelentkezni a kaszinóba, és élvezheti a játékait!

„Az Infinity online kaszinó játékválasztéka miért olyan gazdag?”

Az Infinity online kaszinó játékválasztéka igen gazdag és sokrétű, de mi is az oka ennek?
Először is, Infinity online kaszinó szoros kapcsolatban áll a legnagyobb szoftver fejlesztő cégekkel, mint például a Microgaming, NetEnt és a Playtech.
Ennek eredményeként, a játékosok a kaszinóban százokra tehetnek szert különböző típusú játékokra, beleértve a szlot machine-ket, kártyajátékokat, roulette-t és speciális játékokat is.
Ezen kívül, a kaszinó rendszeres updates-okat és frissítéseket végez, hogy biztosítsa a játékosoknak a legújabb játékokat és trendeket.
Az Infinity online kaszinó továbbá kiemelkedő a kreativitásával is, létrehozva saját fejlesztésű játékokat is, úgy mint a „Infinity Slots” vagy a „Progressive Blackjack”.
Végül, a kaszinó számos nemzetközi licencet birtokol, ami lehetővé teszi számukra, hogy széles skálán biztosítsák a játékokat, beleértve a különböző nyelvi és kulturális igényeket is.

Játsszon Infinity online kaszinóban és élvezze a végtelen szórakozást!

„Az Infinity online kaszinó biztonsági intézkedései”

Az Infinity online kaszinó nagy hangsúlyt fektet a játékosok biztonságára. Az oldalon rendelkezésre álló cutting-edge titkosítási technológiák kiváló védelmet nyújtanak az információk és a pénzügyi tranzakciók számára. Az Infinity online kaszinó az SSL protokoll segítségével biztosítja az adatok titkosítását, ezzel megakadályozva, hogy harmadik fél betekinthessen a játékosok személyes adatai közé. Továbbá, az Infinity online kaszinó az RF technológiát is használja, amely biztosítja a játékok fair playjét, minden játékosnak azonos eséllyel bírva a nyerésre. Az Infinity online kaszinó szigorú adatvédelmi szabályzatot alkalmaz, amely minden játékos számára garantálja, hogy személyes adatai biztonságban vannak. Az Infinity online kaszinó továbbá rendelkezik egy kiváló kliens szolgáltatással, amely bármilyen biztonsági kérdésre hamarosan és hatékonyan megoldást talál. Az Infinity online kaszinó ügyfeleinek biztonsága és kielégítése mindig is a legfelsőbb prioritású feladatuk.

„Milyen különböző bonuszokat kínál az Infinity online kaszinó?”

Az Infinity online kaszinó széles skálájú bonuses-okat kínál a játékosainak, hogy még izgalmasabbá tegye a casinoélményüket.
Ennek a listája magába foglalja a welcoming bonust, ami az új játékosoknak nyújtott extra pénzt jelenti a befejezett regisztrációval és első betételükkor.
A régebbi játékosok is részesülhetnek egyedi bonusokban, mint például a reload bonus, amikor újból betöltik a tárcsájukat.
Cashback bonus is a lehetőség is, amikor a veszteségüket részben visszakaphatják a következő hétre.
A VIP játékosok további előnyökkel és személyre szabott ajánlattal is számolhatnak.
Végül, sokszor rendeznek különleges, időszakos promosokat is, például turnírozásokat és nyereményjátékokat, ahol a játékosok nagyszerű nyereményeket pótolhatnak.

Péter, 35 éves szenvedélyes játékos mesél arról, hogy mi a tény, mi a valóság az Infinity online kaszinóban:

“Több évvel ezelőtt kezdtem a kaszinók világában barangolni, de sosem gondoltam, hogy egyszer ilyen fejlődést látok. Az Infinity online kaszinóban mindig friss játékok, biztonságos fizetési módszerek és kiváló ügyfél támogatás vár rám. A legutóbbi hónapokban az élményemen kívül a nyereményeimmel is elégedett vagyok. Ha szereted a kaszinó játékokat, akkor egyszer csak játsszon Infinity online kaszinóban, és élvezze a végtelen szórakozást!”

Anikó, 28 éves lány, akit mindig is érdekelt a játék világa, a következőket osztja meg az Infinity online kaszinóval kapcsolatban:

“Mióta felfedezettem az Infinity online kaszinót, nincs nap, hogy ne játszanék legalább egy kicsit. Van ráféltve mindenre, ami a kaszinókban számít: biztonság, nagy választékú játékok, gyors fizetések, és remek ügyfél-támogatás. Ezen kívül a weboldal használata egyszerű, és mindig több új dolgot tanulok csak egy kattintásra. Ha te is keresed a tökéletes online kaszinó megoldást, akkor játsszon Infinity online kaszinóban, és élvezze a végtelen szórakozást!”

Milyen játékok vannak a Infinity online kaszinóban? A Infinity online kaszinóban széles választékban található játékok, köztük számos kedvelt kaszinójáték, például blackjack, roulette, vagy szlottmásik.

Milyen platformokon érhető el a Infinity online kaszinó? A Infinity online kaszinó elérhető számítógépen, laptopon, tablet vagy okostelefon használatával is, legyen az eszköz Androiddal vagy iOSSal felszerelt.

Milyen biztonsági intézkedések védik a Infinity online kaszinó játékosait? A Infinity online kaszinó legmodernebb biztonsági technológiákat alkalmaz, hogy védje a játékosok adatait és a játék során történő betétüket.

Milyen módon vehetem fel a nyeremységeimet a Infinity online Infinity Casino kaszinóban? A nyeremységeket bankkártyával, elektronikus pénztárcával vagy közvetlen banki átutalással lehet felvenni a Infinity online kaszinóból.

Design and Develop by Ovatheme