var rootdir = "/"
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
var showTags = true;

function contact(name) {
	location.href='mailto:'+name+'@itsatrap.com';
	}

function validateLogin() {
	if(!jQuery.trim($("#username").val())) {
		alert("Please enter your username");
		$("#username").focus();
		return false;
		}
	if(!jQuery.trim($("#password").val())) {
		alert("Please enter your password");
		$("#password").focus();
		return false;
		}
	//validate username + password, then apply the cookie
	$.post(rootdir+"tools.php", { action: "validateLogin", username: $("#username").val(), password: $("#password").val(), time: "year" },
		function(data){
			if(data == "PASS") {
				location.reload(true);
				} else {
				alert("Failed authorization.");
				}
		});
	return false;
	}
	
function validateMsg() {
	if(!jQuery.trim($("#username_to").val())) {
		alert("Please enter the name of the addressee");
		$("#username_to").focus();
		return false;
		}
	if(!jQuery.trim($("#subject").val())) {
		alert("Please enter your subject");
		$("#subject").focus();
		return false;
		}
	if(!jQuery.trim($("#msgbody").val())) {
		alert("Please enter your message");
		$("#msgbody").focus();
		return false;
		}
	//check to see if the username is valid
	$.post(rootdir+"tools.php", { action: "validateUsername", username: $("#username_to").val() },
		function(data){
			if(data == "PASS") {
				//send the msg
				$.post(rootdir+"tools.php", { action: "sendMsg", username_to: $("#username_to").val(), subject: $("#subject").val(), msgbody: $("#msgbody").val() },
					function(data){
						if(data == "SENT") {
							//sent!
							location.href=rootdir+"send_pmsg/msgsent";
							} else {
							alert("Failed authorization.");
							return false;
							}
					});
				} else {
				alert("User does not exist.");
				$("#username_to").focus();
				return false;
				}
		});
	return false;
	}
	
function validatePost() {
	if(!jQuery.trim($("#commentUsername").val())) {
		alert("Please enter your username");
		$("#commentUsername").focus();
		return false;
		}
	if(!jQuery.trim($("#commentPassword").val())) {
		alert("Please enter your password");
		$("#commentPassword").focus();
		return false;
		}
	if(!jQuery.trim($("#msgbody").val())) {
		alert("Please enter your post");
		$("#msgbody").focus();
		return false;
		}
	$.post(rootdir+"tools.php", { action: "validatePost", id: document.commentForm.id.value, ip: document.commentForm.ip.value,
								  username: $("#commentUsername").val(), password: $("#commentPassword").val(), msgbody: $("#msgbody").val() },
		function(data){
			if(data == "PASS") {
				location.reload(true);
				} else {
				alert("Failed authorization.");
				}
		});
		
	return false;
	}
	
function resetPassword() {
	if(!jQuery.trim($("#username").val())) {
		alert("Please enter your username");
		$("#username").focus();
		return false;
		}
	if(!jQuery.trim($("#email").val())) {
		alert("Please enter your email address");
		$("#email").focus();
		return false;
		}
	if(!jQuery.trim($("#security_answer").val())) {
		alert("Please enter your mother's maiden name");
		$("#security_answer").focus();
		return false;
		}
	$.post(rootdir+"tools.php", { action: "resetPassword", username: $("#username").val(), email: $("#email").val(), security_answer: $("#security_answer").val() },
		function(data){
			alert(data);
			if(data == "Your new password has been sent.") parent.$.fn.colorbox.close();
		});
		
	return false;
	}

function changePassword() {
	if(!jQuery.trim($("#password1").val())) {
		alert("Please enter your new password");
		$("#password1").focus();
		return false;
		}
	if(jQuery.trim($("#password1").val()).length < 4) {
		alert("Your password must be at least 3 characters in length.");
		$("#password1").focus();
		return false;
		}
	if($("#password1").val() != $("#password2").val()) {
		alert("Please verify your new password");
		$("#password2").focus();
		return false;
		}
	$.post(rootdir+"tools.php", { action: "changePassword", username: $("#username").val(), old_password: $("#old_password").val(), new_password: jQuery.trim($("#password1").val()) },
		function(data){
			alert(data);
			if(data.indexOf("new password")) parent.location.href=rootdir+"logout/";
		});
		
	return false;
	}
	
function agreeToTerms() {
	$("#disclaimer").hide();
	$("#signup").show();
	}
