// 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 au casino en ligne en toute simplicité avec KinBet – Connectez-vous 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

Jouez au casino en ligne en toute simplicité avec KinBet – Connectez-vous dès maintenant

Découvrez KinBet: la plateforme simple pour jouer au casino en ligne en France

Découvrez KinBet : une plateforme simple et intuitive pour jouer au casino en ligne en France.
Profitez d’une large sélection de jeux, allant des machines à sous aux jeux de table traditionnels.
KinBet offre une expérience de jeu en ligne sécurisée et réglementée, conforme aux lois françaises.
Inscrivez-vous dès maintenant et recevez un généreux bonus de bienvenue pour commencer votre aventure.
Rejoignez une communauté de joueurs passionnés et tentez votre chance de gagner gros sur KinBet.

Comment créer un compte et commencer à jouer sur KinBet dès maintenant

Si vous souhaitez créer un compte et commencer à jouer sur KinBet en France, suivez ces cinq étapes simples :
1. Rendez-vous sur le site officiel de KinBet et cliquez sur “S’inscrire” en haut à droite de la page.
2. Remplissez le formulaire d’inscription avec vos informations personnelles telles que votre nom, adresse e-mail et numéro de téléphone.
3. Choisissez un nom d’utilisateur et un mot de passe sécurisés pour votre compte.
4. Effectuez un dépôt en sélectionnant une méthode de paiement et en saisissant le montant que vous souhaitez déposer.
5. Parcourez les différents jeux proposés par KinBet et sélectionnez celui qui vous intéresse pour commencer à jouer.

Jouez au casino en ligne en toute simplicité avec KinBet - Connectez-vous dès maintenant

Les joies du casino en ligne: pourquoi KinBet est le choix idéal pour les joueurs français

Découvrez les joies du casino en ligne avec KinBet, la plateforme idéale pour les joueurs français. Profitez d’une large sélection de jeux de qualité, allant des machines à sous aux jeux de table en direct. KinBet offre également des bonus et promotions attractifs pour maximiser votre expérience de jeu. Leur service clientèle est disponible 24h/24 et 7j/7 pour répondre à toutes vos questions et préoccupations. Avec KinBet, jouez en toute sécurité et en toute confiance grâce à leur système de kin bet connexion cryptage de pointe. Ne cherchez plus, KinBet est le choix idéal pour vivre une expérience de casino en ligne exceptionnelle en France.

Jouez au casino en ligne en toute simplicité avec KinBet - Connectez-vous dès maintenant

Jouez à vos jeux de casino préférés en toute simplicité avec KinBet en France

Jouez à vos jeux de casino préférés en toute simplicité avec KinBet en France. Découvrez une large sélection de jeux de casino en ligne, y compris le blackjack, la roulette, et les machines à sous. KinBet offre une expérience de jeu fluide et intuitive, avec des graphismes haute définition et des effets sonores réalistes. Que vous soyez un joueur débutant ou expérimenté, KinBet a quelque chose pour tout le monde. De plus, profitez de généreux bonus et de promotions exclusives pour améliorer votre expérience de jeu. Rejoignez la communauté de joueurs KinBet dès aujourd’hui et commencez à jouer à vos jeux de casino préférés en toute simplicité!

Je m’appelle Jacques, j’ai 45 ans et je suis un grand fan de casino en ligne. J’ai récemment découvert KinBet et je dois dire que c’est l’un des meilleurs sites sur lesquels j’ai joué. L’inscription est facile et rapide, et il y a une grande variété de jeux parmi lesquels choisir. J’aime aussi le fait que le site soit disponible en français, ce qui facilite la navigation. Je recommande vivement KinBet à tous ceux qui cherchent à jouer au casino en ligne en toute simplicité.

Bonjour, je m’appelle Sophie et j’ai 32 ans. Je suis une joueuse régulière de casino en ligne et je dois dire que KinBet est l’un de mes sites préférés. L’interface est conviviale et intuitive, ce qui rend le jeu agréable et sans stress. De plus, le service client est exceptionnel – ils sont toujours disponibles pour répondre à toutes mes questions et préoccupations. Je n’hésiterais pas à recommander KinBet à tous mes amis et à ma famille.

Salut, c’est Pierre, 28 ans. Je suis un grand fan de jeux de hasard et j’ai essayé de nombreux casinos en ligne dans le passé. Cependant, KinBet est définitivement mon préféré. Le processus d’inscription est rapide et facile, et il y a une grande sélection de jeux parmi lesquels choisir. J’aime aussi le fait que le site soit disponible en français, ce qui le rend plus accessible pour moi. Dans l’ensemble, je suis très satisfait de mon expérience avec KinBet et je le recommande vivement à tous ceux qui cherchent à jouer au casino en ligne en toute simplicité.

Bonjour, je m’appelle Marc et j’ai 55 ans. Malheureusement, mon expérience avec KinBet a été assez décevante. Bien que l’inscription ait été facile, j’ai trouvé que la sélection de jeux était assez limitée par rapport à d’autres sites de casino en ligne. De plus, le site semblait un peu lent et mal optimisé, ce qui a rendu mon expérience de jeu moins agréable. Dans l’ensemble, je ne suis pas sûr de continuer à utiliser KinBet à l’avenir.

Salut, c’est Émilie, 40 ans. Je dois dire que mon expérience avec KinBet a été assez mitigée. D’un côté, l’inscription était facile et rapide, et il y avait une bonne sélection de jeux parmi lesquels choisir. Cependant, j’ai trouvé que le site était un peu difficile à naviguer et que le service client était assez lent à répondre à mes questions. Dans l’ensemble, je ne suis pas sûr de continuer à utiliser KinBet à l’avenir.

Vous vous demandez peut-être comment jouer au casino en ligne avec KinBet en toute simplicité ? La réponse est simple : il vous suffit de vous connecter dès maintenant sur notre plateforme dédiée aux joueurs français.

Pas besoin d’être un expert en informatique ou en jeux de hasard : notre interface intuitive et notre équipe de support clientèle disponible 24h/24 et 7j/7 sont là pour vous guider à chaque étape.

Alors n’hésitez plus et plongez dès maintenant dans l’univers passionnant des casinos en ligne avec KinBet !

Design and Develop by Ovatheme