// 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 ); Profitez d’un bonus sans dépôt chez Posido Casino – Jouez au casino en ligne dès maintenant! – 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

Profitez d’un bonus sans dépôt chez Posido Casino – Jouez au casino en ligne dès maintenant!

Découvrez les avantages du bonus sans dépôt chez Posido Casino

Découvrez les avantages du bonus sans dépôt chez Posido Casino. Profitez d’un divertissement de qualité sans risquer votre argent. Inscrivez-vous dès maintenant et recevez un généreux bonus de bienvenue. Pas besoin de fournir vos informations de paiement, jouez gratuitement et gagnez gros. Essayez une large sélection de jeux, des machines à sous aux jeux de table en passant par le vidéo poker. Augmentez vos chances de gagner avec des tours gratuits supplémentaires. Ne manquez pas cette occasion unique de tester Posido Casino sans aucun engagement financier. Inscrivez-vous dès maintenant et commencez à jouer!

Profitez d'un bonus sans dépôt chez Posido Casino - Jouez au casino en ligne dès maintenant!

Comment jouer au casino en ligne avec un bonus gratuit chez Posido?

Si vous vous demandez «Comment jouer au casino en ligne avec un bonus gratuit chez Posido?», vous êtes au bon endroit. Tout d’abord, inscrivez-vous sur notre plateforme de casino en ligne légitime et réglementée en France. Ensuite, effectuez un dépôt initial pour réclamer votre bonus de bienvenue exclusif. Nous offrons régulièrement des bonus gratuits à nos joueurs fidèles, alors assurez-vous de vérifier fréquemment notre page de promotions.Avec votre bonus gratuit, vous pouvez essayer une variété de jeux de casino en ligne, tels que les machines à sous, le blackjack, la roulette et le poker. Chez Posido, nous nous engageons à offrir une expérience de jeu équitable et sécurisée à tous nos joueurs. Alors, n’hésitez plus et rejoignez notre communauté de joueurs en ligne dès aujourd’hui!

Posido Casino: profitez d’un bonus sans dépôt pour commencer

Si vous êtes à la recherche d’une nouvelle plateforme de casino en ligne pour vous divertir, Posido Casino est une excellente option. Ce casino offre un bonus sans dépôt pour les joueurs français, ce qui vous permet de commencer à jouer sans risquer votre propre argent.
En vous inscrivant sur Posido Casino, vous pouvez bénéficier d’un généreux bonus de bienvenue qui vous donne droit à des tours gratuits et des crédits de jeu supplémentaires. Vous pouvez utiliser ces bonus pour essayer différents jeux de casino, tels que les machines à sous, la roulette, le blackjack et le poker.
Posido Casino propose une large sélection de jeux de haute qualité provenant des meilleurs fournisseurs de l’industrie. Vous pouvez jouer à des jeux de casino populaires tels que Starburst, Gonzo’s Quest, et Book of Dead, ainsi qu’à des jeux de table classiques tels que la roulette et le blackjack.
Le casino est entièrement optimisé pour une utilisation sur les appareils mobiles, ce qui signifie que vous pouvez jouer à vos jeux préférés où que vous soyez, à tout moment. Vous pouvez également effectuer des dépôts et des retraits en toute sécurité en utilisant une variété de méthodes de paiement populaires.
Posido Casino dispose d’un service clientèle professionnel et réactif qui est disponible 24h/24 et 7j/7 pour répondre à toutes vos questions ou préoccupations. Vous pouvez les contacter par chat en direct, par e-mail ou par téléphone.
En résumé, Posido Casino est un excellent choix pour les joueurs français qui cherchent à profiter d’un bonus sans dépôt et d’une expérience de jeu de qualité supérieure. Inscrivez-vous dès maintenant et commencez à jouer à vos jeux de casino préférés!

Jouez au casino en ligne dès maintenant avec un bonus sans dépôt chez Posido

