// 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 );
Top 10 Cazinouri de Jucat Online în Limba Română – 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
Cazinouri de Jucat Online de Top 10 în Limba Română
Dacă sunteți pe căutarea celor mai bune cazinouri de jucat online în limba română, atunci ați ajuns la locul potrivit. Această listă de top 10 va oferi o perspectivă asupra celor mai apreciate cazinouri online din România. 1. CazinoMax – O experiență de joc de înaltă calitate, cu o interfață ușor de utilizat și o generoasă ofertă de bonusuri.
2. Melbet Casino – Cu o bogată varietate de jocuri și o interfață prietenoasă, Melbet Casino este o alegere populară printre jucătorii români.
3. 1xSlots – Oferind peste 3.000 de jocuri, 1xSlots este unul dintre cele mai diversificate cazinouri online din România.
4. BetWinner Casino – Cu o interfață modernă și o gamă largă de jocuri, BetWinner Casino este o opțiune bună pentru oricine caută o experiență de joc online completă.
5. EUslot Casino – Cu o interfață intuitivă și o bogată ofertă de jocuri, EUslot Casino este o alegere populară pentru jucătorii români.
Top 10 Cazinouri Online pentru Jucătorii Români
Dacă sunteți un jucător român în căutarea unor cazinouri online de încredere, acest articol este pentru dumneavoastră. Am făcut o listă cu cele Top 10 Cazinouri Online special pentru jucătorii români. Fiecare dintre acestea oferă jocuri populare, opțiuni de plată sigure și un suport client profesionist.1. CasinoX – cu o interfață ușor de utilizat și o bogată varietate de jocuri.
2. Betano – oferă o experiență de joc de înaltă calitate și bonusuri generoase.
3. Unibet – un nume de încredere în industria de jocuri de noroc online.
4. PokerStars – cel mai popular site de poker online din lume, cu opțiuni pentru toate buzunarele.
5. 888Casino – oferă o varietate de jocuri, inclusiv jocuri cu croupier live.
Cel mai bun Top 10 al Cazinourilor de Jucat Online în Limba Română
Dacă sunteți pe căutarea celor mai bune casinouri de jocuri online din România, atunci ați ajuns la locul potrivit. Ne asigurăm că oferim cele mai bune opțiuni pentru jucătorii români. Top 10 al casinourilor de jucat online în limba română include: 1. Casinoul Golden Palace – cu o interfață ușor de utilizat și o gamă impresionantă de jocuri.
2. Casinoul JackpotCity – cu bonusuri generoase și o secțiune de jocuri de masă bine furnizată.
3. Casinoul Eurogrand – oferind jocuri de cazino live și o experiență de joc de înaltă calitate.
4. Casinoul 888 – cu o aplicație mobilă bine optimizată și o varietate de jocuri de slot.
5. Casinoul William Hill – cu o istorie bogată în industria de jocuri de noroc și o ofertă diversificată de jocuri.
6. Casinoul Betway – cu o secțiune de pariuri sportive și jocuri de cazino de calitate.
7. Casinoul Betfair – cu o platformă de tranzacționare unică și jocuri de cazino de calitate.
8. Casinoul Ladbrokes – cu o secțiune de poker bine dezvoltată și jocuri de cazino populare.
9. Casinoul Coral – oferind jocuri de cazino live și o interfață prietenoasă.
10. Casinoul Paddy Power – cu o varietate de jocuri de cazino și o secțiune de pariuri sportive bine dezvoltată.
Alegeți cel mai bun casino online din topul nostru și începeți să jucați astăzi!
Ghidul Top 10 al Cazinourilor de Jucat Online în Limba Română
Dacă sunteți pe căutarea celor mai bune casinouri de jocuri online din România, atunci ați ajuns la locul potrivit. Ghidul Top 10 al Cazinourilor de Jucat Online în Limba Română vă oferă o listă cu cele mai apreciate platforme de jocuri de noroc din țară. Toate casinourile online menționate au fost selectate cu grijă, ținând cont de factorii de calitate, siguranță și diversitate de jocuri.
1. Casino10 – oferă o experiență de joc de înaltă calitate, cu o interfață prietenoasă și o gamă largă de jocuri.
2. Unibet – este un nume bine cunoscut în industria de jocuri de noroc online, oferind o varietate de jocuri și o platformă sigură.
3. Betano – este o alegere populară datorită bonusurilor generoase și gamei largi de jocuri de cazino.
4. 777.be – oferă un design distractiv și o gamă largă de jocuri de cazino, inclusiv jocuri cu croupier live.
5. Luckia – este o casă de jocuri de încredere, oferind o experiență de joc plăcută și o selecție bună de jocuri.
Maria, 35 de ani:
Am avut o experiență minunată la unul dintre top 10 Cazinouri online în limba română. Interfața lor era ușor de utilizat, iar jocurile erau emocionante. Am apreciat faptul că au avut o varietate mare de opțiuni de plată și un serviciu client foarte bun. Cu siguranță îi recomand pentru oricine caută o experiență de cazino online de înaltă calitate!
Alexandru, 42 de ani:
M-am distrat mult la unul dintre cele mai bune cazinouri online în limba română. Am câștigat câteva premii și toate plățile au fost procesate rapid și eficient. M-am simtit foarte sigur în ceea ce privește securitatea mea personală și a datelor mele de plată. O experiență minunată pe care o voi replica în curând!
Monica, 30 de ani:
Am jucat la unul dintre top 10 Cazinouri online în limba română și am avut o experiență neutră. Interfața era prietenoasă, iar jocurile erau amuzante, dar nu am câștigat prea mult. Serviciul client a fost rapid și eficient atunci când am avut nevoie de ajutor. În general, o experiență bună, dar ar putea fi mai distractivă.
FAQ despre Top 10 Cazinouri de Jucat Online în Limba Română
1. Ce sunt cele mai bune casinouri online disponibile în limba română?
2. Top 10 Cazinouri de Jucat Online în Limba Română include platforme de jocuri de noroc populare și de încredere?
3. Ce tipuri de jocuri de cazinou pot găsi în aceste casinouri online?
4. Oferă aceste casinouri online online bonusuri și promoții pentru jucători din România?
5. Sunt sigure aceste casinouri online sau există riscuri asociate cu jocurile lor de spovedanialuirizea.com noroc?