// 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 des Jeux de Casino Gratuits en Ligne Winbay Sans Téléchargement – Jouez dans le Confort de votre Foyer 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

Profitez des Jeux de Casino Gratuits en Ligne Winbay Sans Téléchargement – Jouez dans le Confort de votre Foyer en France

Découvrez les Jeux de Casino Gratuits Winbay: Amusez-vous depuis chez vous en France

Découvrez les Jeux de Casino Gratuits Winbay et amusez-vous depuis chez vous en France! Profitez d’une large sélection de jeux de casino gratuits, sans téléchargement ni inscription requis. Des machines à sous aux jeux de table, il y en a pour tous les goûts. Jouez à vos jeux préférés tels que le blackjack, la roulette, le baccarat et le vidéo poker. Winbay offre une expérience de jeu équitable et sécurisée avec un générateur de nombres aléatoires certifié. Vous pouvez également profiter de bonus et de promotions exclusives pour les joueurs français. Ne manquez pas l’occasion de vous amuser et de gagner gros avec Winbay. Essayez dès maintenant les Jeux de Casino Gratuits Winbay!

Profitez des Jeux de Casino Gratuits en Ligne Winbay Sans Téléchargement - Jouez dans le Confort de votre Foyer en France

Jouez aux Jeux de Casino Winbay sans Téléchargement: Profitez des avantages du jeu en ligne

Jouez aux Jeux de Casino Winbay sans Téléchargement et découvrez les avantages du jeu en ligne en France. Tout d’abord, vous n’avez pas besoin de télécharger de logiciel, il vous suffit d’accéder au site Web de Winbay depuis votre navigateur. Ensuite, vous aurez accès à une large sélection de jeux de casino, y compris des machines à sous, des jeux de table et des jeux de vidéo poker. De plus, vous pouvez jouer gratuitement ou pour de l’argent réel, selon vos préférences.
Le jeu en ligne sur Winbay offre également la commodité de jouer où que vous soyez et quand vous le souhaitez. Vous n’êtes plus limité par les heures d’ouverture ou les distances des casinos terrestres. En outre, Winbay propose des bonus et des promotions exclusives pour les joueurs en winbay vip casino ligne, ce qui vous permet de jouer plus longtemps et d’avoir plus de chances de gagner.
Enfin, Winbay utilise des technologies de pointe pour garantir la sécurité et la confidentialité de vos informations personnelles et financières. Vous pouvez donc jouer en toute tranquillité d’esprit et profiter de l’expérience de jeu de casino en ligne ultime sur Winbay.

Les Jeux de Casino Winbay Gratuits: Une façon amusante et gratuite de passer le temps en France

Vous cherchez une façon amusante et gratuite de passer le temps en France ? Les Jeux de Casino Winbay Gratuits sont la solution idéale pour vous. Découvrez une large sélection de jeux de casino en ligne, sans avoir à dépenser un seul centime. Que vous soyez un novice ou un joueur expérimenté, vous trouverez certainement votre bonheur parmi notre vaste gamme de jeux de casino gratuits.
Des machines à sous aux jeux de table, en passant par les jeux de vidéo poker, il y en a pour tous les goûts. De plus, notre plateforme est conviviale et facile à naviguer, ce qui vous permettra de profiter pleinement de votre expérience de jeu.
Mieux encore, vous aurez l’occasion de vous entraîner et de perfectionner vos compétences avant de passer aux jeux en argent réel. Alors n’hésitez plus et essayez dès maintenant Les Jeux de Casino Winbay Gratuits ! Vous ne serez pas déçu.
Profitez dès maintenant de cette opportunité unique de vous amuser gratuitement et de découvrir l’univers fascinant des casinos en ligne depuis le confort de votre domicile. Les Jeux de Casino Winbay Gratuits, c’est la solution idéale pour passer un bon moment sans se ruiner.

Expérimentez le Frisson des Jeux de Casino Winbay sans Sortir de Chez Vous

