function validateComment() {
	resetErrors();
	
	var valid = true;
	
	var username = document.getElementById("username");
	var email = document.getElementById("email");
	var website = document.getElementById("website");
	var subject = document.getElementById("subject");
	var mainContent = document.getElementById("mainContent");
	
	var usernameError = document.getElementById("usernameError");
	var emailError = document.getElementById("emailError");
	var websiteError = document.getElementById("websiteError");
	var subjectError = document.getElementById("subjectError");
	var mainContentError = document.getElementById("mainContentError");
	
	if (username.value == "") {
		usernameError.innerHTML = "Error: Name required.";
		valid = false;
	}
	else if (username.value.length > 50) {
		usernameError.innerHTML = "Error: Name too long (max length = 50).";
		valid = false;
	}
	
	if (email.value == "") {
		emailError.innerHTML = "Error: Email required.";
		valid = false;
	}
	else if (email.value.length > 100) {
		emailError.innerHTML = "Error: Email too long (max length = 100).";
		valid = false;
	}
	else if (!isValidEmail(email.value)) {
		emailError.innerHTML = "Error: Invalid email address." 
		valid = false;
	}
	
	if (website.value.length > 255) {
		websiteError.innerHTML = "Error: Website too long (max length = 255).";
		valid = false;
	}
	else if (website.value.length > 0 && !isValidURL(website.value)) {
		websiteError.innerHTML = "Error: Invalid URL (must begin with http:// or https://)." 
		valid = false;
	}
	
	if (subject.value == "") {
		subjectError.innerHTML = "Error: Subject required.";
		valid = false;
	}
	else if (subject.value.length > 50) {
		subjectError.innerHTML = "Error: title too long (max length = 50).";
		valid = false;
	}
	
	if (mainContent.value == "") {
		mainContentError.innerHTML = "Error: comment required.";
		valid = false;
	}
	else if (mainContent.value.length > 10000) {
		mainContentError.innerHTML = "Error: comment too long (max length = 10000).";
		valid = false;
	}
		
	return valid;
}

function resetErrors() {
	var usernameError = document.getElementById("usernameError");
	var emailError = document.getElementById("emailError");
	var websiteError = document.getElementById("websiteError");
	var subjectError = document.getElementById("subjectError");
	var mainContentError = document.getElementById("mainContentError");
	
	usernameError.innerHTML = "";
	emailError.innerHTML = "";
	websiteError.innerHTML = "";
	subjectError.innerHTML = "";
	mainContentError.innerHTML = "";
}

function isValidURL(url) {
	var RegExp = /^(((https?)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/;
	if (RegExp.test(url)) {
        return true;
    }
	else{
        return false;
    }
}

function isValidEmail(email) {
    var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/;
    if (RegExp.test(email)) {
        return true;
    }
    else{
        return false;
    }
} 
