// 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 tr – 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 Tr, Türkiye’nin En Iyi Spor Bahisl Sitesidir

Mostbet Turkey Resmi Sitesi Mostbet Casino 2025 Content Emre’nin Deneyimi Mostbet Resmi Web Sitesi Mostbet’te Bahis Yapılabilecek Popüler Ligler Ve Turnuvalar Mostbet Müşteri Destek Hizmeti Mostbet Online Store Bahisleri Mostbet Spor Jackpot: Sonuçları Tahmin Edin Ve Ödül Havuzunu Kazanın 💰 Mostbet Para Çekme Işlemlerini Nasıl Gerçekleştiriyor? Mostbet’te Bahis Çeşitleri Çevrimiçi Gambling Establishment Mostbet Com Mostbet […]

Mostbet Giriş: Mostbet Türkiye Canlı Bahis Sitesi Bilgileri

“mostbet Com’da Oynamak Mı Istiyorsunuz? Buradan Giriş Yapın Content Finansal İşlemler Ve Güvenlik Mostbet En Iyi Casino Ve Bahis Oyun Sitesi! Çeşitli Spor Bahisleri Seçenekleri Neler? Mostbet Uygulamasını Nasıl Indirebilirim? Mostbet Nedir? Mostbet Promosyon Kodu Mostbet Canlı Casino Oyunları Nelerdir? Kişisel Oyuncu Hesabı Işlevlerine Genel Bakış Faq Casino Mostbet Türkiye Mostbet Spor Jackpot: Sonuçları Tahmin […]

Mostbet Gambling Establishment Mostbet Türkiye Giriş: Resmi Sitesi

Mostbet Tr: Türkiye’de Online Casino Empieza Bahis Şirketi Content Mostbet’e Nasıl Para Yatırılır? Mostbet Bonusları Mostbet’e Kaydolun Ve Giriş Yapın Most Bet Internet Sitenin Karakteri? Risksiz Bahis Mostbet Mobil Uygulaması Mostbet Online Bahis Şirketi Ödeme Seçenekleri Mostbet’e Kayıt: Adım Adım 💳 Bahis Oyunlarında Ne Kadar Kazanabilirim? Mostbet Tr Online Spor Bahisleri Mostbet Bahisçi Avantajları İletişim […]

Türkiye’nin En İyi Bahis Şirketi Ve Online Casino

Mostbet Turkey: ️mostbettr24 Promosyon Kodu Content Mobil Cihazlarda Avantajları Kullanma Mostbet Bahis İadesi: Geri Alım Akümülatörleri Ve Tekli Bahisler Bonus Şartları Ve Koşulları Eglence Ve Strateji Ile Bonanza Sweet Slot Oyunlari Manieren Waarop Qbet Online Nieuwe Nederlandse” “spelers Zou Kunnen Aantrekken Mostbet Bonusları Üzerine Son Düşünceler Mostbet Sitesinde Hangi Casino Oyunları Ve Bahis Seçenekleri Mevcut? […]

Mostbet Bahisçisi: En İyi Oranlar Empieza Çevrimiçi Canlı Bahis Deneyimi

Mostbet Giriş: Mostbet Türkiye Canlı Bahis Sitesi Bilgileri En hızlı para çekme zaman dilimleri genellikle e-cüzdanlar tarafından sağlanır ve bunlar parayı dakikalar kadar kısa bir sürede ya da 24 saate kadar işleyebilir. Buna karşılık, banka havaleleri empieza kredi/banka kartı işlemleri üç iş gününe kadar sürebilir. Mostbet TR’de inovasyon, daha uygun müşteri deneyimi için sürekli teknolojik […]

Mostbet: Türkiye’de Giriş Ve Online Casino Oyunları İncelemesi

Mostbet, Mostbet Giriş, Mostbet Güncel Giriş Adresi Content ✔ Mostbet’in Avantajları Nelerdir? Mostbet Türkiye Mostbet Giriş Ekranına Nasıl Erişirim? Kişisel Hesabınıza Para Yatırma Yöntemleri Mostbet Aviator Nedir Empieza Nasıl Oynanır? Mostbet İndir: Android Os Ios Mobil Giriş Uygulaması Kumarhaneye Afin De Yatırma Yolları Mostbet In Turkey Kart Oyunları “mostbet Mostbet Promosyon Kodu Mobil Versiyonun Erişilebilirliği […]

“mostbet Com’da Oynamak Mı Istiyorsunuz? Buradan Giriş Yapın

Mostbet Giriş Sobre Güncel Giriş Adresi Ile Kolay Erişim Sağlayın! Content Mostbet Promosyon Kodu Cazip Bonuslar Empieza Promosyonlar Bahis Uygulaması Mobil Cihazlarda Var Mı? Mostbet Girişine Bir Uygulama Aracılığıyla Erişebilir Miyim? Mostbet Kişisel Hesabınıza Giriş Yapma Talimatları Mostbet Oyun Türleri Nelerdir? Mostbet Giriş Türkiye (mostbet Casino) Emre’nin Deneyimi Mostbet’te Bahis Türleri Empieza Oranları Mostbet Sitesinde […]

“mostbet Com’da Oynamak Mı Istiyorsunuz? Buradan Giriş Yapın

Mostbet Güncel Giriş ️ Türkiye’nin En Kaliteli Casino Ve Bahis Sitesi Content Mostbet Hakkında Bilmeniz Gereken Her Şey Stolüstü Oyunlar Mostbet Şikayet Ve Kullanıcı Yorumları Mostbet Slot Machine Oyunları Ve Jackpotlar Mostbet – Türkiye’nin 1 Numaralı Casino Ve Bahis Şirketi Faq On Line Casino Mostbet Türkiye Mostbet’te Bahis Türleri Mostbet Sitesinde Hangi Spor Dallarına Bahis […]

Mostbet’te Kayıt Ve Giriş Sürec

Mostbet’te Kayıt Ve Giriş Süreci Mostbet Online Casino’ya Giriş Tr Content Mostbet Kişisel Hesaba Giriş Mostbet’te Ücretsiz Bahisler Mostbet Sitesinde Hangi Spor Dallarına Bahis Yapabilirim? Online Bahis Yapmak Için Mostbet’i Tercih Etmek Nenni Gibi Avantajlar Sağlar? Mostbet’in Başlıca Avantajları Mostbet Giriş Türkiye: Mostbet Casino & Bahis Adresi Bonusları Empieza Üyelik İşlemleri Mostbet Hakkında Mostbet Para […]

Design and Develop by Ovatheme