function registerAccount() {
	if(!jQuery.trim($("#username").val())) {
		alert("Please enter your username");
		$("#username").focus();
		return false;
		}
	if(jQuery.trim($("#username").val()) != jQuery.trim($("#username2").val())) {
		alert("Please validate your username");
		$("#username2").focus();
		return false;
		}
	if(!jQuery.trim($("#email").val())) {
		alert("Please enter your email");
		$("#email").focus();
		return false;
		}
	if(!pattern.test($("#email").val())) {
		alert("Please enter a valid email address")
		$("#email").focus();
		return false;
		}
	if(jQuery.trim($("#email").val()) != jQuery.trim($("#email2").val())) {
		alert("Please validate your email");
		$("#email2").focus();
		return false;
		}
	if(!jQuery.trim($("#security_answer").val())) {
		alert("Please enter your mother's maiden name (or some other security word that you'll remember)");
		$("#security_answer").focus();
		return false;
		}
	$.post(rootdir+"tools.php", { action: "registerAccount", username: jQuery.trim($("#username").val()), email: jQuery.trim($("#email").val()), security_answer: jQuery.trim($("#security_answer").val()) },
		function(data){
			alert(data);
			if(data.indexOf("Thanks for registering") == 0) parent.$.fn.colorbox.close();
		});
	return false;
	}
	
function checkEmail(form) {
	if(!pattern.test(form.email.value)) {
		alert("Please enter a valid email address")
		form.email.focus();
		return false;
		}
	return true;
	}
	
function deleteFilter(id,owner,linkid) {
	if (confirm("Are you sure?") == false) {
		return false;
		} else {
		$.post(rootdir+"tools.php", { action: "deleteFilter", id: id, owner: owner },
		function(data){
			if(data == "PASS") {
				$("#filters").effect("highlight", {}, 1000);
				$(linkid).parent("div").parent(".tRow2").remove();
				} else {
				alert("Failed authorization.");
				}
			});
		}
	}
	
(function($){
$.fn.artistTip = function(html) {
   return this.each(function() {
      var $obj = $(this);
      $('<div class="popup" title="'+ $obj.text() +'"><div class="top"></div><div class="text"><img src="/images/loading-t.gif" width="24" height="24" /></div></div>').appendTo($obj);
      var $layer = $('.popup',$obj);
      if (jQuery.isFunction(html)) html($layer);
      else $layer.html('');

      $obj.hover(function(){
	    if (showTags == true) {
			var $artist = escape($layer.attr("title"));
			$layer.load(rootdir+'tools.php?getArtist='+$artist).show();
			var p = $obj.position();
			var y = p.top + $obj.height();
			var x = p.left;
			$layer.css({ left: x+'px', top: y+'px' });
			}
		}, function(){$layer.hide()});
		});
	};
})(jQuery);

