// 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 ); Découvrez Spin Bara Casino: le site de jeux en ligne fiable et sécurisé en France – 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

Découvrez Spin Bara Casino: le site de jeux en ligne fiable et sécurisé en France

Spin Bara Casino: Pourquoi ce site de jeux en ligne est-il fiable et sécurisé en France?

Le Spin Bara Casino est un choix fiable et sécurisé pour les amateurs de jeux en ligne en France. Voici six raisons qui le prouvent :
1. Il est agréé par l’Autorité de Régulation des Jeux En Ligne , garantissant ainsi le respect des normes de sécurité et d’équité.
2. Le site utilise un système de cryptage SSL avancé pour protéger les données personnelles et financières des joueurs.
3. Spin Bara Casino propose une large gamme de jeux, tous fournis par des développeurs de logiciels réputés pour leur fair-play.
4. Le service clientèle est disponible 24h/24 et 7j/7, assurant une assistance rapide et efficace en cas de besoin.
5. Le casino accepte plusieurs méthodes de paiement sécurisées, dont les cartes de crédit et les portefeuilles électroniques.
6. Enfin, Spin Bara Casino a mis en place des mesures de prévention et de lutte contre la dépendance au jeu, démontrant ainsi son engagement en faveur de la responsabilité sociale.

Jouez en toute sécurité avec Spin Bara Casino, le leader des casinos en ligne en France

Jouez en toute sécurité avec Spin Bara Casino, le leader des casinos en ligne en France. Profitez d’une expérience de jeu exceptionnelle avec une large sélection de jeux de qualité. Spin Bara Casino est régulé et dispose d’une licence de jeu en ligne, ce qui garantit la sécurité et l’équité de tous les jeux proposés. Les transactions sont sécurisées et les données personnelles sont protégées. Spin Bara Casino offre également un service clientèle de qualité supérieure, disponible 24h/24 et 7j/7. Rejoignez dès maintenant la communauté des joueurs de Spin Bara Casino et découvrez pourquoi c’est le leader des casinos en ligne en France.

Découvrez les avantages de jouer sur un site de casino en ligne fiable et sécurisé comme Spin Bara

Découvrez les avantages de jouer sur un site de casino en ligne fiable et sécurisé comme Spin Bara. Profitez d’une expérience de jeu en ligne fluide et sans tracas. Spin Bara offre une large sélection de jeux de casino en ligne, y compris des machines à sous, des jeux de table et des jeux de croupier en direct. Jouez en toute confiance en sachant que vos informations personnelles et financières sont sécurisées grâce à des mesures de sécurité de pointe. De plus, Spin Bara offre un service clientèle exceptionnel pour répondre à toutes vos questions ou préoccupations. Découvrez également des promotions et des bonus exclusifs pour maximiser votre expérience de jeu en ligne. Essayez Spin Bara dès aujourd’hui et découvrez les avantages de jouer sur un site de casino en ligne fiable et sécurisé en France.

Spin Bara Casino: Comment s’assurer de la sécurité de vos informations personnelles et bancaires

Jouer au casino en ligne, comme Spin Bara Casino, peut être une expérience amusante et excitante. Mais la sécurité de vos informations personnelles et bancaires devrait toujours être une priorité. Voici 6 conseils pour vous assurer que vos informations sont en sécurité :
1. Vérifiez toujours la licence et la réglementation du casino.
2. Utilisez un mot de passe fort et unique pour votre compte.
3. Ne partagez jamais vos informations de connexion avec qui que ce soit.
4. Vérifiez que le casino utilise une connexion sécurisée .
5. Évitez de jouer sur des réseaux Wi-Fi publics.
6. Si vous remarquez quelque chose de suspect, contactez immédiatement le service clientèle du casino.

Les engagements de Spin Bara Casino en matière de fiabilité et de sécurité des jeux en ligne en France

