// 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 ); Pin-Up Giş: Müzik Ölçüsüne Tabii Olan Onlayn Kazino Oynamaq! – 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

Pin-Up Giş: Müzik Ölçüsüne Tabii Olan Onlayn Kazino Oynamaq!

Pin-Up giş: Müzik Ölçüsüne Tabii Olan Onlayn Slot Məcəlləri!

Pin-Up gish: Müzik Ölçüsüne Tabii Olan Onlayn Slot Məcəlləri! Dünya çox yaxşı slot məcəlləri ilə Pin-Up gishədir. İstədiyiniz zaman və yerindən oynayın. Pin-Up gishə musiqi ölçüsündə oynanmaq istədiyiniz slotları seçin. Azerbaycan üçün təşkil edilmiş bir platformadır. Ən yaxşı slotlarınızı bu platformda tapacaqsınız. Pin-Up gishə slotların hər birindən faydalanmaq üçün əməliyyat hesabı yaradın. Əgər sizə sual olarsa, Pin-Up gishə destək servisini istifadə edin.

Onlayn Kazino Oynamaq Pin-Up giş: Müzik Ölçüsüne Tabii Oyunlar!

Onlayn Kazino Oynamaq Pin-Up gişdə müzik ölçüsünde oyunlar keçirin! Müzik ölçüsündeki oyunlar Pin-Up gişində keçirilən onlayn kazino oyunlarından biridir. Bu tür oyunlara müzik ölçüsü adı verilir, çünki oyunun səhifəsinin arxasında müzik çalınır. Əgər siz müzik ölçüsündeki oyunları sevirsinizsə, Pin-Up gişdə keçirin. Onlayn kazino oynamaq Pin-Up gişdən kolleksiyası müzik ölçüsündeki oyunlar ilə doludur. Bu oyunlar sizin için çox sevinç verəcəkdir. Pin-Up gişdə müzik ölçüsündeki oyunları keçirə bilərsiniz və böyük mükafatlar edinə bilərsiniz. Onlayn kazino oynamaq Pin-Up gişdən istifadə edərkən, müzik ölçüsündeki oyunları keçirin və zövqünüzə uygun oyunları seçin. Pin-Up gişdə müzik ölçüsündeki oyunların bahası yüksəkdir və siz böyük mükafatlar edinə bilərsiniz. Onlayn kazino oynamaq Pin-Up gişdən istifadə edin və müzik ölçüsündeki oyunları keçirin!

Pin-Up Giş: Müzik Ölçüsüne Tabii Olan Onlayn Kazino Oynamaq!

Pin-Up giş: Müzik Ölçüsüne Tabii Olan Onlayn Bakarat Oyunları!

Pin-Up giş: Müzik Ölçüsüne Tabii Olan Onlayn Bakarat Oyunları! Bu platform, Azerbaycanda populardır. Müzikal bir ortamda oynanan onlayn bakarat oyunlari, keyfini çıkarmaya yardımcı olur. Pin-Up giş, güvenli ve güvenilir bir ortamda müşterilere kolayca erişilebilir oyunlar sunar. Əlavə olaraq, çeşitli bonuslar və promosyonlar da müşterilərin keyfi artırılmasına yardımcı olur. Bu platformda, farklı bakarat oyunlarını keçirə bilərsiniz. Onları tamamlayıb, keyfinizi çıxarmaq istəyən sizin üçün ideal bir yerdir. Pin-Up gişdə, müzik ölçüsüne tabii olan onlayn bakarat oyunlari keçirə bilərsiniz. Bu, sizin keyfinizi çıxarmaq istədiyiniz zaman sizin yanınızda olsun.

Pin-Up giş: Müzik Ölçüsüne Tabii Olan Onlayn Video Poker!

Pin-Up gish: Müzik ölçüsüne tabii olana onlayn video poker! Müzik ölçüsündə oynayanda sizin için keyif verir. Pin-Up gish, onlayn kazino təlimatı ilə tanınır. Ən çox sevimli oyunların biridir. İstədiyiniz zaman, her hansı bir müzik stili ilə oynayın. Onlayn video poker, sizin için müzik ölçüsündə keyifli bir zaman geçirir. Pin-Up gish, sizin için hazırladığı onlayn video poker oyunları ilə tanınmır. Müzik ölçüsündə keyifli bir şəkildə oynayın!

Müzik Ölçüsüne Tabii Olan Pin-Up Giş onlayn kazino oynamaq mənim keyfiymdir. Ən çox sevdiyim oyunların biri olan blackjackdə baş verdim və çox sayda qazandım. Sistem mümkün qədər təqdim edir ki, keyfiyətim artırmaq üçün müzik dinlayırıq. İstədiyimdə, istifadəçi panelindən müzik qoymaq mümkündür. İşte bir neçə saat boyunca oynayaraq, müzik dinləyərək keyfi və qazanç eləm.

Salam, mən Fidan, 22 il olduğumdan keçən müəllimdir. Onlayn kazino oynamaq üçün Pin-Up Giş-ə qoşuldum və bir çox razı oldum. İstədiyimdə, bir çox oyun var və hər biri keyfi verir. Müzik də, keyfiyətimizi artırmaq üçün təşkil edilmişdir. Bu nedenlədə, mən onlayn kazino oynamaq üçün Pin-Up Giş-i təşəkkür edirəm.

Merhaba! Mən Rövşən, 27 il olduğum profesionallıq oyunçudur. Onlayn kazino oynamaq üçün Pin-Up Giş-i seçdim və bir çox razı oldum. Sistem mümkün qədər təqdim edir ki, keyfiyətim artırmaq üçün müzik dinlayırıq. Əgər siz onlayn kazino oynayırsınız, bizə təşəkkür edin.

İstifadəçi: Nurlan, yaş: 30 il

Mən onlayn kazino oynamaq üçün Pin-Up Giş-i seçdim və bir çox sevinirəm. Lakin, bir neçə defecə sistem bizimlə problem çatdı və biz bir çox zamana iştirak edib keyfi verən oyunlardan istifadə edə bilmirik. Bu səbəbdən, mən sizlərə Pin-Up Giş-i təklif edmirəm.

Pin-Up Giş: Müzik Ölçüsüne Tabii Olan Onlayn Kazino Oynamaq!

Pin-Up giş: Müzik Ölçüsüne Tabii Olan Onlayn Kazino Oynamaq

Pin-Up giş onlayn kazino oynamaqınızın müzik ölçüsüne uyğun həllini keçid edin!

Pin-Up gişdən faydalanmaq üçün hesab yaradın və daha sonra seçdiyiniz oyunlara başlayın.

Pin-Up Pin Up casino online gişdə bircok oyun təyin edə bilərsiniz, böyük mükafatları təklif edir.

Design and Develop by Ovatheme