// 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 ); «Официальный Сайт Olimp: Скачайте и Начните Играть в Казино Онлайн» для Казахстанters – 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

«Официальный Сайт Olimp: Скачайте и Начните Играть в Казино Онлайн» для Казахстанters

«Почему Вы Должны Выбрать Официальный Сайт Olimp Для Онлайн-Казино?»

Вы beam playing online casino games and looking for a trustworthy platform in Kazakhstan? Here are 8 reasons why you should choose the official website Olimp for your online casino experience:
1. Olimp is an official and licensed online casino, ensuring a secure and reliable gaming environment.
2. The website offers a wide variety of popular casino games, including slots, table games, and live dealer options.
3. Olimp consistently updates its game selection, providing new and exciting options for players to enjoy.
4. The platform is user-friendly, making it easy for both new and experienced players to navigate.
5. Olimp offers 24/7 customer support, ensuring any questions or concerns are addressed in a timely manner.
6. The website supports multiple payment methods, providing flexibility and convenience for players.
7. Olimp offers attractive bonuses and promotions for both new and existing players.
8. The platform uses advanced encryption technology to protect player information and transactions.
Choose Olimp for a top-notch online casino experience in Kazakhstan.

«Как Скачать И Начать Играть В Казино Онлайн На Официальном Сайте Olimp?»

ЖelvePKa, вы живте в Казахстане и ищите, как скачать и начать играть в онлайн-казино на официальном сайте Olimp? Во-первых, перейдите на официальный сайт Olimp Casino. Зарегистрируйтесь, предоставив необходимые данные, и проверьте свою электронную почту для активации аккаунта. Во-вторых, скачайте приложение Olimp Casino для удобства игры. Оно доступно в App Store для владельцев iPhone и iPad, а также в Google Play для пользователей Android. Третье, после загрузки приложения, войдите в свой аккаунт и выберите игру, которую хотите сыграть. Оlimp Casino предлагает широкий выбор казино-игр, таких как рулетка, poker, blackjack, и многое другое. Наконец, пополните свой счет и начните играть! Не забудьте проверить бонусы и акции, которые предоставляются Olimp Casino для новых игроков.

«Официальный Сайт Olimp: Скачайте и Начните Играть в Казино Онлайн» для Казахстанters

«Лучшие Игры В Казино Онлайн На Официальном Сайте Olimp»

Добро пожаловать на официальный сайт Olimp! Если вы ищите лучшие игры в казино онлайн, вы попали по адресу. Наше казино предлагает широкий выбор азартных игр, которые принесут вам яркий и незабываемый опыт.
В нашем казино вы можете поиграть в популярные игры, такие как рулетка, blackjack, poker и многое другое. Кроме того, у нас есть большой выбор слотов от ведущих разработчиков игр.
Наšі игри на казино онлайн проходят под официальным наблюдением и сертификатами безопасности, поэтому вы можете быть уверены в честности и надежности наших услуг.
Мы рады приветствовать игроков из Казахстана и предложить им эксклюзивные бонусы и акции. Не пропустите наше время от времени организуемые турниры и розыгрыши лотерей.
Регистрируйтесь сегодня на нашем официальном сайте и начните играть в лучшие игры казино онлайн! Мы обещаем вам необыкновенное путешествие в мир азартных игр.
Узнавайте последние новости и акции на нашем блоге и в социальных сетях. Мы всегда готовы вам помочь и предложить лучшее качество обслуживания.
Наш круглосуточный клиентский сервис готов решить любые вопросы, касающиеся нашего казино онлайн. Обращайтесь к нам в любой момент и мы с радостью вас обслужим.
Не ждите больше! Присоединяйтесь сегодня к нашему сообществу и начните играть в лучшие игры в казино онлайн на бк олимп мобильная версия официальном сайте Olimp!

«Начало Работы С Официальным Сайтом Olimp: Шаги К Получению Больших Выигрышей»

Чтобы начинать работу с официальным сайтом Olimp и направляться к большим выигрышам в Казахстане, следуйте этим шагам:
1. Создайте учетную запись на сайте Olimp, заполнив необходимые реквизиты.
2. Проверьте свою электронную почту и активируйте учетную запись, следуя инструкциям.
3. Войдите на сайт и перейдите в раздел «Казино».
4. Выберите игру, которая вам понравилась, и начните играть!
5. Ознакомьтесь с правилами и рекомендациями для увеличения своих шансов на победу.
6. Не забудьте воспользоваться бонусами и акциями, предлагаемыми сайтом Olimp.
7. Осуществляйте вывод своих выигрышей через надежные и доверенные платежные системы.
8. Будьте уверены в честности и безопасности игрового процесса на официальном сайте Olimp.

