// 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 ); Mostbet Platformasına Dərin Baxış – Mostbet İlk Baxış – İnterfeys və Əsas Bölmələr – 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

Mostbet Platformasına Dərin Baxış – Mostbet İlk Baxış – İnterfeys və Əsas Bölmələr

Mostbet Platformasına Dərin Baxış – Nə Təklif Edir və Necə İşləyir?

Gəlin birlikdə Mostbet adlı bu platformanı araşdıraq. Bu, Azərbaycanda mərc və onlayn kazino xidmətləri təqdim edən bir saytdır. Amma bu, sadəcə bir saytdan daha çoxudur, elə deyilmi? Bu yazıda, onun interfeysindən tutmuş, necə qeydiyyatdan keçdiyinizə, pulunuzu necə idarə etdiyinizə qədər hər şeyi addım-addım nəzərdən keçirəcəyik. Maraqlı bir məqamdır ki, platformanın təklifləri haqqında daha geniş məlumat üçün https://sinematopya.com/ kimi resurslara da rast gəlmək olar, bu da öz-özünə araşdırmağa dəyər bir nöqtədir.

Mostbet İlk Baxış – İnterfeys və Əsas Bölmələr

Sayta daxil olan kimi, sizi nə qarşılayır? Dizayn olduqca dinamik və rəngli görünür. Yuxarıda əsas idman növləri və kazino oyunları üçün aydın seçimlər var. Sol tərəfdə isə canlı mərclər, virtual idmanlar kimi bölmələr siyahılanıb. Amma bu həmişə yaxşıdırmı? Bəzi istifadəçilər deyir ki, ilk baxışda çoxlu informasiya göz qorxuda bilər, digərləri isə hər şeyin əlaltında olmasını bəyənir. Sizcə, sadəlik mi yoxsa hər şeyin bir yerdə olması mı daha vacibdir?

Mostbet-də Funksionallıq – Hər Şey Nə Qədər Rahatdır?

Funksionallıq baxımından platforma olduqca geniş imkanlar təklif edir. İdman mərclərində müxtəlif marketlər, canlı yayım (stream) seçimləri var. Kazino hissəsində isə yüzlərlə slot oyunu, rulet, kart oyunları mövcuddur. Ancaq burada bir sual yaranır: bu qədər seçim içində istədiyinizi tapmaq asanmı? Axtarış funksiyası və filtrlərin işləmə sürəti buna cavab verə bilər. Mənim fikrimcə, bu, hələ də öyrənilməli bir sahədir.

Qeydiyyat Prosesi – Mostbet-də Hesab Açmaq

İndi gəlin ən vacib mərhələyə – qeydiyyata keçək. Bu, adətən sadə görünür, amma həqiqətən də belədirmi? Proses əsasən telefon nömrənizi və ya e-poçtunuzu daxil etməklə başlayır. Sonra bir neçə addımda şəxsi məlumatlarınızı təsdiqləməlisiniz. Burada maraqlı bir nüans var: bəzi istifadəçilər bunun sürətli olduğunu deyir, digərləri isə təhlükəsizlik üçün əlavə təsdiq mərhələlərinin olmasını normal qəbul edir. Sizcə, sürət mi, yoxsa təhlükəsizlik mi daha üstün tutulmalıdır?

  • Telefon nömrənizi və ya e-poçt ünvanınızı daxil edin.
  • Gələn SMS kodu və ya e-poçt linkini təsdiqləyin.
  • Şəxsi məlumatlar bölməsini doldurun (ad, soyad, doğum tarixi).
  • Platformanın istifadə şərtlərini oxuyun və qəbul edin.
  • Hesabınıza daxil olun və ilk depozitinizi etməyə hazır olun.

Mostbet Mobil Tətbiqi – Oyun Harada Olursanız Olsun

İndiki zamanda mobil tətbiq olmadan bir platforma tam sayılmaz ölçüsü. Mostbet-in Android və iOS üçün tətbiqi var. Onu rəsmi saytdan və ya mağazalardan yükləyə bilərsiniz. Tətbiqin interfeysi əsas sayta bənzəyir, loptimizasiya edilib. Ancaq bəs ya onun ölçüsü və batareya sərfiyyatı? Bu, həmişə aşkar olunmayan bir amildir. Bəzi rəylərə görə, tətbiq kifayət qədər yüngüldür, lakin uzun müddətli istifadədə performans necə olur, bu da öyrənilməlidir.

Mostbet

Bonuslar və Promo Aksiyalar – Mostbet-də Əlavə Dəyər

