// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

$(document).ready(function(){
	
	$('#option-btn').bind("click", function() {
		$('#option-box').toggle();
	});
	
	$('dl.video-thumbs').bind('mouseover', function() {
		$(this).addClass('hover');
	});
	
	$('dl.video-thumbs').bind('mouseout', function() {
		$(this).removeClass('hover');
	});
	
	$('div.cast-members dl').bind('mouseover', function() {
		$(this).addClass('active');
	});
	
	$('div.cast-members dl').bind('mouseout', function() {
		$(this).removeClass('active');
	});
	
	$('div.front-cast-members dl').bind('mouseover', function() {
		$(this).addClass('active');
	});
	
	$('div.front-cast-members dl').bind('mouseout', function() {
		$(this).removeClass('active');
	});
	
	if ($('div#tumblr-front-wrapper').length == 0 ) 
	{
		// do nothing
	} 
	else
	{
		Tumblr.getTumblrJSON();
	}
	
	$('a.email-btn').bind('click', function(e){
		e.preventDefault();
		$('a.email-btn').toggleClass('active');
		$('#email-toggle').slideToggle('slow');
		if($('#subscribe-toggle').is(':visible')) {
			$('a.subscribe-btn').toggleClass('active');
			$('#subscribe-toggle').slideToggle('slow');
		}
		
	})
	
	$('h3#email-close a').bind('click', function(e) {
		e.preventDefault();
		$('a.email-btn').toggleClass('active');
		$('#email-toggle').slideToggle('slow');
	})
	
	$('a.subscribe-btn').bind('click', function(e){
		e.preventDefault();
		$('#subscribe-toggle').slideToggle('slow');
		$('a.subscribe-btn').toggleClass('active');
		if($('#email-toggle').is(':visible')) {
			$('a.email-btn').toggleClass('active');
			$('#email-toggle').slideToggle('slow');
		}
	})
	
	$('h3#subscribe-close a').bind('click', function(e) {
		e.preventDefault();
		$('a.subscribe-btn').toggleClass('active');
		$('#subscribe-toggle').slideToggle('slow');
	})
	
	
	$('a#more-btn').bind('mouseover', function(e) {
		 $('img#more-btn-img').attr({
			src: '/images/more-over.png'
		})
	})
	
	$('a#more-btn').bind('mouseout', function(e) {
		 $('img#more-btn-img').attr({
			src: '/images/more.png'
		})
	})
	
	$('a#html-hints').bind('click', function(e) {
		e.preventDefault();
		$('div#html-hints-toggle').toggle();
		if ($('div#html-hints-toggle').is(":visible")) {
			$('a#html-hints').text('Hide HTML hints')
		} else {
			$('a#html-hints').text('HTML hints')
		}
	})
	
});

function echo() {
	
	var title = "<h1>" + tumblr_api_read['tumblelog'].title + "</h1>"
	$('div#tumblr-front-wrapper').append(title);
}

function tumblrJSON(data) {
	
	$.each(data.posts, function(i, item) {
		Tumblr.frontPager(item);
	})
}


function onYouTubePlayerReady(playerId) {
	YouTube.showStats();
}



