// 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 ); 1win kazino və onlayn slotlarda limitsiz əyləncə – 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

1win kazino və onlayn slotlarda limitsiz əyləncə

1win aviator, 1win giriş, 1win вход, 1win oyna, 1win azerbaycan, 1win yukle, 1win скачать, 1win az kimi məşhur oyunlar və xidmətlərlə, 1win kazino sizə limitsiz əyləncə təklif edir. Bu onlayn kazinoda siz ən yaxşı oyunlar və ən yüksək keyfiyyətli xidmətlər ilə tanış ola bilərsiniz.

1win kazino onlayn slotlar və digər oyunlar üçün ən geniş seçimləri təqdim edir. Siz 1win aviator kimi məşhur oyunları oynaya bilərsiniz və ən yüksək qələbələr əldə edə bilərsiniz. 1win kazino giriş və giriş prosesi çox asandır və siz 1win yukle və 1win скачать vasitəsilə kazinonun mobil versiyasını da yükləyə bilərsiniz.

1win azerbaycan onlayn kazino marketində ən etibarlı və ən etibarlı xidmətlərdən biridir. Siz 1win oyna vasitəsilə ən yaxşı oyunlar oynaya bilərsiniz və ən yüksək keyfiyyətli xidmətlər ilə tanış ola bilərsiniz. 1win az sizə limitsiz əyləncə təklif edir və siz ən yaxşı oyunlar və ən yüksək qələbələr əldə edə bilərsiniz.

1win Kazino və Onlayn Slotlarda Limitsiz Əyləncə

1win kazino və onlayn slotlar dünya üzrə məşhur olan və Azərbaycan istifadəçiləri tərəfindən də sevilən bir onlayn əyləncə platformasıdır. 1win indir və ya 1win yukle etməklə, siz də bu əyləncənin bir hissəsi ola bilərsiniz. 1win az saytında qeydiyyatdan keçdikdən sonra, 1win giriş etmək üçün yalnız istifadəçi adı və şifrənizə ehtiyac olacaq.

1win azerbaycan istifadəçiləri üçün xüsusi təkliflər və bonuslar təqdim edir. 1win aviator kimi məşhur oyunlar da daxil olmaqla, müxtəlif onlayn slotlar və kazino oyunları sizə limitsiz əyləncə təklif edir. 1win скачать və ya 1win yukle etməklə, siz bu oyunları hər yerdən oynaya bilərsiniz.

1win kazino və onlayn slotlarda əyləncənin həddi yoxdur. Siz 1win giriş etdikdən sonra, müxtəlif oyunlar və təkliflərlə qarşılaşacaqsınız. 1win az saytında sizə ən yaxşı təcrübəni təmin etmək üçün daima yenilənən və genişlənən oyun seçimi mövcuddur. 1win indir və ya 1win yukle etməklə, siz də bu əyləncənin bir hissəsi ola bilərsiniz.

Onlayn Kazinoda Qeydiyyat və İstartə Edilməsi

1win kazino və onlayn slotlarda limitsiz əyləncəyə cəlb olun! 1win indir və ya 1win yukle etməklə, siz dərhal oyunlara qoşula bilərsiniz. 1win oyna və 1win giriş etmək üçün, sizə yalnız qeydiyyatdan keçmək lazımdır. 1win giriş və 1win вход prosesi çox asandır, siz sadəcə öz şəxsi məlumatlarınızı daxil edərək, hesabınızı yarada bilərsiniz.

1win Azerbaycan

1win Azerbaycanlı oyunçulara xüsusi təkliflər və bonuslar təqdim edir. 1win az saytında siz, müxtəlif oyunlar və slotlar arasında seçim edə bilərsiniz. 1win aviator kimi məşhur oyunlar da sizə maraqlı gələ bilər. Qeydiyyatdan keçdikdən sonra, siz dərhal 1win yukle edərək, oyunlara başlamağa başlaya bilərsiniz.

1win-də Mövcud Onlayn Slot və Kazino Oyunları

1win giriş saytında mövcud olan onlayn slot və kazino oyunları, istifadəçilərə limitsiz əyləncə təklif edir. 1win indir və 1win oyna funksiyaları sayəsində, istifadəçilər ən müasir və maraqlı oyunları oynaya bilərlər.

  • 1win aviator – Bu, 1win-də mövcud olan ən populyar oyunlardan biridir. İstifadəçilər, aviator oyununda öz bacarıqlarını sınaya bilərlər.
  • Slot oyunları – 1win-də mövcud olan slot oyunları, müxtəlif mövzularda və janrlarda təqdim olunur. İstifadəçilər, özünə ən yaxın gələn oyunu seçə bilərlər.
  • Kazino oyunları – 1win-də mövcud olan kazino oyunları, poker, blackjack, rulet və s. kimi klassik oyunları əhatə edir. İstifadəçilər, öz bacarıqlarını sınaya bilərlər.

1win azerbaycan və 1win 1win login az saytları, Azərbaycan istifadəçiləri üçün xüsusi təkliflər təqdim edir. 1win yukle funksiyası sayəsində, istifadəçilər ən müasir oyunları oynaya bilərlər. 1win vstup və 1win вход funksiyaları, istifadəçilərə saytın bütün imkanlarına giriş imkanı verir.

  • 1win-də qeydiyyatdan keçmək
  • 1win-də oyunları oynamaq
  • 1win-də pul qazanmaq
  • 1win, istifadəçilərə limitsiz əyləncə və qazanc təklif edir. 1win saytını ziyarət edərək, siz də ən müasir və maraqlı oyunları oynaya bilərsiniz.

    1win Kazinoda Ödəniş və Çıxarış Üsulları

    1win kazino və onlayn slotlarda limitsiz əyləncəyə cəlb olan oyunçular üçün ödəniş və çıxarış üsullarının rahat və etibarlı olması vacibdir. 1win giriş, 1win yukle, 1win oyna, 1win azerbaycan, 1win вход, 1win indir, 1win скачать, 1win az kimi variantlar ilə oyunçulara xidmət edən 1win kazinosu, müxtəlif ödəniş sistemlərini dəstəkləyir.

    Ödəniş Üsulları

    1win kazinoda ödəniş üsulları arasında bank kartları, elektron pul kisələri, mobil ödəniş sistemləri və s. var. Oyunçular 1win yukle və 1win oyna variantları ilə hesablarına pul köçürə bilərlər. 1win azerbaycan oyunçuları üçün Azərbaycan manatında ödəniş üsulları da mövcuddur.

    Çıxarış Üsulları

    1win kazinoda çıxarış üsulları da kifayət qədər rahat və etibardır. Oyunçular qazandıqları məbləği 1win giriş və 1win вход variantları ilə asan şəkildə çıxara bilərlər. 1win indir və 1win скачать variantları ilə mobil cihazlara yüklənən 1win kazinosu, həmçinin mobil çıxarış üsullarını da dəstəkləyir. 1win az oyunçuları üçün də çıxarış üsulları mövcuddur.

    Design and Develop by Ovatheme