var tribe_dropdowns = window.tribe_dropdowns || {}; ( function( $, obj, _ ) { 'use strict'; obj.selector = { dropdown: '.tribe-dropdown', created: '.tribe-dropdown-created', searchField: '.select2-search__field', }; // Setup a Dependent $.fn.tribe_dropdowns = function() { obj.dropdown( this, {} ); return this; }; obj.freefrom_create_search_choice = function( params ) { if ( 'string' !== typeof params.term ) { return null; } var term = params.term.trim(); if ( '' === term ) { return null; } var args = this.options.options; var $select = args.$select; if ( term.match( args.regexToken ) && ( ! $select.is( '[data-int]' ) || ( $select.is( '[data-int]' ) && term.match( /\d+/ ) ) ) ) { var choice = { id: term, text: term, new: true }; if ( $select.is( '[data-create-choice-template]' ) ) { choice.text = _.template( $select.data( 'createChoiceTemplate' ) )( { term: term } ); } return choice; } return null; }; /** * Better Search ID for Select2, compatible with WordPress ID from WP_Query * * @param {object|string} e Searched object or the actual ID * @return {string} ID of the object */ obj.search_id = function( e ) { var id = undefined; if ( 'undefined' !== typeof e.id ) { id = e.id; } else if ( 'undefined' !== typeof e.ID ) { id = e.ID; } else if ( 'undefined' !== typeof e.value ) { id = e.value; } return undefined === e ? undefined : id; }; /** * Better way of matching results * * @param {string} term Which term we are searching for * @param {string} text Search here * @return {boolean} */ obj.matcher = function( params, data ) { // If there are no search terms, return all of the data if ( 'string' !== typeof params.term || params.term.trim() === '') { return data; } // Do not display the item if there is no 'text' property if ( typeof data.text === 'undefined' ) { return null; } var term = params.term.trim(); var text = data.text; var $select = $( data.element ).closest( 'select' ); var args = $select.data( 'dropdown' ); var result = text.toUpperCase().indexOf( term.toUpperCase() ) !== -1; if ( ! result && 'undefined' !== typeof args.tags ){ var possible = _.where( args.tags, { text: text } ); if ( args.tags.length > 0 && _.isObject( possible ) ){ var test_value = obj.search_id( possible[0] ); result = test_value.toUpperCase().indexOf( term.toUpperCase() ) !== -1; } } return result; }; /** * If the element used as the basis of a dropdown specifies one or more numeric/text * identifiers in its val attribute, then use those to preselect the appropriate options. * * @param {object} $select * @param {function} make_selection */ obj.init_selection = function( $select, make_selection ) { var isMultiple = $select.is( '[multiple]' ); var options = $select.data( 'dropdown' ); var currentValues = $select.val().split( options.regexSplit ); var selectedItems = []; $( currentValues ).each( function( index, value ) { // eslint-disable-line no-unused-vars var searchFor = { id: this, text: this }; var data = options.ajax ? $select.data( 'options' ) : options.data; var locatedItem = find_item( searchFor, data ); if ( locatedItem && locatedItem.selected ) { selectedItems.push( locatedItem ); } } ); if ( selectedItems.length && isMultiple ) { make_selection( selectedItems ); } else if ( selectedItems.length ) { make_selection( selectedItems[ 0 ] ); } else { make_selection( false ); return; } }; /** * Searches array 'haystack' for objects that match 'description'. * * The 'description' object should take the form { id: number, text: string }. The first * object within the haystack that matches one of those two properties will be returned. * * If objects contain an array named 'children', then that array will also be searched. * * @param {Object} description * @param {Array} haystack * * @return {Object|boolean} */ function find_item( description, haystack ) { if ( ! _.isArray( haystack ) ) { return false; } for ( var index in haystack ) { var possible_match = haystack[ index ]; if ( possible_match.hasOwnProperty( 'id' ) && possible_match.id == description.id ) { // eslint-disable-line no-prototype-builtins,eqeqeq,max-len return possible_match; } if ( possible_match.hasOwnProperty( 'text' ) && possible_match.text == description.text ) { // eslint-disable-line no-prototype-builtins,eqeqeq,max-len return possible_match; } if ( possible_match.hasOwnProperty( 'children' ) && _.isArray( possible_match.children ) ) { // eslint-disable-line no-prototype-builtins,max-len var subsearch = find_item( description, possible_match.children ); if ( subsearch ) { return subsearch; } } } return false; } obj.getSelectClasses = function( $select ) { var classesToRemove = [ 'select2-hidden-accessible', 'hide-before-select2-init', ]; var originalClasses = $select.attr( 'class' ).split( /\s+/ ); return _.difference( originalClasses, classesToRemove ); }; obj.element = function( field, args ) { var $select = $( field ); var args = $.extend( {}, args ); // eslint-disable-line no-redeclare var carryOverData = [ // eslint-disable-line no-unused-vars 'depends', 'condition', 'conditionNot', 'condition-not', 'conditionNotEmpty', 'condition-not-empty', 'conditionEmpty', 'condition-empty', 'conditionIsNumeric', 'condition-is-numeric', 'conditionIsNotNumeric', 'condition-is-not-numeric', 'conditionChecked', 'condition-is-checked', ]; var $container; // Add a class for dropdown created $select.addClass( obj.selector.created.className() ); // args.debug = true; // For Reference we save the jQuery element as an Arg. args.$select = $select; // Auto define the Width of the Select2. args.dropdownAutoWidth = true; args.width = 'resolve'; // CSS for the container args.containerCss = {}; // Only apply visibility when it's a Visible Select2. if ( $select.is( ':visible' ) ) { args.containerCss.display = 'inline-block'; args.containerCss.position = 'relative'; } // CSS for the dropdown args.dropdownCss = {}; args.dropdownCss.width = 'auto'; // When we have this we replace the default with what's in the param. if ( $select.is( '[data-dropdown-css-width]' ) ) { args.dropdownCss.width = $select.data( 'dropdown-css-width' ); if ( ! args.dropdownCss.width || 'false' === args.dropdownCss.width ) { delete args.dropdownCss.width; delete args.containerCss; } } // By default we allow The field to be cleared args.allowClear = true; if ( $select.is( '[data-prevent-clear]' ) ) { args.allowClear = false; } // Pass the "Searching..." placeholder if specified if ( $select.is( '[data-searching-placeholder]' ) ) { args.formatSearching = $select.data( 'searching-placeholder' ); } // If we are dealing with a Input Hidden we need to set the Data for it to work if ( ! $select.is( '[data-placeholder]' ) && $select.is( '[placeholder]' ) ) { args.placeholder = $select.attr( 'placeholder' ); } // If we are dealing with a Input Hidden we need to set the Data for it to work. if ( $select.is( '[data-options]' ) ) { args.data = $select.data( 'options' ); } // With less then 10 args we wouldn't show the search. args.minimumResultsForSearch = 10; // Prevents the Search box to show if ( $select.is( '[data-hide-search]' ) ) { args.minimumResultsForSearch = Infinity; } // Makes sure search shows up. if ( $select.is( '[data-force-search]' ) ) { delete args.minimumResultsForSearch; } // Allows freeform entry if ( $select.is( '[data-freeform]' ) ) { args.createTag = obj.freefrom_create_search_choice; args.tags = true; $select.data( 'tags', true ); } if ( $select.is( '[multiple]' ) ) { args.multiple = true; // Set the max select items, if defined if ( $select.is( '[data-maximum-selection-size]' ) ) { args.maximumSelectionSize = $select.data( 'maximum-selection-size' ); } // If you don't have separator, add one (comma) if ( ! $select.is( 'data-separator' ) ) { $select.data( 'separator', ',' ); } if ( ! _.isArray( $select.data( 'separator' ) ) ) { args.tokenSeparators = [ $select.data( 'separator' ) ]; } else { args.tokenSeparators = $select.data( 'separator' ); } args.separator = $select.data( 'separator' ); // Define the regular Exp based on args.regexSeparatorElements = [ '^(' ]; args.regexSplitElements = [ '(?:' ]; $.each( args.tokenSeparators, function ( i, token ) { args.regexSeparatorElements.push( '[^' + token + ']+' ); args.regexSplitElements.push( '[' + token + ']' ); } ); args.regexSeparatorElements.push( ')$' ); args.regexSplitElements.push( ')' ); args.regexSeparatorString = args.regexSeparatorElements.join( '' ); args.regexSplitString = args.regexSplitElements.join( '' ); args.regexToken = new RegExp( args.regexSeparatorString, 'ig' ); args.regexSplit = new RegExp( args.regexSplitString, 'ig' ); } // Select also allows Tags, so we go with that too if ( $select.is( '[data-tags]' ) ) { args.tags = $select.data( 'tags' ); args.createSearchChoice = function( term, data ) { // eslint-disable-line no-unused-vars if ( term.match( args.regexToken ) ) { return { id: term, text: term }; } }; if ( 0 === args.tags.length ) { args.formatNoMatches = function() { return $select.attr( 'placeholder' ); }; } } // When we have a source, we do an AJAX call if ( $select.is( '[data-source]' ) ) { var source = $select.data( 'source' ); // For AJAX we reset the data args.data = { results: [] }; // Format for Parents breadcrumbs args.formatResult = function ( item, container, query ) { // eslint-disable-line no-unused-vars,max-len if ( 'undefined' !== typeof item.breadcrumbs ) { return $.merge( item.breadcrumbs, [ item.text ] ).join( ' » ' ); } return item.text; }; // instead of writing the function to execute the request we use Select2's convenient helper. args.ajax = { dataType: 'json', type: 'POST', url: obj.ajaxurl(), // parse the results into the format expected by Select2. processResults: function ( response, page, query ) { // eslint-disable-line no-unused-vars if ( ! $.isPlainObject( response ) || 'undefined' === typeof response.success ) { console.error( 'We received a malformed Object, could not complete the Select2 Search.' ); // eslint-disable-line max-len return { results: [] }; } if ( ! $.isPlainObject( response.data ) || 'undefined' === typeof response.data.results ) { console.error( 'We received a malformed results array, could not complete the Select2 Search.' ); // eslint-disable-line max-len return { results: [] }; } if ( ! response.success ) { if ( 'string' === $.type( response.data.message ) ) { console.error( response.data.message ); } else { console.error( 'The Select2 search failed in some way... Verify the source.' ); } return { results: [] }; } return response.data; }, }; // By default only send the source args.ajax.data = function( search, page ) { return { action: 'tribe_dropdown', source: source, search: search, page: page, args: $select.data( 'source-args' ), }; }; } // Attach dropdown to container in DOM. if ( $select.is( '[data-attach-container]' ) ) { // If multiple, attach container without search. if ( $select.is( '[multiple]' ) ) { $.fn.select2.amd.define( 'AttachedDropdownAdapter', [ 'select2/utils', 'select2/dropdown', 'select2/dropdown/attachContainer', ], function( utils, dropdown, attachContainer ) { return utils.Decorate( dropdown, attachContainer ); } ); args.dropdownAdapter = $.fn.select2.amd.require( 'AttachedDropdownAdapter' ); // If not multiple, attach container with search. } else { $.fn.select2.amd.define( 'AttachedWithSearchDropdownAdapter', [ 'select2/utils', 'select2/dropdown', 'select2/dropdown/search', 'select2/dropdown/minimumResultsForSearch', 'select2/dropdown/attachContainer', ], function( utils, dropdown, search, minimumResultsForSearch, attachContainer ) { var adapter = utils.Decorate( dropdown, attachContainer ); adapter = utils.Decorate( adapter, search ); adapter = utils.Decorate( adapter, minimumResultsForSearch ); return adapter; } ); args.dropdownAdapter = $.fn.select2.amd.require( 'AttachedWithSearchDropdownAdapter' ); } } // Save data on Dropdown $select.data( 'dropdown', args ); $container = $select.select2TEC( args ); // Propagating original input classes to the select2 container. $container.data( 'select2' ).$container.addClass( obj.getSelectClasses( $select ).join( ' ' ) ); // Propagating original input classes to the select2 container. $container.data( 'select2' ).$container.removeClass( 'hide-before-select2-init' ); $container.on( 'select2:open', obj.action_select2_open ); /** * @todo @bordoni Investigate how and if we should be doing this. * if ( carryOverData.length > 0 ) { carryOverData.map( function( dataKey ) { var attr = 'data-' + dataKey; var val = $select.attr( attr ); if ( ! val ) { return; } this.attr( attr, val ); }, $container ); } */ }; obj.ajaxurl = function() { if ( 'undefined' !== typeof window.ajaxurl ) { return window.ajaxurl; } if ( 'undefined' !== typeof TEC && 'undefined' !== typeof TEC.ajaxurl ) { return TEC.ajaxurl; } console.error( 'Dropdowns framework cannot properly do an AJAX request without the WordPress `ajaxurl` variable setup.' ); // eslint-disable-line max-len }; obj.action_select2_open = function( event ) { // eslint-disable-line no-unused-vars var $select = $( this ); var select2Data = $select.data( 'select2' ); var $search = select2Data.$dropdown.find( obj.selector.searchField ); // eslint-disable-line es5/no-es6-methods,max-len select2Data.$dropdown.addClass( obj.selector.dropdown.className() ); // If we have a placeholder for search, apply it! if ( $select.is( '[data-search-placeholder]' ) ) { $search.attr( 'placeholder', $select.data( 'searchPlaceholder' ) ); } }; /** * Configure the Drop Down Fields * * @param {jQuery} $fields All the fields from the page * @param {array} args Allow extending the arguments * * @return {jQuery} Affected fields */ obj.dropdown = function( $fields, args ) { var $elements = $fields.not( '.select2-offscreen, .select2-container, ' + obj.selector.created.className() ); // eslint-disable-line max-len if ( 0 === $elements.length ) { return $elements; } // Default args to avoid Undefined if ( ! args ) { args = {}; } $elements .each( function( index, element ) { // Apply element to all given items and pass args obj.element( element, args ); } ); // return to be able to chain jQuery calls return $elements; }; $( function() { $( obj.selector.dropdown ).tribe_dropdowns(); } ); // Addresses some problems with Select2 inputs not being initialized when using a browser's "Back" button. $( window ).on( 'unload', function() { $( obj.selector.dropdown ).tribe_dropdowns(); }); } )( jQuery, tribe_dropdowns, window.underscore || window._ ); /*! elementor-pro - v3.5.1 - 10-11-2021 */ .elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0} Nejlepší online kasino Mostbet Casino_1 - premier mills

Nejlepší online kasino Mostbet Casino_1

Nejlepší online kasino: Mostbet Casino

V poslední době se online kasina stala nesmírně populárními a jejich obliba stále roste. Mezi mnoha dostupnými možnostmi se Mostbet Casino vyznačuje jako jedno z nejlepších míst pro hráče, kteří hledají zábavu, vzrušení a šanci vyhrát pěkné částky peněz. Toto kasino nabízí širokou škálu her, od klasických automatů po vzrušující živé hry. S moderním designem a uživatelsky přívětivým rozhraním se hráči cítí jako doma a mají snadný přístup ke všem nabídkám. V této článku se zaměříme na to, co dělá Mostbet Casino výjimečným, jaké výhody nabízí a jak se do něj zapojit.

Předtím než se ponoříme hlouběji do fungování tohoto online kasina, je důležité poznamenat, že Mostbet Casino je regulováno a licencováno, což znamená, že hráči se mohou cítit bezpečně. Kromě toho kasino poskytuje různé bonusy a akce, které zvyšují šance na úspěch. Nejlepší na tom je, že hráči mají přístup k široké škále platebních metod, které jim umožňují rychle a bezpečně provádět transakce. Vzhledem k rostoucímu zájmu o online hazardní hry se Mostbet neustále vyvíjí a zvyšuje kvalitu svých služeb.

V následujících odstavcích se podíváme nejen na bonusy a promo akce, ale také na výběr her a zákaznickou podporu. Je důležité vědět, co všechno Mostbet Casino nabízí, než se rozhodnete zaregistrovat a začít hrát. V této článku se také podíváme na konkrétní hry a strategické tipy, které vám pomohou zvýšit vaše šance na vítězství. Bez ohledu na to, zda jste začátečník, nebo zkušený hráč, znají se detaily, které vám mohou pomoci dosáhnout úspěchu.

Takže se pohodlně usaďte a připravte se na podrobný přehled Mostbet Casino, který vám poskytne všechny informace, které potřebujete, abyste mohli začít hrát zodpovědně a zábavně. Pojďme se tedy podívat na klíčové aspekty tohoto online kasina, které dělají z něj ideální volbu pro každého hráče.

Historie a pozadí Mostbet Casino

Mostbet Casino bylo založeno v roce 2009 a rychle se zde etablovalo jako jedno z předních online kasin na trhu. Po celou dobu svého působení kasino následovalo neustálý růst a vyvíjení, a to jak ve smyslu dostupnosti her, tak i služeb pro zákazníky. Celosvětově se stalo synonimem pro inovaci a herní zážitky. Zkušenosti, které kasino zůstává relevantní na tak konkurenčním trhu, se daří díky neustálému zlepšování a přizpůsobování se potřebám hráčů.

Prvním důležitým krokem pro Mostbet Casino bylo získání potřebných licencí pro legální provozování online hazardních her. Tento aspekt vzbuzuje důvěru mezi hráči, neboť jasně dokazuje závazek kasina k fair play a bezpečnosti. Podpora různých jazyků a měn dále zajišťuje přístupnost pro globální hráčskou základnu, která se denně rozrůstá.

Rok
Událost
2009 Založení Mostbet Casino
2012 Rozšíření nabídky her
2019 Přidání živého kasina

Od svého vzniku se Mostbet Casino neustále inovuje a zavádí nové technologie pro zlepšení herního zážitku. Zároveň se aktivně zapojuje do různých soutěží a událostí, aby posílila svou značku a komunitu kolem kasina. To vše ukazuje na závazek kasina k úspěchu a důraz na spokojenost hráčů.

Licencování a regulace

Regulace online kasin je nesmírně důležitá a Mostbet Casino tuto povinnost bere velmi vážně. Kasino je licencováno a regulováno respektovanými autoritami, což je dů关键.’/g**Nestáhnout** s nimi. Hráči mohou být klidní v tom, že dodržují všechny zákonné normy a předpisy, což zajišťuje férovou hru a ochranou osobních údajů. Bezpečnost hráčů je vždy na prvním místě, což je jeden z hlavních důvodů jejich důvěry ve služby kasina.

Většina online kasin, včetně Mostbet Casino, dodržuje přísné standardy bezpečnosti a transparentnosti. Tímto způsobem zajišťují, že hráči mají možnost hrát bez obav. Každá hra je pravidelně testována nezávislými orgány, aby byla zaručena férovost a náhodnost výsledků. Celkově lze říci, že licencování a regulace tvoří základ úspěchu Mostbet Casino.

Jak funguje Mostbet Casino

Jednoduše řečeno, Mostbet Casino funguje jako klasické kasino, ale jeho zábava je poskytována online. Hráči se mohou registrovat a vytvářet své účty, na kterých jsou uchovávána jejich osobní data a historií her. Kasino nabízí širokou škálu her, včetně slotů, stolních her a živého kasina. Jejich platforma je intuitivní a přizpůsobitelná, aby hráči se mohli snadno orientovat a užívat si zkušenosti.

Pokud jde o transakce, Mostbet Casino poskytuje hráčům různé platební metody, včetně kreditních karet, elektronických peněženek a i kryptoměn. Tímto způsobem si každý hráč může zvolit metodu, která mu nejlépe vyhovuje, a to rychle a bezpečně. Všechny transakce jsou šifrovány a chráněny, což znamená, že hráči nemusí mít obavy o své finanční údaje.

Bonusy a promo akce

Každé online kasino, včetně Mostbet Casino, ví, jak důležité je nabízet atraktivní bonusy a promo akce, aby přilákalo nové hráče a udrželo stávající. Většina nabídek obsahuje bonusy k prvnímu vkladu, bezrizikové sázky, zatočení zdarma a další výhody. Tyto bonusy mohou hráčům pomoci zvýšit jejich šance na úspěch a přitom zlepšit herní zážitek.

Přehled aktuálních bonusů a promo akcí v Mostbet Casino můžete vždy najít na jejich webových stránkách. Hráči by si měli být vědomi podmínek spojených s každou akcí, jelikož některé z nich mohou mít specifické požadavky na sázení. Je důležité znát tyto detaily, aby hráči mohli efektivně využít tyto výhody.

  • Bonifikace za registraci
  • Týdenní a měsíční akce
  • Bodovací program pro stálé hráče

Bonusy však nejsou jedinou výhodou, kterou Mostbet Casino nabízí. Mnoho hráčů se těší také na pravidelné soutěže a turnaje, kde mají šanci vyhrát atraktivní ceny. Tyto události přidávají další vrstvu zábavy a vzrušení do herního prostředí, a tak pomáhají budovat komunitu hráčů kolem kasina. Kromě toho kasino někomu poskytuje užitečné rady a nástroje, jak sázet zodpovědně.

Typy bonusů

V rámci herních bonusů existuje několik typů, které mohou hráči využít, aby zvýšili svůj herní potenciál. Například, pro nově registrované uživatele jsou k dispozici bonusy při prvním vkladu, které zvyšují počáteční bankroll. Tímto způsobem mohou noví hráči začít hrát s většími prostředky.

Mezi další typy bonusů patří bezrizikové sázky, které hráčům umožňují vyzkoušet si různé hry bez rizika ztráty vlastních peněz. To je skvélé zejména pro začátečníky, kteří chtějí zjistit, jak kasino funguje, aniž by museli sázet vlastní finanční prostředky. Mostbet Casino také nabízí pravidelné akce a turnaje, které přitahují hráče a motivují je k dalšímu hraní.

Výběr her v Mostbet Casino

Jedním z hlavních lákadel Mostbet Casino je široký výběr her, které uspokojí jak začátečníky, tak zkušené hráče. Kasino nabízí širokou škálu pokies, stolních her, živých dealerů a dokonce i sporty, které umožňují hráčům sázet na různé události. Sortiment her je pravidelně aktualizován novými tituly a verzemi, což zajišťuje, že hráči budou mít vždy co hrát.

Mezi klasické automaty a moderní video automaty je něco pro každého. Mostbet Casino nabízí výherní automaty s různými tématy, bonusovými funkcemi a výplatními poměry, které zaručují vzrušení u hráčů. Stolní hry, jako je ruleta a blackjack, jsou také k dispozici v několika variantách, což umožňuje hráčům vybírat si podle jejich preferencí a úrovně zkušeností.

Typ hry
Příklady
Automaty Starburst, Gonzo’s Quest
Stolní hry Blackjack, Ruleta
Živé hry Živá ruleta, Živý blackjack

Živé kasino v Mostbet Casino přináší do online hraní zcela novou dimenzi. Hráči si mohou užít interakci s živými dealery a ostatními hráči, což simuluje atmosféru tradičního kasina. Každý, kdo hledá autentický herní zážitek, by měl určitě vyzkoušet živé hry nabízené tímto online kasinem. Takže, ať už preferujete automaty, stolní hry nebo živé kasino, Mostbet Casino má co nabídnout.

Jak vybrat správnou hru

Jednou z nejdůležitějších otázek, které si hráči musí položit, je, jak si vybrat správnou hru v Mostbet Casino. Prvním krokem je zjistit, jaký typ her vás skutečně baví. Mnoho hráčů preferuje automaty, zatímco jiní se rádi zapojí do strategických stolních her, jako je blackjack nebo poker. Doporučuje se vyzkoušet různé hry, abyste našli tu, která vám nejlépe vyhovuje.

Nicméně, kromě osobních preferencí může také hrát roli riziko a výplata jednotlivých her. Například, pokud hledáte vysoké výplaty, můžete chtít zkusit automaty s vysokým procentem návratnosti. Na druhou stranu, pokud jste nováček a teprve se učíte pravidla, stoly s nižšími sázkovými limity mohou být lepší volbou, abyste minimalizovali možné ztráty.

Zákaznická podpora a služby

V oblasti online kasin je zákaznická podpora klíčovým faktorem, který může hráčům zajistit bezproblémové herní zkušenosti. Mostbet Casino poskytuje široké spektrum služeb zákaznické podpory, které zahrnují živý chat, e-mail a telefonické služby. Důležité je, že týmy zákaznické podpory jsou dostupné 24 hodin denně, což zaručuje, že hráči dostanou pomoc kdykoliv ji potřebují.

Kromě toho existuje sekce FAQ na webových stránkách, která obsahuje často kladené dotazy, které mohou hráčům poskytnout odpovědi na běžné dotazy bez nutnosti kontaktovat podporu. To šetří čas a umožňuje hráčům okamžitě najít řešení pro jejich problémy. Mostbet Casino se snaží neustále zlepšovat kvalitu svých služeb zákaznické podpory, aby zajistilo nejlepší herní zážitek pro své hráče.

  • Živý chat – Rychlé odpovědi a řešení problémů.
  • E-mailová podpora – Pro složitější dotazy.
  • Telefonická podpora – Osobní komunikace s odborníky.

Zákaznická podpora by měla být také schopna zodpovědět dotazy týkající se účtů, vkladů a výběrů, což je nesmírně důležité pro zajištění bezpečnosti hráčů. Hráči se nikdy nemusí obávat o svá data a peníze, protože kasino dbá na maximální ochranu. V náročných situacích nebo problémech je zákaznická podpora v Mostbet Casino vždy připravená pomoct.

Pohodlí a dostupnost

Při výběru online kasina je také důležité zvážit dostupnost a pohodlí platforem. Mostbet Casino nabízí přístup na různých zařízeních, včetně počítačů, tabletů a mobilních telefonů. Toto zajišťuje, že hráči mohou hrát kdykoliv a kdekoliv, což zvyšuje flexibilitu hraní a umožňuje jim užít si hry bez omezení.

Mobilní aplikace Mostbet Casino byla navržena tak, aby byla intuitivní a snadně se ovládala, což umožňuje hráčům snadno najít své oblíbené hry a využívat všechny služby nabízené kasinem. Tímto způsobem mohou hráči snadno sázet a vyhrávat bez ohledu na to, zda jsou doma, v práci nebo na cestách. Moderní technologie zlepšují výkon a zkvalitňují hráčský zážitek.

Zodpovědné hraní

V oblasti online hazardu je zodpovědné hraní nesmírně důležité. Mostbet Casino si uvědomuje, jak důležité je chránit hráče před problémovým chováním při hazardních hrách. Proto casino nabízí různé nástroje a praktiky, které pomáhají hráčům řídit jejich sázení a udržovat milou a zábavnou atmosféru.

Mezi tyto nástroje patří limitované sázení, možnost se vyloučit z hraní a dostupnost poradenství pro ty, kteří potřebují pomoc. Hráči by měli být si vědomi svých limitů a hrát zodpovědně. Je důležité se bavit, ale zároveň je nutné mít na paměti, že hazardní hry by nikdy neměly být brány jako výdělečná činnost.

  1. Stanovte si rozpočet – Hrajte pouze s penězi, které si můžete dovolit ztratit.
  2. Využijte nástroje pro zodpovědné hraní – Pomocné funkce pro ochranu hráčů.
  3. Hrajte pro zábavu – Vždy si pamatujte, že hlavním cílem je zábava.

Dodržování zásad zodpovědného hraní je nezbytné pro udržení zdravého vztahu k hazardu. Mostbet Casino se snaží svým hráčům poskytovat vše potřebné pro zajištění bezpečné a příjemné zkušenosti s hazardem online. Každý hráč by měl být zodpovědný a věnovat pozornost svému chování, aby si mohl užívat hraní co nejdéle.

Jak se registrovat v Mostbet Casino

Registrace v Mostbet Casino je jednoduchý a rychlý proces. Noví hráči se mohou na platformě snadno zaregistrovat a okamžitě začít objevovat širokou nabídku her. Proces registrace obvykle probíhá ve třech základních krocích: vyplnění registračního formuláře, ověření e-mailu a přihlášení se do účtu.

Prvním krokem je vyplnit registrační formulář s osobními informacemi, jako je jméno, e-mailová adresa a požadované heslo. Důležité je, aby hráči zadali platné údaje, aby se předešlo problémům při ověřování účtu. Po vyplnění formuláře je nutné potvrdit e-mailovou adresu, kterou hráč uvedl, aby se aktivace účtu dokončila.

A nakonec, jakmile je účet aktivován, hráči se mohou přihlásit a začít hrát. Je důležité mít na paměti, že kasina často vyžadují ověření identity, což znamená, že hráči mohou být požádáni o dodání dodatečných dokladů totožnosti pro ochranu a zabezpečení jejich účtu. To je normální praxe a zajišťuje, že Mostbet Casino nabízí bezpečné a bezpečné prostředí pro všechny své hráče.

Pohodlný registrační proces

Jak bylo zmíněno, registrační proces na Mostbet Casino je opravdu pohodlný a bezproblémový. Od přihlášení po vytvoření účtu uběhne jen několik minut. Hráči mají tak možnost okamžitě začít zažívat zábavu a vzrušení, které kasino nabízí. Mnoho hráčů ocení jednoduchost procesu a rychlost, s jakou jsou schopni začít hrát.

Důležité je také zmínit, že Mostbet Casino nabízí neustále aktualizovaný design, který ještě více usnadňuje registraci a navigaci. V případě jakýchkoli otázek či potíží mohou hráči vždy kontaktovat zákaznickou podporu.

Závěr

Mostbet Casino je jedním z nejzajímavějších a nejdůvěryhodnějších online kasin na trhu. Díky široké nabídce her, atraktivním bonusům a profesionální zákaznické podpoře si každý hráč může užít příjemný a bezpečný herní zážitek. Nezáleží na tom, zda jste začátečník nebo zkušený hráč, Mostbet Casino má co nabídnout. S respektem k etice hraní a bezpečnosti všech hráčů si casino zaslouží vaše důvěru a zájem. Staňte se součástí vzrušující dimenze online her na Mostbet Casino dnes!

Leave a Comment

Your email address will not be published. Required fields are marked *