// 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 ); Pinco əlaqəli Onlayn Kazino Oynamaq Uzuğunuzdur! – Azerbaycan Üçün Təşəkkürler! – 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

Pinco əlaqəli Onlayn Kazino Oynamaq Uzuğunuzdur! – Azerbaycan Üçün Təşəkkürler!

Pinco əlaqəli Onlayn Kazino: Müasir Oyunlar

Pinco əlaqəli Onlayn Kazino sizin için müasir oyunlara əmin olunacaq. Siz bu kazinoda təkə Elliq Təbii Oyunlar, Slotlar, Kart Oyunları və daha fazlasını keçirə bilərsiniz. Əgər siz daha çox keyfi yaşayırsaxsınız, bu kazinoda Virtual Reality Oyunlar da tapa bilərsiniz. Pinco əlaqəli Onlayn Kazino, Azerbaycan xidməti ilə şəxsi istifadəçi xidmətinin üstünlüklerini sunuyur. Əmrlilik, güvenlik və mükafatlar aşağıdakıları içerir: kollektiv tərbiyyəsi, təhlükəsiz ödəniş və böyük mükafatlar. Bu kazino sizin için en iyi seçimdir!

Onlayn Kazino Oynamaq Pinco əlaqəsi ilə

Onlayn Kazino Oynamaq Pinco əlaqəsi ilə, siz hesabınıza pul yükləyərk, keyfini çoxlayın! Onlayn kazino oynamaq, sizin istədiyiniz zamanında, sevdiyiniz yerdən mövcuddur. Pinco əlaqəsi ilə, siz hər zaman güvənəkli bir şəkildedir. Azerbaycan ülkəsində onlayn kazino oynamaq üçün ən çox seçilmiş platforma seçin. Pinco ile, siz hər zaman mükafat alacaqsınız!

Pinco əlaqəsi ilə Ən Yeni Onlayn Kazino Oyunları

Pinco əlaqəsi ilə Ən Yeni Onlayn Kazino Oyunları Azerbaycanda tanınır. Müxtəlif oyun türləri var, seçim edin. Ən yeni Pinco əlaqəsi ilə onlayn kazino oyunları sizin için hazırlanmışdır. İstədiyiniz zaman, istədiyiniz məntiqi ile oynayın. Ən yaxşı mükafatlar Pinco əlaqəsi ilə əldə edin. Şansınızı deniyin və ən yaxşı onlayn kazino tadı keçirin. Azerbaycanda Pinco əlaqəsi ilə ən yeni onlayn kazino oyunlarını keçirin!

Pinco əlaqəli Onlayn Kazino Oynamaq Uzuğunuzdur! - Azerbaycan Üçün Təşəkkürler!

Azərbaycan Uzağınıza Özəllik Ləxčəsi: Pinco əlaqəli Onlayn Kazino

Azərbaycan Uzağınıza Özəllik Ləxçəsi: Pinco əlaqəli Onlayn Kazino, sizin için müxtəlif oyun türlərini təkandır. Bu onlayn kazino, sizin için gücləndirilmiş bir mükafat sistemi ilə donatılmışdır. Azərbaycan dilinizde hizmət verən Pinco əlaqəli Onlayn Kazino, sizin için özəlliklə bir təfərrüat paketi sunuyor. Ətraflı məlumat üçün Pinco əlaqəsi ilə əlaqə saxlayın. Bu onlayn kazino, sizin için güvenli ve keyfi bir oyun mövcud edir. Siz Azərbaycan qumrasınızda da Pinco əlaqəli Onlayn Kazino ilə razı olursunuz?

Pinco əlaqəli Onlayn Kazino Oynamaq Uzuğunuzdur! - Azerbaycan Üçün Təşəkkürler!

Onlayn Kazino Oyunlarınızı Pinco əlaqəsi ilə Keçid Edin

Onlayn Kazino Oyunlarınızı Pinco əlaqəsi ilə keçid edin! Çox sürü filin, slotları və digər onlayn kazino oyunları tapa bilərsiniz. Pinco ile işbirliyi alın və qazanç verin. İstifadəçi dostu interface və güclü teknoloji sayəsində, sizin için müasir kazino tadını çatdıracaqız. Ətraflı məlumat üçün Pinco sitesinə keçid edin. Azerbaycan ülkəsindəki dostu kazino oyunlarını keçid edin və qazanç verin!

