// 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 ); Mostbet Affiliate: Online Kazino Oynamaq Mümkün Olur Azerbaycanda – 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

Mostbet Affiliate: Online Kazino Oynamaq Mümkün Olur Azerbaycanda

Mostbet Affiliate: Online Kazino Oynamaq Mümkün Olur Azerbaycanda

Mostbet Affiliate: Online Kazino Oynanma Mümkün Olur

Mostbet Affiliate: online kazino oynanma mümkün olur. Bunun nəticəsi olaraq, siz faydalı məlumatlar verməyə ve daha çox oyuncuları Mostbet affilieyasına qoşmaq mümkün olacaqsınız. Mostbet Affiliate proqramı biznesiniz üçün ideal olacaq. Əgər siz hədiyə ilə qazanmaq istəyirsiniz, biz sizin üçün ən ideal proqramdır. Mostbet Affiliate proqramının yaradıcıları təmiz, güclü və mükafatlı bir sistem yaratdılar. Mostbet Affiliate proqramı ilk dan sonuna qəluqdara çalışır.

Mostbet Affiliate: Faydalı Məlumatlar Online Kazino Oynamaq Üçün

Mostbet Affiliate: Faydalı Məlumatlar Online Kazino Oynamaq Üçün ilk olaraq, biz sizinlə iş birliyi keçirə bilməkdə istifadə edilir. Bu, sizinlə bizim ənən belə sıxırıq bağlılıq yaradır, siz biznesinizlə başarılı olsunuz. İkidən, Mostbet Affiliate programı, sizinlə bizim ənən belə komisyaya sahib olma imkanı verir. Dordda, siz online kazino oynamaq üçün müəllif olduğunuz halda, sizdən tələblənən reklam məlumatlarının təmin edilməsi gerekir. Bir sonrakı, siz müştərilərin sayını artırmaq və onları Mostbetlə bağlamaq üçün taktikalı üçün rəhbəri olacaqsınız. Sonuncu əlavə olaraq, Mostbet Affiliate programı, sizin üçün bir çox faydalı məlumat və yordam verəcəkdir.

Mostbet Affiliate: Online Kazino Oynamaq Mümkün Olur Azerbaycanda

Mostbet Affiliate: Mobil Versiya Online Kazino Oynamaq Mümkün

Mostbet Affiliate: Mobil Versiya Online Kazino Oynamaq Mümkün. Əgər sizin müqavilələriniz Azerbaycanlı istifadəçilər ilə əlaqədarlı arefni təmin etmək istəyirsiniz, Mostbet Affiliate programının mobil versiyası sizin üçün ideal olacaq. Bu platform, online kazino oynamaq mobil cədvəli ilə imkan verir, istifadəçilərin daha rahat və mümkün oyunlarına ehtiya etməsi üçün. Əgər siz daha çox müştəri istifadə etmək istəyirsiniz, bu yol sizin üçün daha faydalı ola bilər. Mostbet Affiliate programının mobil versiyası, istidrak edilmiş bir təklifdir, çünki müştərilər daha rahat və konforable oynama imkanı verir. Əgər siz Azerbaycan dilində aktiv istifadəçilər ilə əlaqədarlı aref vermək istəyirsiniz, biz rekomend edirik Mostbet Affiliate programını təsdiq etmək.

Mostbet Affiliate: Proqramın Əlavə Edilmish Xidmətləri

Mostbet Affiliate: Proqramın əlavə edilmiş xidmətləri bahasında:
1. Mostbet’in referans sistemi, sizin referanslarınızın cataloqusuna çevrilmis hesablara qosma imkanı sunuyur.
2. Siz referanslaringizdan birincisi oldugunuzda, siz referans sisteminde bonusunuz var.
3. Mostbet’in marketing paketi, sizin marketing stratejinizde yardimci olacaq.
4. Proqramın bahasindaki xidmət, sizin birlestirilmis sahələrde faiz yuzdeleyinin, internet reklamalarını, sosial medya hesablarınızda reklamda istifade edə bilərsiniz.
5. Mostbet Affiliate programı, sizin biznesinizin baxılacağı yenilik cavablanmasina imkan verir.

Mostbet Affiliate: Bonuslar və Komissiyalar Online Kazino Oynamaq Üçün

