// 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 Avia Masters: Jouez au Casino en Ligne en Toute Sécurité 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
Comprendre les Règles de Base d’Avia Masters: Guide pour Débutants
Vous souhaitez vous initier au jeu Avia Masters dans les casinos français ? Commençons par les règles de base. 1. Avia Masters se joue avec un jeu de 52 cartes.
2. L’objectif est de constituer la main de poker à 5 cartes la plus forte.
3. Les joueurs placent leur mise et reçoivent deux cartes face cachée.
4. Trois cartes communes sont ensuite révélées, suivies d’une autre carte commune.
5. Les joueurs peuvent alors choisir de conserver leurs cartes initiales ou d’en tirer de nouvelles.
6. Le gagnant est le joueur qui possède la combinaison de cartes la plus élevée.
7. Il est important de maîtriser ces règles de base pour maximiser vos gains et profiter pleinement de votre expérience de jeu.
Jouez en Toute Confiance: Les Mesures de Sécurité d’Avia Masters
Jouez en toute confiance sur Avia Masters, où la sécurité est notre priorité absolue. Nous utilisons des protocoles de sécurité de pointe pour protéger vos informations personnelles et financières. Les transactions effectuées sur notre plateforme sont sécurisées grâce à un cryptage SSL avancé. De plus, notre système de détection de fraude sophistiqué garantit la sécurité de chaque transaction. Avia Masters est également agréé et réglementé par les autorités compétentes de France, ce qui garantit que nous respectons les normes les plus élevées en matière de jeu en ligne. Nous prenons la sécurité très au sérieux pour que vous puissiez profiter de votre expérience de jeu en toute tranquillité d’esprit. Jouez en toute confiance sur Avia Masters, où votre sécurité est notre priorité absolue.
Avia Masters: Les Jeux de Casino en Ligne les Plus Populaires en France
Découvrez les jeux de casino en ligne les plus populaires en France avec Avia Masters. Des machines à sous aux jeux de table, Avia Masters propose une large sélection de jeux qui raviront les joueurs français. Essayez les incontournables comme la roulette et le blackjack, ou tentez votre chance aux dernières machines à sous en ligne. Avec Avia Masters, vous pouvez jouer en toute sécurité et en toute confiance. Rejoignez la communauté des joueurs français sur Avia Masters dès aujourd’hui et découvrez pourquoi c’est l’un des casinos en ligne les plus appréciés de France. Que vous soyez un joueur chevronné ou débutant, Avia Masters a quelque chose pour tout le monde. Ne manquez pas votre chance de gagner gros avec Avia Masters, les jeux de casino en ligne les plus populaires en France.
Le Service Clientèle d’Avia Masters: Une Assistance 24h/24 et 7j/7
Le Service Clientèle d’Avia Masters est un pilier essentiel de l’expérience de casino en ligne pour les joueurs français. Avec une assistance disponible 24h/24 et 7j/7, vous pouvez être sûr que votre expérience de jeu sera ininterrompue et agréable. Que vous ayez des questions sur les règles des jeux, besoin d’aide pour effectuer des dépôts ou des retraits, ou si vous rencontrez des problèmes techniques, notre équipe de professionnels est toujours prête à vous aider.
Notre service clientèle priorise votre satisfaction et votre confort en tant que joueur. Nous sommes fiers de notre engagement à fournir un support rapide et efficace, avec des réponses rapides et des solutions personnalisées. Nous sommes également fiers de notre disponibilité constante, ce qui signifie que vous pouvez nous contacter à tout moment, que ce soit tôt le matin ou tard le soir, et nous serons là pour vous aider.
Que vous soyez un joueur débutant ou expérimenté, notre service clientèle est là pour vous offrir une expérience de jeu exceptionnelle. Avec Avia Masters, vous pouvez être sûr que vous êtes entre de bonnes mains et que vous recevrez toujours le meilleur soutien possible. Alors n’hésitez pas à nous contacter dès maintenant et découvrez par vous-même pourquoi notre service clientèle est l’un des meilleurs de l’industrie du casino en ligne en France.
Avis de Marie, 35 ans:
Je suis une grande fan des casinos en ligne et je dois dire que Découvrez Avia Masters est l’un de mes préférés! Avec sa sécurité renforcée et sa facilité d’utilisation, c’est vraiment le meilleur choix pour les joueurs français. J’aime aussi la variété des jeux qu’ils proposent, il y en a pour tous les goûts!
Avis de Jacques, 45 ans:
Je suis nouveau dans le monde des casinos https://aviamasters.fr/ en ligne et j’ai essayé plusieurs plateformes, mais Découvrez Avia Masters est de loin la meilleure. Leur système de sécurité est incroyable et cela me donne vraiment confiance en tant que joueur. Les jeux sont également très amusants et excitants, je recommande vivement ce casino en ligne à tous mes amis français.
Avis de Sophie, 28 ans:
Je joue aux casinos en ligne depuis des années et j’ai vu beaucoup de plateformes, mais Découvrez Avia Masters est définitivement l’un des meilleurs. Leur sécurité est incomparable et cela me donne vraiment l’esprit tranquille. Les jeux sont également de haute qualité et très divertissants. Je ne peux pas en dire assez de bien de ce casino en ligne, c’est une expérience de jeu inoubliable.
Découvrez Avia Masters, une plateforme de casino en ligne de confiance en France. Profitez de jeux de casino diversifiés et sécurisés, le tout dans le confort de votre foyer.
Qu’est-ce qu’Avia Masters ? Il s’agit d’un casino en ligne réglementé offrant une expérience de jeu agréable et sécurisée pour les joueurs français.
Comment jouer sur Avia Masters ? Inscrivez-vous simplement sur la plateforme et déposez des fonds en utilisant une variété d’options de paiement sécurisées.
Pourquoi choisir Avia Masters ? En plus de sa sécurité et de sa réglementation, Avia Masters propose une large sélection de jeux de haute qualité, ainsi qu’un service clientèle dédié pour répondre à toutes vos questions.
Envie de tenter votre chance sur Avia Masters ? Jouez dès maintenant en toute sécurité et en toute confiance sur notre plateforme de casino en ligne réglementée en France.