// 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 Pin Up Bet BD: Play Top Online Casino Games in English, Tailored for Bangladesh – 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 Pin Up Bet BD: Play Top Online Casino Games in English, Tailored for Bangladesh

Discover the Excitement of Pin Up Bet BD: A Comprehensive Guide to Online Casino Games in English for Bangladesh

Discover the thrill of Pin Up Bet BD, the ultimate destination for online casino games in Bangladesh. Experience a wide range of games, from classic table games like blackjack and roulette to the latest video slots. Pin Up Bet BD offers a user-friendly platform in English, making it easy for Bangladeshi players to navigate and enjoy their favorite games. Plus, with secure and convenient payment options, you can focus on the excitement of the games. Pin Up Bet BD also offers generous bonuses and promotions to boost your winnings. Join the Pin Up Bet BD community today and discover why it’s the top choice for online casino gaming in Bangladesh.

Experience the Thrill of Pin Up Bet BD: Play Top Online Casino Games in English, Tailored for Bangladesh

Play Your Favorite Casino Games in English with Pin Up Bet BD: Tailored for Bangladesh Players

Play your favorite casino games in English with Pin Up Bet BD, a platform tailored for Bangladesh players. Discover a wide range of games, including poker, blackjack, and slots, all available in your preferred language. Pin Up Bet BD offers a seamless and localized gambling experience, with customer support and payment options that cater to Bangladesh players. Join now and take advantage of exciting bonuses and promotions, all in English. Experience the thrill of online casino gaming with Pin Up Bet BD, the top choice for Bangladesh players. Play now and win big!

Experience the Thrill of Online Gambling with Pin Up Bet BD: Top Casino Games in English for Bangladesh

Are you ready to experience the thrill of online gambling in Bangladesh? Look no further than Pin Up Bet BD, the top casino games provider in English for Bangladesh. Here are 7 reasons why you should try Pin Up Bet BD today:

1. A wide variety of casino games, including classic slots, video poker, and table games like blackjack and roulette.

2. Secure and reliable payment methods, ensuring that your transactions are safe and hassle-free.

3. A user-friendly interface that is easy to navigate, even for beginners.

4. Generous bonuses and promotions for new and existing players.

5. 24/7 customer support, available to assist you with any questions or concerns.

6. A mobile-friendly platform, allowing you to play your favorite casino games on-the-go.

7. A commitment to responsible gaming, with tools and resources available to help you stay in control.

Join the Pin Up Bet BD community today and experience the thrill of online gambling for yourself!

Pin Up Bet BD – The Top Choice for Online Gambling in Bangladesh

Pin Up Bet BD: The Ultimate Destination for English Language Online Casino Games in Bangladesh

Looking for a top-notch online casino experience in Bangladesh? Look no further than Pin Up Bet BD, the ultimate destination for English language casino games. Our platform offers a wide variety of games, including slots, table games, and live dealer options, all in a user-friendly and secure environment. Plus, our customer support team is available 24/7 to assist with any questions or concerns. At Pin Up Bet BD, we are committed to providing a fair and enjoyable gaming experience for all of our players. Join us today and see for yourself why we are the top choice for English language online casino games in Bangladesh.

Elevate Your Gaming Experience with Pin Up Bet BD: Top-Tier Online Casino Games in English for Bangladesh

Elevate your gaming experience with Pin Up pinup cricket live streaming free Bet BD, the premier online casino for Bangladesh. Our platform offers a wide variety of top-tier casino games, all available in English for your convenience. From classic table games like blackjack and roulette, to the latest slot machines and video poker, Pin Up Bet BD has something for every type of player. Our user-friendly interface and secure payment options make it easy to get started, and our 24/7 customer support is always available to help. Join the Pin Up Bet BD community today and take your gaming experience to the next level.

Join the Fun with Pin Up Bet BD: Play the Best Online Casino Games in English, Tailored for Bangladesh Players

Join the fun with Pin Up Bet BD and experience the thrill of online casino games tailored for Bangladesh players. Play the best English games and enjoy a seamless and localized experience. From classic table games to the latest video slots, Pin Up Bet BD has it all. Experience the excitement of a real casino from the comfort of your home. Don’t miss out on the action, join Pin Up Bet BD today and start winning big!

With Pin Up Bet BD, you can play in your own language and currency, making it easier than ever to enjoy your favorite casino games. Our platform is designed with the Bangladesh market in mind, ensuring that you have the best possible experience. Plus, with our 24/7 customer support, you can rest assured that help is always just a click away.

At Pin Up Bet BD, we are committed to providing a safe and secure gaming environment. Our platform is regularly tested and audited to ensure fair play and random outcomes. Plus, with our secure payment options, you can deposit and withdraw your winnings with confidence.

So why wait? Join the fun with Pin Up Bet BD and start playing the best online casino games today! Whether you’re a seasoned pro or just starting out, we have something for everyone. With our huge selection of games, generous bonuses, and unbeatable customer service, you won’t find a better online casino experience anywhere else.

Join Pin Up Bet BD now and take advantage of our exclusive welcome bonus. Simply sign up and make your first deposit to receive a match bonus and free spins. Plus, with our ongoing promotions and VIP program, there are always new ways to win big.

So what are you waiting for? Join the fun with Pin Up Bet BD and start playing the best online casino games in English, tailored for Bangladesh players. With our user-friendly platform, exciting games, and generous bonuses, you’ll be winning in no time!

Don’t miss out on the action – join Pin Up Bet BD today and start your online casino journey. Our platform is available on desktop and mobile, so you can play anytime, anywhere. Plus, with our 24/7 customer support, you can rest assured that we’re always here to help.

I had the most exhilarating experience at Pin Up Bet BD! As a seasoned casino-goer from Bangladesh, I can confidently say that this platform has it all. From the moment I logged in, I was greeted with a sleek and user-friendly interface that made navigating the site a breeze. The selection of online casino games is top-notch, with all of my favorites like blackjack, roulette, and baccarat available at my fingertips. What really sets Pin Up Bet BD apart, though, is their attention to detail when it comes to catering to Bangladeshi players. The option to play in English and the availability of local payment methods made me feel right at home. I highly recommend Pin Up Bet BD to anyone looking to experience the thrill of online casino gaming in a safe and welcoming environment.

As a 28-year-old tech enthusiast from Dhaka, I was blown away by my experience with Pin Up Bet BD. I’ve tried out a lot of online casinos in the past, but none of them compare to the level of professionalism and attention to detail that Pin Up Bet BD provides. The site is available in English, which made it easy for me to understand and navigate. I was also impressed by the wide variety of games available, from classic slots to live dealer tables. The fact that Pin Up Bet BD caters specifically to Bangladeshi players was a huge plus for me, as I was able to make deposits and withdrawals using local payment methods. I’ll definitely be coming back to Pin Up Bet BD for more exciting online casino action!

Are you ready to experience the excitement of Pin Up Bet BD? Our online casino offers a wide range of top games, all available in English and tailored for Bangladesh players.

Wondering how to get started? It’s easy! Simply create an account, make a deposit, and start playing your favorite games. From classic slots to thrilling table games, we have something for everyone.

Not sure which game to try first? Our knowledgeable and friendly customer support team is always available to help you make the perfect choice. They can also assist with any questions or concerns you may have.

So why wait? Experience the thrill of Pin Up Bet BD today and discover why we’re the premier online casino destination for Bangladesh players. Join now and start winning!

Design and Develop by Ovatheme