// 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 — официальный сайт букмекерской конторы 1вин – 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 — официальный сайт букмекерской конторы 1вин

В мире ставок и азарта 1вин является одним из самых популярных и надежных букмекеров. Компания была основана в 2018 году и с тех пор стала одним из лидеров на рынке азарта. 1вин предлагает своим клиентам широкий спектр услуг, включая ставки на спорт, киберспорт, политические события и многое другое.

Официальный сайт 1вин – это место, где вы можете найти все, что вам нужно для успешной ставки. Здесь вы можете выбрать из тысячи вариантов ставок, узнать о последних новостях и событиях, а также получать доступ к информации о командах и игроках.

1вин – это не только букмекер, это также и платформа для игроков, которые ищут новые возможности для игры и развлечения. Компания предлагает своим клиентам широкий спектр игр, включая слоты, карточные игры и другие.

1вин – это выбор для тех, кто ищет надежного партнера для своих ставок и игр.

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

Официальный сайт 1win: что это и как работает

Сайт 1win предлагает пользователям удобный интерфейс, который позволяет легко и быстро сделать ставку, а также отслеживать результаты своих ставок в реальном времени.

Преимущества официального сайта 1win

Большой выбор азартных игр Многие пользователи выбирают 1win из-за его обширного спектра азартных игр, включая ставки на спорт, киберспорт, лото, рулетку и другие. Высокие коэффициенты 1win предлагает высокие коэффициенты, что позволяет пользователям получать максимальную прибыль от своих ставок. Удобный интерфейс Сайт 1win имеет простой и понятный интерфейс, который позволяет пользователям легко и быстро делать ставки и отслеживать результаты.

Как зарегистрироваться на официальном сайте 1win

Зарегистрироваться на официальном сайте 1win можно в несколько шагов:

Шаг 1: Перейти на официальный сайт 1win и нажать на кнопку “Зарегистрироваться”.

Шаг 2: Ввести свои личные данные, включая имя, фамилию, дату рождения и адрес электронной почты.

Шаг 3: Установить пароль и подтвердить регистрацию.

Шаг 4: Проверить электронную почту и подтвердить регистрацию.

Официальный сайт 1win: все о букмекерской конторе

1win – это официальный сайт букмекерской конторы, которая предлагает своим клиентам широкий спектр услуг и возможностей для ставок на спорт, киберспорт и другие события. В этом разделе мы рассмотрим основные аспекты работы конторы и ее официального сайта.

Оформление сайта

Официальный сайт 1win имеет современный и удобный дизайн, который позволяет клиентам легко найти необходимую информацию и совершать ставки. Сайт разделен на несколько разделов, каждый из которых предназначен для конкретной группы пользователей.

Возможности сайта

1win предлагает своим клиентам следующие возможности:

Ставки на спорт: клиенты могут ставить на различные виды спорта, включая футбол, баскетбол, хоккей и другие.

Ставки на киберспорт: контора предлагает ставки на различные дисциплины киберспорта, включая Dota 2, CS:GO и другие.

Ставки на другие события: клиенты могут ставить на различные события, включая политические выборы, премии и другие.

Бонусы и акции: контора регулярно предлагает своим клиентам различные бонусы и акции, которые могут помочь им увеличить свои выигрыши.

Условия работы

1win предлагает своим клиентам следующие условия работы:

Минимальная ставка: 1 рублей

Максимальная ставка: 100 000 рублей

Коэффициент возврата: 95%

Минимальный коэффициент: 1.80

Клиентская поддержка

Контора предлагает своим клиентам круглосуточную клиентскую поддержку, которая доступна по телефону, электронной почте и чату.

Безопасность

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

Ограничения

Контора имеет некоторые ограничения, которые могут помешать клиентам использовать ее услуги. Например, некоторые страны или регионы могут быть ограничены в доступе к сайту.

Заключение

