$(document).ready(function() {
	$(document).data("currentStory", 0);
	$(document).data("timer", false);
	$(document).data("newsFadeSpeed", 1000);
	$(document).data("uploading", 0);
	$(document).data("uploadId", 1);
    $("#external-links img[title]").tooltip({
    	tip: '#tooltip',
    	position: 'top center',
    	offset: [0, 60],
    	effect: 'fade',
    	delay: 0
    }); 
    getFeed("feed.rss");
    initJPlayer();
    initShareLinks();
});

function closeWindows() {
	$(".window").hide();
}

function showAbout(ref) {
	closeWindows();
	$("#about").show();
	$(ref).blur();
	pageTracker._trackPageview("about");
}

function showContact(ref) {
	closeWindows();
	$("#contact form").show();
	$("#contact .result").text("");
	$("#contact .result").hide();
	$("#contact").show();
	$(ref).blur();
	pageTracker._trackPageview("contact");
}

function showDemo(ref) {
	closeWindows();
	$("#demo form").show();
	$("#demo .result").text("");
	$("#demo .result").hide();
	$("#demo").show();
	$(ref).blur();
	pageTracker._trackPageview("demo");
}

function showFacebook(ref) {
	closeWindows();
	$("#facebook").show();
	$(ref).blur();
	pageTracker._trackPageview("facebook");
}

function showMyspace(ref) {
	closeWindows();
	$("#myspace").show();
	$(ref).blur();
	pageTracker._trackPageview("myspace");
}

function showTwitter(ref) {
	closeWindows();
	$("#twitter").show();
	$(ref).blur();
	pageTracker._trackPageview("twitter");
}

function showFlickr(ref) {
	closeWindows();
	$("#flickr").show();
	$(ref).blur();
	pageTracker._trackPageview("flickr");
}

function submitContact() {
	$("#contact form").hide();
	var name = $("#contactName").val();
	var email = $("#contactEmail").val();
	var message = $("#contactMessage").val();
	query("contact", "name:"+name+";email:"+email+";message:"+message, function(data) {
		if(data.success) {
			$("#contact .result").text("Your inquiry has been forwarded to one of our representatives. We will get back to you as soon as posible.");
			$("#contact .result").show();
			$("#contact #contactMessage").val("");
		} else {
			$("#contact .result").text(data.error);
			$("#contact .result").show();
		}
	});
}

function uploadFile() {
	$("#file-list .temp").remove();
	var uploading = $(document).data("uploading");
	$(document).data("uploading", uploading+1);
	var uploadId = $(document).data("uploadId");
	var fileName = $("#demoFile").val();
	$(document).data("uploadId", uploadId+1);
	$("#upload-frames").append("<iframe name=\"upload_target"+uploadId+"\" id=\"upload_target"+uploadId+"\"></iframe>");
	$("#upload-form").attr("action", "core.php?action=uploadFile&fileId="+uploadId);
	$("#upload-form").attr("target", "upload_target"+uploadId);
	$("#upload-form").submit();
	$("#file-list").append("<div id=\"file_"+uploadId+"\"><div class=\"filename\">"+fileName+"</div><div class=\"right\">Uploading</div></div>");
	var objDiv = $("#file-list").get(0);
	objDiv.scrollTop = objDiv.scrollHeight;
	$("#demoFile").val("");
}

function fileDone(data) {
	var fileId = data.fileId;
	if(data.success) {
		$("#file-list #file_"+fileId+" .filename").contents().wrap("<a href=\""+data.url+"\" target=\"_blank\" />");
		$("#file-list #file_"+fileId+" .right").html("<a href=\"#\" class=\"remove-link\" onclick=\"return removeFile(this)\">Remove</a>");
	} else {
		$("#file-list #file_"+fileId).html("<span class=\"error\">"+data.error+"</span>");
		setTimeout(function() {
			$("#file-list #file_"+fileId).slideUp(500);
			setTimeout(function() {
				$("#file-list #file_"+fileId).remove();
			}, 500);
		}, 8000);
	}
	var uploading = $(document).data("uploading");
	$(document).data("uploading", uploading-1);
	$("#upload-frames #upload_target"+fileId).remove();
}

function removeFile(ref) {
	$(ref).parent().parent().slideUp(500);
	setTimeout(function() {
		$(ref).parent().parent().remove();
	}, 500);
	return false;
}