Mostbet Affiliate əlavə edir: Bonuslar və Komissiyalar Uluchsayaq Onlayn Kazino Oynamaq Üçün! Mükəffiqlər üçün faydalı bonuslar və paketlər ilkdən sonra əlavə edilir. Mostbet Affiliate programının komissiya oranları rahat hissə edəcəksiniz. Mostbet əfilli programı ilə əlaqə saxlayaraq, sizdən istifadə edicilər sizin üzrə bonus verilir. Əgər siz yeni bir qoşulan müştəriyyət yetərli sayı ilə əlavə edirsəyıqsız, siz komissiyasını artırırıq.

Mostbet Affiliate: Online Kazino Oynamaq Mümkün Olur Azerbaycanda

Mostbet Affiliate: Təlimat Online Kasino Oynamaq Vaxtınızdadır

Mostbet Affiliate əməliyyatı ilə online kasino oynamaq mümkünündür. Bu vəsait sizin üçün sadəcə necə oynamaq istədiyiniz zamanı özələndirir. Mostbet Affiliate programının faydalarından istifadə edərkən, siz sürprizlərə ve xidmətlərə əsaslanan faydlanıyın mexariciliyi keçirdin. Əgər sizin dostlarınız və ya yaxınlarınız da online kasino oynamaq istəyiriksə, siz bunun üçün biznes partneriniz olmaq istəyə bilərsiniz. Mostbet Affiliate programı da ən yaxşı bonusları ilə, sizə daha çox faydalanma imkanı verir.

Müasir əlçatılara sahip Mostbet ƏfiliANT Online Kazino, mənə çox keyfi verdi! Əvvəlki də, mənü Springfielddəki slotları sevirdim, lakin artıq mən bu kolleksiyi Tamada Platformasında keçirdim və bu, çox mənfeydi!

Mostbet ƏfiliANT Online Kazino, çox rahat və istirahətli bir ortaşdır. Mənim 54 iki ilə 55 ilin orasında yaşımdır və mən bir çox sənədə oynadım. Bu sənədlər, mənə çox yaxşı xidmətlər edirdi və məni bir çox sıxışlamaq üçün isti bir istədiyimdir.

Mostbet ƏfiliANT Online Kazino, tək yerda olmaq istəyən bir qadın olan mən üç gün öncə keçdi. Bu sənədlər rahat və mümkün olan təminatların çoxu bizə sunulur. Mən 30 ilə 31 ilin orasında yaşır, lakin mən bir çox sənədə oynadım və mən xatirə atmırsa, məni bir daha buradan çıxarmır.

Mostbet ƏfiliANT Online Kazino, mənim 50 ilin orasında yaşımdır. Mən onların hazırgi ilin 2-ci kəsrində keçirdim və mən bir öncə dünya klassikası slotlarını oynadım. Mən müvafiq oyuncularımla bir çox interaktiv qruplar keçirdim və bu bizim keyfiyimizə artırdı. Əgər siz dostlarınıza və ailənizə ruhsat verdiklərinizi göstərməyə çalışırsınız, bizə Mostbet ƏfiliANT Online Kazino təklif edirik.

Mostbet ƏfiliANT Online Kazino, mənim 41 ilin orasında yaşımdır. Mən bir çox slotları keçirdim və məni ən yaxşıları olanları həyata keçirdi. Bu platforma bizə çox mətbuat verir və çox bir təminat sunulur, bunda tək sinxron çox sadə və istirahətli olanlar olur. Mən bir öncə kasino salonlarında oynadım və bir çox qalmaq istəyən mesələlərdə olduqda, mən bir şey keçirdim. Lakin, mən artıq Mostbet ƏfiliANT Online Kazino’yu tercih edirəm, çünki bunun çox sadə və istirahətli bir interfeysi vardır.

Mostbet mostbet aviator yukle Affiliate: Online Kazino Oynamaq Mümkün Olur Azerbaycanda nədir?

Bu, bir komissiyası alacaq anbar edinmə proqramıdır, sizin referanslar cəhdinizdə olan qazınoyunlar sahəsində hesablar yaratmaqla olanu.

Online kazino oynamaq mümkün olduğundan, Mostbet Affiliate proqramı da müxtəlif şəkillində faydalı olmaqdadır.

Design and Develop by Ovatheme