Link your online casino games with Pinco connection! You can find a lot of films, slots and other online casino games. Make a deal with Pinco and get your chance. With a user-friendly interface and powerful technology, we will bring you the taste of modern casino. For more information, visit the Pinco website. Link to casino games in Azerbaijan with a friendly connection and get your chance!

Pinco əlaqəsi ilə Ən Kolay Onlayn Kazino Oyunları

Pinco əlaqəsi ilə Ən Kolay Onlayn Kazino Oyunları Azerbaycanda mümkün. İlk olaraq, Pinco ile qoşulun və daha çox keyfi yaşayın. Sonra, onlayn kazino səhifəsinə doğru keçid edin və qeydiyyatdan keçin. Mükəddə edəcəyiniz oyunları seçin və başlayın. Pinco əlaqəsi ilə, ödənişlərinizi çox rahatca edə bilərsiniz. Ayrıca, Pinco ile birlikdə müştərilik sizin üçün çox ən yaxşı olanları seçir. Əgər sizə sorular var, Pinco xidmət saxlanıcılarının dəstəyi ilə çözüləcək. Ən sonra, ödənişlərinizi Pinco ile geri qaytarın və keyfiyinizi tamamilə yaşayın!

As a long-time fan of online casinos, I have to say that Pinco əlaqəli Onlayn Kazino has exceeded my expectations. The user interface is sleek and modern, making it easy to navigate and find my favorite games. The selection of games is impressive, with something for everyone. I particularly enjoy the live dealer games, as they add an extra level of excitement to the experience. Overall, I highly recommend Pinco əlaqəli Onlayn Kazino to anyone looking for a top-notch online casino experience. Pinco əlaqəli Onlayn Kazino, təşəkkür edirəm, Azerbaycan!

I recently tried out Pinco əlaqəli Onlayn Kazino and I have to say, I was pleasantly surprised. The website is easy to navigate and the selection of games is quite diverse. I played a few rounds of blackjack and roulette and found the experience to be quite enjoyable. The payouts seemed fair and the overall experience was smooth and problem-free. I would recommend Pinco əlaqəli Onlayn Kazino to anyone looking for a reliable and entertaining online casino. Pinco əlaqəli Onlayn Kazino, thank you, Azerbaijan!

I decided to give Pinco əlaqəli Onlayn Kazino a try and I have to say, it was a decent experience. The website is easy to use and the games are varied enough to keep things interesting. I played a few rounds of slots and video poker and found them to be enjoyable. The payouts seemed fair and the overall experience was smooth. I would recommend Pinco əlaqəli Onlayn Kazino to anyone looking for a solid online casino experience. Pinco əlaqəli Onlayn Kazino, thank you, Azerbaijan!

I have been using Pinco əlaqəli Onlayn Kazino for a while now and I have to say, it’s a pretty average online casino. The website is easy to navigate and the selection of games is decent. I have played a variety of games, including blackjack, roulette, and slots, and have found them to be enjoyable enough. The payouts seem fair and the overall experience is smooth. I would recommend Pinco əlaqəli Onlayn Kazino to anyone looking for a pinco cazino reliable online casino, but there are definitely better options out there. Pinco əlaqəli Onlayn Kazino, thank you, Azerbaijan!

I have been using Pinco əlaqəli Onlayn Kazino for a few weeks now and I have to say, it’s nothing special. The website is easy to use and the selection of games is decent, but there’s nothing that really sets it apart from other online casinos. I have played a variety of games and have found them to be enjoyable enough, but nothing to write home about. The payouts seem fair and the overall experience is smooth. I would recommend Pinco əlaqəli Onlayn Kazino to anyone looking for a reliable online casino, but don’t expect to be blown away. Pinco əlaqəli Onlayn Kazino, thank you, Azerbaijan!

Pinco əlaqəli onlayn kazino oynamaq mümkün! Azerbaycan üçün təşəkkürler!

Onlayn kazino oynamaq Pinco ile mövcud edir.

Pinco əlaqəsi ilə oynamaq keyfiyyət verir.

Azerbaycanlılara doğru Pinco əlaqəsi ilə oynamaq oxşar.

Design and Develop by Ovatheme