function submitDemo() {
	if($(document).data("uploading") < 1) {
		$("#demo form").hide();
		$("#demo .result").text("Sending Demo...");
		$("#demo .result").show();
		var name = encodeURIComponent($("#demoName").val());
		var artist = encodeURIComponent($("#demoArtist").val());
		var website = encodeURIComponent($("#demoWebsite").val());
		var email = encodeURIComponent($("#demoEmail").val());
		var info = encodeURIComponent($("#demoInfo").val());
		var urls = [];
		$("#file-list .filename a").each(function() {
			urls.push(encodeURIComponent($(this).attr("href")));
		});
		urlString = urls.join("\n");
		query("demo", "name:"+name+";artist:"+artist+";website:"+website+";email:"+email+";info:"+info+";urls:"+urlString, function(data) {
			if(data.success) {
				$("#demo .result").text("Thank you for sumbmitting your demo, one of our representatives will get back to you shortly!");
			} else {
				$("#demo .result").text(data.error);
			}
		});
	} else {
		$("#demo form .error").text("Please wait until all the files finish uploading before submitting your demo.");
	}
	return false;	
}

function demoResult(data) {
	if(data.success) {
		$("#demo .result").text("Your demo has been forwarded to one of our representatives. Thank you for your interest.");
		$("#demo #demoArtist").val("");
		$("#demo #demoEmail").val("");
		$("#demo #demoPhone").val("");
		$("#demo #demoFile").val("");
		$("#demo #demoInfo").val("");
	} else {
		$("#demo .result").text(data.error);
	}
}

function query(action, vars, callback) {
	var url = "core.php";
	$.post(url, {
		action: action,
		vars: vars
	}, function(data){
		callback(data);
	}
	, "json");
}

function getFeed(url) {
	var news = [];
	$.ajaxSetup({
		cache: false
	});
	$.get(url, null, function(xml, status) {
		$(xml).find("item").each(function() {
			var title = $(this).find("title").text();
			var description = trunc($(this).find("description").text().replace(/(<([^>]+)>)/ig,""), 100);
			var link = $(this).find("link").text();
			var html = "<a href=\""+link+"\" target=\"_blank\" style=\"display: none\"><b>"+title+":</b> "+description+"</a>";
			news.push(html);
		});
		initNews(news);
	}, "xml");
}

function trunc(original, len) {
	var trim = original.substring(0, len);
	var trim2 = trim.replace(/\w+$/, '');
	var final = trim2+"...";
	return final;
}

function initNews(news) {
	if(news[0]) {
		$("#feed").html(news[0]);
		$("#feed a").fadeIn($(document).data("newsFadeSpeed"));
		if(news.length > 1) {
			$(document).data("timer", setInterval(function() {
				$("#feed a").fadeOut($(document).data("newsFadeSpeed"));
				setTimeout(function() {
					if($(document).data("currentStory") < (news.length-1)) {
						$(document).data("currentStory", $(document).data("currentStory")+1);
						$("#feed").html(news[$(document).data("currentStory")]);
					} else {
						$(document).data("currentStory", 0);
						$("#feed").html(news[0]);
					}
					$("#feed a").fadeIn($(document).data("newsFadeSpeed"));
				}, $(document).data("newsFadeSpeed"));
			}, 10000));
			$("#feed").hover(function() {
				clearInterval($(document).data("timer"));
				$(document).data("timer", false);
			}, function() {
				if(!$(document).data("timer")) {
					$(document).data("timer", setInterval(function() {
						$("#feed a").fadeOut($(document).data("newsFadeSpeed"));
						setTimeout(function() {
							if($(document).data("currentStory") < (news.length-1)) {
								$(document).data("currentStory", $(document).data("currentStory")+1);
								$("#feed").html(news[$(document).data("currentStory")]);
							} else {
								$(document).data("currentStory", 0);
								$("#feed").html(news[0]);
							}
							$("#feed a").fadeIn($(document).data("newsFadeSpeed"));
						}, $(document).data("newsFadeSpeed"));
					}, 10000));
				}
			});
		}
	}
}

function initJPlayer() {
	$("#musicPlayer").jPlayer({
		swfPath: "",
		volume: 100,
		ready: function() {
			var firstSong = $("#songs .first");
			playSong(firstSong, true);
			$("#musicControls .loading").hide();
			$("#musicControls .jp-play").show();
			$("#musicControls .jp-load-bar").show();
			$(".song_button .loading").hide();
			$(".song_button .play").show();
		}
	});
}

function playSong(ref, loadOnly) {
	var check = $("#musicPlayer").data("currentSong");
	if(ref == check) {
		return play();
	} else {
		var songName = $(ref).parent().parent().find("h4").text();
		var url = $(ref).attr("data");
		$("#musicPlayer").jPlayer("setFile", url);
		$("#musicControls .songName").text(songName);
		$("#musicPlayer").data("currentSong", ref);
		$("#musicControls .jp-play").show();
		$("#musicControls .jp-pause").hide();
		$("#songs .pause").hide();
		$("#songs .play").show();
		$("#musicPlayer").jPlayer("onSoundComplete", function() {
			var nextRef = $(ref).parent().parent().next().find(".play");
			if($(nextRef).attr("data")) {
				playSong(nextRef);
			} else {
				var firstSong = $("#songs .first");
				playSong(firstSong, true);
			}
		});
		if(!loadOnly) {
			$("#musicPlayer").jPlayer("play");
			$("#musicControls .jp-play").hide();
			$("#musicControls .jp-pause").show();
			$(ref).hide();
			$(ref).parent().find(".pause").show();
		}
		return false;
	}
}

