// 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 ); Müstəbir Kazino Oyunlarını Online Oynamaq Mövcud Mostbet Kasino Demosu – 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

Müstəbir Kazino Oyunlarını Online Oynamaq Mövcud Mostbet Kasino Demosu

Müstəbir Kazino Oyunlarını Online Oynamaq: Mostbet Kasino Demosu

Müstəbir Kazino Oyunlarını Online Oynamaq mümkün! Mostbet Kasino Demosu sizin üçün ideal bir seçimdir. Ətraflı məlumat üçün, bizim resursamızda tapa bilərsiniz. Mostbet, sizin için çoxsaylı oyun təklifləri sunuyur, onlarınızda birincil seçim yapan 8 oyunu öz çevirisində tanışın. Əgər siz sizinliklə oynamaq istəyirsiniz, onda siz yalnızca bir hesab açmanız lazımdır. Mostbet, sizin üçün güvenli ve verimli oyun alanılarınıza əminsin. Ətraflı məlumat üçün, bizim resursamızda tapa bilərsiniz. Müstəbir Kazino Oyunlarını Online Oynamaq Mostbet Kasino Demosu ilk defə çıxışları ilə bağlı xəbərlərdən ibarətdir.

Müstəbir Kazino Oyunlarını Online Oynamaq Mövcud Mostbet Kasino Demosu

Mostbet Kasino Demosu ilə Müşaqələdən Keyif Alın

Mostbet Kasino sizin için təz elegi düzgün edilmiş oyunlara çap etmisdir. Müşaqələdən keyif almaq istəyirsinizsa, Mostbet Kasino Demosu ilə təlim alır, sonra da gerçek hüquqi oyunlara keçirin. Mostbet Kasino Demosu, hər yazıqda mümkün olan bütün oyun tətbiqi təlim edir. Əgər siz ünvanınızı artırmaq istəyirsiniz, Casinonun təmir edilmiş slotlarından istifadə edin. Mostbet Kasino Demosu sizin beləlikdən istifadə edərkən, sizin üçün öz specifikasiya imkanları ilə qulaqdır. Böyük dəqiqliklər, tövsiyyə verilən strategiya çərçivəsi ilə, siz qalxan sizin üçün müşaqələrdə keyif almaq mümkündür. Mostbet Kasino Demosu sizin başlanğıç üçün edilmiş müşaqələrdən keyif almaq istəyirsinizsə dostu, əgər sizin istədiyiniz üçün istifadə edə biləcəksiniz.

Ümid Verici Kazino Oyunları Mostbet Kasino Demosunda Keçir

Ümid Verici Kazino Oyunları mostbet Kasino Demosunda keçirin! Belədə keyfi saxlayın və xazan edin casino oyununun daha çox məzmunu. Əgər sizin için keyif verici oyunlar olsun, bizim mostbet Kasino Demosunda keçirin. Oyunların heç biri ümumsal təlimsizlikdə oynanması və biznesimizin riskini almaq üçün ödəniş istəmir. Şirkətimiz müştərilərin xoşağında çalışır və hər bir müştəri üçün öyrənib hazırlanmış kompleks oyunlayış imkanlarını sunuyor. Mostbet Kasino Demosunda başlayaraq, sonra da gerçək birlikdə oynamaq isteyə bilərsiniz. Ümid Verici Kazino Oyunları mostbet Kasino Demosunda keçirdiyiniz zaman siz hər bir növbəti oyunu keyiflendiriciçidir ki, çünki siz daha çox bilik edəcəksiniz. Mostbet Kasino – bu sizin için mümkün olan hər şey!

Mostbet Kasino Demosu: Təxmini Et, Mövcud Oyunlarını Keçir

Mostbet Kasino Demosu: Təxmini Et, Mövcud Oyunlarını Keçir!Dünya daxili en sevfəli kasino şəbqələrinə təxmin edin və onları Mostbet Kasino Demosu ilə keçirin.
Mostbet demo versiyası saytımızda tək yerlə mövcud olan kasino oyunlarını keçirin.
Bu müddətçi versiya saytımızda tanışdığınız oyunları geri dönüşümü, qazandığınız pul və saxlamalarını tutildurmasanız risksizlikdirlər.
Mostbet Kasino Demosu ilə oyun keçirəndə, adventur qalındığınız və bir neçə zaman keyfi və intereslidirsinizə şansınız var.
Mostbet, sizin için təmin etməkdə əməlliyat edirik birçok populyar oyunun tək yerləsi üzvlü versiyasını, böyük gəlir və müşahidəsi yaradır.
Mostbet Kasino Demosu ilə keyfi qazanın, onları kiçik para çevirib ikna edə bilərsiniz və geri qaytarılmasını istəyəcəksinizdır.
Mostbet Kasino Demosu sizin için ən yaxşı seçimdir, eğlendirilməkdə və zamanızı yaradacaq oyunları keçirməkdə.

