// 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 ); Betandreas Kasino Promo Kodu: Onlayn Kazino Oynamaq Mümkün! – 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

Betandreas Kasino Promo Kodu: Onlayn Kazino Oynamaq Mümkün!

Betandreas Kasino Promo Kodu: Mükəmməl Onlayn Kazino Tecrübəsi

Betandreas Kasino sizin için mükəmməl bir onlayn kazino tecrübəsi sunuyor. Betandreas Kasino Promo Kodu ile daha çox faydalanabilirsiniz. Əgər siz Azerbaycan qumurasından istifadə edirsiniz, betandreas daha çox faydalarınızı çəkilə bilərsiniz. Betandreas Kasino, çeşidli oyunlar, gücləndirilmiş mükafatlar və professional xidmət etmisdirmişdir. Betandreas Kasino ilk danasma edin və Promo Kodunu kullanın, toplu faydalarınızı çəkilin! Betandreas Kasino sizin için mükəmməl bir onlayn kazino təfəvvudi edir.

Onlayn Kazino Oynamaq Mümkün: Betandreas Kasino Promosunun Avantajları

Onlayn Kazino Oynamaq Mümkün: Betandreas Kasino Promosunun Avantajları. Betandreas Kasino, sizin için müzakir oyunlar sunuyor. İndi onlayn kasino oynamaq mümkün. Azerbaycanlıların seçimi Betandreas Kasino. Çoxlu bonuslar və promoslar tapın. Onlayn slot oyunları, poker, blackjack və digər oyunları keçid edin. Betandreas Kasino, sizin için müzakir ve güvenli oyun tecrübəsi sunuya. Onlayn kazino oynamaq mümkün: Betandreas Kasino Promosunun Avantajları.

Betandreas Kasino Promo Kodu: Bonus Kazanma Reqemleri

Betandreas Kasino, Azerbaycanda populyar olan bir kasino platformudur. Müştərilərin qazanma imkanı yaratmaq üçün fəzilət kodları dünyasından tanınmışdır. Əgər sizinla əlaqə saxlayacaqız, sizə Betandreas Kasino Promo Kodu verə bilərik. Bu kodlar bonus kazanma reqemləri ilə gəlir. Əgər siz kasino oyunlarına daha çox məcbur olduğunuz zaman, bizim kodlarımızı istifadə edin. Siz Bonus Kazanma Reqemləri ilə qazanmaq istəyirsinizsə, bizim ile əlaqə saxlayın. Biz sizin üçün en uygun fəzilət kodlarını seçək. Böyük kazanma imkanı yalnız Betandreas Kasino Promo Kodu ilə mövcuddur!

Kasino Oynamaq: Betandreas Kasino Promo Kodu İstifadəsi

Kasino oynamaq sevənlər üçün çox təhlükəsiz bir seçimdir. Betandreas Kasino promo kodu istifadəsi ilə daha çox fayda saxlaya bilərsiniz. Bu kodlar sizin üçün özəllikler, bonuslar və daha çox faydalı seçenliklər getirir. Ayrıca, müştərilər üçün çox rahat və güvenli bir ortaş olan Betandreas Kasino, Azerbaycanda mənimsinliklə qəbul edilir. Kasino oynamaq üçün ən çox sevdiyi oyunları keçin, Betandreas Kasino sizin üçün hazır edilmişdir. Kasino promo kodunu istifadə edərkən, daha çox oyunculuk və daha az risk yoxdur. Bu, sizin keyfiyinizi artırmaq və daha çox fayda saxlaya bilmək üçün ideal seçimdir. Betandreas Kasino Promo Kodu istifadəsi ilə Azerbaycanda kasino oynamaq üçün ən çox müvafiq şansınız var!

Onlayn Kasino Başla: Betandreas Kasino Promo Kodu ile Qiymətə Salan Fıyat

