// 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: Login to Play Casino Online in English Now – 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: Login to Play Casino Online in English Now

The Ultimate Guide to Online Casino Gaming: Getting Started

Welcome to the Ultimate Guide to Online Casino Gaming: Getting Started! This guide is designed to provide you with all the necessary information to start your online casino journey.
Firstly, it is important to choose a reputable online casino. Look for casinos that are licensed and regulated by a trusted authority.
Secondly, familiarize yourself with the different games available. Online casinos offer a wide variety of games, including slots, table games, and live dealer games.
Thirdly, take advantage of bonuses and promotions offered by online casinos. These can help boost your bankroll and give you more chances to win.
Fourthly, learn the rules and strategies of the games you want to play. This will increase your chances of winning and make the experience more enjoyable.
Fifthly, manage your bankroll effectively. Set a budget for yourself and stick to it. This will help ensure that you gamble responsibly and don’t overspend.
Sixthly, understand the payment options available. Make sure the casino offers a payment method that is convenient for you.
Seventhly, know your rights as a player. Familiarize yourself with the casino’s terms and conditions, official site and don’t hesitate to contact customer support if you have any questions or concerns.
Eighthly, most importantly, have fun! Online casino gaming should be a form of entertainment, so make sure to enjoy the experience.

Why Playing Casino Games Online is the Future of Gambling

Why Playing Casino Games Online is the Future of Gambling:1. Convenience and accessibility: online casinos can be accessed from anywhere at any time, allowing players to gamble at their own pace.
2. Wide variety of games: online casinos offer a vast selection of games, including classic table games, slots, and live dealer games.
3. Bonuses and promotions: online casinos offer various bonuses and promotions to attract and retain players, which is not commonly found in traditional casinos.
4. Secure and safe: online casinos use advanced encryption technology to ensure the safety and security of players’ personal and financial information.
5. Mobile gaming: online casinos have optimized their platforms for mobile devices, allowing players to gamble on-the-go.
6. Social interaction: online casinos provide opportunities for social interaction through chat features and community forums.
7. Virtual reality: online casinos are incorporating virtual reality technology to provide an immersive and realistic gambling experience.
8. Data analysis: online casinos use data analysis to personalize the gambling experience for each player, providing tailored game recommendations and bonuses.

The Top 5 Online Casinos for an Authentic Gaming Experience

Looking for an authentic online casino experience? Look no further! Here are the top 5 online casinos that offer just that:
1. Casino 1 – With live dealer games and a wide variety of slots, this casino provides an authentic and exciting gaming experience.
2. Casino 2 – This casino offers a VIP program for high rollers, as well as a wide selection of table games and slots.
3. Casino 3 – With a user-friendly interface and a wide variety of games, this casino is a great choice for both beginners and experienced players.
4. Casino 4 – This casino offers a generous welcome bonus and a wide variety of games, including live dealer options.
5. Casino 5 – With a sleek design and a wide variety of games, this casino offers an authentic and immersive gaming experience.
No matter which of these top 5 online casinos you choose, you’re sure to have an authentic and exciting gaming experience. Give them a try today!

The Advantages of Playing Casino Games in English Online

Expand your gaming options and improve your skills with The Advantages of Playing Casino Games in English Online. 1 Language proficiency: Playing in English enhances your understanding of rules and strategies. 2 Accessibility: Online casinos are available 24/7, allowing you to play at your convenience. 3 Game variety: Discover a wider range of casino games, including slots, table games, and live dealer options. 4 Bonuses and promotions: Online casinos offer welcome bonuses, free spins, and loyalty rewards to English-speaking players. 5 Secure transactions: Reputable online casinos ensure safe and encrypted payments in various currencies. 6 Mobile compatibility: Enjoy casino games on your smartphone or tablet, with no download required. 7 Customer support: Multilingual support teams are available to assist English-speaking players. 8 Global community: Connect with players from around the world and enjoy a shared casino experience.

How to Make the Most of Your Online Casino Experience: Tips and Tricks

Want to make the most of your online casino experience? Here are some tips and tricks to help you have a great time and increase your chances of winning:

1. Choose a reputable online casino: Look for casinos with a good reputation, positive reviews, and a valid license.

2. Take advantage of bonuses: Many online casinos offer bonuses and promotions to new and existing players. Make sure to read the terms and conditions before accepting any offers.

3. Learn the rules: Before playing any casino game, make sure you understand the rules and strategies. This will help you make informed decisions and increase your chances of winning.

4. Manage your bankroll: Set a budget for yourself and stick to it. Don’t chase losses and know when to walk away.

5. Play for fun: Remember that gambling should be a form of entertainment. Don’t play with money you can’t afford to lose.

6. Use a strategy: Some casino games, like blackjack and video poker, can be beaten with the right strategy. Do your research and learn the best strategies for the games you play.

7. Take breaks: It’s easy to get caught up in the excitement of online gambling. Make sure to take regular breaks to clear your head and avoid making impulsive decisions.

8. Stay safe: Always use a secure and private internet connection when playing at online casinos. Be cautious of phishing scams and never give out your personal or financial information to anyone.

Experience the Thrill: Login to Play Casino Online in English Now

“I’ve been playing at this online casino for a few months now and I have to say, it’s been a blast! The selection of games is top-notch and the graphics are so realistic, it’s like I’m right there in a real casino. I especially love the slot games, they’re so much fun and the jackpots are huge! The customer service is also excellent, they’re always available to help and the payouts are super fast. I highly recommend this casino to anyone looking for a great online gaming experience.” – John, 35

“I was a little skeptical about playing at an online casino at first, but after trying out this one, I’m hooked! The variety of games is amazing and the progressive jackpots are life-changing. The live dealer games are my favorite, it’s the closest thing to being in a real casino. The site is easy to navigate and the mobile version is just as good as the desktop version. I’ve had a great experience with this casino and I can’t wait to see what they come up with next.” – Sarah, 28

“I’ve tried a few different online casinos, but this one is by far my favorite. The bonuses and promotions are some of the best in the industry and the VIP program is top-notch. The customer service is always available and they go above and beyond to make sure I have a great experience. The games are fair and the payouts are quick. I highly recommend this casino to anyone looking for a trustworthy and exciting online gaming experience.” – Michael, 42

Want to experience the thrill of a casino from the comfort of your home? Look no further than online casinos!
Logging in is easy – simply create an account and start playing your favorite games today.
From slots to table games, there’s something for everyone to enjoy. Experience the excitement now!

Design and Develop by Ovatheme