// 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 AZ – Onlayn Oyun ve Idman Mərcləri Platforması – 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 AZ – Onlayn Oyun ve Idman Mərcləri Platforması
Mostbet AZ – Idman Mərcləri ve Kazino Oyunları üçün Tam Bələdçi
Mostbet, Azərbaycan istifadəçiləri üçün geniş idman mərcləri və kazino oyunları təklif edən populyar onlayn platformadır. Burada siz həm yerli, həm də beynəlxalq turnirlərə mərc edə, həm də yüzlərlə slot və canlı diler oyunlarında əylənə bilərsiniz. Platforma istifadəçi dostu interfeysi, sürətli ödəniş üsulları və müntəzəm bonusları ilə seçilir. Əgər Mostbet-dən istifadə etmək istəyirsinizsə, ilk addım olaraq https://mostbet-giris-az.org/ ünvanına daxil olmaq və qeydiyyatdan keçmək lazımdır.
Mostbet Platformasına Ümumi Baxış
Mostbet, beynəlxalq lisenziyalara malik olan, Azərbaycanda fəaliyyət göstərən etibarlı bir oyun provayderidir. Platforma əsasən iki böyük bölmədən ibarətdir: Idman Mərcləri və Onlayn Kazino. Idman bölməsində futbol, basketbol, tennis, voleybol kimi populyar idman növləri, həmçinin e-idman (ESports) tədbirləri üçün geniş bir bazara çıxış təmin edilir. Kazino hissəsində isə müxtəlif provayderlərdən olan slot maşınları, masa oyunları və canlı diler oyunları mövcuddur. Mostbet həm veb-sayt, həm də mobil tətbiq vasitəsilə əlçatan olur.
Mostbet AZ-də Qeydiyyat Prosesi
Mostbet-də hesab yaratmaq üçün bir neçə sadə addımı yerinə yetirmək lazımdır. Bu proses bir neçə dəqiqə çəkir və sizə platformanın bütün funksiyalarına tam çıxış verir.
Mostbet-in rəsmi veb-saytına və ya mobil tətbiqinə daxil olun.
Səhifənin yuxarı sağ küncündəki “Qeydiyyat” düyməsini basın.
Açılan pəncərədə qeydiyyat metodunu seçin: telefon nömrəsi, elektron poçt, sosial şəbəkə hesabı və ya bir kliklə qeydiyyat.
Seçdiyiniz metoda uyğun olaraq tələb olunan məlumatları (nömrə, poçt və s.) daxil edin.
Ölkəni Azərbaycan kimi təyin edin və valyuta kimi AZN seçin.
Xidmət şərtləri ilə razılaşdığınızı göstərin və “Qeydiyyatdan keç” düyməsini basın.
Təsdiq kodu alacaqsınız, onu müvafiq sahəyə daxil edin və hesabınız aktiv olacaq.
Mostbet Mobil Tətbiqi
Mostbet mobil tətbiqi Android və iOS cihazlar üçün mövcuddur. Tətbiq veb-versiya ilə eyni funksionallığı təqdim edir və istifadəçiyə hər yerdən sürətli giriş imkanı yaradır.
Android tətbiqini Mostbet saytından APK faylı şəklində endirə bilərsiniz. Cihazınızda “Naməlum mənbələr” seçimini aktiv etməyi unutmayın.
iOS istifadəçiləri App Store-dan rəsmi Mostbet tətbiqini tapa və quraşdıra bilərlər.
Tətbiq interfeysi Azərbaycan dilində dəstəklənir.
Bildirişlər vasitəsilə ən son matç nəticələrindən və bonus təkliflərindən xəbərdar olmaq olar.
Tətbiqdən istifadə edərək mərc etmək, depozit qoymaq və vəsait çıxarmaq eyni dərəcədə rahatdır.
Mostbet Bonusları və Promo Aksiyaları
Mostbet yeni və mövcud oyunçular üçün müxtəlif bonus proqramları təklif edir. Bu təkliflərdən düzgün istifadə etmək üçün onların şərtlərini diqqətlə oxumaq vacibdir.
Mostbet Xoş Gəldin Bonusu
Yeni qeydiyyatdan keçən istifadəçilər üçün iki variantlı xoş gəldin bonusu mövcuddur. Idman mərcləri üçün ilk depozitinizə 100%-ə qədər bonus, kazino oyunları üçün isə 125%-ə qədər bonus və pulsuz fırlanmalar ala bilərsiniz. Bonusu əldə etmək üçün depozit etdikdən sonra bonus bölməsində müvafiq təklifi aktiv etmək lazımdır.
Mostbet-də Digər Promosyonlar
Platforma müntəzəm olaraq yenilənən aksiyalar keçirir. Bunlara aşağıdakılar daxildir:
Cashback (Pulun geri qaytarılması): Həftəlik itkilərin müəyyən faizinin hesaba qaytarılması.
Mərc turnirləri: Müəyyən idman hadisələri üzrə ən yüksək mərc edənlər üçün mükafat fondları.
Pulsuz mərclər (Free bets): Müəyyən şərtlər yerinə yetirildikdə verilən risksiz mərc imkanları.
Ad günü bonusu: Hesabda qeyd olunan ad günü tarixində xüsusi hədiyyə.
Loyalty proqramı: Daimi oyun üçün xal toplama və onları real pul və ya bonuslara dəyişdirmək imkanı.
Mostbet AZ-də Depozit və Vəsait Çıxarma
Mostbet Azərbaycan istifadəçiləri üçün bir çox yerli ödəniş üsullarını dəstəkləyir. Bütün əməliyyatlar AZN (Azərbaycan Manatı) ilə həyata keçirilir.
Ödəniş Metodu
Depozit Vaxtı
Çıxarma Vaxtı
Minimum Məbləğ
Bank Kartı (Visa/Mastercard)
Birbaşa
1-3 iş günü
5 AZN
Elektron Pul Kisələri (Jazzve, E-pul)
Birbaşa
Bir neçə saat
1 AZN
Mobil Operatorlar (Bakcell, Azercell, Nar)
Birbaşa
Mümkün deyil
1 AZN
Kriptovalyuta (Bitcoin, USDT)
Bir neçə dəqiqə
Bir neçə dəqiqə
10 AZN ekvivalenti
Bank Köçürməsi
1-3 iş günü
1-5 iş günü
20 AZN
Vəsait çıxarma zamanı ilk növbədə KYC (Müştərini Tanı) prosesini tamamlamalısınız. Əks halda, əməliyyat təsdiq olunmaya bilər.
Mostbet Təhlükəsizliyi və KYC Tələbləri
Mostbet istifadəçi məlumatlarının və maliyyə əməliyyatlarının təhlükəsizliyinə ciddi diqqət yetirir. Platforma məlumatları şifrələmək üçün SSL protokolundan istifadə edir. Bundan əlavə, hər bir istifadəçi KYC prosedurunu keçməlidir. Bu, qanunvericilik tələbi və pul yuma qarşı tədbirdir.
KYC üçün sizdən şəxsiyyət vəsiqəsinin (şəxsiyyət vəsiqəsi, sürücülük vəsiqəsi, pass) skan surəti tələb olunur.
Ünvanınızı təsdiqləmək üçün kommunal xidmət ödənişi haqqında son qəbzin fotoşəkli təqdim edilməlidir.
Ödəniş üsulunuzun mülkiyyətini təsdiqləmək üçün istifadə etdiyiniz bank kartının üz tərəfinin (yalnız son 4 rəqəm görünməli) fotoşəkli tələb oluna bilər.
Bu sənədləri “Şəxsi Kabinet”dəki müvafiq bölməyə yükləmək lazımdır. Təsdiq adətən 24-72 saat ərzində baş verir.
Mostbet Dəstək Xidməti
Mostbet müştərilərinə 7/24 dəstək xidməti təqdim edir. Problemlərin həlli üçün bir neçə kanal mövcuddur.
Ən sürətli üsul onlayn söhbətdir. Veb-saytın və ya tətbiqin aşağı sağ küncündəki “Dəstək” düyməsini basaraq operatorla əlaqə qura bilərsiniz. Söhbət Azərbaycan dilində də aparıla bilər. Bundan əlavə, suallarınızı rəsmi elektron poçt ünvanına göndərə və ya geri zəng xidmətindən istifadə edə bilərsiniz. Mostbet həmçinin sosial şəbəkələrdə aktiv fəaliyyət göstərir və orada da müraciətlərə cavab verir. Dəstək komandası adətən xəyali valyutalar, bonus şərtləri, texniki problemlər və hesab təsdiqi ilə bağlı sorğularla məşğul olur.
Mostbet Platformasının Üstünlükləri
Azərbaycan bazarında fəaliyyət göstərən bir çox platforma arasında Mostbet bir sıra xüsusiyyətləri ilə fərqlənir. Bunlara geniş idman bazarlarının yüksək əmsallarla təqdim olunması, yerli ödəniş sistemlərinin tam dəstəyi və istifadəçi dostu Azərbaycan dilində interfeys daxildir. Mobil tətbiqin optimallaşdırılmış olması da böyük üstünlük sayılır. Bundan əlavə, müntəzəm bonuslar və loyalty proqramı daimi oyunçular üçün cəlbedicidir. Təhlükəsizlik və lisenziyalaşdırma məsələlərinə diqqət isə platformaya etibar qazandıran amillərdəndir. Bütün bu aspektlər nəzərə alındıqda, Mostbet Azərbaycan istifadəçiləri üçün onlayn mərc və oyun təcrübəsi üçün tam funksional bir məkan təqdim edir.