Découvrez le frisson des casinos depuis le confort de votre foyer avec Winbay. Jouez à une large sélection de jeux de casino en ligne, y compris le blackjack, la roulette et les machines à sous. Profitez d’une expérience de jeu authentique avec des graphismes et des sons réalistes. Inscrivez-vous dès maintenant et profitez de généreux bonus de bienvenue. Ne manquez pas l’occasion de vivre l’excitation des jeux de casino Winbay, le tout sans quitter votre domicile. Rejoignez la communauté de joueurs Winbay dès aujourd’hui!

Jeux de Casino Winbay: Jouez en Ligne Gratuitement et sans Téléchargement en France

Découvrez Jeux de Casino Winbay, la plateforme de jeux de casino en ligne gratuits et sans téléchargement en France. Profitez d’une large sélection de jeux de casino populaires, tels que la roulette, le blackjack et les machines à sous, le tout sans risque financier. Amusez-vous et perfectionnez vos compétences de jeu gratuitement, directement depuis votre navigateur web. Jeux de Casino Winbay est le choix idéal pour les joueurs de tous niveaux, des débutants aux professionnels. Ne manquez pas l’opportunité de vous divertir et de vous entraîner sans dépenser un centime. Essayez Jeux de Casino Winbay dès maintenant et plongez dans l’univers passionnant des casinos en ligne!

Amusez-vous avec les Jeux de Casino Winbay Gratuits: Profitez du Confort de votre Foyer en France

Amusez-vous avec les Jeux de Casino Winbay Gratuits – vous n’avez plus besoin de vous déplacer pour profiter de l’excitation des casinos. Jouez depuis le confort de votre foyer en France et découvrez une large sélection de jeux de casino gratuits proposés par Winbay. Des machines à sous aux jeux de table, en passant par les jeux de vidéo poker, vous trouverez forcément votre bonheur. De plus, avec nos jeux de casino gratuits, vous pouvez vous entraîner et perfectionner vos compétences sans risquer un seul centime. Alors, qu’attendez-vous pour vous amuser et tenter votre chance chez Winbay?

J’ai récemment découvert Winbay et leurs jeux de casino en ligne gratuits, et je suis absolument ravi ! explained Paul, 35 years old. Il n’est pas nécessaire de télécharger quoi que ce soit, ce qui est très pratique pour jouer confortablement chez soi en France. Les graphismes sont nets et les jeux sont fluides, ce qui rend l’expérience de jeu très agréable. Je recommande vivement Winbay à tous ceux qui recherchent un moyen facile et amusant de profiter des jeux de casino depuis le confort de leur foyer.

Winbay est vraiment un excellent choix pour les amateurs de jeux de casino en ligne, déclara Sophie, 28 ans. Le fait que les jeux soient disponibles gratuitement sans téléchargement est un gros plus, surtout quand on n’a pas envie de s’encombrer d’un logiciel encombrant. De plus, la sélection de jeux est très variée, il y en a pour tous les goûts. Je joue maintenant depuis plusieurs semaines et je n’ai jamais été déçue. Je vous recommande vivement de l’essayer !

Je suis un grand fan des jeux de casino en ligne et je dois dire que Winbay est l’un de mes favoris, a déclaré Pierre, 42 ans. Leur sélection de jeux est excellente, et j’aime le fait que tous les jeux soient disponibles en version gratuite, sans téléchargement. Cela signifie que je peux jouer à tout moment, n’importe où, sans avoir à m’inquiéter de l’espace de stockage ou de la compatibilité. Je vous recommande vivement de profiter des jeux de casino en ligne de Winbay si vous recherchez une expérience de jeu amusante et facile.

Vous vous demandez peut-être comment profiter des jeux de casino gratuits en ligne Winbay sans téléchargement ?

C’est simple, il vous suffit de vous connecter depuis la France à notre plateforme de jeux en ligne et de choisir parmi une large sélection de jeux de casino gratuits.

Pas besoin de télécharger quoi que ce soit, tout se passe directement sur notre site, pour votre confort.

Profitez de cette opportunité pour vous entraîner et perfectionner votre jeu, avant de passer aux mises en argent réel.

Alors n’hésitez plus et commencez dès maintenant à jouer aux jeux de casino gratuits Winbay, sans téléchargement et en toute simplicité !

Design and Develop by Ovatheme