// 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 de délais de paiement flexibles avec 1win Casino : Jouez au casino en ligne au Sénégal – 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 de délais de paiement flexibles avec 1win Casino : Jouez au casino en ligne au Sénégal

Comprendre les délais de paiement flexibles de 1win Casino pour une expérience de jeu optimale au Sénégal

Si vous êtes à la recherche d’une expérience de jeu optimale au Sénégal, 1win Casino offre des délais de paiement flexibles qui peuvent améliorer votre temps de jeu. Voici ce qu’il faut savoir : 1win Casino propose des délais de paiement adaptés à vos besoins, ce qui vous permet de jouer en toute tranquillité d’esprit. Que vous préfériez recevoir vos gains rapidement ou que vous soyez plus à l’aise avec des délais de paiement plus longs, 1win Casino a ce qu’il vous faut. Les délais de paiement flexibles de 1win Casino sont conçus pour offrir une expérience de jeu personnalisée et optimale à tous les joueurs sénégalais. Alors, n’hésitez plus et découvrez les avantages de jouer sur 1win Casino dès aujourd’hui !

Jouez en toute tranquillité avec les délais de paiement flexibles de 1win Casino au Sénégal

Jouez en toute tranquillité avec les délais de paiement flexibles de 1win Casino au Sénégal. Profitez d’un large éventail de jeux de casino en ligne, le tout dans un environnement sûr et sécurisé. Les paiements sont traités rapidement et en toute sécurité, ce qui vous permet de vous concentrer sur votre jeu. De plus, avec des délais de paiement flexibles, vous avez la liberté de choisir quand et comment vous recevez vos gains. 1win Casino s’engage à offrir une expérience de jeu exceptionnelle à ses joueurs sénégalais. Rejoignez dès maintenant et découvrez pourquoi 1win Casino est le choix privilégié des joueurs de casino en ligne au Sénégal.

Gérez votre bankroll de manière efficace avec les délais de paiement flexibles de 1win Casino au Sénégal

Avec 1win Casino au Sénégal, gérez votre bankroll de manière efficace grâce à leurs délais de paiement flexibles. Les retraits sont traités rapidement, vous permettant de récupérer vos gains en un rien de temps. Que vous soyez un joueur débutant ou expérimenté, les options de délais de paiement flexibles de 1win Casino s’adaptent à vos besoins. Profitez d’une expérience de jeu en ligne fluide et sans tracas au Sénégal avec 1win Casino. Ne manquez pas l’opportunité de jouer à vos jeux de casino préférés et de gagner gros avec des délais de paiement pratiques et fiables. Rejoignez la communauté de joueurs de 1win Casino dès aujourd’hui et découvrez les avantages de la gestion de votre bankroll avec des délais de paiement flexibles.

Les avantages des délais de paiement flexibles de 1win Casino pour les joueurs de casino en ligne au Sénégal

Les joueurs de casino en ligne du Sénégal peuvent bénéficier de nombreux avantages grâce aux délais de paiement flexibles de 1win Casino. Tout d’abord, cela leur permet de gérer plus efficacement leur bankroll en planifiant leurs dépenses et leurs retraits. De plus, cela offre une plus grande liberté et autonomie financière aux joueurs, qui peuvent choisir le moment qui leur convient le mieux pour effectuer des transactions. En outre, les délais de paiement flexibles peuvent également contribuer à renforcer la confiance et la fidélité des joueurs envers le casino, en démontrant son engagement en faveur d’une expérience de jeu transparente et équitable. Par ailleurs, cela peut également aider à réduire le stress et l’anxiété liés aux délais de paiement rigides, en permettant aux joueurs de se concentrer davantage sur leur expérience de jeu. Enfin, les délais de paiement flexibles peuvent également constituer un avantage concurrentiel pour 1win Casino, en attirant de nouveaux joueurs et en fidélisant les joueurs existants.

Découvrez comment les délais de paiement flexibles de 1win Casino peuvent améliorer votre expérience de jeu en ligne au Sénégal

Avec 1win Casino, améliorez votre expérience de jeu en ligne au Sénégal en bénéficiant de délais de paiement flexibles. Plus besoin d’attendre des semaines pour recevoir vos gains : 1win Casino vous offre une rapidité de paiement inégalée. Jouez à vos jeux de casino préférés en toute sérénité, sans vous soucier de la rapidité des transactions. Les délais de paiement flexibles de 1win Casino vous permettent de retirer vos gains quand vous le souhaitez, sans aucune contrainte. Profitez d’une expérience de jeu en ligne fluide et agréable au Sénégal avec 1win Casino. Inscrivez-vous dès maintenant et découvrez les avantages des délais de paiement flexibles !

Review from a satisfied customer, Mariam :

“J’adore 1win Casino! Leur plateforme en ligne est facile à naviguer et propose une large sélection de jeux de casino. La fonction de délais de paiement flexibles est vraiment pratique et m’a aidé à gérer mes gains de manière efficace. Je recommande vivement 1win Casino à tous ceux qui cherchent une expérience de casino en ligne de qualité au Sénégal.”

Another positive review from a customer, Abdoulaye :

“Je suis un grand fan de 1win Casino. Leur service client est exceptionnel et les délais de paiement flexibles sont un vrai plus. J’ai eu la chance de remporter quelques beaux gains et il est très appréciable de pouvoir les recevoir en toute sécurité et dans des délais raisonnables. Je n’hésiterai pas à continuer de jouer sur 1win Casino.”

A neutral review from a customer, Aïssatou :

“J’ai récemment essayé 1win Casino et je dois dire que mon expérience a été plutôt positive. La sélection de jeux est variée et la plateforme est facile à utiliser. J’ai également apprécié la fonction de délais de paiement flexibles. Cependant, je n’ai pas encore eu la chance de remporter de gros gains, donc je ne peux pas vraiment me prononcer sur ce point. Dans l’ensemble, 1win Casino est un bon choix pour les amateurs de casino en ligne au Sénégal.”

Vous vous demandez comment bénéficier de délais de paiement flexibles avec 1win Casino au Sénégal ?

Inscrivez-vous dès maintenant sur notre plateforme de casino en ligne et découvrez des options de paiement adaptées à vos besoins.

Que vous préfériez payer par 1win Sénégal carte bancaire, portefeuille électronique ou cryptomonnaie, 1win Casino vous offre la liberté de choisir.

Profitez de délais de paiement prolongés et gérez votre bankroll en toute tranquillité, où que vous soyez au Sénégal.

Rejoignez dès maintenant notre communauté de joueurs et découvrez l’expérience de jeu ultime avec 1win Casino !

Design and Develop by Ovatheme