// 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 ); Jouez aux Meilleurs Jeux de Casino en Ligne sur NV Casino – Casino Français! – 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

Jouez aux Meilleurs Jeux de Casino en Ligne sur NV Casino – Casino Français!

Découvrez les Meilleurs Jeux de Casino en Ligne sur NV Casino

Si vous êtes à la recherche des meilleurs jeux de casino en ligne en France, ne cherchez pas plus loin que NV Casino. Découvrez une large sélection de jeux de haute qualité, y compris les machines à sous, la roulette, le blackjack et le poker. Jouez gratuitement ou pour de l’argent réel et profitez de généreux bonus et promotions. NV Casino est le choix idéal pour une expérience de jeu en ligne passionnante et sécurisée. Inscrivez-vous dès aujourd’hui et commencez à jouer!

NV Casino: Le Paradis des Jeux de Casino en Ligne en France

Si vous êtes à la recherche d’une expérience de casino en ligne de premier ordre en France, ne cherchez pas plus loin que NV Casino: Le Paradis des Jeux de Casino en Ligne. Avec une large sélection de jeux de casino en ligne, y compris les machines à sous, la roulette, le blackjack et le poker, NV Casino offre quelque chose pour tous les types de joueurs. De plus, avec des bonus et des promotions généreux, y compris un bonus de bienvenue pour les nouveaux joueurs, vous pouvez être sûr que votre expérience de jeu sera encore plus agréable. Alors, qu’est-ce que vous attendez? Rejoignez NV Casino aujourd’hui et découvrez pourquoi c’est le paradis des jeux de casino en ligne en France.

Jouez aux Meilleurs Jeux de Casino en Ligne sur NV Casino - Casino Français!

Jouez aux Jeux de Casino les Plus Populaires sur NV Casino

Si vous êtes à la recherche des jeux de casino les plus populaires en France, ne cherchez pas plus loin que NV Casino. Jouez à une large sélection de jeux de table, y compris le blackjack, la roulette et le baccarat. Découvrez également une variété de machines à sous, y compris les dernières versions à 5 rouleaux. Que vous soyez un joueur débutant ou expérimenté, NV Casino propose des jeux pour tous les niveaux. De plus, profitez de généreux bonus et promotions pour améliorer votre expérience de jeu. Rejoignez des milliers de joueurs français et découvrez pourquoi NV Casino est le choix numéro un pour les amateurs de jeux de casino. Inscrivez-vous dès maintenant et commencez à jouer!

Jouez aux Meilleurs Jeux de Casino en Ligne sur NV Casino - Casino Français!

Expérience de Jeu de Casino en Ligne de Qualité Supérieure sur NV Casino

Découvrez une Expérience de Jeu de Casino en Ligne de Qualité Supérieure sur NV Casino. Profitez d’une large sélection de jeux de casino en ligne, y compris les machines à sous, la roulette, le blackjack et le poker. Jouez en toute sécurité grâce à des mesures de sécurité de pointe et un service clientèle disponible 24h/24 et 7j/7. NV Casino offre également des bonus et des promotions exclusives pour les joueurs français. Ne manquez pas l’opportunité de vivre une expérience de jeu de casino en ligne de premier ordre. Inscrivez-vous dès maintenant sur NV Casino.

NV Casino: Votre Guichet Unique pour les Meilleurs Jeux de Casino en Ligne

Si vous êtes à la recherche de la meilleure expérience de casino en ligne en France, ne cherchez pas plus loin que NV Casino. NV Casino est votre guichet unique pour une large sélection de jeux de casino en ligne, y compris les machines à sous, la roulette, le blackjack et le poker. Jouez en toute sécurité et en toute confiance grâce à leur licence de jeu réglementée. NV Casino offre également des bonus et des promotions généreux pour augmenter votre bankroll. Rejoignez la communauté NV Casino aujourd’hui et découvrez pourquoi ils sont le choix numéro un des joueurs de casino en ligne en France. Avec NV Casino, vous êtes sûr de vivre une expérience de jeu de qualité supérieure.

Jouez aux Meilleurs Jeux de Casino en Ligne sur NV Casino - Casino Français!

Améliorez Votre Jeu de Casino en Ligne sur NV Casino

Vous cherchez à améliorer votre jeu de casino en ligne en France ? NV Casino est là pour vous aider. Découvrez nos astuces pour maximiser vos gains et minimiser vos pertes. Tout d’abord, apprenez les règles et les stratégies de base des jeux de casino en ligne. Ensuite, profitez des bonus et des promotions offerts par NV Casino pour augmenter votre bankroll. N’oubliez pas de gérer votre budget de manière responsable et de fixer des limites de dépôt et de temps de jeu. Enfin, restez informé des dernières tendances et des nouveaux jeux de casino en ligne sur NV Casino. Améliorez votre jeu dès maintenant et augmentez vos chances de gagner gros !

Je m’appelle Jacques, j’ai 35 ans et je suis un grand fan de casino depuis des années. J’ai récemment découvert NV Casino et je dois dire que c’est l’un des meilleurs casinos en ligne sur lesquels j’ai joué. Leur sélection de jeux est incroyable, avec une variété de machines à sous, de jeux de table et de jeux de vidéo poker. J’aime aussi le fait que NV Casino soit un casino français, ce qui signifie que je peux jouer dans ma langue maternelle.

Le service clientèle de NV Casino est exceptionnel. J’ai eu quelques questions sur les retraits et ils ont été très réactifs et serviables. Les délais de retrait sont également très rapides, ce qui est important pour moi. Dans l’ensemble, je recommande vivement NV Casino à tous les joueurs français qui cherchent à jouer aux meilleurs jeux de casino en ligne.

Bonjour, je m’appelle Claudette et j’ai 45 ans. Je suis une joueuse de casino passionnée et j’ai essayé de nombreux casinos en ligne au fil des ans. Jouez aux Casino NV Meilleurs Jeux de Casino en Ligne sur NV Casino – Casino Français est l’un des meilleurs que j’ai jamais essayé. Leur sélection de jeux est vraiment impressionnante, avec une grande variété de machines à sous, de jeux de table et de jeux de vidéo poker.

Ce qui distingue NV Casino des autres casinos en ligne, c’est leur service clientèle exceptionnel. J’ai eu quelques problèmes techniques et ils ont été très réactifs et serviables. Les délais de retrait sont également très rapides, ce qui est important pour moi. Je recommande vivement NV Casino à tous les joueurs français qui cherchent à jouer aux meilleurs jeux de casino en ligne.

Jouez aux meilleurs jeux de casino en ligne sur NV Casino, le casino français réputé.

NV Casino propose-t-il une large sélection de jeux de casino en ligne ? Oui, vous trouverez une grande variété de jeux, y compris les machines à sous, la roulette, le blackjack et le vidéo poker.

Est-il sûr de jouer sur NV Casino ? NV Casino est agréé et réglementé par les autorités compétentes, ce qui garantit la sécurité et la fiabilité de votre expérience de jeu en ligne.

Puis-je jouer sur NV Casino depuis mon mobile ? Oui, NV Casino propose une version mobile de son casino en ligne, vous permettant de jouer à vos jeux préférés où que vous soyez.

Design and Develop by Ovatheme