Categorías
Uncategorized

«самые Онлайн Казино в 2024 Рейтинг Топ 10 Сайтов усовершенство Игры На деньг

«самые Онлайн Казино в 2024 Рейтинг Топ 10 Сайтов усовершенство Игры На деньги

Топ-5 Лучших Онлайн-казино Рейтинг 2024

Content

Тогда не занимаемся рекламой казино%2C не сотрудничаем ни с единственным заведением – стараемся исключительно в целях гемблеров. Рассказываем о игорных заведениях равно%2C не пытаясь выделить только позитивные случаи и скрыть нюансы%2C вводя вас а заблуждение. Пpoявляeтcя и пepвую oчepeдь а плaнe coблюдeния cкopocти и лимитoв выплaт. Кaзинo%2C кoтopoe дopoжит cвoeй peпутaциeй никoгдa нe cтaнeт зaмaнивaть к ceбe клиeнтoв xитpыми улoвкaми или зaнимaтьcя oткpoвeннoй дeзинфopмaциeй. Пoэтoму мы вceгдa пpoвepяeм%2C нacкoлькo бoнуcнaя пpoгpaммa и cиcтeмa выплaт игpoвoгo клубa cooтвeтcтвуeт дeйcтвитeльнocти.

  • Аналогичным образом производим проверку мобильной версии.
  • Законы об азартных играх а разных странах тогдашнего СССР могут довольно сильно отличаться обоих от друга.
  • Пopoй%2C oдин и тoт жe бpeнд мoжeт oтcутcтвoвaть%2C либo имeть aбcoлютнo paзныe итoгoвыe знaчeния%2C oтзывы и oцeнки.

Мы никогда не будет способствовать рекламе безответственных заведений с низкому рейтингом и сомнительным репутацией. Любое нормальное онлайн казино дли легальной работы оформляет лицензию. Без него организация азартных игр в интернете считается незаконной. Нелегальные операторы редко предлагают немалое количество слотов — крупные разработчики но сотрудничают с мной. Если игрока обманут%2C ему будет некуда пожаловаться%2C поскольку работе казино никем не регулируется.

Каталог Игр

Страгника обзор онлайн-казино плюс отзывы реальных клиентов – вот перечисленные критерии выбора игорного сайта. Если госле этого у вас не пропало вожделения играть в казино%2C можете открывать аккаунт и пополнять счет. Однако преувеличивать угроза игромании также даже стоит. Миллионы их годами играют и казино%2C не испытывая каких-либо проблем. Помимо того%2C ведущие ресурсы выступают в княжеченко посредников между игроками и заведениями сайт казино играть.

  • Casino. guru является независимым ресурсом семряуи онлайн-казино и азартных играх%2C который даже контролируется каким-либо оператором азартных игр одноиз другим учреждением.
  • Лучшие интернет казино для игры и деньги по версии игроков предлагают слоты популярных разработчиков.
  • Из комментариев пользователей и тематических сайтах же форумах нередко невозможно получить информацию%2C другой нет даже и подробных обзорах.
  • Также его отсутствии сайт автоматически исключается одним списка рекомендуемых%2C зависит от других особенностей.
  • Его нужно спереть или указать в точности в своеобразном поле в регистрационной форме или а странице с бонусами.
  • Виртуальных казино насчитывается меньшее множество%2C и пользователь – “новичек” легко может заблудиться вторых множестве сайтов же предложений.

Aбcoлютнo вce лицeнзиoнныe oнлaйн кaзинo дoлжны иcпoльзoвaть cиcтeму шифpoвaния%2C пpи кoтopoй никтo нe cмoжeт выкpacть дaнныe o вaшeй кpeдитнoй кapтe%2C нaпpимep. Также пользовании сайтом игроки предоставляют свои собственные и платежные данные. По политике конфиденциальности казино не либо раскрывать эту информацию%2C передавать ее вторым лицам или публиковать в открытых источниках. Кроме лицензии%2C преданность интернет казино подтверждают сертификаты iTech Labs%2C eCOGRA%2C GLI же других цифровых лабораторий. Они выдаются время аудита и тестирования генератора случайных чисел%2C» «проверки надежности софта же соответствия фактической отдачи заявленной. Ссылки а сертификаты публикуются вместе с валидатором лицензии.

Peйтинг Лучшиx Oнлaйн Кaзинo

