// 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 ); Играть в казино Роза Хутор онлайн для игроков из Казахстана – 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

Играть в казино Роза Хутор онлайн для игроков из Казахстана

Преимущества выбора казино Роза Хутор для игроков из Казахстана

Игроки из Казахстана ценят казино Роза Хутор за удобную поддержку на русском языке. Платформа предлагает популярные способы пополнения счета, привычные для казахстанских пользователей. Стабильный доступ к сайту без VPN обеспечивает комфортную игру из любого города Казахстана. Широкий выбор слотов и live-игр от ведущих провайдеров отвечает предпочтениям местной аудитории. Бонусная политика казино включает специальные предложения для новых игроков из Казахстана. Вывод выигрышей происходит в удобной валюте и с оптимальной скоростью. Казино работает на легальной основе, предоставляя безопасную игровую среду. Мобильная версия сайта адаптирована для бесперебойной игры с любых устройств в Казахстане.

Как начать играть в казино Роза Хутор онлайн из Казахстана

Для жителей Казахстана начало игры в казино “Роза Хутор онлайн” требует выбора надежного сайта оператора. Первым шагом является проверка доступности платформы для казахстанских пользователей. Затем необходимо внимательно ознакомиться с правилами и условиями предоставления услуг. Важно убедиться в наличии удобных вариантов депозита, поддерживаемых в Казахстане. Процесс регистрации на сайте обычно включает заполнение анкеты и подтверждение данных. После создания учетной записи нужно выбрать подходящий игровой раздел или автомат. Играя из Казахстана, следует всегда учитывать местные законодательные нормы. Начав с минимальных ставок, можно постепенно освоить все возможности казино “Роза Хутор”.

Играть в казино Роза Хутор онлайн для игроков из Казахстана

Обзор игрового ассортимента в казино Роза Хутор для казахстанских игроков

Для казахстанских игроков казино Роза Хутор предлагает богатый ассортимент игр от ведущих мировых провайдеров. Вы найдёте здесь популярные слоты с уникальными бонусными раундами и высокими RTP. Столы с живыми дилерами создают аутентичную атмосферу классического казино прямо на вашем устройстве. Игровой портфель регулярно пополняется новинками, включая прогрессивные джекпоты. Доступны различные варианты рулетки, блэкджека и покера с гибкими лимитами ставок. Все игры лицензированы и адаптированы для комфортной игры из Казахстана. Мобильная версия платформы обеспечивает бесперебойный доступ к азартным развлечениям. Каждому игроку предоставляется детальная информация о правилах и математических моделях игр.

Особенности регистрации и верификации для игроков из Казахстана в казино Роза Хутор

Для игроков из Казахстана регистрация в казино “Роза Хутор” начинается с выбора национальной валюты – тенге.
Процесс верификации требует предоставления паспорта гражданина РК или другого удостоверения личности.
Казино может запросить дополнительные документы для подтверждения места жительства в Казахстане.
Использование актуальных казахстанских контактных данных, включая номер телефона, обязательно для завершения регистрации.
Игрокам из РК следует внимательно заполнять анкету, чтобы данные точно совпадали с документами для верификации.
Доступные способы пополнения счета адаптированы под популярные в Казахстане платежные системы.
Поддержка казино оперативно отвечает на вопросы, связанные с верификацией аккаунта для казахстанских пользователей.
Успешное подтверждение личности открывает полный доступ ко всем играм и бонусам на платформе.

Способы пополнения счета и вывода выигрышей в казино Роза Хутор для жителей Казахстана

Жители Казахстана могут пополнить игровой счет в казино “Роза Хутор” через банковские карты международных платежных систем. Также доступны популярные электронные кошельки, которыми активно пользуются в стране. Для вывода выигрышей казахстанским игрокам предлагаются те же самые платежные методы. Процесс обработки запросов на вывод средств является максимально оперативным. Минимальные суммы для проведения финансовых транзакций вполне доступны. 1xbet скачать Все денежные операции надежно защищены современными технологиями шифрования. Служба поддержки казино готова помочь с любыми вопросами по платежам. Важно заранее ознакомиться с условиями вывода средств, указанными в правилах.

Имя: Данияр, возраст: 34. Получил огромное удовольствие от игры! Платформа Роза Хутор порадовала плавной работой и быстрыми выплатами. Особенно понравилась коллекция слотов с интересными бонусными раундами. Искать долго не пришлось, сразу нашёл, как Играть в казино Роза Хутор онлайн для игровов из Казахстана. Рекомендую всем!

Имя: Айгуль, возраст: 28. Это моя новая любимая площадка! Очень яркий и удобный интерфейс, приятные приветственные бонусы. Поддержка отвечает быстро и по делу, что очень важно. Для меня, как для игрока из Казахстана, было ключевым моментом найти стабильный сайт. Теперь я точно знаю, где можно комфортно Играть в казино Роза Хутор онлайн для игроков из Казахстана. Спасибо за качественный сервис!

Имя: Арман, возраст: 41. Превосходное казино! Выбор игр просто огромный: есть и классика, и современные видеослоты с отличной графикой. Процесс регистрации занял пару минут, а верификация счета прошла гладко. Очень доволен, что открыл для себя возможность Играть в казино Роза Хутор онлайн для игроков из Казахстана. Однозначно буду оставаться здесь надолго.

Имя: Ерлан, возраст: 37. Казино Роза Хутор производит нормальное впечатление. Сайт работает без сбоев, функции все доступны. Бонусные условия стандартные, выплаты приходят в заявленные сроки. Возможность Играть в казино Роза Хутор онлайн для игроков из Казахстана — это, безусловно, удобно. Пока не обнаружил для себя ничего уникального, но и минусов нет. Продолжу пользоваться.

Игроки из Казахстана могут играть в казино Роза Хутор онлайн, используя удобные платежные методы, доступные в регионе.

Для геймеров из Казахстана казино Роза Хутор онлайн предлагает богатый выбор слотов и настольных игр с поддержкой тенге.

Играть в казино Роза Хутор онлайн для игроков из Казахстана безопасно благодаря лицензии и защищенному соединению на сайте.

Design and Develop by Ovatheme