// 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 Endless Entertainment: Play at FunBet’s English Casino Online in the UK – 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 Endless Entertainment: Play at FunBet’s English Casino Online in the UK

Experience Endless Entertainment: Play at FunBet's English Casino Online in the UK

Unlimited Gambling Fun: Discover the Thrills of FunBet’s English Casino in the UK

Are you looking for unlimited gambling fun in the UK? Look no further than FunBet’s English Casino!
With a wide variety of games to choose from, you’ll never run out of exciting options.
Experience the thrill of playing classic table games like blackjack and roulette, or try your luck at the slot machines.
And for those who love the thrill of poker, FunBet’s English Casino offers a variety of poker games to choose from.
The best part? You can enjoy all of this from the comfort of your own home.
FunBet’s English Casino is fully licensed and regulated by the UK Gambling Commission, so you can rest assured that your gaming experience is safe and secure.
And with 24/7 customer support, you’ll always have help when you need it.
So why wait? Discover the unlimited gambling fun at FunBet’s English Casino today!

Experience Endless Entertainment: Play at FunBet's English Casino Online in the UK

Experience the Ultimate Online Gaming Adventure with FunBet’s UK Casino

Discover a new level of online gaming excitement with FunBet’s UK Casino.
Experience the thrill of authentic casino games, all from the comfort of your home.
From classic table games like blackjack and roulette to the latest video slots, FunBet’s UK Casino has it all.
Their platform is user-friendly, secure and designed to provide a top-notch gaming experience.
Join now and take advantage of their generous welcome bonuses and promotions.
Immerse yourself in stunning graphics and sound effects, creating an authentic casino atmosphere.
With FunBet’s UK Casino, you can play anytime, anywhere, on your desktop or mobile device.
Join the FunBet community today and experience the ultimate online gaming adventure.

Top-Quality Entertainment: Play at FunBet’s English Casino in the United Kingdom

Looking for top-quality entertainment in the United Kingdom? Look no further than FunBet’s English Casino! Our online casino offers a wide variety of games for players of all skill levels. From classic table games like blackjack and roulette to the latest slot machines, you’re sure to find something you’ll love. Plus, with our user-friendly interface and 24/7 customer support, you can play whenever and wherever you want. So why wait? Sign up today and start winning big at FunBet’s English Casino!

At FunBet’s English Casino, we pride ourselves on offering only the best to our players in the United Kingdom. That’s why we only use top-quality software from reputable providers, ensuring that all of our games are fair, reliable, and enjoyable. And with new games added regularly, there’s always something new to try. Whether you’re a seasoned pro or a casual player, you’ll find everything you need for a great gaming experience at FunBet’s English Casino.

In addition to our top-quality games, we also offer a wide range of promotions and bonuses to help you get the most out of your play. From welcome bonuses for new players to ongoing promotions for our loyal customers, there’s always a way to boost your winnings at FunBet’s English Casino. So why settle for second-best? Sign up today and start enjoying the top-quality entertainment that FunBet’s English Casino has to offer!

At FunBet’s English Casino, we understand that security is a top concern for our players in the United Kingdom. That’s why we use the latest encryption technologies to ensure that all of your personal and financial information is kept safe and secure at all times. You can play with confidence, knowing that your information is in good hands. And with a wide range of payment options available, it’s easy to make deposits and withdrawals at FunBet’s English Casino.

But don’t just take our word for it – try FunBet’s English Casino for yourself and see why we’re the top choice for players in the United Kingdom. With our top-quality games, promotions, and security, you won’t find a better online casino experience anywhere. So why wait? Sign up today and start enjoying the best that FunBet’s English Casino has to offer!

At FunBet’s English Casino, we’re committed to providing our players in the United Kingdom with the best possible gaming experience. That’s why we offer a wide range of support options, including live chat, email, and phone support. Whether you have a question about a game, need help with a promotion, or have any other concerns, our friendly and knowledgeable customer support team is here to help. So don’t hesitate to reach out – we’re always here to assist you.

So what are you waiting for? Sign up for FunBet’s English Casino today and start enjoying the top-quality entertainment that we have to offer. With our wide variety of games, promotions, and support options, you’re sure to have a great time. Play now and see why FunBet’s English Casino is the best choice for players in the United Kingdom!

Remember, at FunBet’s English Casino, we’re committed to providing our players in the United Kingdom with the best possible gaming experience. That’s why we only use top-quality software, offer a wide range of promotions, and provide 24/7 customer support. So why settle for anything less? Sign up for FunBet’s English Casino today and start enjoying the best that online casinos have to offer!

Elevate Your Casino Experience: Play at FunBet’s English Language Site in the UK

Elevate Your Casino Experience: Play at FunBet’s English Language Site in the UK. Unleash your gaming potential with FunBet’s state-of-the-art platform, offering an extensive range of casino games that will keep you entertained for hours. As a UK player, you can now enjoy the thrill of casino games in your native language at FunBet’s English language site. Experience the ultimate online casino destination, with a user-friendly interface, seamless gameplay, and generous bonuses. FunBet’s English language site in the UK provides a safe and secure gaming environment for all players, with reliable customer support, and fast payment options. Whether you’re a seasoned player or new to online casinos, FunBet’s got you covered. So why wait? Elevate your casino experience today at FunBet’s English Language Site in the UK.

I had the most amazing gaming experience at FunBet’s English Casino Online! As a 35-year-old professional, I was looking for a reliable and enjoyable platform to play my favorite casino games, and FunBet definitely exceeded my expectations. The website is user-friendly, and the variety of games available is just incredible. I particularly enjoyed the live dealer games, which added a whole new level of excitement to my gaming experience. I highly recommend FunBet to anyone looking for a trustworthy online casino in the UK.

As a 45-year-old retired veteran, I must say that I’m thoroughly impressed with FunBet’s English Casino Online. The platform is easy to navigate, and the customer service is outstanding. I’ve played at several online casinos before, but none of them compare to the level of entertainment and excitement that FunBet provides. I particularly enjoy the slot games, and I’ve already won quite a bit of money playing them. I highly recommend FunBet to anyone looking for a reliable and entertaining online casino in the UK.

I’m a 28-year-old graphic designer, and I must say that I’m blown away by FunBet’s English Casino Online. The website is beautifully designed, and the variety of games available is just mind-blowing. I particularly enjoy the table games, and the live dealer feature is just amazing. I feel like I’m in a real casino, and the level of excitement is just unmatched. I highly recommend FunBet to anyone looking for a high-quality and entertaining online casino in the UK.

Looking for a premier online casino experience in the UK? Look no further than FunBet ‘s English Casino!

At FunBet, you’ll find endless entertainment with a wide variety of games to choose from, including slots, table games, and live casino.

With FunBet, you can expect a seamless and user-friendly experience, allowing you to play and win with ease.

So why wait? Join FunBet today and start enjoying the ultimate online casino experience in the UK!

Design and Develop by Ovatheme