var NKOTB = NKOTB || {};

// jQuery DoTimeout
(function($){var a={},c="doTimeout",d=Array.prototype.slice;$[c]=function(){return b.apply(window,[0].concat(d.call(arguments)))};$.fn[c]=function(){var f=d.call(arguments),e=b.apply(this,[c+f[0]].concat(f));return typeof f[0]==="number"||typeof f[1]==="number"?this:e};function b(l){var m=this,h,k={},g=l?$.fn:$,n=arguments,i=4,f=n[1],j=n[2],p=n[3];if(typeof f!=="string"){i--;f=l=0;j=n[1];p=n[2]}if(l){h=m.eq(0);h.data(l,k=h.data(l)||{})}else{if(f){k=a[f]||(a[f]={})}}k.id&&clearTimeout(k.id);delete k.id;function e(){if(l){h.removeData(l)}else{if(f){delete a[f]}}}function o(){k.id=setTimeout(function(){k.fn()},j)}if(p){k.fn=function(q){if(typeof p==="string"){p=g[p]}p.apply(m,d.call(n,i))===true&&!q?o():e()};o()}else{if(k.fn){j===undefined?e():k.fn(j===false);return true}else{e()}}}})(jQuery);

/* Homepage functions */
(function(self, $) {

	var $slideshow,
		$twitterFeed;

	self.slideshow = function() {
		$slideshow = $('#slideshow').html('');

		$.ajax({
			url			: '/api/json/features/HOME_SLIDESHOW',
			dataType	: 'json',
			success		: function(data) {

				$.each(data, function(i, slide) {

					var $slide = $('<div class="slide" id="slide_' + (i + 1) + '" />'),
						$content = $('<div class="content" />');

					$slide.append($content);

					if(slide.source.match(/(flv|mp4|m4v)$/i)) {
						// Video
						var $video = $('<div id="video_player-' + i + '">').player(slide.source, {
							mode	: 'flash'
						});

						$content
							.append($video);
					} else if(slide.source.match(/(jpe?g|png|gif)$/i)) {
						// Image
						$content
							.append('<img src="' + slide.source + '" alt="' + slide.title + '"/>');

						if(slide.url !== '') {
							$content.wrapInner('<a href="' + slide.url + '" />');
						}
					} else {
						// Custom
						$slide.find('.content').text('custom');
					}

					$slideshow.append($slide);

				});

				$slideshow.slider({
					transition		: 'slide',
					auto			: true,
					interval		: 15000,
					navigation : false
				});
			}
		});
	}

	self.twitterFeed = function() {

		twitterFeed = $('#twitterFeed');

		// define the default twitter output
		$.fn.social.defaults.twitter.output = '<p class="message">{text}</p><div class="meta"><span class="time"><a href="{tweet_url}">Posted {time}</a></span><span class="author">by <a href="{user_url}">{user}</a></span><span class="retweet"><a href="{retweet_url}" title="Retweet">retweet</a><span></div>';

		// write the list
		twitterFeed.html('<div class="item nkotb"></div><div class="item donnie"></div><div class="item jonathan"></div><div class="item joey"></div><div class="item jordan"></div><div class="item danny"></div>');

		// NKOTB Twitter Feed
		createTwitterFeed('.nkotb', 'NKOTB');

		// Donnie Wahlberg Twitter Feed
		createTwitterFeed('.donnie', 'DonnieWahlberg');

		// Johnathon Knight Twitter Feed
		createTwitterFeed('.jonathon', 'JonathanRKnight');

		// Joey McIntyre Twitter Feed
		createTwitterFeed('.joey', 'joeymcintyre');

		// Jordan Knight Twitter Feed
		createTwitterFeed('.jordan', 'JordanKnight');

		// Danny Wood Twitter Feed
		createTwitterFeed('.danny', 'DannyWood');

		$('.section.twitter .items .nkotb').addClass('active');

		$.doTimeout(7000, function() {
			var element = twitterFeed.find('.active');
			element.removeClass('active');
			if (element.hasClass('danny')) {
				element.siblings('.nkotb').addClass('active');
			} else {
				element.next().addClass('active');
			}
			return true;
		});
	}

	function createTwitterFeed(ele, twitterName) {
		// Get the element by className
		return twitterFeed.find(ele).social({
			network		: 'twitter',
			user		: twitterName,
			count		: 1,
			wrapListIn 	: '',
			wrapItemIn 	: ''
		});
	}

})(NKOTB.home = {}, jQuery);

$(window).load(function() {
	NKOTB.home.slideshow();
	NKOTB.home.twitterFeed();
});
