var passed = false;

$(function() {		
	
	/* Attach functions */
	
	$(".vote .vote-up").click( function() { 
		/* Vote Matter Up */
		var currentCount = parseInt($(".vote .vote-count").html());
		//$(".vote .vote-count").html(++currentCount);
		
		/* Send to server */
		var dataString = "mode=matter&value=up&id="+$(".vote #matterid").val();
		//alert(dataString);
		$.ajax({
				type: "POST",
				url: "/matters-ajax/vote.php",
				data: dataString,
				success: function(data, textStatus) { error_report(data); if(parseInt(data) == 0){  $(".vote .vote-count").html(++currentCount);} } });
	});
	
	$(".vote .vote-down").click( function() { 
		/* Vote Matter Up */
		//alert("Vote Down: "+$(".vote #matterid").val());
		var currentCount = parseInt($(".vote .vote-count").html());
		
	
		var dataString = "mode=matter&value=down&id="+$(".vote #matterid").val();
		//alert(dataString);
		$.ajax({
				type: "POST",
				url: "/matters-ajax/vote.php",
				data: dataString,
				success: function(data, textStatus) { error_report(data); if(parseInt(data) == 0){  $(".vote .vote-count").html(--currentCount);} }});
	});
	
	$(" #post-comment").click( function() { 
		//form validation
		var dataString = "mode=comment&id="+$("#comment-form #matterId").val()+"&comment="+$("#comment-form #matterTextarea").val();
		
		//validateUsername(); validateEmail(); 
		
		//if(passed)
		//{		
			//alert(dataString);
			$.ajax({type: "POST",
					url: "/matters-ajax/post-comment.php",
					data: dataString,
					success: function(data, textStatus) { error_report(data); location.href = '/matters/'+$("#comment-form #matterId").val()+'/#comments'; }});
	//	}
		//else
		//{
		//	return false;
		//}
	});
	
	//$("#username").focus(function() { $("#username-verify").animate({ backgroundColor: "white" }, 500); });
	//$("#email").focus(function() { $("#email-verify").animate({ backgroundColor: "white" }, 500); });
	//$("#username").blur(validateUsername);
	//$("#email").blur(validateEmail);	
	//$("#post-comment").click( function() { validateUsername(); validateEmail(); return passed; });	
			
});

function validateUsername() 
{ 
	var un = $("#username").val();
	
	if(un)
	{
		var dataString = "mode=username&value="+un;
		
		$.ajax({
				type: "POST",
				url: "/matters-ajax/register.php",
				data: dataString,
				success: function(data, textStatus) { if(!error_report(data)) { $("#username-verify").animate({ backgroundColor: "red" }, 2000); passed = false; } else {  passed = true; } } });
	} //do nothing on empty username
	else
	{
		$("#username-verify .error-text").html("Username is required.");
		$("#username-verify").animate({ backgroundColor: "red" }, 2000);
	}
	
	//alert("Success::: "+passed);
	//return passed;
}

function validateEmail() 
{ 
	var em = $("#email").val();
	
	if(!em)
	{
		$("#email-verify .error-text").html("Email is required.");
		$("#email-verify").animate({ backgroundColor: "red" }, 2000);
	}
	else if(! em.match(/^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$/i))
	{
		$("#email-verify .error-text").html("A valid email is required.");
		$("#email-verify").animate({ backgroundColor: "red" }, 2000);
	}
	else
	{
		var dataString = "mode=email&value="+em;
		
		$.ajax({
				type: "POST",
				url: "/matters-ajax/register.php",
				data: dataString,
				success: function(data, textStatus) { if(!error_report(data)) {  $("#email-verify").animate({ backgroundColor: "red" }, 2000); passed = false; } else {  passed = true; } } });
	} //do nothing on empty username
}

function error_report(err_data)
{
	var err = parseInt(err_data);
	var passed2 = false;
		
	switch(err)
	{
		case 1: alert("You do not have enough reputation to vote on this Matter.");
			break;
		
		case 2: alert("An unknown error occurred.");
			break;
		
		case 3: alert("You have already voted for this Matter.");
			break;
		
		case 4: alert("You must login to vote on Matters.");
		break;

		case 6: $("#email-verify .error-text").html("Email has already been taken.");
		//alert("That is taken");
		break;
		
		case 5: $("#username-verify .error-text").html("Display name has already been taken.");
		//alert("That is taken");
		break;
		
		//no error
		case 0: 
		default: passed2 = true; 
		break;
	}
	
	return passed2;
}

/*function error_report2(err_data)
{
	var err = parseInt(err_data);
	var passed2 = false;
	
	switch(err)
	{
		case 6: $("#email-verify .error-text").html("Email has already been taken.");
		//alert("That is taken");
		break;
		
		case 5: $("#username-verify .error-text").html("Display name has already been taken.");
		//alert("That is taken");
		break;
		
		//no error
		case 0: 
		default: passed2 = true; 
		break;
	}
	
	return passed2;
}*/