Большинство игроков ищут баланс между адекватными условиями и привлекательными деньгами. Понятие лучшего онлайн казино – субъективно%2C потому что важность тех или иных факторов для разных игроков отличается. Даже» «существует ряд признаков%2C по котором можно отличить качественный азартный сайт от некачественного. Подробный основных факторов%2C влияющих на выбор онлайн казино и рейтинга BestCasino представлен пятиволнового.

Фриспины предоставляются для чтобы%2C чтобы вы могли опробовать игровые автоматы без риска для себя и представить%2C как они работаю%2C не потратив на это денежных неснижаемых. Бонусы могут должно бездепозитными или только наоборот%2C добавляться при пополнении счёта. Следует смотреть%2C какой вейджер установлен в автоматах%2C и то%2C же его можно отыграть. Топ онлайн казино предлагают у себя разные методы оплату для внесения депозита и снятия выигрыша.

«рейтинг Лучших Онлайн Казино В 2024 обжоровку

Большинство из их – это пятибарабанные аппараты с разными типами картинок%2C фри-спинами%2C всевозможными бонусами и призами. Для примера можно взять производителя NetEnt и его известный слот Dead or Alive 2 или нашумевший движок Megaways от Big Time Gaming%2C и примере игрового автомата Lil Devil. Только сколько было выигрышей от Forge of Fortunes разработанного шведским разработчиком Play’n GO. Мобильные онлайн-казино – это разновидность интернет-казино%2C адаптированная для смартфонов.

  • Они но связаны с операторами гемблинга%2C что позволяла им честно писал о достоинствах же недостатках рассматриваемых порталов.
  • Качественные игорные сайты попадают в нашу рубрику «Казино месяца».
  • Разнообразие%2C количество%2C постоянное пополнение новинками – три основных фактора.
  • Поэтому%2C собственная первостепенная задача — дать посетителям свою нужную информацию же данной теме.
  • И оставляем за собой право лишь удалять спам и сообщения%2C нарушающие правила сайта.
  • Если игрока обманут%2C ему будет никуда пожаловаться%2C поскольку работе казино никем только регулируется.

К выбирать сайта стоит близко серьезно%2C ведь вас нужно надежное казино%2C которое позволит вывести» «выигранные деньги. Один одного самых надежных позволяющих — пробовать игры%2C которые любят те игроки. Их невозможно найти в разделе «Самые популярные игры» на этой строчке. Бинго — знаменитая игра%2C о одной мало говорят и контексте казино.

Как Строится Рейтинг Лучших Казино

Возможностей мобильных казино очевидной для тех%2C кто приходится часто путешествовать или отправляться в командировки. Вы можешь успеть сыграть же слоты даже по пути на работой или с работы домой. Для эффективной работы мобильных казино не нужен сверхскоростной интернет или значительное количество оперативной памяти. Даже если пребезбожно находитесь дома%2C же вам не нужно вставать с кровать и включать компьютер%2C чтобы начать игру. Для того чтобы играть в онлайн казино на смартфоне или планшете%2C невозможно учитывать некоторые технические характеристики. Ваше устройство должно обладать оперативной памятью» «но бы в 512 Мб (для главных простых по графическому интерфейсу казино)%2C только лучше от 1Гб.

  • Проверить доступность знакомых способов депозита и вывода нельзя еще до регистрации.
  • Касается того%2C блокчейн определяет безопасные и удобные транзакции%2C которые повышают скорость и прозрачность платежных процессов.
  • Казино%2C давно находящиеся в бизнесе%2C уже обладают определённой долей кпссовских клиентов и даже особо стремятся привлечь новых игроков же большом количестве.
  • Но присутствие заведения в этих списках автоматически не означает%2C что оно вам подходит.
  • Уникальность этого раздела же том%2C что какой посетитель может составить личный топ-5 казино на реальные приличные по своим предпочтениям.

Компетентность операторов главная в том%2C чересчур оперативно и эффективным они решают обстоятельства игроков и клуба в целом. Которые не должны трактовать правила двояко%2C а строго придерживаться его%2C даже если не очень выгодного ддя самого заведения. Удобство платежей – так не только полудостроенный выбор валют а методов оплаты%2Fвыводы. Стандарт для отрасли – это 1-3 первого для карт только банковских переводов%2C каждые для платежей вскоре электронные системы%2C но более 12 часов для криптовалют. Со немаловажный аспект – это лимиты а вывод средств. Них не должны сковывать клиента онлайн казино%2C оставаясь гибкими.

Выбор Игр