Onlayn Kasino Başlayın: Betandreas Kasino Promo Kodu ile İndirimli Fıyat! 🤑 Azerbaycan ülkəsində asan və güvenli onlayn kasino oyunları keçidinizdir. Betandreas Kasino Promo Kodu ile qiymətə salan fıyatlarla keyifli vaxtınızı təəssüf edin. 🎰 Onlayn slotlar, rülevaniyyatlar, poker və bir çox başqa oyun türü ilə tanışın. Həydi, bugün kasino öyunlarına çevirin və zəfənın ortasına qoyun! 💥 Betandreas Kasino, sizin için hazırladığı promo kodları ilə daha ən keyifli və faydalı onlayn kasino tadbirini keçid edin. 🎁 Onlayn Kasino Başlayın və ən çox sevinəcək oyunları keçirdin! 🌟

Betandreas Kasino Promo Kodu: Ən Kolay Kazino Oynamaq Yolları

Betandreas Kasino sizin için Azerbaycan dilinde ən kolay oynama yolları sunuyor. Kasino promosunun kodu “Ən Kolay Kazino Oynamaq Yolları” olar. Bu kodu kullanarak qazanma fıyatı daha ucuzdur. Ayrıca, biz sizin için çeşitli bonuslar ve promosyonlar sunuyoruz. Betandreas Kasino, güvenli oynama, geniş oyun seçimi ve mükəmmel müşahidə destek etmək üçün tahlili alınıb. Bugün kodu kullanın ve başlayın oynamaq!

Məhnİ olduğu kimi, İndİ elə betandreas kazino oynamaq mümkün oldu! ƏmİndƏ olduğum: siz hƏmƏkİndƏ iyi bir zamana baxacaqsınız.

MƏnim adİm Elnur, mən 27 il olduğumdən sonra keçirdİm betandreas kazino saytını. İlk dəfə oynadığım zaman, mƏni çox rahat edİrən bir interfeys iman edİrdİ. MƏni daha öncƏ oynadığım heç bir kazino sƏhİfəsi ilƏ tƏbii ki, daha rahat deyİldİ. MƏni qeyd etmİyİn ki, mƏn sƏnİtdƏn çİxarİlmaq üçün bİr saniyə qalmaqla qazanmaq olar.

MƏni daha çox sevİrdİğİm oyun slotlar oldu. Onların hƏr bİrİnİn rƏngi vƏ sƏvişlİyİ grafİkası mƏni dİvİjdar edİr. MƏni daha çox sevİrdİğİm slot oyunu Chİlİ peppers oldu. Bu oyunun tİflİsİ vƏ mƏnİ sevİndİmiş mƏzİnİn tİflİsİ olduğunu dÜşünƏrəm.

MƏnim adİm Nurlan vƏ mƏn 33 il oldu. MƏni İnstragramdan betandreas kazino promo kodu haqqında oxuyub, onu yoxlaya qədər gedİm. MƏni rahatlayacağımı dÜşündüm vƏ mƏn dÜzgün olar, dİqqƏt edİrək kodu yazmaq lazİmdİ.

MƏni çox sevİrdİğİm oyunlar blackjack vƏ ruzİn oldu. Onların hƏr bİrİnİn rƏngi vƏ sƏvişlİyİ grafİkası mƏni dİvİjdar edİr. MƏni daha çox sevİrdİğİm blackjack oyunu Classic Blackjack oldu. Bu oyunun tİflİsİ vƏ mƏnİ sevİndİmiş mƏzİnİn tİflİsİ olduğunu dÜşünƏrƏm.

MƏn sİğərdİm ki, siz hƏmƏkİndƏ iyi bİr zamana baxacaqsınız. Betandreas kazino onlayn oynamaq mümkün!

Sualar Sorusu: Betandreas Kasino Promo Kodu – Onlayn Kazino Oynamaq Mümkün!

1. Betandreas kasino promo kodu nədir? Betandreas kasino promo kodu, kasino oynayıcılarına özel faydalı xidmətlər edinmək üçün kullanılır.

2. Onlayn kazino oynamaq mümkün olur? Bəli, Betandreas kasino sizin üçün onlayn kazino oynamaq imkanı sunar.

3. Betandreas kasino promo kodu nasıl istifadə edilir? Promo kodunu kasino sitesinin “Promo kod” səhifəsine daxil edin.

4. Betandreas kasino promo kodu necə edinilir? Promo kodlarını kasino sitesindən ya da xidmət markasının sosial şəbəkəsindən edinin.

Design and Develop by Ovatheme