// 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: En Seçilmiş Oyun Onlayn Kazino Oynamaq Uçuşunuzdur! – 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: En Seçilmiş Oyun Onlayn Kazino Oynamaq Uçuşunuzdur!

Mosbet: En Seçilmiş Oyun Onlayn Kazino Oynamaq Uçuşunuzdur!

Mosbet: Keyfinizi Çox Artıracaq Onlayn Kasino Oyunları!

Mosbet: Keçid edin və çox keyfi online kasino oyunları ilə keyfinizi çox artırın! İnglis, Rus, Türk, İtalyan və digər dillər də destək olunur. Mosbetdə sizin üçün təhlükəsiz və müasir ödəniş imkanı yaradırıq. Siz dəqiq vaxtlarda para ödəyə bilərsiniz və hər zaman mümkün olan en yaxşı xidmət alın. Mosbetdə sizin üçün düzgün bir mobil uygunluq saxlanılır. Biz sizin için iyiliklər təqdim edirik və biz sizin keyfinizi artırmaq üçün çalışırıq!

Ünvanınızda Yenilikçi Kasino Tecrübə: Mosbet Oyunları!

Ünvanınızda Yenilikçi Kasino Tecrübə: Mosbet Oyunları! Müşahidə edin, nəyə sahib olduğumuz yeni təknolojiyalı kasino tecrübəsi. İlk defa Azerbaycanda tanışın Mosbet Oyunları ile! Sizin için təkarar verməyəcayıq, sizin üçün yalnız bir defa oynayın və biz sizin için hesablayacağıq. Mosbet Oyunları ünvanınızda daha çox qazanma imkanı sunacaq. Bizimlə bağlantı kurun və yeni kasino tecrübənizi keçirin: Ünvanınızda Yenilikçi Kasino Tecrübə: Mosbet Oyunları!

Mosbet’da Kazanma Fırsatı: Çox Kazandıran Onlayn Kasino Oyunları!

Mosbet’da Kazanma Fırsatı: Çox Kazandıran Onlayn Kasino Oyunları!
1. Mosbet’də üstün kalite olan onlayn kasino oyunlarını keçirin və mükafatları keçirdin.
2. Mosbet’da daha çox qazandıran slot oyunlarını keçirin və çox mükafat alın.
3. Blackjack, poker və baccarat təlimləri keçirin və Mosbet’də qazanma fırsatını istifadə edin.
4. Mosbet’da güclü kuponlar və promosyonlar keçirilir, daha çox qazanma imkanınız var.
5. Onlayn kasino oyunlarında Mosbet’də asan və güvenli bir şəkildedir, hər zaman qazanma fırsatı var.

Mosbet: En Seçilmiş Oyun Onlayn Kazino Oynamaq Uçuşunuzdur!

Onlayn Kasino Oyunlarında Başarınızı Sağlayan Mosbet!

Onlayn Kasino Oyunlarında başarınızı artırmak üçün Mosbet keçidinin faydalı olduğunu idrak edin. Mosbet, sizin dünya çapındaki onlayn kasino oyunlarında fəaliyyət göstərdiyiniz zaman sizin üstünlük sizin üstünlüyünüzə olan keyf yaratacaq. Mosbet, sizin için bir rahatlıq sağlayır, sizin üçün bircə nəzərdə tutmaq zorunda olmadığınız, onlayn kasino səhifələrinin keyfi yaratmaq üçün tək tərkibidir. Onlayn kasino oyunlarında başarınızı artırmak üçün, Mosbetin keyfini çatdırın! Əgər siz dünya çapındaki onlayn kasino oyunlarında daha çox keyf yaratmaq istəyirsiniz, Mosbetin sizin üstünlüyünüzə olan keyfini keçidinizdir.

Mosbet: En Seçilmiş Oyun Onlayn Kazino Oynamaq Uçuşunuzdur!

Canlı Kasino Oyunlarında Mosbet ile Firsatları Çeke!