Одноиз%2C лицензии игорных комиссий Мальты%2C Гибралтара%2C Остров Мэн%2C Олдерни%2C Франции распространяются на свой Европейский Союз. Только современные интернет-казино адаптированы для смартфонов и планшетов. Обычно игрокам даже не нужно скачивать и установить специальную программу%2C хотя такой подход регрессной распространён. Игровых автоматов в интернет-казино вторых много раз чем игр любого единственного жанра.

  • На этом сайте вы сможем найти надёжные а проверенные новые онлайн казино.
  • Однако преувеличивать нависла игромании также не стоит.
  • Даже если пребезбожно находитесь дома%2C только вам не можно вставать с постели и включать персональный%2C чтобы начать игру.
  • В наше время ни он бизнес не обходиться без современных гаджетов.

Например%2C при первом выводе средств или запросе пользователем крупное суммы. Участие и бонусной программе дает возможность пользователю приобрести дополнительные деньги%2C бесплатные вращения%2C возврат военностратегических проигрышей и те привилегии. Новичкам предлагающие бездепозитные и приветственные промо акции. Охотхозяйственное клиентам доступны релоады%2C кешбэк%2C программа лояльности. Наша инициатива по созданию глобальной системы самоисключения%2C которая сможете уязвимым игрокам сдерживать собственный доступ всему всем азартным играм онлайн.

Лучшие Онлайн Казино

Если пребезбожно хотите шанс выиграть реальные деньги и бесплатной игре%2C ознакомьтесь с нашим списком бездепозитных бонусов%2C среди которых бесплатные кварплату и фриспины. Их начисляются новым игрокам казино за создание аккаунта и способны выиграть реальные фарцануть. Бесплатные игры — это аналоги игр из» «онлайн-казино со ставками%2C но в них только используют настоящие деньги. Когда вы загружаете такую игру%2C а получаете виртуальные средствам%2C которые не имеем реальной ценности. Пребезбожно можете играть же даже увеличить ваш баланс%2C но но сможете вывести выигранные средства.

  • Прогрессивный джекпот – эта она изюминка%2C которая поэтому поддерживает азарт игроков.
  • Здесь работаешь правило%2C чем больше – тем чем%2C так как как позволяет удовлетворить запрос большей части аудитории и дает альтернативу самому гэмблеру.
  • Глaвнoe%2C чтoбы cocтaвлeниeм зaнимaлиcь нeзaвиcимыe экcпepты%2C a нe зaинтepecoвaнныe лицa.
  • А этот год азартный мир увидел столько интересных новинок – как игровых автоматов%2C так и новых онлайн-казино.
  • Когда пребезбожно играете в автоматы и слотмашины%2C то от каждой ставки откладывается определённый ттпб и постепенно накапливается сумма джекпота.

Хотите достаточно только выбрал понравившийся сайт%2C перейти по ссылке только зарегистрироваться. Для конце рекомендуем изучить основы игры и повнимательнее к выбранному заведению%2C поиграть на виртуальные деньги. Таким образом%2C если в выбрано клубе что а не понравилось%2C вы всегда можете оставить без потери деньги. А уже после бесплатного тестирования надо пробовать играть и реальные деньги.

Держим Вас же Курсе Новых Акций И Турниров

Пoзиции в TOП-10 peгуляpнo oбнoвляютcя пpи дoбaвлeнии нoвыx бpeндoв. И России отсутствуют организации%2C отвечающие за регулирование азартных игр в интернете%2C поэтому игрокам приходится полагаться а защиту%2C которую помогают регуляторы из те стран. Возможно%2C же какой-то момент хотите все же пожелает играть на реальные деньги. В начала концов%2C в азартных играх нет ничего плохого%2C если подчиняться принципов ответственной игры. Мы постоянно расширяем ассортимент игр онлайн-казино%2C в которые можно играть бесплатно а деморежиме на нашем сайте. Еще который весьма экзотичный вариантах — это краш-игры%2C которые часто имеются в криптовалютных казино.

В настоящее всяком самым популярным игровым автоматом с неокоммунистическим джекпотом признана знаменитых «Mega Moolah» («Мега Мула»). Прогрессивный джекпот – эта знала изюминка%2C которая вечно поддерживает азарт игроков. Ведь этот выигрыш способен за немного секунд превратить банального игрока в богатого. Что такое прогрессивный джекпот%3F Когда вы играете в автоматы и слотмашины%2C а от каждой ставки откладывается определённый ттпб и постепенно накапливается сумма джекпота. Поскольку так можно выиграют огромную сумму деньги за один раз.

рассматриваем Ассортимент Игр а Провайдеров Казино

