$(document).ready(function() {
	var $root = $('html, body');
	
	var mql = window.matchMedia("screen and (max-width: 992px)");
	mediaqueryresponse(mql);
	mql.addListener(mediaqueryresponse);
	
	var mqt = window.matchMedia("screen and (max-width: 768px)");
	mediaquerytable(mqt);
	mqt.addListener(mediaquerytable);

	function mediaquerytable(mqt) {
		if(mqt.matches) {
			$('.flex-table.responsive tr td').each(function(){
				if($.trim($(this).html()) == "") {
					$(this).hide();
				}
			});
		} else {
			$('.flex-table.responsive tr td').show();
		}
	}
	
	var scrollt = 110;
	function mediaqueryresponse(mql) {
		if(mql.matches) {
			$(".footer-navigation .heading, .menu-navigation .heading, .widget .subheading").attr("data-toggle", "collapse");
			$(".topheader .menu-nav, .site-menu .toggle").removeClass("active");
			scrollt = 40;
		} else {
			$(".footer-navigation .heading[data-toggle='collapse'], .menu-navigation .heading[data-toggle='collapse'], .widget .subheading[data-toggle='collapse']").addClass("collapsed").removeAttr("data-toggle");
			$(".panel-collapse.show, .toggle-bar").removeClass("show");
			$(".page-overlay, .topheader .menu-nav").removeClass("active");
			$(".navbar-collapse").collapse("hide");
			scrollt = 110;
		}
	}
	
	$(window).on("load", function(event) {
		var hs = location.hash.replace(/#/, '');
		if(hs != '') {
			if(window.matchMedia("screen and (max-width: 768px)").matches) {
				var margin = 55;
			} else {
				var margin = 140;
			}
			target = $('[name=' + hs + ']');
			if(target.length == 0) {
				target = $('#' + hs);
			}
			if(target.length) {
				event.preventDefault();
				$root.stop().animate({
					scrollTop: target.offset().top-margin
				}, 100);

				return false;
			}
		}
	});
	
	$("body").on("keypress", "[role='button']", function(event) {
		if(event.keyCode == 13 || event.keyCode == 32) {
			// click element
			$(this).click();
			
			// toggle aria-expanded if set
			if($(this).attr("aria-expanded")) {
				$(this).attr('aria-expanded', function(_, attr) { return !(attr == 'true') });
			}
			
			return false;
		}
	});
	
	// smooth scroll to anchor and focus
	$('a[href*="#"]').not('[href="#"]').not('[href="#0"]').not('[data-toggle="modal"]').not('[role="tab"]').not('.skip').not('.col-links__arrow').click(function(event) {
		if(location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')) {
			var target = $(this.hash);
			var hs = this.hash;
			if(window.matchMedia("screen and (max-width: 768px)").matches) {
				var margin = 55;
			} else {
				var margin = 140;
			}
			target = $('[name=' + this.hash.slice(1) + ']');
			if(target.length == 0) {
				target = $('#' + this.hash.slice(1));
			}
			if(target.length) {
				event.preventDefault();
				$root.stop().animate({
					scrollTop: target.offset().top-margin
				}, 100);
				target.attr('tabindex', '-1');
          		target.focus();
				
				return false;
			}
		}
	});
	
	$("[data-scroll]").click(function(event) {
		var target = $($(this).data("scroll"));
		if(target.length) {
			event.preventDefault();
			$root.stop().animate({
				scrollTop: target.offset().top - 90
			}, 150);
			
			target.attr('tabindex', '-1');
          	target.focus();

			return false;
		}
	});
	
	$(window).scroll(function() {
		if($(window).scrollTop() < 500) { 
			$('#top-page').stop().hide();
        } else if($(window).scrollTop() + $(window).height() < $(document).height() - $(".footer").height()) {
				$('.top-page').css({"position": "fixed", "bottom": "40px"});
				$('#top-page').stop().show();
		} else {
			$('.top-page').css({"position": "sticky", "margin-left": "auto", "margin-top": "-15px"});
			$('#top-page').stop().show();
        }
    });
	
	$("#top-page").click(function(event) {
		event.preventDefault();
		
		if($(this).is("[data-scroll]")) {
			var target = $($(this).data("scroll"));
			if(target.length) {
				$root.stop().animate({
					scrollTop: target.offset().top - 100
				}, 150);
			} else {
				$root.stop().animate({ scrollTop: 0 }, 150);
			}
		} else {
			$root.stop().animate({ scrollTop: 0 }, 150);
		}			 
	});
	
	// add table headers to each column on mobile
	var resT = $('.responsive__table2');
	if(resT.length > 0) {
		$('.responsive__table2 tbody tr').each(function() {
			$(this).find('td').each(function(s) {
				th = $(this).parent().parent().parent().find('thead tr th').eq(s);
				if($.trim(th.text()) != '') {
					$(this).prepend('<div class="tdh">'+th.text()+'</div>');
				}
			})
		});
		$('.responsive__table2 tfoot tr').each(function() {
			$(this).find('th').each(function(s) {
				th = $(this).parent().parent().parent().find('thead tr th').eq(s);
				if($.trim(th.text()) != '') {
					$(this).prepend('<div class="tdh">'+th.text()+'</div>');
				}
			})
		});
	}
	
	// accordion toggle
	$('.accordion-toggle').click(function(){
		$(this).next().slideToggle('fast');
		if($(this).find('span').hasClass('icon-arrow-down')) {
			$(this).find('span').removeClass('icon-arrow-down').addClass('icon-arrow-up');
		} else {
			$(this).find('span').removeClass('icon-arrow-up').addClass('icon-arrow-down');
		}
		$(".accordion-content").not($(this).next()).slideUp('fast');
		$(".accordion-toggle").not($(this)).find('span').removeClass('icon-arrow-up').addClass('icon-arrow-down');
	});
	
	// accordion toggle 2
	$('.accordion .toggle').click(function(e) {
		e.preventDefault();

		var $this = $(this);

		if($this.next().hasClass('show')) {
			$this.next().removeClass('show');
			$this.removeClass("open");
			$this.next().slideUp("fast");
		} else {
			$this.parent().parent().find('.tcontent').removeClass('show');
			$this.parent().parent().find('.toggle').removeClass('open');
			$this.parent().parent().find('.tcontent').slideUp(350);
			$this.next().toggleClass('show');
			$this.toggleClass("open");
			$this.next().slideToggle("fast");
		}
	});
	
	$('.content__more-btn').click(function(e) {
		e.preventDefault();

        $('.content__less-btn').removeClass("hide").addClass("show");
       	$(this).removeClass("show").addClass("hide"); 
		$('.content__fullcontent').addClass("active");
	});
	
	$('.content__less-btn').click(function(e) {
		e.preventDefault();

        $('.content__more-btn').removeClass("hide").addClass("show");
       	$(this).removeClass("show").addClass("hide"); 
		$('.content__fullcontent').removeClass("active");
	});
	
	$(document).click(function(event) {
		if($(".site-menu .toggle").hasClass("active")) {
			if($(event.target).closest('.menu-nav').length === 0) {
				$(".site-menu").trigger('click');
			}
		}
		if($(".page-overlay").hasClass("active")) {
			if($(event.target).closest('.topheader').length === 0) {
				$(".navbar-toggler").trigger('click');
			}
		}
	});
	
	$(".navbar-toggler").click(function(e) {
		if($(this).hasClass("collapsed")) {
			$(this).parent().addClass("show");
			$(".page-overlay").addClass("active");
		} else {
			$(this).parent().removeClass("show");
			$(".page-overlay").removeClass("active");
		}
	});
	
	$(".site-menu").click(function(e) {
		e.preventDefault();
		e.stopPropagation();
		$(".menu-nav").toggleClass("active");
		$(this).children(".toggle").toggleClass("active");
	});
	
	var getUrlParameter = function getUrlParameter(sParam) {
		var sPageURL = window.location.search.substring(1),
			sURLVariables = sPageURL.split('&'),
			sParameterName,
			i;

		for (i = 0; i < sURLVariables.length; i++) {
			sParameterName = sURLVariables[i].split('=');

			if (sParameterName[0] === sParam) {
				return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
			}
		}
	};
	
	$.fn.screenDimensions = function($newSettings){
		var $html = $('html'),
			$defaultSettings = {
				desktop:960,
				tablet:768,
				mobile:640
			};

		var $el = $(this);
		var $settings = $.extend($defaultSettings , $newSettings);
		var $oldClass = false;
		var that = this;

		this.status = '';

		function checkForScreenType($w){
			if($w >= $settings.tablet) {
				return 'screen-desktop';
			} else if( $w <= $settings.tablet && $w > $settings.mobile ) {
				return 'screen-tablet';
			} else if( $w <= $settings.mobile ) {
				return 'screen-mobile';
			} else {
				return false;
			}
		}

		$el.on('resize' , function(ev){
			var self = $(ev.currentTarget);
			var w_width = ev.currentTarget.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
			var w_heigth = ev.currentTarget.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
			var $screen = checkForScreenType(w_width);

			if($screen){
				if( !$html.hasClass( $screen ) ){
					$html.addClass( $screen );
					if($oldClass){
						$html.removeClass($oldClass);
					}
					$oldClass = $screen;
					self.trigger($screen);
					that.status = $screen;
				}
			}

		}).trigger('resize');

		return this;
	}
	
	$screenDimensions = $(window).screenDimensions();
	
	if($(".swiper").length) {
		new Swiper('.swiper', {
			loop: true,
			preventClicks: true,
			pagination: {
				el: '.pagination'
			},
			navigation: {
				nextEl: '.button-next',
				prevEl: '.button-prev'
			}
		});
	}
	
	window.newSlider = function($el, $options) {
		var slider = $el;
		var options = $options;

		if(slider.is("[data-slick]")) {
			options = slider.data("slick");
		}

		if(slider.length > 0){
			slider.each(function() {
				var current = $(this);
				var slides = current.children();

				var h = 0;
				slides.each(function(){
					var newH = $(this).outerHeight(true);
					if(newH > h){
						h = newH;
					}
				});
				slides.css({
					'min-height': h
				});

				if(slides.length > 1){
					if(current.hasClass("two-block") || current.children(":first").is("[class]") && current.children(":first").attr("class").match(/col-.*?-6/)) {
						//console.log("two-block");
						var slideShow = 2;
						var slideShowL = 2;
						var slideShowM = 2;
						var slideShowS = 1;
					} else if(current.hasClass("three-block") || current.children(":first").is("[class]") && current.children(":first").attr("class").match(/col-.*?-4/)) {
						//console.log("three-block");
						var slideShow = 3;
						var slideShowL = 3;
						var slideShowM = 2;
						var slideShowS = 1;
					} else if(current.hasClass("four-block") || current.children(":first").is("[class]") && current.children(":first").attr("class").match(/col-.*?-3/)) {
						//console.log("four-block");
						var slideShow = 4;
						var slideShowL = 3;
						var slideShowM = 2;
						var slideShowS = 1;
					} else if(current.hasClass("five-block")) {
						//console.log("five-block");
						var slideShow = 5;
						var slideShowL = 3;
						var slideShowM = 2;
						var slideShowS = 1;
					} else {
						//console.log("default");
						var slideShow = 1;
						var slideShowL = 1;
						var slideShowM = 1;
						var slideShowS = 1;
					}

					if(typeof options != 'undefined') {
						$.each(options, function(index, item) {
							if(index == "slideShow") {
								slideShow = item;
							} else if(index == "slideShowL") {
								slideShowL = item;
							} else if(index == "slideShowM") {
								slideShowM = item;
							} else if(index == "slideShowS") {
								slideShowS = item;
							}
						});
					}

					var sliderSettings = {
						slidesToShow: slideShow,
						slidesToScroll: slideShow,
						arrows: false,
						dots: true,
						autoplay: false,
						responsive: [
							{
								breakpoint: 1280,
								settings: {
									slidesToShow: slideShowL,
									slidesToScroll: slideShowL,
									arrows: false,
									dots: true
								}
							},
							{
								breakpoint: 992,
								settings: {
									slidesToShow: slideShowM,
									slidesToScroll: slideShowM,
									arrows: false,
									dots: true
								}
							},
							{
								breakpoint: 768,
								settings: {
									slidesToShow: slideShowS,
									slidesToScroll: slideShowS,
									arrows: false,
									dots: true
								}
							}
						]
					};

					if(typeof options != 'undefined') {
						$.each(options, function(index, item) {
							if(index == "slideShow") {
							} else if(index == "slideShowL") {
							} else if(index == "slideShowM") {
							} else if(index == "slideShowS") {
							} else {
								sliderSettings[index] = item;
							}
						});
					}

					if(current.hasClass("controls")) {
						sliderSettings["arrows"] = true;
						sliderSettings["responsive"][0]["settings"]["arrows"] = true;
						sliderSettings["responsive"][1]["settings"]["arrows"] = true;
						sliderSettings["responsive"][2]["settings"]["arrows"] = true;
					}
					if(current.hasClass("auto")) {
						sliderSettings["autoplay"] = true;
					}
					if(current.hasClass("pager-off")) {
						sliderSettings["dots"] = false;
						sliderSettings["responsive"][0]["settings"]["dots"] = false;
						sliderSettings["responsive"][1]["settings"]["dots"] = false;
						sliderSettings["responsive"][2]["settings"]["dots"] = false;
					}
					if(current.hasClass("infinite-off")) {
						sliderSettings["infinite"] = false;
					}
					if(current.hasClass("custom-buttons")) {
						sliderSettings["arrows"] = true;
						sliderSettings["appendArrows"] = current.parent().parent().find('.buttons .custom');
						sliderSettings["prevArrow"] = current.parent().parent().find('.buttons .custom .prev');
						sliderSettings["nextArrow"] = current.parent().parent().find('.buttons .custom .next');
					}
					if(sliderSettings["arrows"] == true && !(current.hasClass("custom-buttons"))) {
						sliderSettings["prevArrow"] = '<button type="button" class="slick-prev"><span class="icon-fau icon-arrow-left"></span></button>';
						sliderSettings["nextArrow"] = '<button type="button" class="slick-next"><span class="icon-fau icon-arrow-right"></span></button>';
					}

					current.slick(sliderSettings);

					if(current.hasClass("desktop-off")) {
						sliderSettings["responsive"] = "";
						if($screenDimensions.status == 'screen-desktop') {
							current.slick("unslick");
						}
						$(window).on('screen-desktop', function(){
							current.slick("unslick");
						});
						$(window).on('screen-tablet screen-mobile', function(){
							if(!current.hasClass('slick-initialized')) {
								current.slick(sliderSettings);
							}
						});
					}
				}
			});
		}
	}
	
	//var $sliders = $('.home-page-header-slider');
	//newSlider($sliders);
	var slider = $('.home-page-header-slider, .widget-slider, .slider, .widget-executive-education__slider, .widget-executive-programs__slider');
	newSlider(slider);
	
	// List Content
	var $listContent = $('.widget-list-content');
	var ListContent = function(_$listContent){
		var $el = _$listContent || false;
		var $navContainer = $el.find('.widget-list-content__navigation');
		var $mobileNav = $('<div />' , {
			class:'widget-list-content__navigation__mobile'
		});
		var $contentLinks = [];

		var checkIfLinkhasContent = function($link){
			var target = false,
				href = $link.attr('href');

			if(href.length > 0 && href[0] == "#" ){
				if($listContent.find(href).length > 0){
					$contentLinks.removeClass('active');
					$link.addClass('active');
					$mobileNav.html($link.text());
					return $listContent.find(href);
				} else {
					return false;
				}
			} else {
				return false;
			}

			return true;
		}

		var navigate = function($target){
			$target.addClass('active').siblings().removeClass('active');
			$mobileNav.removeClass('active');
		}

		var createMobileNavigation = function(setUpLinks){
			$navContainer.before($mobileNav);
			setUpLinks;
		}

		this.setUpLinks = function(){
			var activeLink = false;

			$contentLinks.on('click' , function(ev){
				var self = $(ev.currentTarget);
				var $target = checkIfLinkhasContent(self);
				if($target){
					navigate($target);
					ev.preventDefault();
				}
			}).each(function(){
				var self = $(this);
				if(self.hasClass('active')){
					self.trigger('click');
					activeLink = true;
				}
			});

			$mobileNav.on('click' , function(ev){
				var self = $(ev.currentTarget);
				self.toggleClass('active');
				ev.preventDefault();
			});

			if(!activeLink){
				//$($contentLinks[0]).trigger('click');
			}
		}

		this.init = function(){
			if(!$listContent) return;
			$contentLinks = $navContainer.find('a');
			createMobileNavigation(this.setUpLinks());
		}
	}

	$listContent.each(function(){
		var self = $(this),
			view = new ListContent(self);
		view.init();
	});
	
	var Search = function(id){
		this.input = $('#'+id);
		this.button = this.input.next('button');
		this.form = this.input.parent();

		this.input.on('keyup', function(ev){
			if(ev.keyCode === 13) {
				this.button.trigger('click');
				if(this.input.val() === ''){
					this.input.addClass('error');
				}
			}
		}.bind(this));

		this.button.on('click', function(ev){
			ev.preventDefault();
			if(this.input.length == 0){
				return;
			} else {
				if(this.input.val() == '' || this.input.val() == 'undefined') {
					return;
				} else {
					window.location = this.form.attr('action')+'?q='+this.input.val();
				}
			}
		}.bind(this))
	}

	var mainNav = new Search("main-navigation__search");
	
	if(location.pathname.indexOf("/search") > -1 && location.pathname.length < 10) {
		$("#main-navigation__search").val(getUrlParameter("q"));
	}
	
	$(document).on('click', '.videoButton', lity);
	
	function strtolink(string) {
		// URLs starting with http://, https://, or ftp://
		var replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
		var replacedText = string.replace(replacePattern1, '<a href="$1" target="_blank" rel="noreferrer">$1</a>');

		// URLs starting with www. (without // before it, or it'd re-link the ones done above)
		var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
		var replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank" rel="noreferrer">$2</a>');

		// Change email addresses to mailto:: links
		var replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
		var replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');

		return replacedText;
	}
	
	function parseText(text, limit) {
		if(text.length > limit){
			for(let i = limit;i > 0;i--){
				if(text.charAt(i) === ' ' && (text.charAt(i-1) != ','||text.charAt(i-1) != '.'||text.charAt(i-1) != ';')) {
					return text.substring(0, i) + '...';
				}
			}
			return text.substring(0, limit) + '...';
		} else {
			return text;
		}
	};
	
	var now = new Date().getTime();
	geturl = "//" + window.location.hostname + "/_resources/widgets/social-widget.inc";
	if(location.pathname.indexOf("/visit") > -1 || location.pathname.indexOf("/choose") > -1 || location.pathname.indexOf("/virtual-explore") > -1) {
		geturl = "//" + window.location.hostname + "/_resources/widgets/social-widget2.inc";
	}
	if(location.pathname.indexOf("/spring2020") > -1 || location.pathname.indexOf("/virtual-grad") > -1 || location.pathname.indexOf("/grad-2021") > -1) {
		geturl = "//" + window.location.hostname + "/_resources/widgets/social-faugrad.inc";
	}
	if($(".social-content").length) {
		$.ajax({
			dataType: "json",
			url: geturl + "?t=" + now,
			success: function(data){
				render(data);
			}
		});
	}
	
	
	function render(items) {
		$.each(items.data, function(i,item){
			// set item variables
			timestamp = (item.created) ? item.created : false;
			source_id = (item.source) ? item.source : false;
			message = (item.comments) ? item.comments : false;
			author = JSON.parse(JSON.stringify(item.author));
			if($.isEmptyObject(author)) {
				user = false;
				profile_image = false;
			} else {
				author = JSON.parse(item.author);
				if(author.name.length) {
					user = author.name;
				} else {
					user = false;
				}
				if(author.picture.length) {
					profile_image = author.picture;
				} else {
					profile_image = false;
				}
			}
			link = item.url;
			image = (item.original_image) ? item.original_image : false;
			id = (item.post_id) ? item.post_id : false;
			video = (item.embed) ? item.embed : false;
			if(video) {
				if(jQuery.isEmptyObject(video)) {
					video = false;
				} else {
					video = JSON.parse(video);
					if(video.type == "photo") {
						video = false;
					}
					if(video.html || video.url) {
						video[0] = video.url;
					}
				}
			}
			perma_link = (item.title) ? item.title : false;
			source = '';
			switch(source_id){
				case 1:
					source = "facebook";
					icon = "icon-facebook";
					break;
				case 2:
					source = "twitter";
					icon = "icon-twitter";
					break;
				case 3:
				case 21:
					source = "instagram";
					icon = "icon-instagram";
					break;
				case 12:
					source = "flickr";
					icon = "icon-flickr";
					break;
				default:
					icon = false;
					break;
			}	
			
			html = '<div class="social-box d-flex flex-lg-row flex-column justify-content-between">';
			//html += '<span class="prev fa fa-chevron-left"></span>';
			if(video) {
				html += '<div class="item social-image">';
				html += '<div class="widget-social__lightbox__media__content">';
				if(source == "facebook") {
					html += '<div class="widget-social__lightbox__media__video">';
					html += '<iframe src="https://www.facebook.com/plugins/video.php?href='+video[0]+'&show_text=0" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe>';
					html += '</div>';
				} else if(source == "twitter") {
					if(video.indexOf("youtube") > -1) {
						html += '<iframe width="100%" height="100%" src="//www.youtube.com/embed/'+twitter_youtube(video[0])+'" frameborder="0" allowfullscreen></iframe>';
					} else {
						html += '<video controls="controls" src="'+video[0]+'" type="video/mp4"></video>';
					}
				} else if(source == "youtube") {
					html += '<div class="widget-social__lightbox__media__video">';
					html += '<iframe width="100%" height="100%" src="//www.youtube.com/embed/'+video[0]+'" frameborder="0" allowfullscreen></iframe>';
					html += '</div>';
				} else {
					html += '<video controls="controls" src="'+video[0]+'" type="video/mp4"></video>';
				}
				html += '</div>';
				html += '</div>';
			} else {
				if(image) {
					html += '<div class="item social-image">';
					html += '<img src="'+image+'" alt="'+formatted(perma_link, 20)+'" />';
					html += '</div>';
				}
			}
			if(image) {
				html += '<div class="item social-info d-flex flex-column">';
			} else {
				html += '<div class="item social-info w-100 d-flex flex-column">';
			}
			if(profile_image) {
				html += '<div class="profile_info">';
				html += '	<div class="profile_img">';
				html += '		<img src="'+profile_image+'" class="img-fluid" alt="'+user+'">';
				html += '	</div>';
			} else {
				html += '<div class="profile_info">';
			}
			if(user) {
				html += '<div class="d-flex flex-column w-100 ml-3">';
				html += '<div>'+user+'</div>';
				html += '<div class="d-flex align-items-start mt-2">';
				html += '<i class="fa fa-'+source.toLowerCase()+' color--blue"></i>';
				html += '<div class="ml-2">Posted '+timeSince(new Date(timestamp * 1000))+'</div>';
			} else {
				html += '<div class="d-flex flex-column w-100">';
				html += '<div class="d-flex flex-column align-items-start ml-3">';
				html += '<i class="fa fa-'+source.toLowerCase()+' color--blue"></i>';
				html += '<div class="mt-2">Posted '+timeSince(new Date(timestamp * 1000))+'</div>';
			}
			html += '</div>';
			html += '</div>';
			html += '</div>';
			html += '<div class="widget-social__lightbox__share">';
			html += '<hr class="separator separator--small" />';
			html += '<ul class="inline-nav">';
			html += '<li><a href="http://www.facebook.com/sharer.php?u='+link+'" title="Facebook share" target="_blank" rel="noreferrer"><i class="fa fa-facebook-official"></i></a></li>'
			html += '<li><a href="http://twitter.com/share?url='+link+'" title="Twitter share" target="_blank" rel="noreferrer"><i class="fa fa-twitter"></i></a></li>';
			html += '</ul>';
			html += '<hr class="separator separator--small" />';
			html += '</div>';
			if(message) {
				html += '<div style="padding: 2rem 0;word-break: break-word;line-height: 1.4;">'+parseText(strtolink(message), 300)+'</div>';
			}
			html += '<div class="action-button"><a href="'+link+'" target="_blank" rel="noreferrer">view post</a></div>';
			html += '</div>';
			//html += '<span class="next fa fa-chevron-right"></span>';
			html += '</div>';
			html += '</div>';

			// social icon and name
			intro = '<div class="item-icon"><span class="icon-fau '+icon+'"></span></div>';
			/*
			if(user) {
				intro += '<div class="item-name">'+user+'</div>';
			}
			*/
			// if no image, use solid background color
			colors = ["bg--red", "bg--blue-light", "bg--blue"];
			// pick random color from 3 choices above
			color = colors[Math.floor(Math.random()*colors.length)];

			if(image) {
				out = '<div rel="'+timestamp+'" class="item"><div class="image"><img class="item-image" src="'+image+'" alt="'+formatted(perma_link, 20)+'" /></div><div class="item-footer">'+intro+'</div><div class="lightbox" style="display:none;">'+html+'</div></div>';
			} else {
				out = '<div rel="'+timestamp+'" class="item"><div class="text '+color+'"><span>'+message+'</span></div><div class="item-footer">'+intro+'</div><div class="lightbox" style="display:none;">'+html+'</div></div>';
			}
			// append each post to the widget container
			$(".social-content .grid").append(out);
		});
	}
	
	function goto(url) {
		window.location.href = url;	
	}
	
	function formatted(str, maxLen, separator = " ") {
		if(str != "") {
			str = str.replace(/-/g, " ");
			if(str.length <= maxLen) {
				return str;
			}

			str = str.substr(0, str.lastIndexOf(separator, maxLen));
			return str.split(" ").map(item=>item.substring(0,1).toUpperCase()+item.substring(1)).join(" ");
		} else {
			return str;
		}
	}
	
	lit = "";
	$(document).on('click', '.social-content .item', function(e) {
		lit = lity($(this).find(".lightbox").html(), {'template': '<div class="lity" role="dialog" aria-label="Dialog Window (Press escape to close)" tabindex="-1"><div class="lity-wrap" data-lity-close role="document"><div class="lity-loader" aria-hidden="true">Loading...</div><div class="lity-container"><span class="prev fa fa-chevron-left"></span><div class="lity-content"></div><span class="next fa fa-chevron-right"></span><button class="lity-close" type="button" aria-label="Close (Press escape to close)" data-lity-close>&times;</button></div></div></div>'});
		$(".social-content .item").removeClass("active");
		$(this).addClass("active");
	});
	
	$(document).on('click', '.lity-container .next', function(e) {
		next = $(".social-content .item.active").next();
		if(next.length == 0) {
			next = $(".social-content .item:first-child");
		}
		$(".lity-content").html(next.find(".lightbox").html());
		$(".social-content .item").removeClass("active");
		next.addClass("active");
	});
	
	$(document).on('click', '.lity-container .prev', function(e) {
		prev = $(".social-content .item.active").prev();
		if(prev.length == 0) {
			prev = $(".social-content .item:last-child");
		}
		$(".lity-content").html(prev.find(".lightbox").html());
		$(".social-content .item").removeClass("active");
		prev.addClass("active");
	});
	
	$(document).on('click', '.widget-social__lightbox__share ul li a', function(e) {
		e.preventDefault(); 
        window.open($(this).attr('href'), 'SocialMashup', 'width=500,height=450,resizable=yes').focus();
	});
	
	var timeSince = function(date) {
		if(typeof date !== 'object') {
			date = new Date(date);
		}

		var seconds = Math.floor((new Date() - date) / 1000);
		var intervalType;

		var interval = Math.floor(seconds / 31536000);
		if (interval >= 1) {
			intervalType = 'year';
		} else {
			interval = Math.floor(seconds / 2592000);
			if (interval >= 1) {
				intervalType = 'month';
			} else {
				interval = Math.floor(seconds / 86400);
				if (interval >= 1) {
					intervalType = 'day';
				} else {
					interval = Math.floor(seconds / 3600);
					if (interval >= 1) {
						intervalType = "hour";
					} else {
						interval = Math.floor(seconds / 60);
						if (interval >= 1) {
							intervalType = "minute";
						} else {
							interval = seconds;
							intervalType = "second";
						}
					}
				}
			}
		}

		if(interval > 1 || interval === 0) {
			intervalType += 's';
		}

		return interval + ' ' + intervalType + ' ago';
	};
	
});