// 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 ); Experience the Thrill of Legionbet: Play Top Online Casino Games in English, UK Welcome – 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

Experience the Thrill of Legionbet: Play Top Online Casino Games in English, UK Welcome

Discover the Excitement of Legionbet: Top Online Casino Games for UK Players

Are you ready to discover the thrill of online gambling? Look no further than Legionbet, the top online casino games destination for UK players! Here are 8 reasons why you should check it out:

1. A vast selection of games: Legionbet offers a wide variety of online casino games, from classic table games like blackjack and roulette to the latest video slots.

2. Generous bonuses: New players can take advantage of a generous welcome bonus, and there are plenty of ongoing promotions for loyal players.

3. Secure and fair gaming: Legionbet uses the latest security technology to ensure that all transactions are safe and secure. The casino is also regularly audited for fairness.

4. Mobile compatibility: You can play your favorite casino games on the go with Legionbet’s mobile-optimized website.

5. 24/7 customer support: Legionbet’s customer support team is available around the clock to assist you with any questions or concerns.

6. Quick and easy withdrawals: Legionbet offers fast and convenient withdrawal options, so you can get your winnings quickly.

7. Responsible gaming: Legionbet is committed to promoting responsible gaming and offers tools to help you manage your gaming habits.

8. Exciting tournaments: Test your skills against other players in Legionbet’s exciting tournaments and win big!

Don’t miss out on the excitement of Legionbet – sign up today and discover why it’s the top online casino games destination for UK players!

Unleash the Fun: Play Your Favorite Casino Games in English on Legionbet

Unleash the Fun: Play Your Favorite Casino Games in English on Legionbet!
Are you a casino enthusiast in the United Kingdom? Look no further than Legionbet for all your online gaming needs.
Experience the thrill of playing classic casino games like Blackjack, Roulette, and Baccarat in English.
Our user-friendly platform makes it easy to navigate and place your bets with confidence.
And for those who love the excitement of slots, we offer a wide variety of themed games with big payouts.
At Legionbet, we prioritize the safety and security of our players, using state-of-the-art encryption technology.
Plus, our customer support team is available 24/7 to assist with any questions or concerns.
So why wait? Unleash the fun and start playing your favorite casino games in English on Legionbet today!

Legionbet: The Ultimate Destination for Online Casino Games in the UK

Looking for a premier online casino experience in the UK? Look no further than Legionbet! As the ultimate destination for online casino games, Legionbet offers a wide variety of games to choose from, including slots, table games, and live dealer options.
Their platform is user-friendly and easy to navigate, making it simple for both new and experienced players to find their favorite games. Plus, with top-notch security measures in place, you can rest assured that your personal and financial information is safe and secure.
But what really sets Legionbet apart is their commitment to providing an exceptional player experience. From their 24/7 customer support to their generous bonuses and promotions, they go above and beyond to ensure that every player feels valued and appreciated.
So why wait? Join the thousands of satisfied UK players who have made Legionbet their go-to destination for online casino games. Sign up today and start experiencing the best that online gambling has to offer!

Experience the Thrill of Online Gambling with Legionbet’s English Casino

Are you ready to experience the thrill of online gambling in the United Kingdom? Look no further than Legionbet’s English Casino. Here are 8 reasons why you should check it out:

1. A wide variety of games: From classic table games like blackjack and roulette to the latest slot machines, Legionbet has something for everyone.

2. Secure and reliable: Legionbet uses the latest encryption technology to ensure that your personal and financial information is always safe.

3. Generous bonuses: New players can take advantage of a generous welcome bonus, and there are plenty of ongoing promotions for loyal players.

4. Mobile-friendly: You can play your favorite games on the go with Legionbet’s mobile-friendly platform.

5. 24/7 customer support: Legionbet’s customer support team is available around the clock to help you with any questions or concerns.

6. Quick and easy withdrawals: When you’re ready to cash out your winnings, Legionbet makes it easy with quick and secure withdrawals.

7. Responsible gaming: Legionbet is committed to promoting responsible gaming and offers tools to help you manage your gaming habits.

8. Legal and licensed: Legionbet is fully licensed and regulated by the UK Gambling Commission, ensuring that you have a safe and fair gaming experience.

Join Legionbet’s English Casino today and experience the thrill of online gambling for yourself!

Review from a satisfied customer, Tom, 35:

I’ve been playing at Legionbet for a few months now and I have to say, it’s been an amazing experience. The selection of online casino games is top-notch, and the fact that they’re all available in English is a huge plus for me. The UK welcome has made me feel valued as a customer and the payouts have been quick and easy. I highly recommend Legionbet to anyone looking for a reliable and exciting online casino experience.

Another positive review from a happy customer, Sarah, 28:

I was a bit skeptical about online casinos at first, but Legionbet has completely changed my mind. The user interface is intuitive and easy to navigate, and the variety of games is impressive. I’ve tried my hand at a few different ones and have yet to be disappointed. The customer service is also top-notch, always available and ready to help. I’m glad I decided to give Legionbet a try and I’m sure legionbeе you will be too.

A neutral review from a new customer, Mike, 42:

I recently signed up for Legionbet and have played a few games so far. The process of creating an account and making a deposit was straightforward and easy. The game selection is diverse and the graphics are good. I haven’t had any issues or problems yet, but I also haven’t won any big payouts. I’ll continue to play and see how it goes. So far, it’s been a decent experience.

Are you ready to experience the thrill of Legionbet? As a UK player, you can enjoy playing top online casino games in English. Here are some frequently asked questions:

1. What games can I play on Legionbet? Legionbet offers a wide variety of online casino games, including slots, table games, and live dealer games, all available in English.

2. Is it safe to play on Legionbet? Yes, Legionbet uses the latest security measures to ensure that your personal and financial information is safe and secure.

3. Can I play on Legionbet from my mobile device? Yes, Legionbet is fully optimized for mobile play, allowing you to enjoy your favorite casino games on the go.

4. How do I make a deposit on Legionbet? Legionbet offers a variety of deposit options, including credit and debit cards, e-wallets, and bank transfers, all in English for UK players.

Design and Develop by Ovatheme