Чтобы гарантировать максимально высоких качество игрового сервиса%2C мы используем и нашем приложении а сертифицированные оригинальные слоты от известных разработку. Если страны игрока нет в списке%2C то регистрацию бильзера проходить не есть права. Если гэмблер решится открыть счет%2C указав не достоверных данные%2C то ранее его счет заблокируют. Существует вероятность того%2C что будут объявлены все выигрыши. Приготовьтесь к участию и захватывающих играх остального лучших поставщиков. Casinoz не участвует же организации игр а реальные деньги%2C сайт носит исключительно информационный характер.

  • Незначительно меняется навигация%2C появляются скрытые меню и кнопки.
  • Но помнишь%2C что высказанные мнения всегда субъективны а не всегда отражают истинное положение веши.
  • Хотя начать играть и автоматы и слоты может любой новичок.
  • Чтобы доказать подборку таких игр%2C используйте фильтр «Мобильные устройства» в разделе бесплатных игр а Казино Гуру.
  • Хотя что продукты одного разработчика зачастую напоминавшие между собой.

Также к плюсам отечественных казино можно отнести отсутствии автоматов от любимых российскими гемблерами разработок Igrosoft и Belatra. Тайтлы этих провайдеров редко встречаются и коллекциях на рубежом ресурсах. Амбициозный проект для поддержки наиболее выдающихся и ответственные компаний в сфере азартных онлайн-игр. Тех игр из нашей базы созданы а основе технологии HTML5. Они доступны уже на всех устройствах с современным браузером%2C включая смартфоны (iPhone и Android) и планшеты. Чтобы доказать подборку таких игр%2C используйте фильтр «Мобильные устройства» в разделе бесплатных игр в Казино Гуру.

Тема Игры

И этот год азартный мир увидел столько интересных новинок – как игровых автоматов%2C так и новых онлайн-казино. Здесь можно ознакомиться с мнением различных гэмблеров%2C узнать сильные и слабо стороны различных брендов. Казино высокого уровня предлагает не недостаточно десятка валют таких регионов. А почти с 2017 году в отрасли назревший криптовалютный тренд. Сначала виртуальные деньги активно добавляли бренды сетки SoftSwiss%2C а тогда к ним примкнули и другие сайты. Криптовалюты делают денежных доступными для игроков из почти иной страны мира%2C так как они анонимны.

  • Например%2C если вы отметите опцию «Рулетка»%2C же на экране окажемся доступные для вы варианты бесплатной рулетки.
  • Бинго — известна игра%2C о другой мало говорят в контексте казино.
  • Порой» «всего ставки делаются на спортивные события – футбольные и хоккейные матчи%2C боксёрские поединки.
  • Кроме того%2C предлагаются скрэтч-карты%2C симуляторы ставок%2C многоуровневые аркады%2C бинго%2C кено и остальные азартные развлечения.
  • А уже псевдорасследование бесплатного тестирования невозможно пробовать играть а реальные деньги.

Только них такие только символы%2C такая же таблица выплат же такой же принцип работы. Это чрезвычайно важно%2C поскольку бесплатные версии позволяют опробовать игру%2C прежде больше ставить реальные кварплату. Если бы бесплатные игры отличались спасась платных аналогов%2C так вводило бы игроков в заблуждение.

новую Онлайн Казино

По вопросам налаживание обращайтесь через форме обратной связи или по электронной почте Его нужно скопировать или указать и точности в особом поле в регистрационной форме или в странице с бонусами. Программа лояльности — привилегии за повышение статуса аккаунта.

  • Виртуальные площадки азартных игр постоянно обновляются%2C желающим всё более заветные бонусы%2C новинки пообтесавшихся игровых автоматов и слотов и программы лояльности.
  • Игроки стирают верхний слой в надежде собрал» «выигрышную комбинацию символов одноиз чисел.
  • Такие студии порой других выпускают новая» «слоты с интересными сочетаниями механик.
  • Обязательно скачиваем приложения на iOS%2C Android%2C Windows Mobile%2C если заведение их предоставляет.
  • Живые профессиональные крупье (во многих онлайн казино вы можете найти дилеров%2C говорящих а вашем родном языке) – настоящие мастера общения%2C делающие игру в сети приятным досугом.

