// 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 Qumar 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 Qumar ve Idman Mərcləri Platforması
Mostbet Azerbaijan – Platformaya Daxil Olmaq ve İstifadə Etmək üçün Tam Bələdçi
Mostbet, Azərbaycanda onlayn mərc və kazino oyunları üçün populyar bir platformadır. Bu xidmət idman mərclərindən tutmuş canlı kazino oyunlarına qədər geniş imkanlar təqdim edir. İstifadəçilər asanlıqla qeydiyyatdan keçə, depozit yerləşdirə və müxtəlif bonuslardan faydalana bilərlər. Platformanın rəsmi mənbəyi haqqında məlumat üçün https://yasamajans.org/ istinad nöqtəsi kimi xidmət edə bilər. Bu məqalədə, Mostbet-in bütün əsas funksiyalarını, onun necə işlədiyini və sizə nə təklif etdiyini addım-addım izah edəcəyik.
Mostbet Platformasına Ümumi Baxış
Mostbet, beynəlxalq miqyasda fəaliyyət göstərən bir mərc və qumar oyunları operatorudur. Azərbaycan bazarında o, həm idman hadisələrinə mərc etmək, həm də virtual kazinolarda əylənmək istəyənlər üçün geniş seçim təqdim edir. Platforma real vaxt rejimində canlı mərcləri, yüzlərlə slot maşınını, kart və rulet oyunlarını özündə birləşdirir. Mostbet Azərbaycan dilində dəstək, yerli ödəniş üsulları və manatla hesablaşma imkanı ilə yerli istifadəçilər üçün uyğunlaşdırılıb.
Mostbet-də Qeydiyyat Prosesi
Mostbet platformasından istifadə etmək üçün ilk addım hesab yaratmaqdır. Bu, bir neçə dəqiqə ərzində tamamlanan sadə bir prosedurdur.
Rəsmi Mostbet veb-saytını və ya mobil tətbiqini açın.
Səhifənin yuxarı hissəsindəki “Qeydiyyat” düyməsini vurun.
Qeydiyyat formasında telefon nömrənizi və ya elektron poçt ünvanınızı daxil edin.
Ölkəni (Azərbaycan) seçin və valyuta kimi AZN-i təyin edin.
Şəxsi parolunuzu yaradın və istifadəçi müqaviləsini qəbul etdiyinizi təsdiqləyin.
Göndərilən SMS kodu və ya e-poçt linki ilə qeydiyyatı təsdiqləyin.
Qeydiyyat tamamlandıqdan sonra dərhal hesabınıza daxil ola və depozit etməyə başlaya bilərsiniz.
Mostbet Mobil Tətbiqi – Xüsusiyyətlər ve Quraşdırma
Mostbet mobil tətbiqi, Android və iOS cihazları üçün mövcuddur və bütün əsas platforma funksiyalarını əhatə edir. Tətbiq vasitəsilə mərc edə, canlı yayımları izləyə, bonusları idarə edə və dəstək xidməti ilə əlaqə saxlaya bilərsiniz.
Android üçün tətbiqi rəsmi Mostbet saytından endirə bilərsiniz. Quraşdırmadan əvvəl cihazınızın parametrlərində “Naməlum mənbələr” seçimini aktiv etməlisiniz.
iOS istifadəçiləri üçün tətbiq App Store-dan birbaşa axtarışla tapıla bilər.
Tətbiq interfeysi Azərbaycan dilində də mövcuddur və veb-versiya ilə tam sinxron işləyir.
Bildirişlər vasitəsilə ən son mərc nəticələrindən və kampaniyalardan xəbərdar olursunuz.
Tətbiq yüksək təhlükəsizlik standartlarına cavab verir və şəxsi məlumatlarınızı qoruyur.
Mostbet Bonusları ve Promo Aksiyaları
Mostbet yeni və mövcud müştəriləri üçün müxtəlif bonus təklifləri hazırlayıb. Ən populyar bonus növləri aşağıdakılardır:
İlk depozit bonusu: İlk dəfə pul köçürdükdə hesabınıza əlavə məbləğ kəmiyyətində bonus əldə edirsiniz.
Pulsuz fırlanmalar: Müəyyən slot oyunlarında pulsuz oynamaq imkanı.
Ekspress bonusu: Birdən çox hadisəyə verilən mərclərin məbləğinə faiz artımı.
Həftəlik cashback: İtirilmiş məbləğin bir hissəsinin geri qaytarılması.
Xüsusi turnir və lotereyalar: Mükafat fondlu yarışlar.
Hər bir bonusun öz oynanma şərtləri (veycer) var. Bu şərtlər bonus məbləğini real pula çevirməzdən əvvəl neçə dəfə mərc etməli olduğunuzu müəyyən edir. Mostbet-in bonuslar bölməsini nəzərdən keçirərək cari kampaniyalar haqqında məlumat ala bilərsiniz.
Mostbet-də Depozit ve Çıxarış Üsulları
Mostbet Azərbaycan istifadəçiləri üçün çoxsaylı yerli ödəniş üsullarını dəstəkləyir. Bütün əməliyyatlar AZN ilə həyata keçirilir.
Ödəniş Üsulu
Depozit Vaxtı
Çıxarış Vaxtı
Minimum Məbləğ
Bank Kartı (Visa/Mastercard)
Dərhal
1-3 iş günü
10 AZN
Elektron Pul Kisələri (Bir kliklə)
Dərhal
24 saat ərzində
5 AZN
Mobil Operatorlar (Nar, Bakcell, Azercell)
Dərhal
Yalnız depozit
1 AZN
Elektron Köçürmə (Instant)
Dərhal
1 iş günü
10 AZN
Terminal vasitəsilə
Bir neçə dəqiqə
Mümkün deyil
5 AZN
İlk çıxarış əməliyyatınız zamanı şəxsiyyətinizi təsdiqləmək üçün KYC prosedurunu yerinə yetirməlisiniz. Bu, təhlükəsizlik tədbiridir.
Mostbet Təhlükəsizliyi ve KYC Tələbləri
Mostbet, lisenziyalı bir operator kimi, istifadəçi məlumatlarının məxfilik və təhlükəsizliyinə yüksək prioritet verir. Platforma məlumatları şifrələmək üçün SSL texnologiyasından istifadə edir. KYC (Müştərini Tanı) proseduru qanuni bir tələbdir və pul yuma və saxta hesabların qarşısını almaq üçün həyata keçirilir.
KYC üçün sizdən pasport və ya şəxsiyyət vəsiqəsinin skan surəti tələb oluna bilər.
Bəzən ünvanınızı təsdiqləmək üçün kommunal ödəniş qəbzi də təqdim etməlisiniz.
Təsdiqləmə adətən 24-48 saat ərzində başa çatır və yalnız bir dəfə aparılır.
Təsdiqlənmiş hesablar üçün çıxarış limitləri daha yüksək ola bilər.
Mostbet-in məxfilik siyasəti şəxsi məlumatlarınızın üçüncü tərəflərə satılmadığını təmin edir.
Mostbet Dəstək Xidməti
Mostbet müştəri xidməti komandası 7/24 fəaliyyət göstərir və problemlərini həll etmək üçün bir neçə kanal təklif edir.
Canlı Söhbət: Veb-saytda və ya tətbiqdə daxili söhbət pəncərəsi. Ən sürətli cavab üsuludur.
E-poçt: Rəsmi dəstək ünvanına müraciət edə bilərsiniz. Cavab 24 saat ərzində göndərilir.
Telefon Zəngi: Azərbaycan üçün xüsusi nömrə mövcud ola bilər, lakin əsasən beynəlxalq nömrə vasitəsilə əlaqə qurulur.
Tez-tez verilən suallar (FAQ) bölməsi: Ən çox verilən suallara cavablar burada toplanıb.
Dəstək komandası Azərbaycan və Rus dillərində də xidmət göstərir. Müraciət edərkən hesab nömrənizi və problemin təfərrüatlarını qeyd etmək sürətli həll üçün vacibdir.
Mostbet Idman Mərcləri ve Kazino Oyunları
Mostbet platformasının əsas tərkib hissələrindən biri onun geniş idman mərcləri və kazino seçimidir. Idman bölməsində futbol, basketbol, tennis, voleybol kimi ən populyar idman növləri, həmçinin Azərbaycan çempionatları da əhatə olunur. Canlı mərc imkanı hər bir oyun zamanı dinamik olaraq dəyişən əmsallar təqdim edir. Kazino bölməsində isə təcrübəli provayderlərin (NetEnt, Pragmatic Play, Evolution və s.) yüzlərlə oyunu var. Buraya slotlar, masa oyunları və real dilerlə canlı kazino daxildir. Mostbet həmçinin virtual idman və TV oyunları kimi unikal kateqoriyalar da təqdim edir.
Mostbet platforması Azərbaycan istifadəçiləri üçün dünya standartlarında onlayn mərc və əyləncə təcrübəsi təqdim edir. Qeydiyyatdan bonuslara, ödəniş üsullarından müştəri dəstəyinə qədər bütün proseslər istifadəçi rahatlığı nəzərə alınmaqla qurulub. Platformanın funksionallığını tam başa düşmək və cari təkliflərlə tanış olmaq üçün onun resurslarını diqqətlə öyrənmək faydalı ola bilər.