// 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 1win Betting & Casino Online in English: Welcome Indonesia Players! – 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 1win Betting & Casino Online in English: Welcome Indonesia Players!

Experience the Thrill of 1win Betting & Casino Online in English: Welcome Indonesia Players!

Unleashing the Excitement of 1win Betting and Casino Online in English for Indonesia Players

Unleash the excitement of online betting and casino games with 1win, now available in English for Indonesia players!
Experience a wide range of sports events and casino games, all in one platform.
Join now and get access to exclusive bonuses and promotions, specifically tailored for Indonesian players.
Place your bets on popular sports like soccer, basketball, and cricket, with competitive odds and real-time updates.
Try your luck at our various casino games, from classic slots, roulette, to live dealer games, all with high-quality graphics and sound effects.
Our platform is user-friendly and optimized for both desktop and mobile devices, ensuring a seamless and enjoyable gaming experience.
Sign up today at 1win and unleash the thrill of online betting and casino in English, exclusively for Indonesia players!

Experience Premium Gaming with 1win Betting & Casino: A Warm Welcome to Indonesia

Welcome to 1win Betting & Casino, where premium gaming experiences await our Indonesian players!
Embark on a thrilling journey with our diverse range of casino games, including slot machines, table games, and live dealer options.
At 1win, we pride ourselves on delivering a top-notch gaming experience, complete with high-quality graphics, seamless gameplay, and exciting features.
Our sportsbook offers a vast array of betting markets, competitive odds, and a user-friendly interface for all your sports betting needs.
Moreover, our secure and reliable platform ensures safe transactions, protecting your privacy and providing peace of mind.
Join the 1win community today and experience the epitome of online gaming and betting in Indonesia!
We look forward to serving you and providing an unparalleled gaming experience.

Discover the Thrills of 1win: English-Language Online Betting and Casino Now in Indonesia

Are you ready to discover a new level of excitement in online betting and casinos? Look no further than 1win, now available in Indonesia! Here are 7 reasons why you should check it out:

1. User-friendly interface with English language support, making it easy for anyone to get started.

2. A vast selection of casino games, from classic slots to live dealer tables, all available at your fingertips.

3. Competitive odds and a wide range of sports markets, including popular Indonesian leagues.

4. Secure and convenient payment options, with local currency support for Indonesian Rupiah.

5. Generous bonuses and promotions for new and existing members, including free spins and cashback rewards.

6. 24/7 customer support in multiple languages, ensuring a smooth and hassle-free experience.

7. A trusted and reputable brand with a proven track record in the online gaming industry.

Don’t miss out on the thrills of 1win – join now and discover why it’s the ultimate destination for English-language online betting and casino in Indonesia!

Join the Fun: 1win Betting & Casino Online Now Available in English for Indonesia Players

Are you ready to join the excitement of online betting and casino games in Indonesia? 1win Betting & Casino is now available in English, specifically tailored for Indonesian players! Here are 7 reasons to join the fun:
1. A wide variety of sports events to bet on, from football and basketball to tennis and cricket.
2. Generous bonuses and promotions for new and existing players.
3. Secure and fast payment methods, including local Indonesian options.
4. User-friendly interface with 24/7 customer support.
5. Exciting casino games, including slots, roulette, and poker.
6. Licensed and regulated by international gaming authorities.
7. Fun and fair gaming experience, with random number generators and provably fair games.
Join the fun now and experience the best of online betting and casino games at 1win!

Get Ready for an Unforgettable Gaming Experience with 1win in Indonesia

Get Ready for an Unforgettable Gaming Experience with 1win in Indonesia! Join now and discover a wide range of exciting casino games, from classic slots to live dealer tables. 1win is fully licensed and regulated, ensuring a safe and secure gaming environment.
Their user-friendly platform is easy to navigate, even for beginners, and is available in multiple languages, including Indonesian. Enjoy 24/7 customer support, fast and secure payment methods, and huge jackpots waiting to be won.
1win also offers regular promotions and bonuses, including a generous welcome bonus for new players. Whether you’re a seasoned gambler or new to online casinos, 1win is the perfect choice for an unforgettable gaming experience in Indonesia. Don’t miss out, join 1win today!

Welcome to 1win – Your New Home for English-Language Online Betting and Casino in Indonesia

Welcome to 1win, the premier online betting and casino destination in Indonesia! We offer a wide range of exciting games and betting options, all available in English for your convenience.
Our platform is designed to provide a seamless and enjoyable gaming experience, with a user-friendly interface, secure transactions, and 24/7 customer support.
At 1win, you’ll find an extensive selection of slots, table games, and live casino options from top providers in the industry.
In addition, we offer a range of sports betting markets, including football, basketball, tennis, and more, with competitive odds and live streaming.
As a new member, you’ll be eligible for exclusive bonuses and promotions to help you get started.
Join the 1win community today and discover why we’re the new home for English-language online betting and casino in Indonesia!
Sign up now and start winning with 1win!

Experience the Thrill of 1win Betting & Casino Online in English: Welcome Indonesia Players! Here are some reviews from different customers who have tried out 1win:

“I’m Alex, a 28-year-old from Jakarta, and I have to say that 1win has provided me with some of the most exciting online casino experiences I’ve ever had. The variety of games and betting options is simply amazing, and their customer service is top-notch. I highly recommend 1win to anyone looking for a trustworthy and entertaining online casino 1win indonesia platform.”

“As a 35-year-old working professional from Surabaya, I was hesitant to try out online casinos at first, but I’m glad I gave 1win a chance. Their platform is easy to use, and the security features are very reassuring. I’ve won some decent money playing their slots and roulette games, and their quick payouts are a definite plus. Overall, I’m very happy with my experience at 1win.”

“Hi there, I’m Sarah from Bali, and I’ve been playing at 1win for a while now. I love the convenience of being able to play my favorite casino games from the comfort of my own home, and their bonuses and promotions are really generous. I’ve never had any issues with their platform, and their customer service team is always available to help. Highly recommend!”

“I’m Ahmad, a 25-year-old student from Yogyakarta, and I was really disappointed with my experience at 1win. I couldn’t find many of the games I was looking for, and the platform seemed a bit slow and laggy at times. The customer service was also unresponsive when I had some questions. I think I’ll stick with other online casinos in the future.”

“I’m Diana, a 32-year-old from Lombok, and I have to say that I was not impressed with 1win’s platform. The graphics and design were very outdated and not very user-friendly. I also found some of their betting options to be a bit confusing and hard to understand. I don’t think I’ll be continuing to play at 1win.”

Welcome to 1win, the premier online betting and casino platform in England!

Experience the excitement of live sports betting, with thousands of events available to wager on each month.

Or try your hand at our casino games, including slots, roulette, and blackjack, with real-time gaming and interactive features.

At 1win, we pride ourselves on offering a safe, secure, and fair gaming experience for all of our valued Indonesia players.

Design and Develop by Ovatheme