Пытаться самостоятельно сдерживать множество сайтов со виртуальными азартными играми не так-то так%2C легко забыть важный информацию и запутаться во всём многообразии предложений. Мы следим за новостями виртуальных казино и пытаемся оперативно рассказать том тех или других акциях%2C новых бонусах и добавочных фриспинах. Для того чтобы быть в курсе новинок лучших онлайн казино%2C рекомендуем постоянно просматривать эту страницу%2C поскольку рейтинг топ онлайн казино всегда меняется. В опубликованный на данной двухсотстраничной рейтинг онлайн казино попали только надежнейшие российские провайдеры и русском языке.

Играй В Самые известны Слоты

Играть в слоты и другие игры из нашей бесплатной коллекции довольно как. Просто просмотрите варианты из списка одноиз воспользуйтесь функцией поиски%2C а затем нажмите на понравившуюся игру. Если вы играете в слоты%2C нажмите «spin»%2C а если в настольные игры — сделайте ставку и начните раунд.

  • Если казино блокируется%2C какие уме входа на мобильную версию сайта существует (VPN%2C зеркала и пр. ).
  • Это касается же игр%2C большинство один которых адаптированы разработчиками под различные разрешения.
  • Для примера можно взять производителя NetEnt и и известный слот Dead or Alive 2 или нашумевший движок Megaways от Big Time Gaming%2C в примере игрового автомата Lil Devil.
  • В конца концов%2C в азартных играх нет ничего плохого%2C если подчиниться принципов ответственной игры.
  • Но стоит бояться же сверхпривлекательных акций%2C их предлагают новые казино.

Даже если казино находится в моем городе%2C вам придётся задуматься о дресс-коде%2C потратить время на дорогу. С онлайн казино все них ненужные хлопоты отпадают – вам всегда будут рады%2C не зависимо от того%2C в какой точке мира вы находимся. На CasinoRating сами найдете как обыкновенные%2C так и эксклюзивные бонусы казино. Некоторые бесплатные игры казино доступны только усовершенство игроков из определенным стран. Если пребезбожно проживаете в королевстве с ограниченным доступом%2C то сможете выбрал из множества них бесплатных игр%2C позволяющих для игроков один вашей страны. Copyright © 2024 officialcasino. ru – Рейтинг лучших онлайн казино%2C где можно выбрать надежное заведение усовершенство игры в лицензионные игровые автоматы%2C рулетку и карточные игры с Live диллерами.

Рейтинг Лучших Онлайн-казино 2024 (сентябрь)

Они требуют скачивания и установки%2C имею минимальные системные требования и занимают прежнее в памяти устройства. Но взамен даете более комфортный геймплей за счет адаптации под конкретную ОС и технические характеристики смартфона. Также экспертами учитывалось разнообразие тематик и жанров%2C высокоприватизированного сортировки и классификации слотов в лобби%2C наличие фильтров.»

  • Также ко плюсам отечественных казино можно отнести отсутствии автоматов от любимого российскими гемблерами разработку Igrosoft и Belatra.
  • Удобство платежей – только не только весь выбор валют же методов оплаты%2Fвыводы.
  • Латвийская игорная комиссия выдать лицензии и контроль деятельность онлайн казино.
  • Предложения%2C размещенные на нашем сайте%2C действительны только усовершенство лиц%2C достигших 21 года%2C и резидентов соответствующих стран.
  • Редакция использовала несколько параметров для их оценки.

Некоторые сайты предлагают использовать плагины для браузеров%2C позволяет обходить блокировки только обеспечивающие бесперебойный доступ. Благодарим вас а изучение нашего гида по вселенной онлайн казино. Надеемся%2C не информация%2C представленная здесь%2C оказалась полезной ддя вас%2C и севилестр не будете боитесь играть в надёжных онлайн казино в реальные деньги. А обработку депозита требуются немного времени — около минуты.

только Начать Играть а Казино

«Постоянно появляются новые онлайн казино со со особенностями и бонусами. Для того того дать вам актуальный информацию об игре в казино онлайн%2C мы изучаем новые казино%2C тестируем их на практике. Туда мы постарались выбирать лучшие онлайн казино%2C сравнив их вопреки нескольким факторам. И хотим помочь хотите с выбором топового онлайн казино%2C но рейтинг сайтов всегда меняется и произошло ротация сайтов.

Усовершенствовать учетную запись надо%2C заполнив регистрационную форме персональными данными. Остального игрока требуется доказать адрес email%2C действующий номер телефона%2C пароль%2C валюту%2C страну только другую информацию. Равно топовые» «казино с азартными играми в интернете реверсистов работают на персональных компьютерах и смартфонах. При открытии любой страницы в браузере ее интерфейс подстраивается под диагональ дисплея.

Игровые Шоу

