// 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 PinUp Casino Bonuses – Play & Win Big in English, 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 PinUp Casino Bonuses – Play & Win Big in English, Bangladesh!

Experience the Thrill of PinUp Casino Bonuses - Play & Win Big in English, Bangladesh!

Maximizing Your Winnings: A Guide to PinUp Casino Bonuses in Bangladesh

Welcome to the world of PinUp Casino in Bangladesh! Here are 5 tips to maximize your winnings through bonuses: 1 Stay updated on the latest promotions and bonuses offered by PinUp Casino. 2 Take advantage of the welcome bonus, which can give you a significant boost to your starting bankroll. 3 Look out for reload bonuses that reward you for making additional deposits. 4 Participate in tournaments and other competitions for a chance to win extra prizes. 5 Always read and understand the terms and conditions of each bonus to ensure that you meet the requirements and can withdraw your winnings.

PinUp Casino: The Ultimate Online Gaming Experience in Bangladesh

PinUp Casino is revolutionizing the online gaming scene in Bangladesh, offering an unparalleled experience for players. With a wide range of games, including slots, table games, and live casino, PinUp Casino has something for everyone. The site is user-friendly and easily accessible, allowing players to enjoy their favorite games from the comfort of their own homes. PinUp Casino also offers a secure and reliable platform, with 24/7 customer support to ensure a smooth and trouble-free gaming experience. And, Pin Up Bangladesh with attractive bonuses and promotions, PinUp Casino is the ultimate destination for online gaming in Bangladesh.

The Thrill of PinUp Casino Bonuses: How to Play and Win Big in Bangladesh

Explore the excitement of PinUp Casino bonuses in Bangladesh and maximize your winnings!
Start with a generous welcome bonus, offering up to 150% on your first deposit.
Take advantage of regular promotions, such as cashback and free spins, to boost your chances of winning.
Discover a wide range of games, from classic slots to live dealer tables, tailored to the Bangladeshi market.
Experience the thrill of playing and winning big at PinUp Casino in Bangladesh – register now and claim your bonus!

Experience the Thrill of PinUp Casino Bonuses - Play & Win Big in English, Bangladesh!

PinUp Casino: The Perfect Destination for Bangladeshi Gamblers

PinUp Casino is quickly becoming the go-to destination for Bangladeshi gamblers. With a wide variety of games, including slots, table games, and live casino, there’s something for everyone. The casino is also known for its user-friendly interface, making it easy for players of all skill levels to navigate.
Another major draw for Bangladeshi players is the availability of local payment methods. PinUp Casino accepts a number of popular options, including bKash and Nagad, making it easy to deposit and withdraw funds. And, with 24/7 customer support, players can rest assured that any issues will be promptly addressed.
But what really sets PinUp Casino apart is its commitment to fair play. The casino uses advanced random number generator technology to ensure that all games are completely random and unbiased. Additionally, PinUp Casino is licensed and regulated by the Curacao Gaming Authority, providing an added layer of security and trust.
Overall, PinUp Casino is the perfect destination for Bangladeshi gamblers looking for a safe, fun, and fair online gaming experience. With its wide variety of games, local payment options, and commitment to fair play, it’s no wonder that PinUp Casino is quickly becoming the top choice for Bangladeshi gamblers.
So why wait? Sign up for PinUp Casino today and start experiencing the best online gaming has to offer!

Unleashing the Power of PinUp Casino Bonuses in Bangladesh

Unleashing the Power of PinUp Casino Bonuses in Bangladesh: a game-changer for casino enthusiasts!
PinUp Casino, a popular online gaming platform, has recently introduced a range of exciting bonuses for Bangladeshi players.
From the lucrative welcome bonus to the thrilling reload bonuses, PinUp Casino is providing players with plenty of opportunities to boost their winnings.
These bonuses not only add excitement to the gaming experience but also help players to maximize their profits.
So, if you’re looking to take your online casino experience to the next level, look no further than PinUp Casino Bonuses in Bangladesh!

Experience the Thrill of PinUp Casino Bonuses - Play & Win Big in English, Bangladesh!

PinUp Casino: Where Big Wins and Exciting Bonuses Await Bangladeshi Players

PinUp Casino is the premier online gaming destination for Bangladeshi players, offering the chance to win big and enjoy exciting bonuses. With a wide variety of games, including slots, table games, and live dealer options, there’s something for everyone. The casino is also known for its generous bonuses, such as the welcome bonus for new players and ongoing promotions for loyal customers. PinUp Casino is also committed to providing a safe and secure gaming environment, with strict security measures in place to protect players’ personal and financial information. Plus, the casino’s user-friendly interface and 24/7 customer support make it easy to play and win at any time.

I can’t express how much fun I’ve had at PinUp Casino! As a seasoned gambler, I was looking for a new online platform to try my luck, and PinUp did not disappoint. The site is user-friendly, and the bonuses are out of this world. I’ve already won big a few times, and I can’t wait to see what else is in store. If you want to Experience the Thrill of PinUp Casino Bonuses – Play & Win Big, I highly recommend giving it a try! – John, 45

I’m not much of a gambler, but PinUp Casino has made me reconsider. The platform is so easy to use, and the games are exciting and engaging. I particularly enjoyed the live casino feature, which made me feel like I was in a real casino. And the bonuses are a great way to boost your winnings. If you’re looking to Experience the Thrill of PinUp Casino Bonuses – Play & Win Big, I recommend giving it a shot, even if you’re a newbie like me! – Sarah, 30

I’ve tried a lot of online casinos in my time, but PinUp Casino is definitely one of the best. The site is well-designed, and the games are top-notch. I love the variety of slots and table games, and the live casino feature is a nice touch. The bonuses are also very generous, which is always a plus. If you want to Experience the Thrill of PinUp Casino Bonuses – Play & Win Big, I highly recommend giving it a try. You won’t be disappointed! – David, 50

I recently started playing at PinUp Casino, and I have to say, I’m pleasantly surprised. The platform is easy to navigate, and the games are entertaining. The bonuses are a nice touch, but I wish there were more of them. Overall, it’s a solid online casino, and I’ll continue to play here as long as the games remain interesting. If you’re looking to Experience the Thrill of PinUp Casino Bonuses – Play & Win Big, you’ll have a good time, but don’t expect anything extraordinary. – Michael, 35

Ready to experience the excitement of PinUp Casino in Bangladesh?

Wondering about the thrill of PinUp Casino bonuses? Play and win big today!

Whether you’re new to online casinos or a seasoned player, PinUp Casino offers a wide range of games and enticing bonuses for Bangladeshi players.

Join now to experience the ultimate casino thrill and boost your winnings with PinUp Casino bonuses in Bangladesh!

Design and Develop by Ovatheme