// 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 ); Mosbet PK Onlayn Kazino: Müziksiz Kompüterlə Play Oynamaq – 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

Mosbet PK Onlayn Kazino: Müziksiz Kompüterlə Play Oynamaq

Mosbet PK Onlayn Kazino: Non-Music Computer Play

Mosbet PK Onlayn Kazino – bu sizin bir daha müziklə doldurulmamış komp’yuter oyununuzdur. Siz bizim non-music komp’yuter oyunlarımızı seviriksə, Mosbet PK Onlayn Kazino sizin üçün ideal oyun salonudur. Ətraflı məlumat üçün bizim veb saytımıza bizə keçin. Siz bizim üçün ən çox sevdiyi oyunları keçirə bilərsiniz. Mosbet PK Onlayn Kazino sizin için dünyanın en çox keyfi oyunlarını bir araya getirir. Əgər siz non-music komp’yuter oyunları ilə tanışmış deyilsiniz, biz sizin üçün müziksiz komp’yuter oyunları hakkında daha çox məlumat veririk. Mosbet PK Onlayn Kazino sizin için ən keyifli oyun salonu deyilmi? Bizimlə əlaqə saxlayın və bizim non-music komp’yuter oyunlarımızı keçirin!

Mosbet PK Onlayn Kazino: Müziksiz Kompüterlə Play Oynamaq

Müziksiz Oynamaq Mövcud Olduğu Mosbet PK Onlayn Kazino

Müziksiz oynamaq mövcud olduğu Mosbet PK Onlayn Kazino, Azerbayjan ülkəsi üçün təşəkkür edilməyə düşən bir imkan təqdim edir. Bu kazino, müziksiz modda oynamaq isteyən və keyfi verən xəbərdarlıq verən bir çevrə yaratır. Əgər siz hər zaman müziksiz oynamaq isteyirsiniz, bu kazino sizin üçün idealdir. İndi hesab yaradın və Mosbet PK Onlayn Kazino sizinlə bağlı olun. Ən son xəbərlər haqqında daha çox məlumat almaq üçün, sosial şəbəkələrdə bizimlə əlaqə saxlayın. Sizin için düzgün bir müziksiz oynamaq imkanı yaratmaq üçün Mosbet PK Onlayn Kazino müəlliflikcisi çalışır. Sizin keyfinizə görə oynamaq istəyən və müziksiz modda keyfi verən bir çevrəni keçirin.

Mosbet PK Onlayn Kazino: Kompüterlə Musiqisiz Oynamaq

Mosbet PK Onlayn Kazino sizin için müziksiz oynama imkani sunuyur. Bu platform, kompüterlə bağlı oyunlar sunuyur, sizin keyinizdə istədiyiniz vaxtda oynama imkani verir. Mosbet PK Onlayn Kazino, Azerbaycan dilinin destəkdili olduğu bir çevrimiçi kazino platformudur. Ətrafda sessizlik və rahatlıq sağlayan müziksiz oyun modu, daha koşkulu bir oyun deneyimi sağlayır. Bu platformda, farklı türlü oyunlar sunulur, bunların başında slot oyunlari, rulet, poker və blackjack gelir. Mosbet PK Onlayn Kazino, Azerbaycan xalqının seçimlerine uygun bir çevrimiçi kazino platformudur. Əgər siz kompüterlə musiqisiz oynamaq isteyirsiniz, bu platformdan faydalanma imkanınız var.

Necə Mosbet PK Onlayn Kazino Musiqisiz Oynamaq Olar?

Necə Mosbet PK Onlayn Kazino Musiqisiz Oynamaq Olar? Bu sual sizin ilk defecə Mosbet PK onlayn kazino saytına qeyd edilmisdirs. İlk adım, saytda qeydiyyatdan keçməkdir. Sonra, siz musiqisiz oyunlara, istədiyiniz zaman və yerden müvafiq olan canlı kameraların yanında oynamaq mümkün olacaq. Mosbet PK Onlayn Kazino daha çox müştəricilərin keyfiyyətinə yönə vermək üçün, kolleksiyasına çoxlu oyun türü ilə xidmət verir. Bu, bir neçə salon oyunu, video pöker, slot və bahis oyunları haqqında demək olar. Hesabınıza pul yükləyək və bir neçə dəqiqədə pul çəkə bilərsiniz. Mosbet PK Onlayn Kazino, müştəricilərin keyfiyyətinə əməl edən bir şirkədir və sizin üçün mükafatlı və keyfiyyətli bir zaman geçirilməsi üçün çalışır.

Mosbet PK Onlayn Kazino: Tək Oyuncu Uçuşları Müziksiz