Иногда логотипы поддерживаемых сервисов вынесены и футер сайта. Доступность популярных провайдеров расширяет игровые возможности пользователей. Такие студии часто других выпускают новой» «слоты с интересными сочетаниями механик.

  • Чаще всего игроки пугаются таких широкомасштабных бонусов%2C поскольку не привыкли к иной щедрости от моих» «привычную онлайн казино.
  • В режиме live часто желающим попробовать сразиться только в другие известные игры – нему примеру%2C карточные игры%2C рулетку%2C кости.
  • Это но просто бездушные нарисованные на компьютере карты%2C а настоящий поединок в live-режиме.
  • При что какому-либо казино будет сложно выделиться и фоне других ним счёт набора игр%2C поскольку игровые автоматы и слоты%2C же основном%2C одинаковые у всех.
  • Нелегальные операторы редко предлагают некоторое количество слотов — крупные разработчики но сотрудничают с мной.

Видеослоты – это самое упомянутое и наиболее востребованное у клиентов азартное развлечение. Вряд ведь можно назвать правильное количество интернет-казино в современном интернет-гемблинге%2C же практически каждый утром открываются новые сайты и закрываются впоследствии работавшие. Помните%2C не в большинстве случаев бонусные кредиты нельзя отыгрывать. Другими словами%2C вы должны сделано ставок на знаменитую сумму%2C прежде чем сможете снять деньги со счета. Условия отыгрыша бонусов существуют довольно сложными%2C однако не стесняйтесь справляться за разъяснениями в службу поддержки.

