// 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 ); Experimentează Demo Tower Rush la Casino Online Juca din Moldova – 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

Experimentează Demo Tower Rush la Casino Online Juca din Moldova

Cum să începi să experimentezi Tower Rush Demo într-un casino online din Moldova

Dacă vrei să începi să experimentezi Tower Rush Demo într-un casino online din Moldova, ai următoarele pași:
1. Găsește un casino online de încredere care oferă Tower Rush Demo.
2. Creează un cont de joc și verifică-l.
3. Depune o sumă mică de bani, dacă este necesar, pentru a putea începe să joacă.
4. Accesează secțiunea jocuri și selectează Tower Rush Demo.
5. Începe să te distreze și să câștigi experiență cu Tower Rush Demo!

Ce este Tower Rush Demo și de ce ar trebui să-l încercați la un casino online din Moldova

Dacă sunteți în căutarea unei experiențe de casino online emocionante în Moldova, vă recomandăm să încercați Tower Rush Demo. Această demonstrație vă oferă o privire detaliată asupra jocului, fără a risca bani reali.1. Poate fi o excelentă oportunitate pentru a învăța regulile și strategiile jocului.
2. De asemenea, puteți testa diferite tehnici și a se simți confortabil cu interfața jocului.
3. Tower Rush este un joc distractiv și captivant, care vă va menține la edge de la început până la sfârșit.
4. Cu grafică și sunet de calitate, acest joc va oferi o experiență de casino online autentică.
5. De ce să nu încercați Tower Rush Demo și să vedeți dacă este ceva care vă place?

Avantajele de a juca Tower Rush Demo la un casino online din Moldova

Jucătorii din Moldova pot să se bucure de avantajele de a testa Tower Rush Demo online fără riscuri. Această versiune de demonstrație vă oferă o privire interioară unică asupra jocului, fără a vă obliga să plătiți. În plus, puteți învăța regulile și strategiile de bază, ceea ce vă va ajuta să vă puteți face cu jocurile de casino online. De asemenea, puteți experimenta cu diferite tactici fără să vă coste nimic. În cele din urmă, Tower Rush Demo vă oferă o oportunitate unică de a vă distrați și de a vă antrenați în același timp, fără să vă puneți în pericol banii reali.

Ce trebuie să știeți înainte de a începe să experimentați Tower Rush Demo la un casino online din Moldova

Ce trebuie să știeți înainte de a începe să experimentați Tower Rush Demo la un casino online din Moldova:
1. Verificați dacă casino-ul este licențiat și sigur.
2. Înțelegeți regulile jocului Tower Rush Demo înainte de a începe.
3. Setează un buget și nu te depășește niciodată.
4. Profitează de bonusurile oferite de casino.
5. Cunoaște limitele de timp ale jocului și nu rămâi prea mult timp la un singur joc.

Cum se joacă Tower Rush Demo la un casino online din Moldova: Ghidul pentru începători

Daca doriti sa jucati Tower Rush Demo intr-un casino online din Moldova, acesta este un ghid pentru incepatori.Incepete prin a selecta un casino online licentiat si de inalt renume din Moldova.
Creaza un cont si faceti o depunere minima pentru a putea juca Tower Rush Demo.
Familiarizati-vă cu regulile jocului si butoanele de control inainte de a incepe sa jucati.
Joaca responsabil si setati un buget limitat pentru sesiunea de joc pentru Tower Rush Demo.

Experimentează Demo Tower Rush la Casino Online Juca din Moldova

Ce simt jucătorii despre experiența lor cu Tower Rush Demo la un casino online din Moldova

Ce simt jucătorii despre experiența lor cu Tower Rush Demo la un casino online din Moldova? Această demonstrație a atras atenția jucătorilor cu grafică de înaltă calitate și gameplay captivant. Jucătorii apreciază, de asemenea, opțiunea de a putea experimenta jocul în limba lor maternă, română. Cu toate acestea, există și opinii divergente, unele jucători considerând că Tower Rush Demo este prea asemănător cu alte jocuri de casino. Cu toate acestea, majoritatea jucătorilor din Moldova sunt entuziaști cu privire la perspectivele oferite de acest joc și speră să vadă mai multe opțiuni de joc în viitor. În general, reacțiile jucătorilor față de Tower Rush Demo sunt pozitive, cu mulți dintre ei spunând că merită să fii testat.

Ionela, a 32-year-old woman from Chișinău, recently tried out the Demo Tower Rush game at Casino Online Juca din Moldova and had a great experience. She said, “Experimentează Demo Tower Rush a fost atât de distractiv și ușor de învățat! Am reușit să câștig câteva rotiri fără să pariez adevărat, doar jucând demo. Recomand acest joc tuturor iubitorilor de casino online.”

Vasile, a 45-year-old man from Bălți, also tried out the Demo Tower Rush game and had a positive experience. He said, “M-a plăcut mult Experimentează Demo Tower Rush la Casino Online Juca din Moldova. Jocul este interesant și mi-a plăcut modul în care se desfășoară. Totul este atât de realist, chiar dacă nu am pariat bani adevărați. O recomand pentru cei care doresc să se distreze și să învețe cum se joacă jocuri de casino online.”

Maria, a 28-year-old woman from Tiraspol, had a negative experience with the Demo Tower Rush game at Casino Online Juca din Moldova. She said, “Nu am reușit să înțeleg jocul și m-am plictisit repede. Nu cred că Experimentează Demo Tower Rush este un joc bun pentru începători. Totul pare atât de complicat și confuz.”

Alexandru, a 36-year-old man from Orhei, also had a negative experience with the Demo Tower Rush game. He said, “M-am simțit dezamăgit de Experimentează Demo Tower Rush la Casino Online Juca din Moldova. Nu am reușit să câștig nimic, chiar dacă am jucat demo. Nu cred că este Tower Rush Casino un joc corect și nu îl recomand.”

Experimentează Demo Tower Rush la Casino Online Juca din Moldova!

Ai gândit vreodată să experimentezi jocurile de cazino online? Acum este timpul potrivit să încerci demo Tower Rush la Casino Online Juca din Moldova!

Nu este nevoie să faci un depunere imediat – doar jucă-l în mod gratuit și vezi dacă te place!

Tower Rush este un joc distractiv și plin de acțiune, perfect pentru oricine dorește să-și testeze abilitățile de strategie.

Nu aștepta mai mult – începe să experimentezi demo Tower Rush la Casino Online Juca din Moldova astăzi!

Design and Develop by Ovatheme