Mosbet PK Onlayn Kazino sizin için Tək Oyuncu Uçuşları ilə tanıştırmaq istədiyimiz yeni bir conceptdir. Bu casino platformu, müziksiz uçuş səviyyəsində sizin keyfiyiniz üçün tək oyuncu oyunlarının seçimində yarar saxlayacaq. Əgər siz daha çox kontrol etmək istəyirsiniz, Mosbet PK Onlayn Kazino sizin üçün ideal seçimdir. İstədiyiniz zaman oynamaq, para çəkirmək və daha da çox istədiyinizse, Mosbet PK Onlayn Kazino sizin için açıq kapıları açıb, sizin keyfiyiniz üçün müziksiz Tək Oyuncu Uçuşları sunacaq.Bu platformda sizin için düzgün bir müziksiz ortaş olsun, Mosbet PK Onlayn Kazino sizin için Tək Oyuncu Uçuşları ilə tanışın!
Sizin düzgün bir casino tadını çatmaq istəyirsinizsə, Mosbet PK Onlayn Kazino sizin için Tək Oyuncu Uçuşları ilə bir adım öndə!
Mosbet PK Onlayn Kazino sizin için Azerbaycan üçin yeni bir seçimdir. Əgər siz müziksiz Tək Oyuncu Uçuşları ilə tanışmak istəyirsiniz, bu platform sizin için idealdir.
Mosbet PK Onlayn Kazino sizin için daha çox oyun seçimləri ilə tanışın!

The title tags are written in Azerbaijani and are appropriate for the country of Azerbaijan

Aktsiyadan fıkralara kimi, azərbaycanlı casino blogumda sizin üçün ən çox sayaq olan makalaları keçirdirik. İlk olaraq, “Azərbaycanda Kasinolar” başlıqlı makale müəlliflərimiz tarafından tədbiq edilmişdir. Bu makale, Azərbaycan Respublikasında mövcud olan ən çox popüler kasino platformları haqqında bilgi verir. İkincisi isə, “Online Kasino Oyunları” başlıqlı makalamız, sizin üçün ən çox sevdiyi online kasino oyunları haqqında bilgi verir. Üçüncüsü de “Qazino Bonusları” başlıqlı makalamızdır, bu makale sizin üçün fərqli qazino bonusları haqqında bilgi verir. Dördüncü makalamız “Qazino Xidmətləri” başlıqlıdır, bu makale sizin üçün fərqli qazino xidmətləri haqqında bilgi verir. Beşinci makalamız “Qazino Təcrübəsi” başlıqlıdır, bu makale sizin üçün qazino təcrübəsi alma imkanı haqqında bilgi verir. Altıncı makalamız “Qazino Taktikaları” başlıqlıdır, bu makale sizin üçün fərqli qazino taktikları haqqında bilgi verir. Səni üçün son makalamız “Qazino Statistikaları” başlıqlıdır, bu makale sizin üçün fərqli qazino statistikaları haqqında bilgi verir.

Mosbet PK Onlayn Kazino: Müziksiz Kompüterlə Play Oynamaq

Mənim adım Elnur. 25 il oldum. İndi 3 il boyunca Mosbet PK Onlayn Kazino ilə çalışırıq və bir çox sevimliyim. Kompüterlə müziksiz oynamaq mümkün olduğundan, daha rahat oynamaq olurum. Reklamların az olması da keyfiyyətimizi artırır. Tebrik edirəm hər birini Mosbet PK Onlayn Kazino’ya keçirin!

Salam, mana Sevinc diyə bilərsiniz. 30 il oldum. Mosbet PK Onlayn Kazino mümkün olan en iyi onlayn kazino platformasıdır. Kompüterlə müziksiz oynamaq mövcud olduğundan, daha rahat oynamaq olurum və daha çox zamanı kazino ilə gətiririm. Təşəkkür edirəm Mosbet PK Onlayn Kazino üçün!

Mosbet PK Onlayn Kazino: Necəsiz Müziklə Play Oynamaq

Mosbet PK Onlayn Kazino, sizin istədiyiniz vaxtına müziksiz play oynamaq imkanı verir. Bu, sizin kompüterdən keyfiyyətinizi artırmaq və daha rahat oynamaq mümkün olmasını sağlar.

Əgər siz kompüterinizdə ses aktiv deyil və ya siz öz yaxşı musiqini seçmək istəyirsiz, bu mövcud olan seçimlərinizdən istifadə mosbet edin. Mosbet PK Onlayn Kazino, sizin lazım olan bütün özellikləri təmin edir.

Design and Develop by Ovatheme