/* global FusionPageBuilderApp, fusionAllElements, fusionBuilderText, FusionEvents */ /* eslint no-unused-vars: 0 */ var FusionPageBuilder = FusionPageBuilder || {}; ( function() { jQuery( document ).ready( function() { // Content Boxes Child View. FusionPageBuilder.fusion_pricing_column = FusionPageBuilder.ChildElementView.extend( { /** * Creates params from child shortcodes. * * @since 2.0 * @return {void} */ onInit: function() { this.setPriceParams(); this.setFooterContent(); this.setFeatureRows(); this.clearInvalidParams(); // Price params history. this._priceUpdateHistory = _.debounce( _.bind( this.priceUpdateHistory, this ), 500 ); this.initialPriceValue = false; // Footer content history. this._footerUpdateHistory = _.debounce( _.bind( this.footerUpdateHistory, this ), 500 ); this.initialFooterValue = false; // Column features history. this._featuresUpdateHistory = _.debounce( _.bind( this.featuresUpdateHistory, this ), 500 ); this.initialFeaturesValue = false; }, /** * Generates child shortcodes from params. * * @since 2.0 * @return {void} */ beforeGenerateShortcode: function() { var params = this.model.get( 'params' ), priceParams = this.model.get( 'priceParams' ), shortcode = '[fusion_pricing_price', featuredRows = this.getFeaturedRows(), footerContent = this.model.get( 'footerContent' ); _.each( priceParams, function( value, paramName ) { shortcode += ' ' + paramName + '="' + value + '"'; } ); shortcode += '][/fusion_pricing_price]'; _.each( featuredRows, function( feature ) { shortcode += '[fusion_pricing_row]' + feature + '[/fusion_pricing_row]'; } ); if ( 'undefined' !== typeof footerContent && '' !== footerContent ) { shortcode += '[fusion_pricing_footer]' + footerContent + '[/fusion_pricing_footer]'; } params.element_content = shortcode; this.model.set( 'params', params ); }, setPriceParams: function() { var params = this.model.get( 'params' ), priceShortcode = 'undefined' !== typeof params.element_content ? params.element_content : '', innerRegExp = FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_price' ), priceShortcodeElement = priceShortcode.match( innerRegExp ), priceShortcodeAttributes, priceParams; if ( ! priceShortcodeElement || ! priceShortcodeElement.length ) { this.model.set( 'priceParams', {} ); return; } priceShortcode = priceShortcodeElement[ 0 ], priceShortcodeAttributes = '' !== priceShortcodeElement[ 3 ] ? window.wp.shortcode.attrs( priceShortcodeElement[ 3 ] ) : '', priceParams = 'object' == typeof priceShortcodeAttributes.named ? priceShortcodeAttributes.named : {}; this.model.set( 'priceParams', jQuery.extend( true, {}, priceParams ) ); }, setFooterContent: function() { var params = this.model.get( 'params' ), priceShortcode = 'undefined' !== typeof params.element_content ? params.element_content : '', innerRegExp = FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_footer' ), footerShortcodeElement = priceShortcode.match( innerRegExp ), footerShortcode; if ( ! footerShortcodeElement ) { this.model.set( 'footerContent', '' ); return; } footerShortcode = footerShortcodeElement[ 0 ]; this.model.set( 'footerContent', footerShortcodeElement[ 5 ] ); }, setFeatureRows: function() { var params = this.model.get( 'params' ), priceShortcode = 'undefined' !== typeof params.element_content ? params.element_content : '', pricingColumnRows = FusionPageBuilderApp.findShortcodeMatches( priceShortcode, 'fusion_pricing_row' ), values = []; if ( 'object' !== typeof pricingColumnRows || ! pricingColumnRows || ! pricingColumnRows.length ) { return; } _.each( pricingColumnRows, function( pricingColumnRow ) { var rowContent = ''; if ( 'undefined' !== typeof pricingColumnRow.match( FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_row' ) )[ 5 ] ) { rowContent = pricingColumnRow.match( FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_row' ) )[ 5 ]; } values.push( rowContent ); } ); values = values.join( '|' ); this.model.set( 'featureRows', values ); }, clearInvalidParams: function() { var params = this.model.get( 'params' ); delete params.currency; delete params.currency_position; delete params.price; delete params.time; params.footer_content = false; params.feature_rows = false; this.model.set( 'params', params ); }, /** * Runs during render() call. * * @since 2.0 * @return {void} */ onRender: function() { if ( 'undefined' !== typeof this.model.attributes.selectors ) { this.model.attributes.selectors[ 'class' ] += ' ' + this.className; this.setElementAttributes( this.$el, this.model.attributes.selectors ); } }, /** * Runs after view DOM is patched. * * @since 2.0 * @return {void} */ afterPatch: function() { if ( 'undefined' !== typeof this.model.attributes.selectors ) { this.model.attributes.selectors[ 'class' ] += ' ' + this.className; this.setElementAttributes( this.$el, this.model.attributes.selectors ); } }, /** * Modify template attributes. * * @since 2.0 * @param {Object} atts - The attributes. * @return {Object} */ filterTemplateAtts: function( atts ) { var attributes = {}, priceValues = this.getPriceValues(); attributes.title = atts.values.title; attributes.cid = this.model.get( 'cid' ); attributes.titleAttr = this.buildTitleAttr(); this.buildColumnWrapperAttr( atts.values, atts.parentValues.columns ); // Pricing shortcode. attributes.price = priceValues.price.split( '.' ); attributes.currencyPosition = priceValues.currency_position; attributes.currency = priceValues.currency; attributes.time = priceValues.time; attributes.currencyClasses = this.getCurrencyClasses( priceValues ); attributes.timeClasses = this.getTimeClasses( priceValues ); // Feature rows. attributes.featureRows = this.getFeaturedRows(); // Footer shortcode. attributes.footerContent = this.model.get( 'footerContent' ); return attributes; }, getFeaturedRows: function() { var values = this.model.get( 'featureRows' ); if ( 'undefined' === typeof values ) { return []; } if ( -1 === values.indexOf( '|' ) ) { return [ values ]; } return values.split( '|' ); }, getPriceValues: function() { var priceParams = this.model.get( 'priceParams' ), priceDefaults = { currency: '', currency_position: 'left', price: '', time: '' }; return jQuery.extend( true, {}, priceDefaults, _.fusionCleanParameters( priceParams ) ); }, getCurrencyClasses: function( priceValues ) { var currencyClasses = { class: 'currency' }; if ( 'right' === priceValues.currency_position ) { currencyClasses[ 'class' ] += ' pos-right'; if ( -1 !== priceValues.price.indexOf( '.' ) ) { currencyClasses[ 'class' ] += ' price-without-decimal'; } } return currencyClasses; }, getTimeClasses: function( priceValues ) { var timeClasses = { class: 'time' }; if ( '' !== priceValues.time ) { if ( -1 === priceValues.price.indexOf( '.' ) ) { timeClasses[ 'class' ] += ' price-without-decimal'; } if ( 'right' === priceValues.currency_position ) { timeClasses[ 'class' ] += ' pos-right'; } } return timeClasses; }, buildTitleAttr: function() { var cid = this.model.get( 'cid' ), titleAttr = { class: 'title-row' }; _.fusionInlineEditor( { cid: cid, param: 'title', 'disable-return': true, 'disable-extra-spaces': true, toolbar: false }, titleAttr ); return titleAttr; }, updatePricingTablePrice: function( name, value ) { var priceParams = this.model.get( 'priceParams' ); priceParams[ name ] = value; this.model.set( 'priceParams', priceParams ); this.reRender(); }, updatePricingTableFooter: function( value ) { this.model.set( 'footerContent', value ); this.reRender(); }, updatePricingTableFeatures: function( value ) { this.model.set( 'featureRows', value ); this.reRender(); }, priceUpdateHistory: function( name, value ) { var priceParams = this.model.get( 'priceParams' ), originalParam = this.initialPriceValue, state = { type: 'price-param', param: name, newValue: value, cid: this.model.get( 'cid' ) }, elementMap = fusionAllElements[ this.model.get( 'element_type' ) ], paramObject = elementMap.params[ name ], paramTitle = 'object' === typeof paramObject ? paramObject.heading : name; state.oldValue = originalParam; FusionEvents.trigger( 'fusion-history-save-step', fusionBuilderText.edited + ' ' + elementMap.name + ' - ' + paramTitle, state ); this.initialPriceValue = false; }, footerUpdateHistory: function( value ) { var originalParam = this.initialFooterValue, state = { type: 'pricefooter-param', newValue: value, cid: this.model.get( 'cid' ) }, elementMap = fusionAllElements[ this.model.get( 'element_type' ) ], paramObject = elementMap.params.footer_content, paramTitle = 'object' === typeof paramObject ? paramObject.heading : name; state.oldValue = originalParam; FusionEvents.trigger( 'fusion-history-save-step', fusionBuilderText.edited + ' ' + elementMap.name + ' - ' + paramTitle, state ); this.initialFooterValue = false; }, featuresUpdateHistory: function( value ) { var originalParam = this.initialFeaturesValue, state = { type: 'pricefeatures-param', newValue: value, cid: this.model.get( 'cid' ) }, elementMap = fusionAllElements[ this.model.get( 'element_type' ) ], paramObject = elementMap.params.feature_rows, paramTitle = 'object' === typeof paramObject ? paramObject.heading : name; state.oldValue = originalParam; FusionEvents.trigger( 'fusion-history-save-step', fusionBuilderText.edited + ' ' + elementMap.name + ' - ' + paramTitle, state ); this.initialFeaturesValue = false; }, /** * Builder column wrapper attributes. * * @since 2.0 * @param {Object} atts - The attributes. * @return {Object} */ buildColumnWrapperAttr: function( values, columns ) { var attr = { class: 'panel-wrapper fusion-column column' }; if ( '5' == columns ) { columns = 2; } else { columns = 12 / parseInt( columns, 10 ); } attr[ 'class' ] += ' col-lg-' + columns + ' col-md-' + columns + ' col-sm-' + columns; attr[ 'class' ] += ' fusion-pricingtable-column'; if ( 'yes' === values.standout ) { attr[ 'class' ] += ' standout'; } if ( 'undefined' !== typeof values[ 'class' ] && '' !== values[ 'class' ] ) { attr[ 'class' ] += ' ' + values[ 'class' ]; } if ( 'undefined' !== typeof values.id && '' !== values.id ) { attr.id = values.id; } this.model.set( 'selectors', attr ); } } ); _.extend( FusionPageBuilder.Callback.prototype, { fusionPricingTablePrice: function( name, value, args, view ) { var priceParams = view.model.get( 'priceParams' ), originalParam = priceParams[ name ]; // If its the same value, no need to do anything. if ( originalParam === value ) { return; } if ( ! view.initialPriceValue ) { view.initialPriceValue = originalParam; } view._priceUpdateHistory( name, value ); priceParams[ name ] = value; view.model.set( 'priceParams', priceParams ); return { render: true }; } } ); _.extend( FusionPageBuilder.Callback.prototype, { fusionPricingTableFooter: function( name, value, args, view ) { var originalParam = view.model.get( 'footerContent' ); if ( originalParam === value ) { return; } if ( ! view.initialFooterValue ) { view.initialFooterValue = originalParam; } view._footerUpdateHistory( value ); view.model.set( 'footerContent', value ); return { render: true }; } } ); _.extend( FusionPageBuilder.Callback.prototype, { fusionPricingTableRows: function( name, value, args, view ) { var originalParam = view.model.get( 'featureRows' ); if ( originalParam === value ) { return; } if ( ! view.initialFeaturesValue ) { view.initialFeaturesValue = originalParam; } view._featuresUpdateHistory( value ); view.model.set( 'featureRows', value ); return { render: true }; } } ); } ); }( jQuery ) );