// JavaScript Document
// With instagram
function imperaSocial_imperaSocial_timeDifference(previous, ytext, mtext, dtext, htext, mintext, sectext, apptext) {
var msPerMinute = 60 * 1000;
var msPerHour = msPerMinute * 60;
var msPerDay = msPerHour * 24;
var msPerMonth = msPerDay * 30;
var msPerYear = msPerDay * 365;
var elapsed = new Date().getTime() - previous;
if (elapsed < msPerMinute) {
return Math.round(elapsed/1000) + sectext
}
else if (elapsed < msPerHour) {
return Math.round(elapsed/msPerMinute) + mintext;
}
else if (elapsed < msPerDay ) {
return Math.round(elapsed/msPerHour ) + htext;
}
else if (elapsed < msPerMonth) {
return apptext + Math.round(elapsed/msPerDay) + dtext;
}
else if (elapsed < msPerYear) {
return apptext + Math.round(elapsed/msPerMonth) + mtext;
}
else {
return apptext + Math.round(elapsed/msPerYear ) + ytext;
}
}
function imperaSocial_toTimestamp(strDate){
var datum = Date.parse(strDate);
if (isNaN(datum))
datum = new Date(strDate.substr(0, 10).replace(/-/g, '/'));
return datum;
}
(function($){
$.fn.extend({
imperaSocial: function(options) {
var defaults = {
id: 0,
fbid: 0,
fburl: "",
blogAmount: 10,
flickrAmount: 10,
youtubeAmount: 10,
facebookAmount: 10,
facebookTxtLimit: 0,
instagramAmount: 10,
nextText: '',
prevText: '',
nextIcon:null,
prevIcon:null,
blocks: ["facebook", "youtube", "blog", "flickr", "instagram"],
flickrWrapAmount: 0,
blogWrapAmount: 0,
youtubeWrapAmount: 0,
facebookWrapAmount: 0,
instagramWrapAmount: 0,
flickrImgType: 'm',
blogTitle: 'blog',
flickrTitle: 'flickr',
youtubeTitle: 'youtube',
facebookTitle: 'facebook',
instagramTitle: 'facebook',
textYearsAgo: ' years ago',
textMonthsAgo: ' months ago',
textDaysAgo: ' days ago',
textHoursAgo: ' hours ago',
textMinutesAgo: ' minutes ago',
textSecondsAgo: ' seconds ago',
textApproximately: 'approximately ',
dateoutputtype: 'text',
runWhenDone: null
}
imperaSocialOptions2 = $.extend(defaults, options);
imperaSocialContainer2 = $(this);
return this.each(function() {
var imperaSocialOptions = $.extend({}, imperaSocialOptions2);;
var imperaSocialContainer = imperaSocialContainer2;
var container = $("
");
var loaded = 0;
container.attr("class", "imperaSocialContainer");
for (var i = 0; i < imperaSocialOptions.blocks.length; i++) {
block = $("");
block.addClass("imperaSocial_provider imperaSocial_provider_" + imperaSocialOptions.blocks[i]);
var blockTitle = "";
switch(imperaSocialOptions.blocks[i])
{
case "facebook":
blockTitle = imperaSocialOptions.facebookTitle;
break;
case "youtube":
blockTitle = imperaSocialOptions.youtubeTitle;
break;
case "blog":
blockTitle = imperaSocialOptions.blogTitle;
break;
case "flickr":
blockTitle = imperaSocialOptions.flickrTitle;
break;
default:
blockTitle = imperaSocialOptions.blocks[i];
}
block.html("");
var content = $("");
content.attr("class", "imperaSocial_content");
if (imperaSocialOptions.blocks[i] == "youtube") {
$.ajax({
url: 'http://widgets.impera.se/social/json.asp?fetch=youtube&amount=' + imperaSocialOptions.blogAmount + '&id=' + imperaSocialOptions.id + '&jsoncallback=?',
dataType: 'json',
invokedata: {
data1: 'youtube'
},
success: function(data) {
var items = [];
var tempitems = [];
for (var x = 0; x < data.length; x++) {
$.each(data[x], function(key, val) {
if (key == "url") {
url = val;
}
if (key == "data") {
blockdata = val;
blockcode = $('');
var title = $("");
var description = $("");
var videoid = "";
for (var y = 0; y < blockdata.length; y++) {
$.each(blockdata[y], function(key, val) {
if (key == "title") {
title.html(val);
}
if (key == "description") {
description.html(val);
}
if (key == "video_id") {
videoid = val;
}
});
}
$(title).appendTo(blockcode);
$('
').appendTo(blockcode);
$(description).appendTo(blockcode);
if (imperaSocialOptions.youtubeWrapAmount > 0) {
if (x % imperaSocialOptions.youtubeWrapAmount == 0 && tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
tempitems = [];
}
tempitems.push(blockcode.html());
} else {
items.push(blockcode.html());
}
}
});
}
if (tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
}
$(items.join('')).appendTo(imperaSocialContainer.children().children(".imperaSocial_provider_" + this.invokedata.data1).children(".imperaSocial_content"));
loaded++;
if(loaded == imperaSocialOptions.blocks.length) {
if (imperaSocialOptions.runWhenDone != null) {
imperaSocialOptions.runWhenDone();
}
}
}
});
} else if (imperaSocialOptions.blocks[i] == "facebook") {
$.ajax({
url: 'http://widgets.impera.se/social/json.asp?fetch=facebook&amount=' + imperaSocialOptions.facebookAmount + '&fbtxtlimit=' + imperaSocialOptions.facebookTxtLimit + '&fbid=' + imperaSocialOptions.fbid + '&fburl=' + encodeURIComponent(imperaSocialOptions.fburl) + '&jsoncallback=?',
dataType: 'json',
invokedata: {
data1: 'facebook'
},
success: function(fbdata) {
var fbdata2 = fbdata;
var items = [];
var tempitems = [];
for (var x = 0; x < fbdata2.length; x++) {
var name = $('');
var message = $('');
var date = $('');
var userid = "";
$.each(fbdata2[x], function(key, val) {
blockcode = $('');
if (key == "name") {
name.html(val);
}
if (key == "userid") {
userid = val;
}
if (key == "message") {
message.html(val);
}
if (key == "date") {
date.html(imperaSocial_imperaSocial_timeDifference(
val * 1000,
imperaSocialOptions.textYearsAgo,
imperaSocialOptions.textMonthsAgo,
imperaSocialOptions.textDaysAgo,
imperaSocialOptions.textHoursAgo,
imperaSocialOptions.textMinutesAgo,
imperaSocialOptions.textSecondsAgo,
imperaSocialOptions.textApproximately
));
}
});
$(name).appendTo(blockcode);
$(message).appendTo(blockcode);
$(date).appendTo(blockcode);
if (imperaSocialOptions.facebookWrapAmount > 0) {
if (x % imperaSocialOptions.facebookWrapAmount == 0 && tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
tempitems = [];
}
tempitems.push(blockcode.html());
} else {
items.push(blockcode.html());
}
}
if (tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
}
$(items.join('')).appendTo(imperaSocialContainer.children().children(".imperaSocial_provider_" + this.invokedata.data1).children(".imperaSocial_content"));
console.log(imperaSocialContainer);
loaded++;
if(loaded == imperaSocialOptions.blocks.length) {
if (imperaSocialOptions.runWhenDone != null) {
imperaSocialOptions.runWhenDone();
}
}
}
});
} else if (imperaSocialOptions.blocks[i] == "blog") {
$.ajax({
url: 'http://widgets.impera.se/social/json.asp?fetch=blog&amount=' + imperaSocialOptions.blogAmount + '&id=' + imperaSocialOptions.id + '&jsoncallback=?',
dataType: 'json',
invokedata: {
data1: 'blog'
},
success: function(data) {
var items = [];
var tempitems = [];
for (var x = 0; x < data.length; x++) {
var title = $("");
var description = $("");
var user = $("");
var date = $("");
var username = "";
var userid = "";
$.each(data[x], function(key, val) {
if (key == "url") {
url = val;
}
if (key == "date" && imperaSocialOptions.dateoutputtype == 'date' ) {
timestamp = val;
} else if (key == "date") {
timestamp = imperaSocial_toTimestamp(val);
}
if (key == "data") {
blockdata = val;
blockcode = $('');
for (var y = 0; y < blockdata.length; y++) {
$.each(blockdata[y], function(key, val) {
if (key == "title") {
title.html(val);
}
if (key == "description") {
description.html(val);
}
if (key == "writer") {
username = val;
}
if (key == "blog") {
userid = val;
}
});
}
}
});
if (imperaSocialOptions.dateoutputtype == 'date' ) {
date.html(timestamp.toString());
} else {
date.html(imperaSocial_imperaSocial_timeDifference(
timestamp,
imperaSocialOptions.textYearsAgo,
imperaSocialOptions.textMonthsAgo,
imperaSocialOptions.textDaysAgo,
imperaSocialOptions.textHoursAgo,
imperaSocialOptions.textMinutesAgo,
imperaSocialOptions.textSecondsAgo,
imperaSocialOptions.textApproximately
));
}
$(title).html('' + $(title).html() + '');
$(title).appendTo(blockcode);
$(description).appendTo(blockcode);
$(date).appendTo(blockcode);
user.html('' + username + '');
$(user).appendTo(blockcode);
if (imperaSocialOptions.blogWrapAmount > 0) {
if (x % imperaSocialOptions.blogWrapAmount == 0 && tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
tempitems = [];
}
tempitems.push(blockcode.html());
} else {
items.push(blockcode.html());
}
}
if (tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
}
$(items.join('')).appendTo(imperaSocialContainer.children().children(".imperaSocial_provider_" + this.invokedata.data1).children(".imperaSocial_content"));
loaded++;
if(loaded == imperaSocialOptions.blocks.length) {
if (imperaSocialOptions.runWhenDone != null) {
imperaSocialOptions.runWhenDone();
}
}
}
});
} else if (imperaSocialOptions.blocks[i] == "flickr") {
$.ajax({
url: 'http://widgets.impera.se/social/json.asp?fetch=flickr&amount=' + imperaSocialOptions.flickrAmount + '&id=' + imperaSocialOptions.id + '&jsoncallback=?',
dataType: 'json',
invokedata: {
data1: "flickr"
},
success: function(data) {
var items = [];
var tempitems = [];
for (var x = 0; x < data.length; x++) {
$.each(data[x], function(key, val) {
if (key == "url") {
url = val;
}
if (key == "data") {
blockdata = val;
blockcode = $('');
var title = $("");
var description = $("");
var user = $("");
var username = "";
var userid = "";
var title_str = "";
for (var y = 0; y < blockdata.length; y++) {
$.each(blockdata[y], function(key, val) {
if (key == "title") {
title.html(val);
title_str = val;
}
if (key == "description") {
description.html(val);
}
if (key == "username") {
username = val;
}
if (key == "userid") {
userid = val;
}
});
}
var blockLink = $('
');
if (imperaSocialOptions.flickrWrapAmount > 0) {
if (x % imperaSocialOptions.flickrWrapAmount == (imperaSocialOptions.flickrWrapAmount - 1) && tempitems.length > 0) {
$(blockLink).addClass("last");
}
}
$(blockLink).appendTo(blockcode);
$(title).appendTo(blockcode);
$(description).appendTo(blockcode);
user.html('' + username + '');
$(user).appendTo(blockcode);
if (imperaSocialOptions.flickrWrapAmount > 0) {
if (x % imperaSocialOptions.flickrWrapAmount == 0 && tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
tempitems = [];
}
tempitems.push(blockcode.html());
} else {
items.push(blockcode.html());
}
}
});
}
if (tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
}
$(items.join('')).appendTo(imperaSocialContainer.children().children(".imperaSocial_provider_" + this.invokedata.data1).children(".imperaSocial_content"));
loaded++;
if(loaded == imperaSocialOptions.blocks.length) {
if (imperaSocialOptions.runWhenDone != null) {
imperaSocialOptions.runWhenDone();
}
}
}
});
} else if (imperaSocialOptions.blocks[i] == "instagram") {
$.ajax({
url: 'http://widgets.impera.se/social/json.asp?fetch=instagram&amount=' + imperaSocialOptions.instagramAmount + '&id=' + imperaSocialOptions.id + '&jsoncallback=?',
dataType: 'json',
invokedata: {
data1: "instagram"
},
success: function(data) {
var items = [];
var tempitems = [];
for (var x = 0; x < data.length; x++) {
var html = '
';
if (imperaSocialOptions.instagramWrapAmount > 0) {
if (x % imperaSocialOptions.instagramWrapAmount == 0 && tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
tempitems = [];
}
tempitems.push(html);
}
else
{
items.push(html);
}
}
if (tempitems.length > 0) {
items.push('' + tempitems.join('') + '
');
}
$(items.join('')).appendTo(imperaSocialContainer.children().children(".imperaSocial_provider_" + this.invokedata.data1).children(".imperaSocial_content"));
loaded++;
if(loaded == imperaSocialOptions.blocks.length) {
if (imperaSocialOptions.runWhenDone != null) {
imperaSocialOptions.runWhenDone();
}
}
}
});
}
if (imperaSocialOptions.prevText != "") {
navleft = $(imperaSocialOptions.prevText);
} else {
navleft = $("
");
navleft.attr("src", imperaSocialOptions.prevIcon);
}
navleft.addClass("imperaSocial_navPrev");
if (imperaSocialOptions.prevText != "") {
navright = $(imperaSocialOptions.nextText);
} else {
navright = $("
");
navright.attr("src", imperaSocialOptions.nextIcon);
}
navright.addClass("imperaSocial_navNext");
navigation = $("");
navigation.addClass("imperaSocial_navigation");
navleft.appendTo(navigation);
navright.appendTo(navigation);
content.appendTo(block);
navigation.appendTo(block);
block.appendTo(container);
}
$(container).appendTo(this);
});
}
});
})(jQuery);