Bonuslar demək olar ki, hər platformanın cazibə mərkəzidir. Mostbet-də ilk depozit bonusu, pulsuz fırlanmalar (free spins), və yaş günü bonusu kimi təkliflər var. Amma burada diqqətli olmaq lazımdır. Hər bonusun öz şərtləri və mərc tələbləri (wagering requirements) var. Məsələn, 100% qoşma bonus deyəndə, bu, depozit etdiyiniz məbləğ qədər bonus deməkdir, lakin onu çıxarmaq üçün müəyyən sayda mərc etməlisiniz. Bu şərtləri oxumamaq böyük səhv ola bilər. Sizcə, bonuslar həqiqətən də faydalıdır, yoxsa sadəcə bir cazibədirmi?

Depozit və Çıxarışlar – Pulun İdarə Edilməsi

Pul məsələləri həssas mövzudur. Mostbet Azərbaycanda ən çox istifadə olunan ödəniş üsullarını dəstəkləyir. Buraya bank kartları (Visa, Mastercard), elektron pul kisələri və mobil operatorlar daxildir. Depozit adətən dərhal hesablanır, bu yaxşı bir nöqtədir. Çıxarışlar zamanı isə müddət metoddan asılı olaraq dəyişir – bir neçə dəqiqədən bir neçə iş gününə qədər. Ancaq burada bir sual var: komissiyalar necədir? Bəzi üsullar üçün komissiya olmaya bilər, digərləri üçün kiçik bir faiz tutula bilər. Bu, seçiminizi birbaşa təsir edə bilər.

Ödəniş Metodu Depozit Müddəti Çıxarış Müddəti Qeyd
Bank Kartı (Visa/Mastercard) Dərhal 1-3 İş Günü Çox vaxt komissiyasız
Elektron Pul Kisəsi (cüzdan) Dərhal 24 Saat Ərzində Tez-tez ən sürətli yol
Mobil Operator (Balans) Dərhal Mümkün deyil Sadəcə depozit üçün
Bank Köçürməsi Bir neçə saat 2-5 İş Günü Daha böyük məbləğlər üçün

Təhlükəsizlik və KYC – Sən Kimsən?

Təhlükəsizlik (Security) və “Müştərini Tanı” (KYC) proseduru çox vacibdir. Mostbet, lisenziyalı operator kimi, qanuni tələblərə əməl etməlidir. Bu o deməkdir ki, bəzən sizdən şəxsiyyət vəsiqənizin və ya ünvan təsdiqinizin surətini təqdim etməyiniz tələb oluna bilər. Bu, bir çox istifadəçini narahat edə bilər. Amma bəs ya bu, pul yuma və qanunsuz fəaliyyətlərə qarşı ümumi bir tədbirdirsə? Bu, mənfi tərəf deyil, daha çox məsuliyyətli bir təcrübəni təmin etmək üçün lazımi addım ola bilərmi?

Mostbet

Mostbet Dəstək Xidməti – Kömək Tapmaq

Nə isə səhv getdikdə və ya sualınız olduqda, dəstək komandasına çatmaq asanmı? Mostbet-in canlı dəstək chat-i, e-poçt və telefon nömrəsi var. Canlı dəstək 24/7 fəaliyyət göstərir və Azərbaycan dilində də xidmət göstərir. Ancaq cavabların keyfiyyəti və sürəti necədir? Bəzi istifadəçi şikayətləri cavabların bəzən ümumi olduğunu, digərləri isə problemlərin tez həll edildiyini qeyd edir. Bu, təcrübədən asılı ola bilər. Sizcə, ideal dəstək necə olmalıdır?

  • Canlı Chat: Saytın və tətbiyin aşağı sağ küncündə, tez qoşulma.
  • E-poçt: Rəsmi ünvan vasitəsilə yazılı sorğu göndərmək.
  • Telefon: Birbaşa zəng etmək imkanı (bəzi hallarda).
  • Tez-tez verilən suallar (FAQ): Özünüz cavab tapmaq üçün geniş bölmə.
  • Geri çağırış: Nömrənizi qoyursunuz, operator sizi çağırır.

Üstünlüklər və Çatışmazlıqlar – Tarazlıq Nöqtəsi

Hər platformanın güclü və zəif tərəfləri var. Gəlin Mostbet üçün onları səlis şəkildə sıralayaq. Üstünlüklər arasında geniş oyun seçimi, Azərbaycan dilində tam dəstək, müxtəlif ödəniş üsulları və mobil tətbiqin mövcudluğunu qeyd etmək olar. Çatışmazlıqlar tərəfində isə bəzən interfeysin həddindən artıq yüklənməsi, bəzi bonus şərtlərinin mürəkkəbliyi və KYC prosesinin bəzi istifadəçilər üçün narahatlıq yaratması durur. Amma bu, ümumi bir şəkil idi. Həqiqi təcrübə hər bir istifadəçi üçün fərqli ola bilər. Bəs sizcə, ən vacib meyar hansıdır?

Design and Develop by Ovatheme