1win – это официальный сайт букмекерской конторы, которая предлагает своим клиентам широкий спектр услуг и возможностей для ставок на спорт, киберспорт и другие события. Контора предлагает своим клиентам современный и удобный дизайн сайта, а также круглосуточную клиентскую поддержку и безопасность.

Основные преимущества 1win

1win – это не только букмекерская контора, но и платформа для игроков, которая предлагает множество преимуществ. Некоторые из них включают:

Уникальные коэффициенты

1win предлагает некоторые из самых высоких коэффициентов на рынке, что обеспечивает игрокам максимальную прибыль. Нашей командой постоянно мониторится рынок, чтобы обеспечить наилучшие условия для игроков.

Большой выбор ставок

1вин предлагает огромный выбор ставок на различные виды спорта, включая футбол, баскетбол, теннис, хоккей и многие другие. Это позволяет игрокам выбрать ставку, которая лучше всего подходит им.

Простой и удобный интерфейс

1win имеет простой и удобный интерфейс, который позволяет игрокам легко найти и сделать ставку. Наш интерфейс доступен на русском языке, что облегчает использование для игроков из России и других стран, где русский язык является официальным.

Безопасность и конфиденциальность

1вин обеспечивает безопасность и конфиденциальность своих игроков, используя современные технологии шифрования и защищенные соединения. Это позволяет игрокам чувствовать себя уверенно, когда делают ставки.

Многоуровневая система лояльности

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

24/7 поддержка

1вин предлагает 24/7 поддержку, которая поможет игрокам решить любые вопросы или проблемы. Наша команда доступна для игроков в любое время, чтобы помочь им в любых ситуациях.

Как зарегистрироваться на 1win и начать играть

Для начала играть на 1win, вам нужно зарегистрироваться на официальном сайте букмекерской конторы 1win. Регистрация проста и займет не более 5 минут.

Вам нужно перейти на официальный сайт 1win и кликнуть на кнопку “Зарегистрироваться”. Затем вам нужно ввести свои личные данные, включая имя, фамилию, дату рождения, адрес электронной почты и телефон.

Важно! Вам нужно выбрать сложный пароль и подтвердить его. Это поможет защитить ваш аккаунт от несанкционированного доступа.

После регистрации вам будет отправлено письмо с подтверждением email. Вам нужно открыть это письмо и кликнуть на ссылку для подтверждения email.

После подтверждения email вы сможете войти в свой аккаунт и начать играть на 1win. Вам доступны различные виды ставок, включая спортивные события, киберспорт и лото.

1win – это безопасный и надежный способ играть и получать прибыль. Мы используем современные технологии для защиты вашего счета и обеспечения безопасности вашей информации.

Начните играть на 1win сегодня и получите 130% бонус на свой первый депозит!

Безопасность и поддержка на 1win

1win – это не только популярная букмекерская контора, но и надежный партнер для своих клиентов. Мы понимаем, что безопасность и поддержка – это два ключевых аспекта для успешной работы в онлайн-рынке. Вот почему мы сделали все возможное, чтобы обеспечить максимальную безопасность и эффективность нашего сервиса.

Безопасность на 1win – это наш приоритет. Мы используем современные технологии и алгоритмы для защиты вашей информации и обеспечения безопасности вашего счета. Наш сервер находится на защищенном серверном центре, что обеспечивает максимальную безопасность вашей информации. Мы также используем SSL-шифрование для защиты вашей информации при передаче.

Мы понимаем, что время – это деньги, и поэтому мы сделали все возможное, чтобы обеспечить максимальную доступность нашего сервиса. Наш сайт доступен 24/7, и вы можете делать ставки в любое время, которое вам удобно.

Если у вас возникнут вопросы или проблемы, мы готовы помочь. Наш экипаж поддержки работает 24/7, чтобы помочь вам в любое время. Мы также предлагаем несколько способов связи с нами, включая чат, электронную почту и телефон.

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

Design and Develop by Ovatheme