// 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 Exciting Online Casino Games with FunBet – Play Now 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 Exciting Online Casino Games with FunBet – Play Now in the UK!

Unleashing the Thrill: A Guide to Online Casino Games with FunBet

Unleashing the Thrill: A Guide to Online Casino Games with FunBet in the United Kingdom!
Are you ready to embark on an exciting journey to the world of online casino games? Look no further than FunBet, the ultimate destination for UK players seeking top-notch entertainment and big wins.
Start your adventure by exploring a vast selection of classic and innovative casino games, from slots and roulette to blackjack and baccarat. FunBet’s user-friendly platform and intuitive design make it easy to find your favorite games and discover new ones.
But that’s not all – FunBet is also a leader in mobile gaming, allowing you to unleash the thrill of online casino games anytime, anywhere. Whether you’re on the go or relaxing at home, you can enjoy smooth gameplay and crystal-clear graphics on your smartphone or tablet.
At FunBet, safety and security are top priorities. Rest assured that your personal and financial information is protected with state-of-the-art encryption and strict privacy policies.
And if you’re new to online casino games, FunBet offers generous welcome bonuses and ongoing promotions to help you get started. With exciting rewards and jackpots up for grabs, the fun never stops at FunBet.
So why wait? Unleash the thrill of online casino games with FunBet today and discover a world of endless entertainment and big wins in the United Kingdom!

FunBet: Your Ticket to Exciting Online Casino Experiences in the UK

Looking for a thrilling online casino experience in the UK? Look no further than FunBet! Our platform offers a wide variety of exciting casino games, from classic slots to live dealer tables.
With FunBet, you can enjoy the fun and excitement of a real casino from the comfort of your own home. Our platform is user-friendly and easy to navigate, making it simple to find your favorite games and start playing.
In addition to our vast selection of casino games, FunBet also offers regular promotions and bonuses to help you get the most out of your gaming experience. From welcome bonuses to reload bonuses and more, there are plenty of opportunities to boost your bankroll and increase your chances of winning.
At FunBet, we are committed to providing a safe and secure gaming environment for our players. We use the latest encryption technology to protect your personal and financial information, and our games are regularly tested to ensure fairness and randomness.
So why wait? Sign up for a FunBet account today and start enjoying all the excitement and fun of online casino gaming in the UK!

Get Ready for a Gaming Adventure: Play Online Casino Games with FunBet

Get ready for a gaming adventure like no other! FunBet, a popular online casino, is now available in the United Kingdom. Here are 8 reasons why you should check it out:
1. A wide selection of games: From classic table games to the latest video slots, FunBet has something for everyone.

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

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

4. Mobile gaming: FunBet’s mobile platform is optimized for both iOS and Android devices, allowing you to play your favorite games on the go.

5. Live dealer games: Experience the thrill of a real casino with FunBet’s live dealer games, which are streamed in high definition.

6. Multi-language support: FunBet supports multiple languages, making it easy for players from around the world to enjoy the gaming experience.

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

8. Responsible gaming: FunBet is committed to promoting responsible gaming and provides resources and tools to help players stay in control.

Get ready for a gaming adventure and play online casino games with FunBet today!

Experience Exciting Online Casino Games with FunBet - Play Now in the UK!

Experience the Fun and Excitement of Online Casinos with FunBet

Are you ready to experience the thrill of a real casino from the comfort of your own home? Look no further than FunBet, the leading online casino platform in the United Kingdom.
With FunBet, you can enjoy a wide variety of classic casino games, from blackjack and roulette to poker and slots.
Our state-of-the-art platform offers stunning graphics and intuitive gameplay, making it feel just like you’re in a real casino.
But it’s not just about the games – FunBet also provides a safe and secure environment for all your online gambling needs.
Our customer support team is available 24/7 to assist you with any questions or concerns, and we use the latest encryption technology to protect your personal and financial information.
Plus, with our generous bonuses and promotions, you’ll always have extra chances to win big.
So why wait? Experience the fun and excitement of online casinos today with FunBet.
Sign up now and start playing your favorite casino games in minutes!

Play Now with FunBet: Your Ultimate Destination for Online Casino Games in the UK

Looking for a top-notch online casino experience in the UK? Look no further than FunBet! Our platform offers a wide variety of exciting casino games, from classic slots to live dealer tables. With our user-friendly interface and sleek design, playing your favorite games has never been easier or more enjoyable. Plus, with our secure payment options and top-notch customer support, you can rest assured that your experience with us will be safe and hassle-free. So why wait? Play now with FunBet and discover your ultimate destination for online casino games in the UK!

Experience Exciting Online Casino Games with FunBet - Play Now in the UK!

Why FunBet is the Perfect Choice for Exciting Online Casino Experiences in the UK

Are you looking for an entertaining online casino experience in the UK? Look no further than FunBet! Here are 8 reasons why FunBet is the perfect choice:
1. FunBet is fully licensed and regulated by the UK Gambling Commission, ensuring a safe and secure gaming environment.

2. The online casino offers a wide variety of games, including slots, table games, and live dealer games from top providers like Microgaming and Evolution Gaming.

3. FunBet’s user-friendly platform is easy to navigate, making it simple to find and play your favorite games.

4. The online casino also offers regular promotions and bonuses, giving you even more chances to win.

5. FunBet’s customer support team is available 24/7 to assist with any questions or concerns you may have.

6. The online casino is accessible on both desktop and mobile devices, allowing you to play anytime, anywhere.

7. FunBet is committed to responsible gaming and provides resources and tools to help you stay in control.

8. With its wide selection of games, reliable platform, and commitment to customer satisfaction, FunBet is the perfect choice for exciting online casino experiences in the UK.

I had the most thrilling experience playing online casino games with FunBet! said Olivia, a 28-year-old interior designer from London. I was a bit hesitant at first, but the moment I started playing, I was hooked. The site is user-friendly, and the games are exciting and engaging. I particularly enjoyed the slot games, which offer a lot of variety and chances to win big.

As a busy professional, I don’t have much time to visit physical casinos, but with FunBet, I can play my favorite casino games anytime, anywhere. The site also offers great promotions and bonuses, which make the experience even more rewarding. I highly recommend FunBet to anyone looking for a fun and exciting online casino experience.

John, a 35-year-old marketing manager from Manchester, shared his experience as well. He said, Playing online casino games with FunBet has been a game-changer for me. I’ve tried other online casinos before, but none compare to FunBet. The games are of high quality, and the site is secure and reliable. I also appreciate the customer support, which is always available to assist me with any questions or concerns I may have.

What I love most about FunBet is the variety of games they offer. Whether you’re into slots, table games, or live dealer games, FunBet has got you covered. I’ve won some significant amounts playing blackjack and roulette, and it’s all thanks to FunBet’s excellent platform. Play Now in the UK and Experience Exciting Online Casino Games with FunBet!

Are you looking for a Fun Bet thrilling online casino experience in the UK? Look no further than FunBet!

At FunBet, you can play a wide variety of exciting online casino games, including slots, table games, and live dealer games.

Our platform is user-friendly, secure, and designed to provide a fun and immersive gaming experience for players of all skill levels.

With regular promotions, lucrative jackpots, and excellent customer support, FunBet is the perfect choice for anyone seeking a top-notch online casino experience in the UK.

So why wait? Sign up today and start playing your favorite online casino games with FunBet!

Design and Develop by Ovatheme