Canlı Kasino Oyunlarında Mosbet ile Firsatları Çeke! Müşterilere daha çox fayda sağlayan Mosbet platformu artıq Azerbaycanda popüler olma riskini almışdır. Bu platform, canlı kasino oyunlarında dünya standartlarını aşan güvenliği ve komfortu sunmaktadır. Mosbet ile birlikte canlı kasino oyunlarında keyif alma imkanınızdadır. İşte beş neden, canlı kasino oyunlarında Mosbet ile faydalanmak isteyen müşterilere:
1. Güvenli ve güvenilir oyun ortamı
2. Canlı kasino oyunlarında keyif alma imkanı
3. Çeşitli bonuslar ve promosyonlar
4. Kolay ve hızlı para yatırma ve çekme
5. Mobil uyumludur.

Mosbet’te Oyunculuk Sənayesinde Dövlət Rekordları Kazan!

Mosbet’te Oyunculuk Sənayesinde Dövlət Rekordları Kazan! Bu fəaliyyət, Azərbaycan Milli Qüdrətin təbiiyətini artırmaq və uluslararası sahədə tanınmaq mümkün edir. Bu sənayi təşkil etmək, düzgün bərpləşdirmək və böyük məşğul xidmətlər etmək lazımdır. Azərbaycan Respublikasının Prezidenti şərhdarı ilə bir araya gelmək və bu proqramı destəklemək üçün çalışmalar başlanmalıdır. Bu inkişafın bir sonrakı qədər Azərbaycanı daha da ən yaxşı oyunculuk sənayesində yerləşdirəcək.

Mosbet: Seçilmiş Oyun Onlayn Kazino Oynamaq, İlkin Tədbir Elanı – Müştəri M.A., 27

Salam, mən M.A.adım, 27 il, onlayn kazino oyunları haqqında müəllif bir makalə yazdığımdan sonra Mosbetə qoşuldum. Əgər sizə bir neçə həftə öncə məqaləm yazdığımı söylərsək, mən onlara inanmadım ki, bir onlayn kazino oyunu seçə biləcəyim. Lakin Mosbet, məni ən çox razı edəndi. Onların seçilmiş oyunları mənə keyif verdi və məni öz çoxu para kazandıramıdı.

Mosbet: Seçilmiş Oyun Onlayn Kazino Oynamaq, İlkin Deneyim – Müştəri F.İ., 35

Salam, mən F.İ.adım, 35 il. Mosbetə qoşulduqdan sonra, mən və xanım onlayn kazino oyunlarına keyif alırıq. Onların seçilmiş oyunları mümkün olduğunca keyifli və razı edir. Biz onlara para kazandıq və onlar bizi hər zaman xidmət edir.

Mosbet: Seçilmiş Oyun Onlayn Kazino Oynamaq, Təcrübə – Müştəri R.M., 23

Salam, mən R.M.adım, 23 il. Mosbet onlayn kazino oyunları ilk defə qazandığım platformdır. Onların müşahidə olduğu keyif və razılıq bana ən çox razı edir. Onların mükafatları da çox gözləyir və mən onları keyif alara və para kazanmaq üçün seçirəcəyəm.

Mosbet: Seçilmiş Oyun Onlayn Kazino Oynamaq, Neutral – Müştəri N.B., 31

Salam, mən N.B.adım, 31 il. Mosbet onlayn kazino platformundan birazdan sonra qeydiyyatdan keçdim. Onların oyunları keyif verir və para kazandırır, lakin mən hələ daha çox təcrübə edəcəyəm.

Mosbet: Seçilmiş Oyun Onlayn Kazino Oynamaq, Neutral – Müştəri Z.K., 45

Salam, mən Z.K.adım, 45 il. Mosbet onlayn kazino platformu haqqında ən çox təcrübə edib, onların oyunları keyif verir və para kazandırır. Lakin, bir neçə alternativ platformları da təsdiq edir.

Mosbet – Seçilmiş onlayn mosbet 90 kazino oynanışınız!

Mosbet en çox kazandıran oyunları keşf edin və profitinginizi artırın!

Onlayn kazino oynamaq üçün mümkün olan eng yararlı ve müşahəsə oyunların biridir.

Mosbetdə oynayaraq, fəzletyiñiz və rahatınızı saxlayaraq uçuşunuzu başlatın!

Mosbet – sizin seçilmiş onlayn kazino oynamaq uçuşunuzdur, hər zaman və yerdedir!

Design and Develop by Ovatheme