Tumblr = {
	
	frontPager: function(data) {
		switch(data.type) {
			case 'regular':
				Tumblr.regularPost(data);
				break;
			case 'photo':
				Tumblr.photoPost(data);
				break;
			case 'quote':
				Tumblr.quotePost(data);
				break;
			case 'link':
				Tumblr.linkPost(data);
				break;
			case 'conversation':
				Tumblr.conversationPost(data);
				break;
			case 'video':
				Tumblr.videoPost(data);
				break;
			case 'audio':
				Tumblr.audioPost(data);
				break;
		} // switch
	}, // frontPager
	
	getTumblrJSON: function() {
		var url = 'http://quietlibrary.tumblr.com/api/read/json?jsoncallback=?&callback=tumblrJSON';
		$.getJSON(url);
	}, // getTumblrJSON
	
	regularPost: function(data) {
		var html = "<div class='regular-post post'><h2 class='date'>" + Tumblr.dateFormat(data['date']) + "</h2>";
		html += "<h2 class='title'>" + data["regular-title"] + "</h2>";
		html += "<p>" + data["regular-body"] + "</p></div><div class='tumblr-clear'></div>";
		$('div#tumblr-front-wrapper').append(html);
	},
	
	linkPost: function(data) {
		var html = "<div class='link-post post'><h2 class='date'>" + Tumblr.dateFormat(data['date']) + "</h2>";
		html += "<p><a href='" + data['link-url'] + "'>" + data['link-text'] + "</a></p>";
		html += "<p>" + data['link-description'] + "</p></div>";
		$('div#tumblr-front-wrapper').append(html);
	},
	
	photoPost: function(data) {
		var html = "<div class='photo-post post'><h2 class='date'>" + Tumblr.dateFormat(data['date']) + "</h2>";
		html += "<p><img src='" + data['photo-url-400']+ "'/></p>";
		html += "<p>" + data['photo-caption'] + "</p></div>"
		$('div#tumblr-front-wrapper').append(html);
	},
	
	quotePost: function(data) {
		var html = "<div class='quote-post post'>";
		html += "<h2 class='date'>" + Tumblr.dateFormat(data['date']) + "</h2>";
		html += "<dl><dt>" + data['quote-text'] + "</dt>";
		html += "<dd>"+ data['quote-source'] +"</dd></dl></div>";
		$('div#tumblr-front-wrapper').append(html);
	},
	
	videoPost: function(data) {
		var html = "<div class='video-post post'>";
		html += "<h2 class='date'>" + Tumblr.dateFormat(data['date']) + "</h2>"
		html += "<p>" + data['video-source'] + "</p>";
		html += "<p>" + data['video-caption'] + "</p>";
		html += "</div>";
		$('div#tumblr-front-wrapper').append(html);
	},
	
	conversationPost: function(data) {
		var html = "<div class='conversation-post post'>";
		html += "<h3>" + data['conversation-title'] + "</h3>";
		html += "<p>" + data['conversation-text'] + "</p>";
		html += "</div>";
		$('div#tumblr-front-wrapper').append(html);
	},
	
	audioPost: function(data) {
		var html = "<div class='audio-post post'>";
		html += "<p>" + data['audio-caption'] + "</p>";
		html += "<p>" + data['audio-player'] + "</p>";
		html += "</div>";
		$('div#tumblr-front-wrapper').append(html);
		
	},
	
	dateFormat: function(date) {
		var result = new Date(date);
		var month = Tumblr.month(result.getMonth());
		var year = result.getFullYear();
		var day = result.getDate();
		var d = month +" "+ day +", "+ year;
		return d
	},
	
	month: function(data) {
		var month = new Array();
		month[0] = 'January';
		month[1] = 'February';
		month[2] = 'March';
		month[3] = 'April';
		month[4] = 'May';
		month[5] = 'June';
		month[6] = 'July';
		month[7] = 'August';
		month[8] = 'September';
		month[9] = 'October';
		month[10] = 'November';
		month[11] = 'December';
		return month[data];
	}
	
} // Tumblr

YouTube = {
	
	showStats: function() {
		var videoID = $('h2#view-count').attr('class');
		YouTube.getStats(videoID);
	},
	
	getStats: function(video_id) {
	
		var url = "http://gdata.youtube.com/feeds/api/videos/" + video_id + "?alt=json-in-script&callback=YouTube.displayStats&jsoncallback=?"
		$.getJSON(url)
	},

	displayStats: function(data) {
		var videoID = $('h2#view-count').attr('class');
		var viewCount = data['entry']['yt$statistics']['viewCount'];
		var commentHint = data['entry']['gd$comments']['gd$feedLink']['countHint'];
		var videoLink = 'http://www.youtube.com/watch?v=' + videoID 
		var viewCountLink = '<a class="youtube-stats-link" href="' + videoLink + '" target="_blank">' + addCommas(viewCount) + '</a>';
		var commentHintLink = '<a class="youtube-stats-link" href="' + videoLink + '" target="_blank">' + addCommas(commentHint) + '</a>';
		$('h2#view-count').append(viewCountLink).slideDown('slow');
		$('h2#comment-hint').append(commentHintLink).slideDown('slow');
	}
	
	
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}