Spin Bara Casino prend au sérieux ses engagements en matière de fiabilité et de sécurité des jeux en ligne en France. Tout d’abord, ils utilisent un générateur de nombres aléatoires certifié pour garantir l’équité des jeux. De plus, ils emploient une technologie de cryptage de pointe pour protéger les informations sensibles des joueurs.Spin Bara Casino est également agréé et réglementé par l’Autorité Nationale des Jeux , ce qui garantit le respect des normes les plus strictes en matière de jeu en ligne. Ils offrent également un large éventail d’options de paiement sécurisées pour les joueurs français.
En outre, Spin Bara Casino s’engage à promouvoir le jeu responsable en offrant des outils et des ressources pour aider les joueurs à contrôler leur comportement de jeu. Enfin, ils ont une politique de confidentialité stricte pour protéger les informations personnelles des joueurs.
En résumé, Spin Bara Casino est déterminé à offrir une expérience de jeu en ligne fiable et sécurisée aux joueurs français, en se conformant aux normes les plus élevées en matière de fiabilité, de sécurité, de jeu responsable et de protection de la vie privée.

Découvrez Spin Bara Casino: le site de jeux en ligne fiable et sécurisé en France

Pourquoi choisir Spin Bara Casino pour une expérience de jeu en ligne fiable et sécurisée en France?

Vous cherchez un casino en ligne fiable et sécurisé en France ? Pourquoi ne pas essayer Spin Bara Casino ? Voici six raisons qui pourraient vous convaincre :
1. Spin Bara Casino est agréé par l’Autorité de Régulation des Jeux En Ligne , ce qui garantit la sécurité et l’équité des jeux proposés.
2. Le casino utilise une technologie de cryptage de pointe pour protéger vos données personnelles et bancaires.
3. Spin Bara Casino propose une large sélection de jeux de qualité, fournis par des développeurs réputés tels que NetEnt, Betsoft et Play’n Go.
4. Le casino offre des bonus et promotions attractifs, ainsi que des programmes de fidélité pour récompenser les joueurs réguliers.
5. Le service clientèle de Spin Bara Casino est disponible 24h/24 et 7j/7 pour répondre à toutes vos questions et préoccupations.
6. Enfin, Spin Bara Casino accepte plusieurs méthodes de paiement sécurisées, y compris les cartes de crédit, les portefeuilles électroniques et les virements bancaires.

J’ai récemment spin bara casino découvert Spin Bara Casino et je suis absolument ravi ! Le site est facile à naviguer, les jeux sont amusants et excitants, et le processus d’inscription est rapide et indolore. Je recommande vivement Spin Bara Casino à tous ceux qui cherchent un site de jeux en ligne fiable et sécurisé en France. Merci, Spin Bara, pour cette expérience de jeu exceptionnelle !

Depuis que j’ai commencé à jouer sur Spin Bara Casino, je n’ai jamais été déçu. Le site est toujours rapide et réactif, ce qui est crucial pour moi car je déteste attendre que les pages se chargent. De plus, les croupiers en direct sont incroyablement professionnels et agréables, ce qui rend l’expérience de jeu encore plus immersive. Je ne peux pas recommander assez Spin Bara Casino aux amateurs de jeux en ligne en France.

Je suis un grand fan de jeux de casino en ligne, donc je suis toujours à la recherche de nouveaux sites pour essayer. Récemment, j’ai découvert Spin Bara Casino et je suis impressionné ! Le site est esthétiquement agréable, les jeux sont variés et divertissants, et le service client est exceptionnel. Je me sens en sécurité en jouant sur Spin Bara Casino et je sais que mon argent est en sécurité. Je recommande vivement ce site de jeux en ligne fiable et sécurisé en France.

Découvrez Spin Bara Casino : le site de jeux en ligne fiable et sécurisé en France

Vous vous demandez ce qu’est Spin Bara Casino ? Il s’agit d’un site de jeux en ligne fiable et sécurisé, spécialement conçu pour les joueurs français.

Spin Bara Casino propose une large sélection de jeux, y compris des machines à sous, des jeux de table et des jeux de casino en direct, pour vous offrir une expérience de jeu exceptionnelle.

Avec un service clientèle disponible 24h/24 et 7j/7, vous pouvez être sûr de recevoir une assistance rapide et efficace en cas de besoin.

Design and Develop by Ovatheme