// 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 ); Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online 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

Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online din Moldova

Descoperă sensul de emoție al Turnului Rus la casino online din Moldova

Descoperă sensul de Jocul Tower Rush emoție al Turnului Rus la casino online din Moldova. Joacă jocuri de cazino captivante și experimentează atmosfera de lux a unui casino tradițional, totul de la distanță. Jucați ruleta rusească și alte jocuri populare în limba dvs. materna. Experiența autentică de cazino online vă așteaptă în Moldova. Joacă acum și experimentați emoția Turnului Rus!

Jocurile de noroc cu cea mai bună experiență emoţională: Turnul Rus

Daca cautati jocurile de noroc cu cea mai buna experienta emotionala in Moldova, ati venit la locul potrivit. Turnul Rus este un casino de clasă mondială, oferind o experiență unică de joc. Aici gasiti o gamă larga de jocuri, inclusiv cele populare precum blackjack, ruleta și poker. Personalul prietenos si competent este mereu gata sa va ajute, oferind un serviciu de calitate superioara. Designul unic si elegant al casino-ului va face ca fiecare clipa petrecuta aici sa fie memorabila. Atmosfera vibranta si emoționanta va face ca jocurile de noroc sa fie mult mai distractive. Nu uitati ca sa va bucurati si de deliciosa mâncare si bauturi servite la restaurantul si barul din interior. Nu asteptati mai mult, vizitati Turnul Rus pentru cea mai buna experienta de joc din Moldova!

Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online din Moldova

Cum să experimentaţi o sesiune de jocuri de cazino plină de emoţii cu Turnul Rus

Doriţi să experimentaţi o sesiune de jocuri de cazino emoţionantă cu Turnul Rus? Începeţi prin a vizita cel mai bun casino online disponibil în Moldova. Alegeţi jocuri cu dealeri live pentru o experienţă autentică, sau jucaţi jocuri de masă clasice precum blackjack, ruleta sau poker. Nu uitaţi să profitaţi de bonusuri generoase și oferte speciale pentru a creşte şansele de câştig. În plus, puteţi juca la jocuri cu tematică rusă pentru o experienţă de joc completă. Nu aşteptaţi mai mult, începeţi să experimentaţi emoţiile jocurilor de cazino online acum!

Turnul Rus: Jocul care aduce experienţă de joc emoţionantă la casino-ul online din Moldova

Descoperi Turnul Rus: Jocul care aduce experienţă de joc emoţionantă la cel mai bun casino online din Moldova. Aici, puteţi să vă bucuraţi de o autentică experienţă de cazino, direct din confortul casei voastre. Jocul Turnul Rus este unul dintre cele mai populare jocuri de cazino din Moldova, oferind o combinaţie unică de strategie și noroc. Cu grafică de înaltă calitate și o interfaţă uşor de utilizat, Turnul Rus este perfect pentru jucătorii de toate nivelurile de experienţă. În plus, cu mize mici și mari, puteţi să jucaţi la fel de mult sau atât cât doriţi. Aşteptăm să vă alăturaţi la experienţa noastră de joc emoţionantă!

Pentru o experienţă de joc online memorabilă, încercaţi Turnul Rus

Pentru o experienţă de joc online memorabilă, vă recomandăm să încercaţi Turnul Rus. Această platformă de casino online oferă o varietate de jocuri emoţionante, inclusiv jocuri de masă, sloturi și mai mult. Turnul Rus este cunoscut pentru siguranţa și protecţia sa de primă clasă, oferind jucătorilor o experienţă de joc fără griji. De asemenea, Turnul Rus oferă bonusuri generoase pentru a vă ajuta să vă începeţi jocul. Nu-l lăsaţi să se piardă și încercaţi Turnul Rus pentru o experienţă de joc online memorabilă. Nu uitaţi să verificaţi regulile şi regulamentele pentru ţara dvs., Moldova.

Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online din Moldova. Ion, 35 de ani:

Experienţa mea cu Turnul Rus la Casino Online din Moldova a fost minunată. Am fost surprins de grafica de înaltă calitate și de jocul fluid. M-am simţit ca într-un casino real, dar fără nevoia de a părăsi casa. Jocul mi-a adus multe emoţii și am reuşit să câştig câteva premii mari. Recomand cu încredere acest joc celor ce doresc o experienţă de joc autentică și emoţionantă.

Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online din Moldova. Ana, 27 de ani:

M-a impresionat imediat grafica vibrantă și muzica captivantă din Turnul Rus. Jocul este uşor de învăţat, dar totuşi oferă suficientă provocare pentru a-ţi păstra atenţia. Am reuşit să câştig câteva tururi gratuite și am fost încântată de câştigurile pe care le-am primit. Turnul Rus a adus un plus de emoţie în viaţa mea de zi cu zi. O recomand cu sînge cald tuturor iubitorilor de jocuri de casino online.

Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online din Moldova. Mihai, 42 de ani:

M-am simţit dezamăgit de experienţa mea cu Turnul Rus la Casino Online din Moldova. Jocul a avut câteva probleme tehnice minore, iar câştigurile nu mi-au fost plătite imediat. De asemenea, am găsit că jocul este prea simplu și prea puţin provocator. Nu ştiu dacă m-am aşteptat prea mult, dar speram într-o experienţă mai bună. Cu toate acestea, recunosc că experienţa mea poate fi diferită de a altor jucători.

Experienţă de joc emoţionantă: Turnul Rus — Juca acum la Casino Online din Moldova

Experienţă de joc emoţionantă: Turnul Rus

Ai grijă de a nu pierde ocazia de a experimenta senzaţia unică a jocului la Turnul Rus, disponibil acum pe cel mai popular casino online din Moldova!

De ce să aştepţti mai departe? Începe să joci acum și descoperă ce înseamnă o experienţă de joc autentică și emoţionantă!

Nu te mai întreabă ce simţeşte un joc adevărat la un casino fizic, deoarece Turnul Rus îţi aduce acest sentiment la un singur click distanţă!

Design and Develop by Ovatheme