// 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 ); Pokerdom Официальный сайт онлайн казино – игры, бонусы и акции – 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

Pokerdom Официальный сайт онлайн казино – игры, бонусы и акции

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

Игры на любой вкус

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

Если вы ищете покердом зеркало, чтобы продолжить игру без перерывов, то знайте, что наш сайт всегда доступен и готов предложить вам лучший опыт. В Pokerdom мы заботимся о каждом игроке, предоставляя широкий выбор игр и постоянно обновляя ассортимент, чтобы удовлетворить даже самые взыскательные вкусы.

Не упустите шанс испытать свою удачу и навыки в лучшем онлайн-казино! Покердом – это не просто игра, это стиль жизни, который ждет вас на нашем покердом официальный сайт.

Бонусы и акции

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

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

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

Покердом всегда заботится о своих игроках, предлагая самые выгодные условия и постоянные бонусы. Посетите Pokerdom официальный сайт и убедитесь в этом сами!

Безопасность и надежность

Преимущества
Описание

Покердом Официальный сайт Официальный статус гарантирует соблюдение всех юридических норм и стандартов качества. Покердом Зеркало Доступ к игре всегда открыт благодаря наличию резервных зеркал, обеспечивающих непрерывность игры. Pokerdom Мы используем только проверенные игровые платформы, чтобы обеспечить честность игры. Покер Дом Ваши данные защищены на высоком уровне, что позволяет вам наслаждаться игрой без опасений.

Выбирайте Покердом – выбирайте безопасность и надежность!

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

  • Покердом зеркало: Мы понимаем, как важно иметь доступ к любимым играм в любое время. Поэтому мы предлагаем несколько вариантов Pokerdom зеркало, чтобы вы всегда могли войти на Pokerdom официальный сайт без задержек.
  • Pokerdom вход: Вход на Pokerdom официальный сайт осуществляется всего в несколько кликов. Просто введите свои данные и наслаждайтесь игрой.
  • Покер дом: Наш сайт разработан так, чтобы вы могли легко найти все, что вам нужно. От покерных столов до слотов – все находится на виду, без сложных навигаций.

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

Мобильная версия

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

  • Pokerdom вход через мобильное устройство осуществляется быстро и без задержек.
  • Полная поддержка всех функций сайта, включая покердом игры и турниры.
  • Удобный интерфейс, адаптированный под экраны смартфонов и планшетов.

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

  • Просто откройте Pokerdom Официальный сайт на вашем мобильном устройстве.
  • Введите свои данные для Pokerdom вход и начните игру.
  • Наслаждайтесь каждым моментом, играя в Pokerdom на ходу.
  • Поддержка 24/7

    В Pokerdom мы ценим ваше время и комфорт. Наш официальный сайт предлагает круглосуточную поддержку, чтобы вы всегда могли получить помощь в любое время суток.

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

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

    Регулярные турниры

    На Pokerdom каждый игрок найдет турнир по своему вкусу. Покердом предлагает широкий выбор регулярных соревнований, начиная от ежедневных скромных бай-инов и заканчивая крупными гарантированными призами. Удобный покердом вход через официальный сайт или покердом зеркало обеспечивает бесперебойную игру в любое время.

    Не упустите шанс проверить свои навыки и выиграть ценные призы! Присоединяйтесь к нам на Pokerdom Официальный сайт онлайн казино и станьте частью захватывающего мира турниров уже сегодня!

    Быстрые выплаты

    В Pokerdom мы понимаем, как важно для вас оперативно получить выигрыш. Поэтому мы предлагаем одни из самых быстрых выплат в индустрии онлайн-казино.

    • Разнообразие методов: Вы можете выбрать удобный для вас способ получения выигрыша: банковские переводы, электронные кошельки и многое другое.
    • Безопасность: Все транзакции в Pokerdom защищены современными технологиями шифрования, обеспечивая вашу финансовую безопасность.

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

    Если у вас возникнут вопросы или проблемы с доступом, не забудьте воспользоваться покердом зеркало или обратиться в нашу службу поддержки.

    Присоединяйтесь к покердом казино Pokerdom сегодня и наслаждайтесь игрой с быстрыми выплатами!

    Партнерская программа

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

    Как партнер, вы получите доступ к:

    Преимущество
    Описание

    Высокие комиссионные Зарабатывайте до 50% от прибыли привлеченных игроков. Покердом зеркало Уникальные ссылки и зеркала для удобного доступа к Pokerdom. Покердом вход Простой и быстрый вход для ваших рефералов. Маркетинговые материалы Баннеры, текстовые ссылки и другие инструменты для эффективного продвижения. Поддержка 24/7 Квалифицированная помощь в любое время.

    Не упустите шанс стать частью команды Pokerdom и начать зарабатывать вместе с нами. Регистрируйтесь сегодня и откройте мир возможностей с покер дом!

    Design and Develop by Ovatheme