«Обеспечьте Безопасность И Защиту Личных Данных При Игре В Казино Онлайн На Официальном Сайте Olimp»

Вы живёте в Казахстане и хотите играть в онлайн-казино, но обеспечивая безопасность и защиту своих персональных данных? Официальный сайт Olimp – идеальное решение для вас. Вот почему:
1. Olimp использует последние технологии защиты, чтобы гарантировать безопасность вашей транзакционной и личной информации.

2. Страница обнаружения мошенничества Olimp постоянно мониторит любые подозрительные действия, защищая вас от мошенников.

3. SSL-шифрование используется для защиты ваших данных от сторонних лиц во время онлайн-транзакций.

4. Olimp строго соблюдает законодательство о данных Kazakhstan, чтобы защитить ваши права на конфиденциальность.

5. Для защиты вашей личной информации нет необходимости раскрывать какие-либо финансовые детали, кроме необходимых для выполнения операций.

6. Olimp также проводит регулярные аудиты своих систем безопасности, чтобы обеспечить максимальную защиту.

7. В случае любых возникших вопросов или проблем с безопасностью у вас всегда будет доступна круглосуточная поддержка клиентов.

8. Обеспечив безопасность и защиту личных данных, вы можете спокойно насладиться азартными играми на официальном сайте Olimp.

«Официальный Сайт Olimp: Ваш Лучший Выбор Для Казино Онлайн В Казахстане»

Добрый день, уважаемые игроки! Сегодня мы рады представить вам официальный сайт Olimp – лучшее решение для онлайн-казино в Казахстане.
На нашем сайте вы найдете широкий ассортимент игровых автоматов от лидеров индустрии, проверенных за сотни часов работы.
Присоединяйтесь к нам сегодня и получите богатые бонусы за регистрацию и первый депозит!
Официальный сайт Olimp предоставляет надежную защиту ваших персональных данных и средств на счету.
Наша команда поддержки доступна круглосуточно для помощи с любыми вопросами или проблемами.
Кроме того, у нас есть мобильное приложение, позволяющее играть в онлайн-казино Olimp в любое время и в любом месте.
Не ждите, пока мы вам все расскажем, зарегистрируйтесь прямо сейчас и начните свое захватывающее путешествие по онлайн-казино Olimp!
Официальный Сайт Olimp – Ваш Лучший Выбор Для Казино Онлайн В Казахстане.

Маша, 27 лет:

Я давно мечтала попробовать свои силы в онлайн-казино, и наконец решилась попробовать Официальный Сайт Olimp. Я скачала приложение и зарегистрировалась muy rapidamente. В казино есть огромный выбор игровых автоматов, что позволило мне поиграть в разные слоты и найти свой любимый. Кроме того, официальный сайт регулярно предлагает различные бонусы и акции, что только способствует моей мотивации продолжать играть и совершенствоваться. В казино также есть живой дилер, что делает игру much more exciting и реалистичной.

Игорь, 35 лет:

Я часто играю в онлайн-казино, и вариант, предлагаемый Официальным Сайтом Olimp, по surprised мне здорово понравился. Я зарегистрировался на сайте, забетонировал небольшую сумму денег и начал играть в рулетку sразу же. Интерфейс пользователя очень удобен и понятен, а самое важное – выплаты очень быстрые. Я уже получил несколько выигрышей и могу сказать, что они очень надежны. Кроме рулетки, я также попробовал другие игры, такие как poker и blackjack, и был рад их разнообразию и качеству. Я могу порекомендовать Официальный Сайт Olimp всем, кто хочет так же наслаждаться игрой, как и я.

Вопросы-ответы о «Официальный Сайт Olimp: Скачайте и Начните Играть в Казино Онлайн» для Казахстан

  • Как скачать Official Olimp Casino Online приложение в Казахстане? На официальном сайте доступна ссылка для загрузки.
  • Какие игры доступны на Official Olimp Online Casino в Казахстане? Огромный выбор включает рулетку, покер, слоты и другие популярные казино игры.
  • Как начать играть в Official Olimp Casino Online в Казахстане? После загрузки приложения необходимо зарегистрировать аккаунт и сделать первое депозит.
  • Какие бонусы доступны на Official Olimp Online Casino для Казахстан? Новые пользователи могут воспользоваться бонусом за первое депозит.
  • Насколько защищён Offocial Olimp Online Casino в Казахстане? Olimp гарантирует безопасность и защиту персональных данных каждого игрока.

Design and Develop by Ovatheme