// JavaScript Document

var serverAddress = "http://www.moodyornot.com/signupPost.php";
var postData = new Array();
var	newSack = new sack();
newSack.requestFile = serverAddress;
postData['username'] = null;
postData['password'] = null;
postData['repassword'] = null;
postData['email'] = null;

var pressSubmit = null;
var responseData = null;

function addInput() {
	var username = document.getElementById('username').value;
	var password = document.getElementById('user_password').value;
	var repassword = document.getElementById('user_repassword').value;
	var email = document.getElementById('email').value;
	if (username.length > 0) {
		postData['username'] = username;
	} else {
		postData['username'] = null;
	}
	if (password.length > 0) {
		postData['password'] = password;
	} else {
		postData['password'] = null;
	}
	if (repassword.length > 0) {
		postData['repassword'] = repassword;
	} else {
		postData['repassword'] = null;
	}
	if (email.length > 0) {
		postData['email'] = email;
	} else {
		postData['email'] = null;
	}
	if (username.length > 0 || password.length > 0 || repassword.length > 0 || email.length > 0) {
		checkInput();
	}
}

function checkInput() {
	if(postData['username'] != null) {
		if(postData['username'].length >= 3) {
			newSack.setVar("username",postData['username']);
		} else {
			document.getElementById('inputReportUsername').className = "error";
			document.getElementById('inputReportUsername').innerHTML = "Please make your username at least 3 characters long.";
		}
	}
	if(postData['password'] != null) {
		if(postData['password'].length < 3) {
			//Do too short password
			document.getElementById('inputReportPassword').className = "error";
			document.getElementById('inputReportPassword').innerHTML = "Please make your password at least 3 characters long.";
		} else {
			document.getElementById('inputReportPassword').className = "";
			document.getElementById('inputReportPassword').innerHTML = "";
		}
	}
	if(postData['repassword'] != null) {
		if(postData['password'] == postData['repassword']) {
			if(postData['password'].length >= 3) {
				newSack.setVar("password",postData['password']);
				document.getElementById('inputReportRepassword').className = "ok";
				document.getElementById('inputReportRepassword').innerHTML = "Your passwords match.";
			}
		} else {
			//Do password don't match
			document.getElementById('inputReportRepassword').className = "error";
			document.getElementById('inputReportRepassword').innerHTML = "Your passwords don't match.";
		}
	}
	if(postData['email'] != null) {
		newSack.setVar("email",postData['email']);
	}
	if (responseData == null) {
		responseData = 1;
		newSack.onCompletion = function(){ checkInputSubmited(); };
		newSack.runAJAX();
	}
}

function checkInputSubmited() {
	responseData = newSack.response;
	if (responseData != undefined) {
		responseData = responseData.parseJSON();
		if (responseData.READYSUBMIT == 1) {
			document.getElementById('inputReportUsername').className = "ok";
			document.getElementById('inputReportUsername').innerHTML = responseData.POSTUSERNAME + " is available.";
			document.getElementById('inputReportEmail').className = "ok";
			document.getElementById('inputReportEmail').innerHTML = "Your email seems valid.";
			if(pressSubmit == 1) {
				//Do submit
			}
		} else {
			if(pressSubmit == 1) {
				//Uhm, something is still wrong, please check all fields.
			}
			if(responseData.VALIDUSERNAME == "taken") {
				document.getElementById('inputReportUsername').className = "error";
				document.getElementById('inputReportUsername').innerHTML = responseData.POSTUSERNAME + " has has been taken.";
			} else if(responseData.VALIDUSERNAME == "invalid") {
				document.getElementById('inputReportUsername').className = "error";
				document.getElementById('inputReportUsername').innerHTML = "Please no symbols or spaces (- and _ allowed).";
			} else if(responseData.VALIDUSERNAME == "valid") {
				document.getElementById('inputReportUsername').className = "ok";
				document.getElementById('inputReportUsername').innerHTML = responseData.POSTUSERNAME + " is available.";
			}
			if(responseData.VALIDEMAIL == "invalid") {
				document.getElementById('inputReportEmail').className = "error";
				document.getElementById('inputReportEmail').innerHTML = "Your email address seems invalid.";
			} else if(responseData.VALIDEMAIL == "duplicate") {
				document.getElementById('inputReportEmail').className = "error";
				document.getElementById('inputReportEmail').innerHTML = "You probably have signed up before.";
			} else if(responseData.VALIDEMAIL == "valid") {
				document.getElementById('inputReportEmail').className = "ok";
				document.getElementById('inputReportEmail').innerHTML = "Your email seems valid.";
			}
		}
	}
	responseData = null;
	newSack = new sack();
	newSack.reset();
	newSack.requestFile = serverAddress;
}

function pressSubmit() {
	newSack.reset();
	pressSubmit = 1;
	checkInput();
}
