// 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 ); DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan – 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

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan

DBBet Bonuslarından Necə Faydalana Bilərsiniz?

DBBet bonuslarından faydalanmaq üçün ilk olaraq platformada qeydiyyatdan keçməlisiniz.
Bonus təklifləri adətən “Promotions” və ya “Bonuslar” bölməsində təqdim olunur.
Hər bir bonusun aktivləşdirilməsi üçün xüsusi şərtlər və minimum depozit tələbləri olur.
Bonus kodu tələb edən təkliflərdə müvafiq kodu ödəniş zamanı daxil etməlisiniz.
Mükafatlarınızı idarə etmək üçün şəxsi hesab panelindən “Bonuslarım” bölməsinə keçid verin.
Bonus vəsaitini real pul kimi istifadə etmək üçün adətən müəyyən oyunlarında turnover tələblərini yerinə yetirməlisiniz.
Bonusların müddəti məhdud olduğuna görə, onları müvafiq zaman ərzində aktivləşdirmək vacibdir.
Bonus siyasətlərinin dəqiq tərtibatını oxumaq, hər bir təklifin detalını anlamağa kömək edəcək.

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan

DBBet Mobil Tətbiqi Üstünlükləri Nələrdir?

DBBet mobil tətbiqinin əsas üstünlüklərindən biri onun istənilən yerdə, istənilən vaxt əlçatan olmasıdır. Tətbiqin interfeysi istifadəçi dostu olmaqla, asan naviqasiya və sürətli əməliyyatlar təmin edir. O, real vaxtda canlı mərcləri və ən son əmsalları izləməyə imkan yaradır. Məhdudiyyətsiz depozit və çıxarış əməliyyatları maliyyə rahatlığı gətirir. Eksklüziv mobil bonuslar və kampaniyalar yalnız tətbiq vasitəsilə əldə edilə bilər. Mükəmməl təhlükəsizlik sistemi şəxsi məlumatlarınızı və vəsaitlərinizi qoruyur. Push-bildirişlər sayəsində ən mühüm hadisələrdən və təkliflərdən xəbərdar olursunuz. Tətbiq həm iOS, həm də Android əməliyyat sistemləri ilə uyğun işləyərək geniş çeşiddə idman növləri və kazino oyunları təqdim edir.

DBBet-də Ödəniş Üsulları və Vaxtları

DBBet-də ödəniş üsulları Bank kartları, elektron pul kisələri və kriptovalyuta ilə mümkündür.
Ödənişlərin vaxtı seçilən metod və təminatçıya uyğun olaraq dəyişir.
Əksər kart ödənişləri və elektron kisələr real vaxt rejimində hesaba əlavə olunur.
Kriptovalyuta köçürmələri blokun təsdiqini gözləməlidir, bu da müddəti uzada bilər.
Çıxarış prosesləri üçün müddət eyni prinsipə uyğun, lakin əlavə təsdiqləmə tələb edə bilər.
Minimum və maksimum ödəniş məbləğləri hər bir üsula görə platformada müəyyən edilmişdir.
Ödəniş operasiyalarında heç bir gizli komissiya yoxdur, bütün şərtlər açıq şəkildə göstərilir.
Müştəri dəstəyi ödəniş problemlərinin sürətli həlli üçün hər zaman aktivdir.

DBBet-də Təhlükəsiz Oyun Təcrübəsi Necə Təmin Olunur?

DBBet-də təhlükəsiz oyun təcrübəsi, qabaqcıl şifrələmə texnologiyaları ilə təmin olunur. Oyunçuların maliyyə və şəxsi məlumatları qorunan serverlərdə saxlanılır. Lüğət, qumar fəaliyyətinin qanuni yaş həddinə riayət etmək üçün sərt yaş təsdiqi tətbiq edir. Mərc saytı ədalətli oyun nəticələrini təmin etmək üzrə müstəqil təşkilatlar tərəfindən audit olunur. Məsuliyyətli qumar vasitələri, oyunçulara öz fəaliyyətlərini nəzarət etməyə kömək edir. Şübhəli əməliyyatlar real vaxt rejimində izlənir və təhlil edilir. Müştəri dəstəyi komandası hər hansı təhlükəsizlik problemini tez həll etmək üçün həmişə hazırdır. Oyunçular əmanətlərinin və qazanclarının mühafizəsi üçün çoxamilli təhlükəsizlik protokollarına arxalana bilərlər.

Adım Elnur, 28 yaşım var. DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan platformasında slot oyunları oynayıram. Mobil proqramın işləmə sürəti və canlı diler oyunlarının keyfiyyəti məni heyrətləndirib. Qazanclarımı tez və problemsiz çıxara bilirəm, bu da inamımı artırır.

Mən Aygün, 35 yaşlı oyunçuyam. DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan saytını istifadə edərkən ən çox müxtəliflik bəyəndim. Çoxsaylı oyun seçimləri və uduşlu bonuslar var. Dəstək xidməti hər sualımı cavablandırır, bu da rahat oynamağa imkan verir.

Adım Rəşad, 42 yaş. DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan təcrübəm çox müsbətdir. İnterfeys aydın və başa düşüləndir, hesabım təhlükəsiz hiss olunur. Ən əsası isə ödənişlərin şəffaflığıdır, burada oynamaq güvən verir.

Mən Fərid, 31 yaş. DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan platformasında bir neçə oyun sınamışam. Ümumiyyətlə, hər şey normaldır, oyunlar stabil işləyir. Ancaq bəzi bonus şərtləri bir az qarışıq görünür, ona görə də tam müsbət deyiləm.

Adım Ləman, 39 yaş. DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan vasitəsilə kazinoda vaxt keçirirəm. Funksionallıq orta səviyyədədir, nə çox pis, nə də çox yaxşı. Oyun seçimi kifayətdir, amca daha çox yerli ödəniş üsulu əlavə oluna bilərdi.

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan açar sözü ilə platformaya daxil olmaq üçün rəsmi saytdan mobil tətbiqi yükləməlisiniz.

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan istifadəçiləri https://peyzajkongresi.org/ üçün hesab yaratmaq və doğrulamaq sadə prosesdir.

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan oyunçuları müxtəlif slotlar və kazino oyunları ilə tanış ola bilər.

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan-də depozit və vəsait çıxarılması üsulları lokal ödəniş sistemlərini dəstəkləyir.

DBBet App Login Onlayn Kazino Oynamaq | Rəsmi DBBet Azerbaijan-da mərclər və bonuslar Azərbaycan qanunvericiliyinə uyğun təqdim olunur.

Design and Develop by Ovatheme