var jPlayer;
var numTracks = 0;
var trackNum = 1;
var scrollName = false;
var trackNameTpl = '<span class="wrap-auto">%s</span>';
var trackNameTimeout;
var newsScrollTimeout;
var defReminderVal = 'your email address';

$(document).ready(function() {
	
	// Get the number of tracks
	numTracks = arrTracks.length - 1;
	
	// Header Jukebox
	$plr = $('#jukebox-player');
	$plr.jPlayer({
		ready: function() {
			PlayTrack(1, true);
		},
		swfPath: '/js',
		solution: 'html, flash',
		supplied: 'm4a',
		preload: 'auto',
		volume: 1,
		muted: false,
		backgroundColor: 'transparent',
		cssSelectorAncestor: '#jp_interface_1',
		cssSelector: {
			videoPlay: '.jp-video-play',
			play: '.jp-play',
			pause: '.jp-pause',
			stop: '.jp-stop',
			seekBar: '.jp-seek-bar',
			playBar: '.jp-play-bar',
			mute: '.jp-mute',
			unmute: '.jp-unmute',
			volumeBar: '.jp-volume-bar',
			volumeBarValue: '.jp-volume-bar-value',
			currentTime: '.jp-current-time',
			duration: '.jp-duration'
		},
		errorAlerts: false,
		warningAlerts: false
	});
	$plr.bind($.jPlayer.event.ended, NextTrack);
	
	// Player controls
	$("#jukebox-controls .prev a").click(function() { PrevTrack(); return false; });
	$("#jukebox-controls .play-pause a").click(function() { 
		if($(this).hasClass('paused')) {
			$(this).removeClass('paused');
			$plr.jPlayer("play");
			$plr.jPlayer("unmute");
		} else {
			$(this).addClass('paused');
			$plr.jPlayer("mute");
			$plr.jPlayer("pause");
		}
		return false; 
	});
	$("#jukebox-controls .next a").click(function() { NextTrack(); return false; });
	
	// Next / Previous Blog Entries Navigation
	$("#prev-entry, #next-entry").live("click", function() {

		$.ajax({
			type: "GET",
			url: "/index.php/site/_blog-entry/"+$(this).attr("href").replace("#", "")+"/",
			success: function(html){
				$("#wrap-blog .content-wrap").html(html);
			}
		});
		
		return false;
	});
	
	// Main nav scrollto
	$("#nav a").click(function() {
		if($(this).attr("href").match(/#/)) {
			$.scrollTo($($(this).attr("href")).offset().top - 25, 900, {easing: "easeOutExpo"});
			return false;
		}
	});
	
	// Scroll nav for the news section
	$newsheight = parseInt($("#wrap-news .content").height());
	var scrollamt = $newsheight - 100;
	$news = $("#wrap-news .content-inner");
	var news_margin = 0;
	
	$("#wrap-news .nav .down a, #wrap-news .nav .up a").click(function() {
		
		if(!$(this).hasClass("disabled")) {
	
			var up_down = $(this).parent().hasClass("up") ? "up" : "down";
		
			news_margin = (up_down == "down") ? (news_margin - scrollamt) : (news_margin + scrollamt);
			$up = $("#wrap-news .nav .up a");
			$down = $("#wrap-news .nav .down a");

			if(news_margin >= 0) {
				$up.addClass("disabled").animate({opacity: .3}, 300);
				$down.removeClass("disabled").animate({opacity: .7}, 300);
			} else if(($news.height() + news_margin) < $newsheight) {
				$down.addClass("disabled").animate({opacity: .3}, 300);
				$up.removeClass("disabled").animate({opacity: .7}, 300);
			} else {
				$down.removeClass("disabled").animate({opacity: .7}, 300);
				$up.removeClass("disabled").animate({opacity: .7}, 300);
			}
	
			$news.stop().animate({marginTop: news_margin+"px"}, 500, "easeOutQuad");
			
		}
	
		return false;
	});
	
	// $("#wrap-news .nav .down a").click(function() {
	// 	console.log(parseInt($news.css("margin-top")) + $newsheight);
	// 	$news.stop().animate({marginTop: "-="+scrollamt}, 500, "easeOutQuad");
	// 	if((parseInt($news.css("margin-top")) + $newsheight) > $news.height());
	// 	return false;
	// });
	// 
	// $("#wrap-news .nav .up a").click(function() {
	// 	$news.stop().animate({marginTop: "+="+scrollamt}, 500, "easeOutQuad");
	// 	
	// 	return false;
	// });

	// Hover state for the news nav
	$(".nav a").hover(function() {
		if(!$(this).hasClass("disabled")) $(this).stop().animate({opacity: 1}, 500);
	}, function() {
		if(!$(this).hasClass("disabled")) $(this).stop().animate({opacity: .7}, 500);
	});
	
	// Twitter commenting feature
	$(".twitter-comments a.show-form").live("click", function() {
		
		// Hide the .show-form link
		$(this).hide();
		
		// Add a class to the wrapper to make it display properly
		$(".twitter-comments").addClass("form");
		
		// Show the form elements
		$(".twitter-comments h4, .twitter-comments form, .twitter-comments .comments").show();
		
		return false;
		
	});
	
	$(".twitter-comments form textarea").live("focus", function() {
		if($(this).val() == 'your thoughts...') $(this).val('');
	}).live("blur", function() {
		if($(this).val() == '') $(this).val('your thoughts...');
	});
	
	$(".twitter-comments form .cancel").live("click", function() {
		
		// Show the link to show the comments & form
		$("a.show-form").show();

		// Remove a class to the wrapper to make it display properly
		$(".twitter-comments").removeClass("form");
		
		// Hide the form elements
		$(".twitter-comments h4, .twitter-comments form, .twitter-comments .comments").hide();

		return false;
	});
	
	// Promotion reminder form / function
	// $("#wrap-promo .signup .release").click(function() {
	// 	
	// 	// Show the form
	// 	$(this).fadeOut(350, function() {
	// 		$("#promo-reminder-form .thanks").hide();
	// 		$("#promo-reminder-form input.txt")
	// 			.val(defReminderVal)
	// 			.focus(function() {
	// 				if($(this).val() == defReminderVal) $(this).val('');
	// 			})
	// 			.blur(function() {
	// 				if($(this).val() == '') $(this).val(defReminderVal);
	// 			});
	// 		$("#promo-reminder-form").fadeIn(350);
	// 	});
	// 	
	// 	return false;
	// });

	// Reminder form handler
	$("#promo-reminder-form").submit(function() {
		
		$.ajax({
			type: "GET",
			url: "/utility/promo-reminder.php?email="+$("#promo-reminder-form input.txt").val(),
			success: function() {
				$("#promo-reminder-form .thanks").fadeIn(5, function() {
					// setTimeout(function() {
					// 	$("#promo-reminder-form").fadeOut(350, function() {
					// 		$("#wrap-promo .signup .release").fadeIn(350);
					// 	});
					// }, 3000);
				});
			}
		});
		
		return false;
	});
	
});

function PlayTrack(num, onlyload) {

	// Load up the track
	$plr
		.jPlayer("mute")
		.jPlayer("clearMedia")
		.jPlayer("setMedia", { m4a: arrTracks[num].track });

	if(!onlyload) {
		$plr.jPlayer("unmute").jPlayer("play");
		$("#jukebox-controls .play-pause a").removeClass("paused");
	} else {
		$("#jukebox-controls .play-pause a").addClass("paused");
	}

	$("#jukebox-trackname .wrap-wide").html(trackNameTpl.replace('%s', arrTracks[num].trackname));
	SetupTracknameScroll();
	return;
}

function PrevTrack() {
	trackNum--;
	if(trackNum < 1) trackNum = numTracks;
	PlayTrack(trackNum);
	return;
}

function NextTrack() {
	trackNum++;
	if(trackNum > numTracks) trackNum = 1;
	PlayTrack(trackNum);
	return;
}

function SetupTracknameScroll() {

	$wide = $("#jukebox-trackname .wrap-wide");
	$first = $("#jukebox-trackname .wrap-auto:first");

	var tpl = '<span class="wrap-auto"> </span>';
	var nameWidth = ($first.width() * 1) + parseInt($first.css("margin-right"));
	var wrapWidth = $("#jukebox-trackname").width();

	if(nameWidth > wrapWidth) {
		$wide.append(trackNameTpl.replace('%s', arrTracks[trackNum].trackname));
		clearTimeout(trackNameTimeout);
		ScrollTrackname($first, nameWidth);
	} else {
		$("#jukebox-trackname .wrap-auto:eq(1), #jukebox-trackname .wrap-auto:eq(2)").hide();
	}

	return;
}

function ScrollTrackname(ptr, width) {
	ptr.css("margin-left", "0px");
	trackNameTimeout = ptr.animate(
		{marginLeft: "-"+width+"px"}, 
		5000, 
		function() { 
			trackNameTimeout = 
				setTimeout(
					function() { 
						ScrollTrackname(ptr, width); 
					}, 
					2000
				); 
		}
	);
	return;
}
