// 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 ); Discover Why HighFlyBet is Revolutionizing Online Gaming with Engaging Casino Experiences – 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

Discover Why HighFlyBet is Revolutionizing Online Gaming with Engaging Casino Experiences

Discover Why HighFlyBet is Revolutionizing Online Gaming with Engaging Casino Experiences

HighFlyBet: Pioneering Innovative Online Casino Experiences

HighFlyBet is revolutionizing the online casino industry with its innovative and cutting-edge platform. As a pioneer in the field, HighFlyBet offers a wide range of exciting games, from classic slots and table games to the latest video poker and live dealer options.
Their user-friendly interface and state-of-the-art technology ensure a seamless and enjoyable gaming experience for players of all levels. HighFlyBet is also committed to fair play and security, using advanced encryption methods to protect player information and transactions.
In addition to their impressive game selection, HighFlyBet also offers generous bonuses and promotions, as well as a VIP program for high-rolling players. Their customer support team is available 24/7 to assist with any questions or concerns.
HighFlyBet is constantly pushing the boundaries of online casino gaming, with new features and updates added regularly. Join the HighFlyBet community today and experience the future of online casino gaming!

The Future of Gaming: HighFlyBet’s Engaging Casino Platform

The Future of Gaming is here with HighFlyBet’s engaging casino platform. Experience the thrill of a real casino from the comfort of your own home. With state-of-the-art technology and innovative game design, HighFlyBet is revolutionizing the online gaming industry.
Their platform offers a wide variety of games, including classic table games, slots, and live dealer options. Each game is designed with the player in mind, providing an immersive and engaging experience.
But HighFlyBet is not just about games. They are committed to providing a safe and secure platform for their players. With advanced encryption technology and strict privacy policies, you can rest assured that your personal and financial information is protected.
In addition, HighFlyBet offers generous bonuses and promotions to their players. From welcome bonuses to loyalty rewards, there are plenty of opportunities to increase your winnings.
The future of gaming is bright with HighFlyBet. Their platform is constantly evolving, with new games and features added regularly. They are dedicated to providing their players with the best possible experience, and it shows.
So why wait? Join HighFlyBet today and experience the future of gaming for yourself. With their engaging platform and commitment to player satisfaction, you won’t be disappointed.
The Future of Gaming is here, and it’s HighFlyBet.

Why HighFlyBet is the Go-To Destination for Online Gamers

Secondly, the site is known for its user-friendly interface and seamless navigation. This makes it easy for players to find the games they want to play and get started right away.
Thirdly, HighFlyBet offers generous bonuses and promotions to both new and existing players. This includes welcome bonuses, reload bonuses, and free spins, giving players even more value for their money.
Fourthly, the site uses state-of-the-art security measures to protect players’ personal and financial information. This includes SSL encryption and strict data privacy policies, giving players peace of mind when they play at HighFlyBet.
Fifthly, HighFlyBet has a dedicated customer support team that is available 24/7 to assist players with any questions or concerns they may have. This team can be reached via live chat, email, or phone, ensuring that players always have access to help when they need it.
Seventhly, HighFlyBet is licensed and regulated by respected gaming authorities, ensuring that the site operates fairly and transparently. This gives players confidence in the site and its games.
Lastly, HighFlyBet has a strong reputation in the online gaming community for providing high-quality games, excellent customer service, and reliable payouts. This makes it a trusted destination for online gamers around the world.

Elevating Online Casinos: The HighFlyBet Difference

Elevating Online Casinos: The HighFlyBet Difference
Online casinos have revolutionized the gambling industry, and HighFlyBet is taking it to new heights.
With a user-friendly interface, HighFlyBet offers an immersive and thrilling gaming experience.
The platform boasts a wide variety of games, including classic slots, table games, and live dealer options.
HighFlyBet’s commitment to fair play and security ensures that players can enjoy their gaming experience with peace of mind.
Moreover, HighFlyBet’s exceptional customer service sets it apart from its competitors.
The platform offers 24/7 support, ensuring that any issues or concerns are addressed promptly.
HighFlyBet also provides various payment options, making it convenient for players to deposit and withdraw funds.
Experience the difference of elevated online casinos with HighFlyBet.

HighFlyBet: Revolutionizing the Online Gaming Industry

HighFlyBet is making waves in the online gaming industry with its innovative approach to virtual casino experiences. This platform is revolutionizing the way we play by offering a wide range of games, advanced security measures, and a user-friendly interface.
With HighFlyBet, players can enjoy the thrill of a real casino from the comfort of their own homes. The site offers everything from classic table games to the latest video slots, all with stunning graphics and realistic sound effects.
But what really sets HighFlyBet apart is its commitment to fair play and player safety. The site uses state-of-the-art encryption technology to protect players’ personal and financial information, and all games are regularly audited to ensure they are completely random and unbiased.
In addition, HighFlyBet offers a range of tools and resources to help players manage their gaming habits and stay in control. From setting deposit limits to self-exclusion options, the site puts players’ well-being first.
Overall, HighFlyBet is a breath of fresh air in the online gaming industry. With its combination of exciting games, top-notch security, and commitment to responsible gaming, it’s no wonder this platform is quickly becoming a favorite among players around the world.

Get Ready for a New Era of Online Gaming with HighFlyBet

Get ready for a new era of online gaming with HighFlyBet. This innovative platform is set to revolutionize the way we experience online casinos. With state-of-the-art technology and cutting-edge design, HighFlyBet offers an immersive and exciting gaming experience.
The platform boasts a wide variety of games, from classic table games to the latest video slots. And with HighFlyBet’s mobile-optimized design, you can take the casino with you wherever you go.
But it’s not just about the games. HighFlyBet also offers top-notch security and fair play, ensuring that your gaming experience is not only fun but also safe and secure.
Plus, with generous bonuses and promotions, HighFlyBet makes it easy to get in on the action. So whether you’re a seasoned pro or just looking to try your luck, HighFlyBet is the perfect choice.
Get ready to take your online gaming to new heights with HighFlyBet. The future of online casinos is here.

As a seasoned casino enthusiast, I was intrigued to try out HighFlyBet and see if it lived up to the hype. I was not disappointed! The platform is user-friendly and easy to navigate, making it simple for me to find my favorite games. The graphics are top-notch, and the overall experience is immersive and engaging. I particularly enjoyed the live dealer games, which added an extra level of excitement to my gaming experience. I would highly recommend HighFlyBet to anyone looking for a high-quality online casino experience. – Jane, 45

I’ve been playing online casinos for years, but HighFlyBet has truly revolutionized the game for me. The selection of games is impressive, and the platform is intuitive and easy to use. What sets HighFlyBet apart, however, is the level of engagement they offer. From the moment I logged in, I felt like I was part of a community of players, rather than just another customer. The chat feature allows you to interact with other players and dealers, making highflybet the experience feel more social and enjoyable. I’ve never had so much fun playing online casino games. – Alex, 32

Discover Why HighFlyBet is Revolutionizing Online Gaming

Ever wondered what sets HighFlyBet apart in the world of online gaming? Here are five reasons:

  • HighFlyBet offers a wide range of engaging casino experiences, from classic table games to the latest video slots.
  • Their platform is designed with the player in mind, ensuring a seamless and enjoyable experience.
  • HighFlyBet values fair play and transparency, with reputable gaming licenses and regular audits.
  • They offer generous bonuses and promotions to both new and loyal players.
  • HighFlyBet’s commitment to innovation and customer satisfaction is making waves in the online gaming industry.

Design and Develop by Ovatheme