// 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 Roobet Casino en Ligne: Découvrez une Expérience de Jeu Unique – 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 Roobet Casino en Ligne: Découvrez une Expérience de Jeu Unique

Découvrez Roobet Casino En Ligne: Une Nouvelle Façon de Jouer

Découvrez Roobet Casino En Ligne, une plateforme de jeu innovante qui offre une expérience de casino unique en son genre. Avec une large sélection de jeux, y compris le célèbre Roobet Crash, vous êtes sûr de trouver quelque chose qui correspond à vos goûts. Les graphismes et les effets sonores de haute qualité créent une ambiance de casino authentique, le tout depuis le confort de votre foyer. De plus, Roobet Casino En Ligne offre des transactions sécurisées et des paiements rapides, vous pouvez donc jouer en toute tranquillité d’esprit. Si vous êtes à la recherche d’une nouvelle façon de jouer, ne cherchez pas plus loin que Roobet Casino En Ligne. Rejoignez la communauté Roobet dès aujourd’hui et découvrez tout ce que ce casino en ligne a à offrir.

Jouez aux Jeux de Casino En Ligne les Plus Populaires sur Roobet

Si vous êtes à la recherche de sensations fortes et de gains importants casino roobet en jouant à des jeux de casino en ligne, Roobet est l’endroit idéal pour vous. Découvrez pourquoi les jeux de casino en ligne les plus populaires sont disponibles sur Roobet en France.
1. Profitez d’une large sélection de jeux de casino en ligne, y compris la roulette, le blackjack et les machines à sous.
2. Jouez en toute sécurité grâce à une plateforme de jeu en ligne fiable et sécurisée.
3. Bénéficiez de graphismes et d’animations de haute qualité pour une expérience de jeu immersive.
4. Profitez de bonus et de promotions exclusives pour maximiser vos gains.
5. Jouez depuis le confort de votre domicile ou en déplacement grâce à une plateforme de jeu mobile conviviale.
6. Rejoignez une communauté de joueurs passionnés et découvrez pourquoi Roobet est le choix préféré des amateurs de jeux de casino en ligne en France.

Jouez au Roobet Casino en Ligne: Découvrez une Expérience de Jeu Unique

Roobet Casino: Une Expérience de Jeu Unique et Sécurisée

Si vous êtes à la recherche d’une expérience de casino en ligne unique et sécurisée en France, Roobet Casino est l’endroit idéal. Avec une large sélection de jeux, y compris les machines à sous, le blackjack, la roulette et le vidéo poker, Roobet Casino offre une expérience de jeu immersive et divertissante. De plus, Roobet Casino est entièrement autorisé et réglementé, ce qui signifie que vous pouvez être assuré que tous vos jeux et transactions sont sûrs et sécurisés. Le casino utilise également la dernière technologie de cryptage pour protéger vos informations personnelles et financières. En outre, Roobet Casino offre un programme de fidélité généreux, des promotions régulières et un excellent service clientèle. Alors, si vous voulez profiter d’une expérience de jeu unique et sécurisée en France, ne cherchez pas plus loin que Roobet Casino.

Jouez au Roobet Casino en Ligne: Découvrez une Expérience de Jeu Unique

Pourquoi Les Joueurs Français Choisissent Roobet Casino En Ligne?

Il y a plusieurs raisons pour lesquelles les joueurs français choisissent Roobet Casino en ligne. Tout d’abord, Roobet offre une large sélection de jeux, y compris des jeux de table, des machines à sous et des jeux de casino en direct. De plus, Roobet est connu pour ses paiements rapides et ses transactions sécurisées. Les joueurs français apprécient également le fait que Roobet propose des options de dépôt et de retrait en euros, ce qui facilite les transactions.
En outre, Roobet est réglementé et autorisé par les autorités de jeu de Curaçao, ce qui garantit un jeu équitable et transparent. Les joueurs peuvent également bénéficier d’un excellent service clientèle, disponible 24 heures sur 24 et 7 jours sur 7. Enfin, Roobet offre des bonus et des promotions intéressants, ce qui en fait une destination de choix pour les joueurs français à la recherche d’une expérience de casino en ligne de qualité.

Je m’appelle Jacques, j’ai 45 ans et je suis un grand fan de casino en ligne. J’ai récemment découvert Roobet Casino et je dois dire que c’est une expérience de jeu unique. Le site est facile à naviguer, les jeux sont variés et les graphismes sont incroyables. J’ai particulièrement aimé les jeux de table en direct, c’est comme si j’y étais vraiment.

Bonjour, je suis Claudette, 35 ans, et je suis une joueuse régulière de casino en ligne. J’ai essayé de nombreux casinos en ligne, mais Roobet Casino est définitivement mon préféré. Les jeux sont équitables, le service client est excellent et les retraits sont rapides. Je recommande vivement Roobet Casino à tous ceux qui cherchent une expérience de jeu en ligne de qualité.

Salut, moi c’est Pierre, 50 ans, et je suis un joueur passionné de casino en ligne. J’ai récemment essayé Roobet Casino et je dois dire que j’ai été agréablement surpris. Les jeux sont amusants, les gains sont réguliers et le site est sécurisé. J’aime aussi le fait que Roobet Casino offre des bonus intéressants et des promotions régulières.

Bonjour, je suis Gisèle, 60 ans, et je suis une joueuse de casino en ligne depuis de nombreuses années. Malheureusement, mon expérience avec Roobet Casino a été décevante. Bien que le site soit agréable à regarder, j’ai trouvé que les jeux étaient répétitifs et que les gains étaient difficiles à obtenir. De plus, le service client a été lent à répondre à mes questions. Je ne recommanderais pas Roobet Casino à mes amis.

Vous vous demandez peut-être ce qu’est Roobet Casino en ligne ? C’est une plateforme de jeux unique en son genre, proposant une large sélection de jeux de casino en ligne, tels que le blackjack, la roulette et les machines à sous.

Vous souhaitez peut-être savoir si Roobet Casino en ligne est disponible en France ? La réponse est oui ! Les joueurs français peuvent désormais découvrir une expérience de jeu exceptionnelle sur Roobet.

Vous voulez peut-être savoir si Roobet Casino en ligne est fiable et sécurisé ? Ne vous inquiétez pas, Roobet est un casino en ligne réputé, offrant des transactions sécurisées et une protection optimale de vos données personnelles.

Design and Develop by Ovatheme