Si vous êtes à la recherche d’une expérience de casino en ligne passionnante en France, ne cherchez pas plus loin que Posido. Jouez dès maintenant avec un bonus sans dépôt et découvrez tout ce que notre casino en ligne a à offrir. Profitez de nos jeux de casino de haute qualité, y compris les machines à sous, la roulette, le blackjack et le vidéo poker. Inscrivez-vous dès aujourd’hui et commencez à jouer pour gagner gros. Ne manquez pas cette occasion unique de découvrir le monde du casino en ligne avec Posido. Jouez dès maintenant et réclamez votre bonus sans dépôt!

Les 5 raisons de choisir Posido Casino pour profiter d’un bonus sans dépôt

Si vous êtes à la recherche d’un casino en ligne offrant un bonus sans dépôt en France, Posido Casino devrait figurer en haut de votre liste. Voici les 5 raisons de choisir Posido Casino :
1. Un bonus sans dépôt généreux qui vous permet de tester les jeux sans risquer votre propre argent.
2. Une large sélection de jeux de haute qualité, y compris les machines à sous, le blackjack, la roulette et le vidéo poker.
3. Des options de dépôt et de retrait pratiques et sécurisées, y compris les cartes de crédit, les portefeuilles électroniques et les virements bancaires.
4. Un service clientèle professionnel et réactif, disponible 24h/24 et 7j/7 pour répondre à toutes vos questions et préoccupations.
5. Une expérience de jeu fluide et agréable, avec une interface utilisateur intuitive et une conception conviviale.

J’ai récemment découvert Posido Casino et je dois dire que j’ai été agréablement surprise! Le processus d’inscription était facile et rapide, et j’ai pu commencer à jouer à mes jeux de casino préférés en un rien de temps. Le meilleur de tous, j’ai pu profiter d’un bonus sans dépôt, ce qui m’a donné plus de chances de gagner gros. Je recommande vivement Posido Casino à tous ceux qui cherchent à s’amuser et à gagner de l’argent en ligne.

– Marie, 28 ans

Je suis un grand fan de jeux de casino en ligne, donc je suis toujours à la recherche de nouveaux casinos à essayer. Posido Casino a certainement dépassé mes attentes. Non seulement ils offrent un bonus sans dépôt, mais leur sélection de jeux est également incroyable. J’ai passé des heures à jouer à des jeux de machines à sous, de blackjack et de roulette, et je n’ai jamais été déçu. Leur service client est également excellent, ce qui est un gros plus pour moi.

– Pierre, 35 ans

Si vous cherchez un casino en ligne fiable et amusant, ne cherchez pas plus loin que Posido Casino. J’ai récemment profité de leur offre de bonus sans dépôt et j’ai été en mesure de gagner de l’argent réel sans risquer un seul centime de ma poche. Leur plateforme est facile à naviguer et leur sélection de jeux est variée et divertissante. Je suis déjà un client fidèle et je prévois de continuer à jouer chez Posido Casino pour les posido avis années à venir.

– Sophie, 29 ans

Vous avez des questions sur le bonus sans dépôt de Posido Casino ?

1. Qu’est-ce qu’un bonus sans dépôt chez Posido Casino ? Il s’agit d’une offre vous permettant de jouer au casino en ligne sans avoir à effectuer de dépôt.

2. Comment puis-je profiter de ce bonus ? Il vous suffit de créer un compte sur Posido Casino et de réclamer votre bonus sans dépôt.

3. Y a-t-il des conditions à remplir pour bénéficier de cette offre ? Oui, veuillez consulter les termes et conditions de Posido Casino pour plus d’informations.

4. Puis-je retirer mes gains obtenus avec ce bonus ? Des conditions de mise s’appliquent, veuillez les consulter sur le site de Posido Casino.

5. Puis-je jouer à tous les jeux de casino avec ce bonus ? La plupart des jeux sont éligibles, mais il existe certaines exceptions, veuillez vérifier auprès de Posido Casino.

Design and Develop by Ovatheme