function play() {
	var ref = $("#musicPlayer").data("currentSong");
	$("#musicPlayer").jPlayer("play");
	$("#musicControls .jp-play").hide();
	$("#musicControls .jp-pause").show();
	$(ref).hide();
	$(ref).parent().find(".pause").show();
	return false;
}

function pause() {
	var ref = $("#musicPlayer").data("currentSong");
	$("#musicPlayer").jPlayer("pause");
	$("#musicControls .jp-play").show();
	$("#musicControls .jp-pause").hide();
	$(ref).show();
	$(ref).parent().find(".pause").hide();
	return false;
}

function initShareLinks() {
	$("#share-box").data("currentShare", 0);
	$(".share").click(function() {
		if($("#share-box").data("currentShare") == this) {
			if($("#share-box").css("display") == "none") {
				$("#share-box").fadeIn(100);
			} else {
				$("#share-box").fadeOut(50);
			}
		} else {
			$("#share-box").hide();
			$("#share-box").data("currentShare", this);
			var songName = $(this).parent().parent().find("h4").text();
			var artist = "Gold";
			var shareURL = $(this).attr("data");
			$("#share-box .facebook").attr("href", "http://www.facebook.com/sharer.php?u="+encodeURIComponent(shareURL));
			var twit = "Listening to "+songName+" by "+artist+". Check it out! "+shareURL;
			$(".twitter").attr("href", "http://twitter.com/home?status="+encodeURIComponent(twit));
			var ypos = $(this).offset().top+10;
			$("#share-box").css("top", ypos);
			$("#share-box").fadeIn(100);
		}
	});
	$("#songs").scroll(function() {
		$("#share-box").hide();
	})
}

function download(id) {
	if(email = $.cookie("email")) {
		query("checkEmail", "email:"+email, function(data) {
			if(data.success) {
				setDownloadFrame(id);
			} else {
				$.cookie("email", null);
				downloadPrompt(id);
			}
		});
	} else {
		downloadPrompt(id);
	}
	return false;
}

function setDownloadFrame(file) {
	$("#download-frame").attr("src", "download.php?f="+file);
}

function downloadPrompt(id) {
	$("#download-prompt").show();
	$("#download-prompt").data("did", id);
}

function downloadSubmit() {
	var email = $("#downloadEmail").val();
	query("checkEmail", "email:"+email, function(data) {
		if(data.success) {
			$.cookie("email", email);
			var id = $("#download-prompt").data("did");
			$("#download-prompt").hide();
			resetDownloadPrompt();
			$("#download-prompt input").val("");
			setDownloadFrame(id);
		} else {
			$("#downloadEmail2").val(email);
			$("#download-prompt .step1").hide();
			$("#download-prompt .step2").show();
		}
	});
	return false;
}

function downloadSubmit2() {
	var email = $("#downloadEmail2").val();
	var name = $("#downloadName").val();
	var birthMonth = $("#downloadBirthMonth").val();
	var birthDay = $("#downloadBirthDay").val();
	var birthYear = $("#downloadBirthYear").val();
	if($('#downloadSubscribe').is(':checked')) {
		var subscribe = "on";
	} else {
		var subscribe = "off";
	}
	query("addEmail", "email:"+email+";name:"+name+";birthMonth:"+birthMonth+";birthDay:"+birthDay+";birthYear:"+birthYear+";subscribe:"+subscribe, function(data) {
		if(data.success) {
			$.cookie("email", email);
			var id = $("#download-prompt").data("did");
			$("#download-prompt").hide();
			resetDownloadPrompt();
			setDownloadFrame(id);
		} else {
			if(data.error) {
				$("#download-prompt .error").text(data.error);
			}
			if(data.issues) {
				for(key in data.issues) {
					var issueList = "";
					for(issue in data.issues[key]) {
						issueList += "<p>"+data.issues[key][issue]+"</p>";
					}
					$("#download-prompt ."+key+"-error").html(issueList);
				}
			}
		}
	});
	return false;
}

function resetDownload1() {
	$("#download-prompt #downloadEmail").val("");
}

function resetDownload2() {
	$("#download-prompt #downloadEmail2").val("");
	$("#download-prompt #downloadName").val("");
	$("#download-prompt #downloadBirthMonth").val("mm");
	$("#download-prompt #downloadBirthDay").val("dd");
	$("#download-prompt #downloadBirthYear").val("yyyy");
	$("#download-prompt #downloadSubscribe").attr('checked', true);
	$("#download-prompt .error").html("");
	$("#download-prompt .small-error").html("");
	
}

function resetDownloadPrompt() {
	resetDownload1();
	resetDownload2();
	$("#download-prompt .step1").show();
	$("#download-prompt .step2").hide();
}
