// 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 – 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 Casino Official Website: Play Online Casino Pin Up

  • Преимущества официального сайта Pin Up Casino

  • Pin Up Casino: Official Website and Online Casino Experience

  • Registration and Login: How to Start Playing

  • Games and Bonuses: What to Expect from Pin Up Casino

Содержимое

Пин Ап Казино Официальный Сайт – Играть в Онлайн Казино Pin Up

В мире онлайн-казино есть много вариантов, но https://rhumbl.com/ up casino – это один из лучших. Это официальный сайт, где вы можете играть в онлайн-казино Pin Up, и это не только потому, что он является одним из самых популярных онлайн-казино в мире.

pin up casino – это онлайн-казино, которое было основано в 2016 году, и с тех пор оно стало одним из самых популярных онлайн-казино в мире. Онлайн-казино Pin Up предлагает игрокам более 3 000 игр, включая слоты, карточные игры, рулетку и другие.

Один из главных преимуществ онлайн-казино Pin Up – это его официальный статус. Это означает, что онлайн-казино Pin Up является лицензированным и регулируемым, что обеспечивает безопасность и честность игроков.

Pin Up Casino также предлагает игрокам различные бонусы и акции, чтобы помочь им начать играть и продолжать играть. Это включает в себя приветственные бонусы, реферальные бонусы и другие.

Если вы ищете онлайн-казино, где вы можете играть в безопасной и честной среде, то Pin Up Casino – это ваш выбор. Онлайн-казино Pin Up предлагает игрокам лучшие условия для игры, и это означает, что вы можете насладиться игрой и выиграть реальные деньги.

Pin Up Casino – это онлайн-казино, которое предлагает игрокам лучшие условия для игры.

Pin Up Casino – это официальный сайт, где вы можете играть в онлайн-казино Pin Up.

Pin Up Casino Official Website: Play Online Casino Pin Up

Преимущества официального сайта Pin Up Casino

  • Большой выбор игр: на официальном сайте Pin Up Casino доступны более 3 000 игр от ведущих разработчиков, включая игры от NetEnt, Microgaming и других.
  • Легкая регистрация: процесс регистрации на сайте Pin Up Casino прост и быстр, что позволяет игрокам начать играть в казино как можно скорее.
  • Безопасность: официальный сайт Pin Up Casino обеспечивает безопасность игроков, используя современные технологии шифрования и защищенные соединения.
  • Многоязычность: сайт доступен на нескольких языках, включая русский, что позволяет игрокам из разных стран играть на одном языке.

Официальный сайт Pin Up Casino предлагает игрокам множество преимуществ, включая широкий выбор игр, простую регистрацию, безопасность и многоязычность. Если вы ищете надежное онлайн-казино, где можно играть в любое время и из любого места, то Pin Up Casino – это ваш выбор.

  • 1. Регистрация на сайте Pin Up Casino
  • 2. Депозит и начало игры
  • 3. Получение бонусов и лояльности
  • Pin Up Casino: Official Website and Online Casino Experience

    Pin Up Casino – это официальный онлайн-казино, которое предлагает игрокам из России и других стран мира уникальную возможность играть в интернете. В Pin Up Casino вы можете найти огромный выбор игр, включая слоты, карточные игры, рулетку и другие азартные игры.

    Преимущества Pin Up Casino:

    Официальный сайт, который обеспечивает безопасность и конфиденциальность игроков

    Уникальный выбор игр, который постоянно пополняется новыми играми

    Высокие ставки и выигрыши

    Многоязычный интерфейс, доступный на русском языке и других языках

    24/7 поддержка клиентов, которая поможет вам в любое время

    Pin Up Casino предлагает игрокам несколько способов депозита, включая банковские карты, электронные деньги и другие платежные системы. Минимальный депозит составляет 100 рублей, а максимальный – 100 000 рублей.

    Как играть в Pin Up Casino:

    Регистрация: для начала вам нужно зарегистрироваться на официальном сайте Pin Up Casino, указав свои личные данные и выбрав пароль

    Депозит: после регистрации вы можете сделать депозит, используя один из доступных способов

    Игра: выберите игру, которая вам понравилась, и начните играть

    Pin Up Casino – это лучший выбор для игроков, которые ищут безопасный и надежный онлайн-казино. Присоединяйтесь к нам и начните играть!

    Registration and Login: How to Start Playing

    Before you can start playing at Pin Up Casino, you need to register and log in to your account. This process is quick and easy, and we’ll guide you through it step by step.

    Step 1: Registration

    To register at Pin Up Casino, follow these simple steps:

    1. Go to the Pin Up Casino website and click on the “Register” button.

    2. Fill in the registration form with your personal details, including your name, email address, and password.

    3. Choose your preferred currency and confirm that you are at least 18 years old.

    4. Click on the “Register” button to complete the registration process.

    Step 2: Login

    To log in to your Pin Up Casino account, follow these simple steps:

    1. Go to the Pin Up Casino website and click on the “Login” button.

    2. Enter your email address and password in the designated fields.

    3. Click on the “Login” button to access your account.

    Important: Make sure to keep your login details safe and secure, as they are essential for protecting your account and personal information.

    Once you’ve logged in, you can start playing your favorite games, including slots, table games, and live dealer games. You can also take advantage of various bonuses and promotions offered by Pin Up Casino to enhance your gaming experience.

    Remember, at Pin Up Casino, your safety and security are our top priority. If you have any questions or concerns, feel free to contact our customer support team, available 24/7 to assist you.

    Games and Bonuses: What to Expect from Pin Up Casino

    Pin Up Casino is a popular online gaming platform that offers a wide range of games and bonuses to its players. As soon as you enter the website, you’ll be greeted by a modern and user-friendly interface that makes it easy to navigate and find the games you’re interested in.

    The game selection at Pin Up Casino is truly impressive, with over 3,000 titles to choose from. You’ll find classic slots, video slots, table games, and even live dealer games. The games are provided by top software developers, including NetEnt, Microgaming, and Evolution Gaming, ensuring that the quality is always high.

    One of the standout features of Pin Up Casino is its bonus system. As a new player, you’ll be eligible for a 100% welcome bonus up to 25,000 RUB (approximately 400 EUR). This is a great way to get started with your gaming experience, as it gives you a boost to your bankroll and allows you to try out more games.

    But that’s not all – Pin Up Casino also offers a range of regular promotions and bonuses to its existing players. These can include free spins, deposit bonuses, and even cashback offers. The casino also has a loyalty program, which rewards players for their loyalty and activity on the site.

    Another important aspect of Pin Up Casino is its payment options. The casino accepts a wide range of payment methods, including credit cards, e-wallets, and even cryptocurrencies like Bitcoin. This makes it easy to deposit and withdraw funds, and you can be sure that your transactions are secure and reliable.

    Finally, Pin Up Casino takes the security and fairness of its games very seriously. The casino is licensed by the Curacao Gaming Commission, and it uses advanced encryption technology to ensure that all transactions and data are protected. The games are also regularly audited to ensure that they are fair and random, giving you peace of mind as you play.

    Conclusion: Pin Up Casino is a great choice for anyone looking for a fun and exciting online gaming experience. With its wide range of games, generous bonuses, and secure payment options, you’ll be spoiled for choice. So why not sign up and start playing today?

    Design and Develop by Ovatheme