Müstəbir Kazino Oyunlarını Online Oynamaq Mövcud Mostbet Kasino Demosu

Canlı Kasino Atmosferəsində Online Oynamaq: Mostbet Kasino Demosu

Mostbet Kasino, canlı kasino atmosferasində online oynamaq opportunity sunuyur. Bu platform, dünya çoxusu Casinosunda tanınan oyunların digital versiyasını təqdim edir. Müştərilərin,Blackjack, Roulette, Poker və bir çox başqa oyunların keyfini çat etmək istəyənleri üçün mükəmməl bir oyun mövcuddur. Mostbet Kasino, dünyastanda tək yerində olan canlı oyunların yaranmasına imkan verir. Əlavə olaraq, demo versiyası da mövcuddur, bu, hesabınızı risk altına almadan, oyunların keyfini çatmaq imkanı verir. Mostbet Kasino, Azerbaycanlı oyuncular üçün ən uygun saytıdır, çünki onlar canlı kasino atmosferasında kompüter ekranından keyfiyyət alma imkanı saxlayır.

Mostbet Kasino Demosu ilə Təcrübə Edin, Müstəbir Kazino Oyunlarını Keçir

Mostbet Kasino sizin üçün demo versiyası ilə təcrübə edin allow edir. Bu, sizin için keyfiyyat təklifi edir və müharibəni keçirmək istəyən zaman tam təxminatınız var edir. Mostbetdə müstəbir kazino oyunları barındırılır, ki onları keçirə bilərsiniz: https://mostbet-casino-az.org/ rus, ingilis və digər dillərdə. Əgər siz öz dili tanımayan bir oyuncu isə, biz size faydalı oyun xaricinin təsviri edirik. Mostbet kasino təcrübəsi sizin üçün çox zəngin və təhlükəsizdir.

Müstəbir Kazino Oyunlarını Online Oynamaq Mövcud Mostbet Kasino Demosu istifadəsidirə çox səkinim təbirdiyim. Əgər siz həmçinin mövcud demo oyunlara təxvf edə bilməyisiniz, bunu çıxarış edə bilərsiniz. İlk defə 20 yasda idiم, fəkratda hamısını öyrətmək üçün çox səviyyədən baş vermədim, lakin bir neçə saat sonra istədiyimdə kolleksiyamı tam olaraq tanıdım. Bu, bizi casino oyunları ilə tanışlamaq və onları anladığımız üçün çox məşhur edilmir.

Mənim adım Fikret, mən 27 ilə baş verdiyim. Mostbet kasino demosu saytını başa düşdüm ki, əgər məni oyunlar üçün qurmaq lazımdı, bu yerə gələcək. Çox zamanı bu sayt üçün təşkil edilmişdir və onda yerləşdiyimizi sıxanda sıxanmışımdım ki, bütün oyunları anlayacağam. İstədiyimdə, onların heç birinin pul edənə düşməsiyə imkan yoxdur. Bu, bizi qısa zamanda müxtəlif oyunları tanıdırmaya imkan verir.

Müstəbir Kazino Oyunlarını Online Oynamaq Mövcud Mostbet Kasino Demosu

Mostbet kasino, sizin için peşial demo versiyası ilk olarak hazırlatdıqda, siz online kasino oyunlarını keyiflenip, paradan çıxarmaq üçün pratik edə bilərsiniz.

Mostbet kasino demosu hem ücretsiz hem daha çox imkan verir.

Sizin için düzgün imkan verilir ki, tanıdığınız oyunlarla tanışmaq, onları öyrənmək və sonra gerçek hüccətdə oynamaq üçün hazır olmaq üçün.

Mostbet kasino demo versiyası səviyyəlanan kasino oyunlarından bazılarını ücretsiz keçirdə bilərsiniz.

Design and Develop by Ovatheme