$(document).ready(function() {
	$('.post b').artistTip('');

	$("#loginBtn").click(function() {
		$("#loginForm").slideToggle();
		return false;
		});
	$("#toolbox li a").click(function() {
		$("#toolbox .box").hide();
		$("#toolbox li a").removeClass("on");
		$(this).addClass("on");
		$("#toolbox .box").eq($("#toolbox li a").index(this)).show();
		return false;
		});
		
	$("#search").autocomplete(rootdir+"tools.php", {
		width: 202,
		scroll: true,
		scrollHeight: 300
		});
	$("#username_to").autocomplete(rootdir+"users.php", {
		width: 277,
		scroll: true,
		scrollHeight: 300
		});
	$(".mp3Player").each(function() {
		var num = $(this).attr("id").match(/player_(\d+)/)[1];
		var ctrlId = "#mp3_" + num;
		var audioFile = $(ctrlId + " a.mp3").attr("href");
		$(this).jPlayer({
			ready: function () {
				$(this).jPlayer("setMedia", {
					mp3: audioFile
				})
			},
			supplied: "mp3",
			volume: 1,
			swfPath: "/js",
			cssSelectorAncestor: ctrlId,
			preload: "none"
		});
		$(ctrlId + " .jp-play").click(function() {
			$(".mp3Player").jPlayer("pause");
			$("#player_"+ num).jPlayer("play");
			});
	});
		
	$("#more_reviews").click( function(){
		if (reviewTab == 0) $("#less_reviews").attr({src: rootdir+"images/prev.gif"});
		if (reviewTab == reviewLimit) return false;
		if (reviewTab < reviewLimit) reviewTab = reviewTab+3;
		if (reviewTab == reviewLimit) $("#more_reviews").attr({src: rootdir+"images/next-off.gif"});
		var $div = $("#latest_review");
		$div.hide("slide", { direction: "left" }, 1000, function() { 
			$div.html('');
			$div.load(rootdir+'tools.php?getReviews='+reviewTab,$div.show());
			} );
		return false;
		});
	$("#less_reviews").click( function(){
		if (reviewTab == 0) return false;
		if (reviewTab == 3) $("#less_reviews").attr({src: rootdir+"images/prev-off.gif"});
		if (reviewTab == reviewLimit) $("#more_reviews").attr({src: rootdir+"images/next.gif"});
		if (reviewTab <= reviewLimit) reviewTab = reviewTab-3;
		var $div = $("#latest_review");
		$div.hide("slide", { direction: "right" }, 1000, function() { 
			$div.html('');
			$div.load(rootdir+'tools.php?getReviews='+reviewTab,$div.show());
			} );
		return false;
		});
	var reviewTab = 0;
	var reviewLimit = 99;
	
	$("#more_articles").click( function(){
		if (articleTab == 0) $("#less_articles").attr({src: rootdir+"images/prev.gif"});
		if (articleTab == articleLimit) return false;
		if (articleTab < articleLimit) articleTab = articleTab+1;
		if (articleTab == articleLimit) $("#more_articles").attr({src: rootdir+"images/next-off.gif"});
		var $div = $("#latest_article");
		var h = $div.height();
		$div.hide("slide", { direction: "left" }, 1000, function() { 
			$div.html('<div class="loading" style="height:'+h+'px;"></div>');
			$div.load(rootdir+'tools.php?getArticles='+articleTab,$div.show());
			} );
		return false;
		});
	$("#less_articles").click( function(){
		if (articleTab == 0) return false;
		if (articleTab == 1) $("#less_articles").attr({src: rootdir+"images/prev-off.gif"});
		if (articleTab == articleLimit) $("#more_reviews").attr({src: rootdir+"images/next.gif"});
		if (articleTab <= articleLimit) articleTab = articleTab-1;
		var $div = $("#latest_article");
		var h = $div.height();
		$div.hide("slide", { direction: "right" }, 1000, function() { 
			$div.html('<div class="loading" style="height:'+h+'px;"></div>');
			$div.load(rootdir+'tools.php?getArticles='+articleTab,$div.show());
			} );
		return false;
		});
	var articleTab = 0;
	var articleLimit = 99;
	
	$("#more_mp3s").click( function(){
		if (mp3Tab == 0) $("#less_mp3s").attr({src: rootdir+"images/prev.gif"});
		if (mp3Tab == mp3Limit) return false;
		if (mp3Tab < mp3Limit) mp3Tab = mp3Tab+1;
		if (mp3Tab == mp3Limit) $("#more_mp3s").attr({src: rootdir+"images/next-off.gif"});
		var $div = $("#latest_mp3");
		var h = $div.height();
		$div.hide("slide", { direction: "left" }, 1000, function() { 
			$div.html('<div class="loading" style="height:'+h+'px;"></div>');
			$div.load(rootdir+'tools.php?getMp3='+mp3Tab,$div.show());
			} );
		return false;
		});
	$("#less_mp3s").click( function(){
		if (mp3Tab == 0) return false;
		if (mp3Tab == 1) $("#less_mp3s").attr({src: rootdir+"images/prev-off.gif"});
		if (mp3Tab == mp3Limit) $("#more_mp3s").attr({src: rootdir+"images/next.gif"});
		if (mp3Tab <= mp3Limit) mp3Tab = mp3Tab-1;
		var $div = $("#latest_mp3");
		var h = $div.height();
		$div.hide("slide", { direction: "right" }, 1000, function() { 
			$div.html('<div class="loading" style="height:'+h+'px;"></div>');
			$div.load(rootdir+'tools.php?getMp3='+mp3Tab,$div.show());
			} );
		return false;
		});
	var mp3Tab = 0;
	var mp3Limit = 99;
	
	$("#more_releases").click( function(){
		if (releaseTab == 0) $("#less_releases").attr({src: rootdir+"images/prev.gif"});
		if (releaseTab == releaseLimit) return false;
		if (releaseTab < releaseLimit) releaseTab = releaseTab+3;
		if (releaseTab == releaseLimit) $("#more_releases").attr({src: rootdir+"images/next-off.gif"});
		var $div = $("#latest_releases");
		$div.hide("slide", { direction: "left" }, 1000, function() { 
			$div.html('');
			$div.load(rootdir+'tools.php?getReleases='+releaseTab,$div.show());
			} );
		return false;
		});
	$("#less_releases").click( function(){
		if (releaseTab == 0) return false;
		if (releaseTab == 3) $("#less_releases").attr({src: rootdir+"images/prev-off.gif"});
		if (releaseTab == releaseLimit) $("#more_releases").attr({src: rootdir+"images/next.gif"});
		if (releaseTab <= releaseLimit) releaseTab = releaseTab-3;
		var $div = $("#latest_releases");
		$div.hide("slide", { direction: "right" }, 1000, function() { 
			$div.html('');
			$div.load(rootdir+'tools.php?getReleases='+releaseTab,$div.show());
			} );
		return false;
		});
	var releaseTab = 0;
	var releaseLimit = 15;
	
	$("#more_comments").click( function(){
		if (commentsTab == 0) $("#less_comments").attr({src: rootdir+"images/prev.gif"});
		if (commentsTab == commentsLimit) return false;
		if (commentsTab < commentsLimit) commentsTab = commentsTab+4;
		if (commentsTab == commentsLimit) $("#more_comments").attr({src: rootdir+"images/next-off.gif"});
		var $div = $("#latest_comments");
		var h = $div.height();
		$div.hide("slide", { direction: "left" }, 1000, function() { 
			$div.html('<div class="loading" style="height:'+h+'px;"></div>');
			$div.load(rootdir+'tools.php?getComments='+commentsTab,$div.show());
			} );
		return false;
		});
	$("#less_comments").click( function(){
		if (commentsTab == 0) return false;
		if (commentsTab == 4) $("#less_comments").attr({src: rootdir+"images/prev-off.gif"});
		if (commentsTab == commentsLimit) $("#more_comments").attr({src: rootdir+"images/next.gif"});
		if (commentsTab <= commentsLimit) commentsTab = commentsTab-4;
		var $div = $("#latest_comments");
		var h = $div.height();
		$div.hide("slide", { direction: "right" }, 1000, function() { 
			$div.html('<div class="loading" style="height:'+h+'px;"></div>');
			$div.load(rootdir+'tools.php?getComments='+commentsTab,$div.show());
			} );
		return false;
		});
	var commentsTab = 0;
	var commentsLimit = 88;
		
	$(".frame").colorbox({iframe:true, width:700, height:500});
	
	$(".tablesorter").tablesorter({headers:{3: {sorter:false} }, sortList:[[2,1]], widgets: ['zebra']});
	$(".mailorder").tablesorter({widgets: ['zebra']});
	
	$(".delete").click(function() {
		return confirm("Are you sure?");
		});
	$("#previewPost").click(function() {
		if(!jQuery.trim($("#commentUsername").val())) return false;
		if(!jQuery.trim($("#commentPassword").val())) return false;
		if(!jQuery.trim($("#msgbody").val())) return false;
		$("#submitPost").attr("disabled","disabled");
		var msgbody = $("#msgbody").val();
		$.post(rootdir+"tools.php", { action: "cleanHtml", msgbody: msgbody },
			function(data){
				msgbody = data.replace(new RegExp( "\\n", "g" ),"<br />");
				$.post(rootdir+"tools.php", { action: "getPostdatetime" },
					function(data){
						$("#preview").html('<div class="postheader"><strong>'+ $("#commentUsername").val() +'</strong><br/><span class="grey">'+ data +'</span></div><div class="row">'+ msgbody +'</div>').effect("highlight", {}, 1000);
						$("#submitPost").attr("disabled","");
						});
				
				});
		});
	$(".tRow2").hover(function(){
		$(this).css("background","#ffff80").children(".hidden").show();
		}, function(){
		$(this).css("background","none").children(".hidden").hide();
		});
	$("#myFilters").click(function () {
		$("#myFiltersList").slideToggle();
		return false;
		});
		
	$(".watchRow").hover(function(){
		$(this).children(".hidden").show();
		}, function(){
			$(this).children(".hidden").hide();
		});
	$(".post label").dblclick(function () { 
		location.href=rootdir+"label/"+escape($(this).text());
		});
	$(".post b").dblclick(function () { 
		location.href=rootdir+"artist/"+escape($(this).children(".popup").attr("title"));
		});
	$("#postsPerPg").change(function () {
		$(this).attr("disabled","disabled");
		$.post(rootdir+"tools.php", { setItemsPerPg: $(this).val() },
			function(data){
				if(data == "PASS") {
					$("#options").append("<em>Wait one moment while the page refreshes</em>").effect("highlight", {}, 1000);
					setTimeout("location.reload(true)",1000);
					}
				});
		});
	$("#toggleShowTags").click(function () {
		$.post(rootdir+"tools.php", { toggleShowTags: showTags },
			function(data){
				if(data == "1") {
					$("#toggleShowTags").text("Turn off artist tooltips");
					$("#options").effect("highlight", {}, 1000);
					showTags = true;
					}
				if(data == "0") {
					$("#toggleShowTags").text("Turn on artist tooltips");
					$("#options").effect("highlight", {}, 1000);
					showTags = false;
					}
				});
		});
		
	$(".share").hover(function() {
		$(this).children(".hidden").show();
		$(this).fadeTo("slow",1); },
		function() {
		$(this).children(".hidden").hide();
		$(this).fadeTo("slow",0.5); }
		);
	$(".shareButton").click(function() {
		$(this).parent(".share").children("span").toggleClass("hidden");
		});
	
});
