function rplg_svg() {
return '' +
'';
}
function simple_stars(rating, color) {
var str = '';
for (var i = 1; i < 6; i++) {
var score = rating - i;
if (score >= 0) {
str += '';
} else if (score > -1 && score < 0) {
if (score < -0.75) {
str += '';
} else if (score > -0.25) {
str += '';
} else {
str += '';
}
} else {
str += '';
}
}
return str;
}
function yelp_stars(rating) {
var rating = Math.round(rating * 2) / 2;
return '';
}
function render_stars(rating, provider, color) {
switch (provider) {
case 'google' : return simple_stars(rating, '#e7711b');
case 'facebook' : return simple_stars(rating, '#3c5b9b');
case 'yelp' : return yelp_stars(rating);
}
return simple_stars(rating, color);
}
function render_logo(provider) {
switch (provider) {
case 'google' : return '';
case 'facebook' : return '';
case 'yelp' : return '';
}
}
function render_rplg_logo(provider) {
if (provider == 'summary') return '';
else return '';
}
function _rplg_init_svg(el) {
var span = document.createElement('span');
span.style.display = 'none';
span.innerHTML = rplg_svg();
document.body.appendChild(span);
var stars = el.querySelectorAll('.rplg-stars');
for (var i = 0; i < stars.length; i++) {
var info = stars[i].getAttribute('data-info'),
infos = info.split(','),
rating = infos[0],
provider = infos[1],
color = infos[2];
stars[i].innerHTML = render_stars(rating, provider, color);
}
var badges = el.querySelectorAll('.rplg-review-badge');
for (var i = 0; i < badges.length; i++) {
badges[i].innerHTML = render_rplg_logo(badges[i].getAttribute('data-provider'));
}
}
function _rplg_badge_init(el) {
var badge_cnt = el.querySelector('.rplg-badge-cnt'),
is_float = badge_cnt.className.indexOf('-fixed') > -1;
if (is_float) {
document.body.appendChild(el);
}
var badges = el.querySelectorAll('.rplg-badge2'),
rplg = document.createElement('div');
for (var i = 0; i < badges.length; i++) {
var badge = badges[i],
provider = badge.getAttribute('data-provider'),
badge_key = 'badge_float_' + provider,
session = sessionStorage.getItem(badge_key),
logo = badge.querySelector('.rplg-badge-logo'),
btn = badge.querySelector('.rplg-badge2-btn'),
close = badge.querySelector('.rplg-badge2-close'),
form = badge.querySelector('.rplg-form');
(function(badge, badge_key, session, provider, logo, btn, close, form) {
if (is_float) {
badge.style.display='block';
}
if (close) {
if (session) {
var data = JSON.parse(session);
if (data.hide) {
badge.style.display='none';
}
}
close.onclick = function() {
badge.style.display='none';
var value = JSON.parse(sessionStorage.getItem(badge_key) || '{}');
value.hide = true;
sessionStorage.setItem(badge_key, JSON.stringify(value));
};
}
if (logo && provider != 'summary') {
logo.innerHTML = render_logo(provider);
}
if (form) {
btn.onclick = function() {
rplg_load_imgs(form);
form.style.display='block';
};
rplg.appendChild(form);
}
})(badge, badge_key, session, provider, logo, btn, close, form);
}
if (rplg.hasChildNodes()) {
rplg.className = 'rplg';
document.body.appendChild(rplg);
}
}
function rplg_load_imgs(el) {
var imgs = el.querySelectorAll('img.rplg-blazy[data-src]');
for (var i = 0; i < imgs.length; i++) {
imgs[i].setAttribute('src', imgs[i].getAttribute('data-src'));
imgs[i].removeAttribute('data-src');
}
}
function rplg_next_reviews(pagin) {
var parent = this.parentNode,
selector = '.rplg .rplg-hide';
reviews = parent.querySelectorAll(selector);
for (var i = 0; i < pagin && i < reviews.length; i++) {
if (reviews[i]) {
reviews[i].className = reviews[i].className.replace('rplg-hide', '');
}
}
reviews = parent.querySelectorAll(selector);
if (reviews.length < 1) {
parent.removeChild(this);
}
window.rplg_blazy && window.rplg_blazy.revalidate();
return false;
}
function rplg_leave_review_window() {
_rplg_popup(this.getAttribute('href'), 620, 500);
return false;
}
function _rplg_lang() {
var n = navigator;
return (n.language || n.systemLanguage || n.userLanguage || 'en').substr(0, 2).toLowerCase();
}
function _rplg_popup(url, width, height) {
var dual_left = window.screenLeft != undefined ? window.screenLeft : window.screenX,
dual_top = window.screenTop != undefined ? window.screenTop : window.screenY,
doc_elem = document.documentElement,
screen_width = window.innerWidth ? window.innerWidth : doc_elem.clientWidth ? doc_elem.clientWidth : screen.width,
screen_height = window.innerHeight ? window.innerHeight : doc_elem.clientHeight ? doc_elem.clientHeight : screen.height,
left = ((screen_width / 2) - (width / 2)) + dual_left,
top = ((screen_height / 2) - (height / 2)) + dual_top,
win = window.open(url, '', 'scrollbars=yes, width=' + width + ', height=' + height + ', top=' + top + ', left=' + left);
if (window.focus) {
win.focus();
}
return win;
}
function _rplg_init_timeago(el) {
var els = el.querySelectorAll('.rplg-review-time');
for (var i = 0; i < els.length; i++) {
var clss = els[i].className, time;
time = parseInt(els[i].getAttribute('data-time')) * 1000;
els[i].innerHTML = WPacTime.getTime(time, _rplg_lang(), 'ago');
}
}
function _rplg_init_blazy(attempts) {
if (!window.Blazy) {
if (attempts > 0) {
setTimeout(function() { _rplg_init_blazy(attempts - 1); }, 200);
}
return;
}
window.rplg_blazy = new Blazy({selector: 'img.rplg-blazy'});
}
function _rplg_read_more(el) {
var read_more = el.querySelectorAll('.rplg-more-toggle');
for (var i = 0; i < read_more.length; i++) {
(function(rm) {
rm.onclick = function() {
rm.parentNode.removeChild(rm.previousSibling.previousSibling);
rm.previousSibling.className = '';
rm.textContent = '';
};
})(read_more[i]);
}
}
function _rplg_init_slider(el, data) {
if (!window.Rplgsw) {
return setTimeout(function() { _rplg_init_slider(el, data); }, 200);
}
var swiperEl = el.querySelector('.rplgsw-container'),
swiperData = {
loop : true,
autoplay : parseInt(data.speed),
effect : data.effect,
slidesPerView : parseInt(data.count),
spaceBetween : parseInt(data.space),
autoHeight : true,
fade : { crossFade : true },
breakpoints : {},
onInit : function(swiper) {
setTimeout(function() {
window.dispatchEvent(new Event('resize'));
}, 500);
},
onTransitionEnd : function(swiper){
window.rplg_blazy && window.rplg_blazy.revalidate();
}
};
if (data.pagin) {
swiperData.paginationClickable = true;
swiperData.pagination = '.rplgsw-pagination';
}
if (data.nextprev) {
swiperData.nextButton = el.querySelector('.rplg-slider-next');
swiperData.prevButton = el.querySelector('.rplg-slider-prev');
}
swiperData.breakpoints[data.mobileBreakpoint] = {
slidesPerView: parseInt(data.mobileCount),
spaceBetween: 10
};
swiperData.breakpoints[data.tabletBreakpoint] = {
slidesPerView: parseInt(data.tabletCount),
spaceBetween: 20
};
swiperData.breakpoints[data.desktopBreakpoint] = {
slidesPerView: parseInt(data.desktopCount),
spaceBetween: 30
};
return new Rplgsw(swiperEl, swiperData);
}
function _rplg_init_flash(el, opts) {
var i = 0,
expanded = false,
wait = false,
reviews = [],
cnt = el.querySelector('.rplg-flash-content'),
x = cnt.querySelector('.rplg-flash-x'),
card = cnt.querySelector('.rplg-flash-card'),
story = cnt.querySelector('.rplg-flash-story'),
start = (opts.flash_start || 3) * 1000,
visible = (opts.flash_visible || 5) * 1000,
invisible = (opts.flash_invisible || 5) * 1000,
rplgIsHover = e => e.parentElement.querySelector(':hover') === e;
document.body.appendChild(el);
var revels = el.querySelectorAll('.rplg-form-review');
for (var j = 0; j < revels.length; j++) {
var revel = revels[j],
infos = revel.querySelector('.rplg-stars').getAttribute('data-info').split(',');
reviews.push({
avatar : opts.hide_avatar ? '' : revel.querySelector('.rplg-review-avatar').getAttribute('data-src'),
author_name : opts.hide_name ? '' : revel.querySelector('.rplg-review-name').getAttribute('title'),
time : opts.disable_review_time ? '' : revel.querySelector('.rplg-review-time').getAttribute('data-time'),
rating : infos[0],
provider : infos[1]
});
}
var show = function(nonext) {
if (!expanded && !wait) {
_rplg_flashnext(el, story, i, reviews, opts);
cnt.className = 'rplg-flash-content rplg-flash-visible';
i = i + 1 < reviews.length ? i + 1 : 0;
}
wait = false;
setTimeout(function() {
if (!expanded && !rplgIsHover(cnt) && !wait) {
cnt.className = 'rplg-flash-content';
}
setTimeout(show, invisible);
}, visible);
};
setTimeout(show, start);
x.onclick = function() {
cnt.className = 'rplg-flash-content';
};
story.onclick = function() {
expanded = true;
rplg_load_imgs(cnt);
var idx = card.querySelector('.rplg-row').getAttribute('data-idx'),
review = card.querySelector('.rplg-form-review[data-idx="' + idx + '"]');
review.className = 'rplg-form-review rplg-highlight';
setTimeout(function() { review.scrollIntoView({behavior: 'smooth', block: 'center'}) }, 300);
card.className = 'rplg-flash-card rplg-flash-expanded';
cnt.className = 'rplg-flash-content rplg-flash-visible';
x.innerHTML = '';
x.onclick = function() {
review.className = 'rplg-form-review';
card.className = 'rplg-flash-card';
expanded = false;
wait = true;
x.innerHTML = '×';
x.onclick = function() {
cnt.className = 'rplg-flash-content';
};
};
};
}
function _rplg_flashnext(el, story, i, reviews, opts) {
if (story.firstChild) {
var review = reviews[i];
story.querySelector('.rplg-row').setAttribute('data-idx', i);
if (opts.flash_user_photo) {
story.querySelector('.rplg-flash-img').innerHTML = '';
} else if (!opts.hide_avatar) {
story.querySelector('.rplg-flash-photo').innerHTML = '
';
}
if (!opts.hide_name) {
story.querySelector('.rplg-flash-name').innerHTML = review.author_name;
}
story.querySelector('.rplg-flash-rating').innerHTML = parseInt(review.rating);
story.querySelector('.rplg-flash-stars').innerHTML = _rplg_flashtext(review, opts);
if (!opts.disable_review_time) {
story.querySelector('.rplg-flash-time').innerHTML = WPacTime.getTimeAgo(review.time * 1000, _rplg_lang(), 'ago');
}
} else {
story.innerHTML = _rplg_flashstory(i, reviews, opts);
}
}
function _rplg_flashstory(i, reviews, opts) {
var review = reviews[i];
return '