if( wfw_inc_file )
exit();
var wfw_inc_file = true;
function getJSON(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url+'&referer='+window.location, true);
//xhr.responseType = 'json';
xhr.withCredentials = false;
xhr.setRequestHeader("Content-Type", "text/plain");
xhr.onload = function () {
var status = xhr.status;
if (status === 200) {
callback(null, xhr.response);
} else {
callback(status, xhr.response);
}
};
xhr.send();
}
function serialize(obj) {
var str = [];
for (var p in obj)
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
function buildTitle(url, title, color) {
var title;
title = '' + title + '';
return title;
}
function buildThumb(url, thumb_url) {
var thumb;
thumb = '';
return thumb;
}
function buildItem(url, title, color, thumb_url, width, margin, padding , show_title, show_thumb) {
var thumb;
var title;
var item;
if(show_title === '1'){
title = buildTitle(url, title, color);
}
if(show_thumb === '1'){
thumb = buildThumb(url, thumb_url);
}
item = '
' + thumb + title + '
';
return item;
}
function addStyles(layout='basic',borderColor='#DDD',showThumb=1,col=1,widgetID='',i=1){
switch(layout) {
case 'small_image':
var styles = "';
break;
default:
var styles = "";
break;
}
return styles;
}
function safelyParseJSON (json) {
// This function cannot be optimised, it's best to
// keep it small!
var parsed;
try {
parsed = JSON.parse(json)
} catch (e) {
return false;
}
return parsed; // Could be undefined!
}
function generateWidget(widgetConfig = {},i=1) {
var conf = widgetConfig;
getJSON('https://videos.whatfinger.com/widget-videos/?' + serialize(conf), function (err, data) {
if (err !== null) {
} else {
var widget;
var items;
var widgetWrapper;
var itemsArr;
var matchWidth;
var matchHeight;
var matchMargins;
data = safelyParseJSON( data );
if( !data ) {
return false;
}
itemsArr = data.items;
matchWidth = (100-(0.5*conf.cols*2))/conf.cols;
switch(conf.layout) {
case 'small_image':
var margin = "0 0.5% 10px 0.5%";
var padding = "0px 0px 15px 0px";
break;
default:
var margin = "0 0.5% 20px 0.5%";
var padding = "0px";
break;
}
Object.keys(itemsArr).forEach(function (key) {
items += buildItem(itemsArr[key].url + '', itemsArr[key].title, conf.textColor, itemsArr[key].thumb_url, matchWidth + '%', margin, padding, conf.showTitle, conf.showThumb);
});
widget = '' + items + '
';
widgetWrapper = document.getElementById(conf.widgetID+i);
widgetWrapper.className += "wWidget_wrapper";
widgetWrapper.style.backgroundColor = conf.backgroundColor;
widgetWrapper.innerHTML = addStyles(conf.layout,conf.borderColor,conf.showThumb,conf.cols,conf.widgetID,i) + widget;
}
});
}
document.addEventListener('DOMContentLoaded', function () {
var widgets = document.querySelectorAll('[data-action="widget"]');
for (var i in widgets) if (widgets.hasOwnProperty(i)) {
var originalwidgetID = widgets[i].getAttribute('id');
widgets[i].setAttribute("id", widgets[i].getAttribute('id')+i);
var widgetID = widgets[i].getAttribute('id');
var originalwidgetConfig = originalwidgetID.replace("wWidget","wWidgetConf");
var widgetConfig = widgetID.replace("wWidget","wWidgetConf");
window[widgetConfig] = window[originalwidgetConfig];
generateWidget(window[widgetConfig],i);
}
});