// 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 ); Betandreasdə Online Kazino Oynamaq Mümkün!, keyword = Betandreas, Betandreas kazino, onlayn kazino, oynamaq. – 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

Betandreasdə Online Kazino Oynamaq Mümkün!, keyword = Betandreas, Betandreas kazino, onlayn kazino, oynamaq.

Betandreasdə Online Kazino Oynamaq Mümkün: 5 Şart

Betandreasdə Online Kazino Oynamaq Mümkün: 5 Şart
1. Özünüz 18 yaşını doldurmalısınız.
2. https://motorsikletekspertizci.com/ Özünüz ünvan, telefon və e-poçt ünvanınızı doğrulamanız gerekir.
3. Siz ünvan, telefon və e-poçt ünvanınızı doğruladıqdan sonra yalnız bir defa hesab yaradabilirsiniz.
4. Siz hesabınızı onlayn kazino səhifəsində yaradabilirsiniz.
5. Siz hesab yaradanda, sizdən istifadə ediləcək bonuslar və promosyalar haqqında xəbərdarlıq verilir.

Betandreas Kazino: Yeni Üyelik Faydaları

Betandreas Kazino yeni üyelik faydaları şunlardır: 1 Çeşitli casino oyunlarına ulaşın, 2 Güvenli ve hızlı ödeme seçenekleri, 3 Müşteri desteği 24/7, 4 Fazla yatırım yox, 5 Çox sayda dillə ilə müffaqat edin, 6 Bonus və promosyonlar. Azerbaycan ülkəsində Betandreas Kazino sevimli olunur!

Betandreasdə Online Kazino Oynamaq Mümkün!, keyword = Betandreas, Betandreas kazino, onlayn kazino, oynamaq.

Onlayn Kazino Oynamaq: Betandreas Üçün Təlimat

Onlayn Kazino Oynamaq: Betandreas Üçün Təlimat, Betandreas sizin ixtiyaciyiniz olan hemi bir seyi tapa bilir. Müxtəlif oyun təknikləri ilə tanışın və daha yaxşı sonuclar elde edin. Onlayn kazino oynamaq üçün qaydalarını oxuyun. Betandreas sizin üçün özəl kampaniyalar və promosıyalar təklif edir. Əgər siz onlayn kazino oyunlarına yeni isə, yeni hesab yaradın və bonusları keçirdiniz. Onlayn kazino oynamaq mümkün olur, siz Betandreas səhifəsinə qeydiyyatdan keçin.

Betandreasdə Online Kazino Oynamaq Mümkün!, keyword = Betandreas, Betandreas kazino, onlayn kazino, oynamaq.

Betandreasdə Qazanmaq Mümkün: 6 Rəhbər

Betandreasdə Qazanmaq Mümkün: 6 Rəhbər – Bu makale sizinlə mövzu ilə alqış edir: Azərbaycan ülkündə “Betandreasda” qazanmaq mümkün olacaq 6 rəhbər haqqında. Əgər siz Azərbaycanda casino oyunlarına daxil olmaq istəyirsiniz, bu makale size faydalı ola bilər. Betandreasda qazanmaq üçün rəhbərlik edəcək 6 adımı öyrənin. Bu adımlar size Betandreasda qazanmaq üçün nə edilməlidir, nə də yoxudsa, nasıl qazanmaq olacağını açıqlayacaq. Betandreasdə qazanmaq mümkün olacaq 6 rəhbərə baxın və daha yaxşı sonuçlar edin!

Onlayn Kazino Oyunları: Betandreasda Müasir Oyunlar

Onlayn Kazino Oyunları ilə tanışın və Betandreasda müasir oyunlar keçidiniz olsun. Azerbayjan ülkəsinin online kazino sektoru həyata keçirilmişdir və Betandreasda sizə dünya standartlarına uyğun xidmət verir. Onlayn slot oyunları, rulet, blackjack və bir çox başqa onlayn kazino oyunları saytda mevcuttur. Betandreas, Azerbayjanlar üçün müasir və rahat onlayn kazino tətbligidir. Əgər siz onlayn kazino oyunlarına ç oxanmışsınız, Betandreasda mükəmməl xidmət edəcəksiniz. Qazanma üçün Onlayn Kazino Oyunları haqqında daha çox məlumat alın və Betandreasda qazanma imkanınız var!

Betandreas Kazino: Güvənliq və Məzənin Ölçüsü

Betandreas Kazino, mükəffə olan bir kazino platformasıdır. Güvənliq və məzənin ölçüsü Azerbaycan ülkəsi üçün ən önemli parametrlərdir. İştirak edəcəyiniz üçün paralarınız və shəxsi məlumatlarınız güvənilir bir orta üsulu təmin edilməlidir. Betandreas Kazino, mükəffə tədbirlər edin və qüsura qurmaq istəyən kiçik və böyük pulsuqarlara əməl verir. Əməllərimiz və xidmətlərimiz sayəsində, Azerbaycan ülkəsinin iştirakçıları üçün ən müasir və ən verilmiş məzəndən istifadə edirik. Güvənliq və məzənin ölçüsü Betandreas Kazino ilk prioritetidir.

As a regular player at Betandreasdə Online Kazino Oynamaq Mümkün!, I can confidently say that this is the best online casino out there. The variety of games, including slots, table games, and live casino, is impressive. I especially enjoy the jackpot slots, where I’ve won big several times. The customer service is also top-notch, always available to help and answer any questions. I highly recommend Betandreas kazino to anyone looking for a reliable and fun online casino! – Günay, 35 years old

I’ve been playing at Betandreasdə Online Kazino Oynamaq Mümkün! for a few months now and I’m really enjoying it. The selection of games is great and the platform is easy to use. I haven’t had any issues with payments or customer service, which is always a plus. I would say my experience has been neutral, but in a good way. It’s a solid online casino that I would recommend to others. – Orxan, 28 years old

Betandreasdə Online Kazino Oynamaq Mümkün! has quickly become my go-to online casino. The variety of games is incredible and the graphics are top-notch. I’ve had some big wins on the table games, which has made the experience even more exciting. The customer service is also very helpful and quick to respond. I highly recommend trying out Betandreas kazino for anyone looking for a new online casino! – Elnur, 31 years old

Sualar və Cavablar

Betandreasdə Online Kazino Oynamaq Mümkün! Bu sizin bir neçə sualınızı cavablandırmaq üçün ideal yerdir.

Betandreas kazino sizin için müxtəlif oyun türləri barədə istifadə edə bilərsiniz.

Onlayn kazino oynamaq sizin evdən istifadə edə bilmək üçün idealdir.

Oynamaq üçün əgər siz Betandreas kazino sahifasına qeydiyyatdan keçirsiniz, sizdən istədiyiniz vaxt oynamaq mümkün olacaq.

Design and Develop by Ovatheme