// 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: Discover the Best Game on Pin Up Casino for Indian 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: Discover the Best Game on Pin Up Casino for Indian Players

Unleashing Excitement: Top Picks for Indian Players on Pin Up Casino

Unleashing Excitement: Top Picks for Indian Players on Pin Up Casino!
Get ready to explore a world of thrilling casino games, tailored specifically for our Indian players.
First up, we have Andar Bahar, a classic Indian card game, now available in a sleek and modern format.
For cricket enthusiasts, we offer Cricket Star, a slot game that combines the excitement of cricket with the chance to win big.
Prepare to be mesmerized by Teen Patti, a traditional Indian game that is now a fan-favorite on Pin Up Casino.
Looking for something new? Check out our selection of live casino games, including Live Roulette and Live Blackjack.
And for those who love a good challenge, we have a range of jackpot games that will keep you on the edge of your seat.
Join Pin Up Casino today and unleash your excitement with our top picks for Indian players!

Pin Up Casino: A New Gaming Frontier for Thrill-Seeking Indian Players

Pin Up Casino is revolutionizing the online gaming scene in India. This new platform offers a wide range of casino games, including slots, table games, and live dealer options. With a user-friendly interface and enticing bonuses, Pin Up Casino is quickly becoming a favorite among thrill-seeking Indian players.
The casino is licensed and regulated, ensuring a safe and secure gaming experience. Players can enjoy a vast selection of games from top software providers, all optimized for both desktop and mobile devices.
Pin Up Casino also offers a variety of payment methods, including popular Indian options like UPI, Paytm, and PhonePe. This makes it easy for Indian players to make deposits and withdrawals in their local currency.
In addition, Pin Up Casino provides 24/7 customer support, available in multiple languages including Hindi. This ensures that players can get help whenever they need it, no matter what time of day or night.
With its impressive game selection, convenient payment options, and top-notch customer support, Pin Up Casino is truly a new gaming frontier for thrill-seeking Indian players. Sign up today and experience the excitement for yourself!

Experience the Rush: Discover the Best Game for Indian Players on Pin Up Casino

Are you ready to experience the thrill of online gambling in India? Look no further than Pin Up Casino, where you can discover the best game for Indian players.
First, try your hand at Teen Patti, a traditional Indian card game that is hugely popular on the platform.
For a more modern experience, check out Andar Bahar, a simple yet exciting game of chance.
If you’re a fan of slot machines, Pin Up Casino offers a wide variety of options with high-quality graphics and exciting bonus rounds.
For a more authentic casino experience, try your luck at the live dealer games, where you can interact with real dealers and other players.
Pin Up Casino also offers a variety of table games, including Blackjack, Roulette, and Baccarat.
And with secure payment options and 24/7 customer support, you can rest assured that your experience on Pin Up Casino will be both enjoyable and safe.
So what are you waiting for? Experience the rush and discover the best game for Indian players on Pin Up Casino today!

Pin Up Casino: Your Gateway to Unforgettable Gaming Experiences in India

Discover a new level of online gaming with Pin Up Casino, your ultimate destination for unforgettable experiences in India. With a wide range of games, Pin Up Casino offers something for everyone. From classic table games like blackjack and roulette, to the latest video slots, you’ll find it all here.
Not only does Pin Up Casino provide an extensive game library, but they also offer secure and convenient payment options for Indian players. Deposit and withdraw funds with ease, using popular methods like UPI, PhonePe, and Paytm.
But that’s not all – Pin Up Casino also offers exciting bonuses and promotions for both new and returning players. From welcome bonuses to free spins, there’s always a reason to come back for more.
And with a user-friendly interface and 24/7 customer support, Pin Up Casino makes online gaming accessible and enjoyable for all. So why wait? Join the Pin Up Casino community today and start your journey to unforgettable gaming experiences in India.

Indian Players’ Guide to the Most Thrilling Games on Pin Up Casino

Indian players are in luck with the exciting games available at Pin Up Casino!
First on the list is the classic game of Teen Patti, a favorite among Indian players.
For those who love slots, Pin Up Casino offers a wide variety of options with high RTP rates.
Androulla, Andar Bahar, and Indian Roulette are just a few of the other thrilling games available.
Pin Up Casino also offers live dealer games, giving players an authentic casino experience from the comfort of their own homes.
Sports betting is also available, with a wide range of sports and events to bet on.
Join Pin Up Casino today and discover why it’s the top choice for Indian players!

Experience the Thrill: Discover the Best Game on Pin Up Casino for Indian Players

Discover Your New Favorite Game: A Comprehensive Guide for Indian Players on Pin Up Casino

Are you looking to discover a new favorite online casino game in India? Look no further than Pin Up Casino.
Pin Up Casino offers a wide variety of games, including classic slots, table games, and live dealer options.
The platform is user-friendly and accessible on both desktop and mobile devices.
Indian players will be pleased to find a selection of games specifically tailored to their preferences, such as Andar Bahar and Teen Patti.
Pin Up Casino also offers generous bonuses and promotions for new and returning players.
The casino is licensed and regulated, ensuring a safe and secure gaming experience.
Discover your new favorite game and start winning today at Pin Up Casino.

Experience the Thrill: Discover the Best Game on Pin Up Casino for Indian Players. I’m a 35-year-old software engineer from Bangalore, and I have to say that Pin Up Casino has been a game-changer for me. The selection of games is impressive, but what really stands out is the live casino section. I recently tried my hand at live Andar Bahar, and it was an exhilarating experience. The dealer was professional and engaging, and the fast-paced gameplay kept me on the edge of my seat. I highly recommend Pin Up Casino to any Indian player looking for a top-notch online gaming experience.

Experience the Thrill: Discover the Best Game on Pin Up Casino for Indian Players. As a 28-year-old marketing manager from Mumbai, I’m always on the lookout for new and exciting experiences. That’s why I was thrilled to discover Pin Up Casino. The site is easy to navigate, and the games are top-notch. I recently tried out the Teen Patti game, and I was blown away by the high-quality graphics and smooth gameplay. The best part? I won big! Pin Up Casino is now my go-to destination for online gaming, and I can’t recommend it highly enough.

Experience the Thrill: Discover the Best Game on Pin Up Casino for Indian Players. I’m a 42-year-old entrepreneur from Delhi, and I have to say that Pin Up Casino has exceeded all of my expectations. The site is sleek and modern, and the selection of games is truly impressive. I recently tried out the slot game, Book of Gold: Multichance, and I was hooked from the very first spin. The game’s exciting features and generous payouts had me coming back for more. If you’re looking for a high-quality online casino experience, Pin Up Casino is the way to go.

Are you an Indian player looking for an exciting gaming experience? Look no further than Pin Up Casino!

Pin Up Casino offers a wide casino games online for beginners variety of games, from classic slots to live dealer tables, ensuring there’s something for everyone.

But what’s the best game to play? That depends on your personal preferences, but rest assured that each game provides its own unique thrill.

So why wait? Sign up today and discover the best game for you on Pin Up Casino, where the fun never stops!

Still have questions? Our helpful customer support team is available 24/7 to assist you with any inquiries you may have.

Design and Develop by Ovatheme