
$(document).ready(function() {

	$("#btnAddUser").bind("click",addNewUserForm);
	$("#btnNewSubmit").bind("click",validateRegisterForm);
	$("#btnUsersSubmit").bind("click",submitForm);
	
	$(".delUser").bind("click", removeUser);
	
	
	function addNewUserForm(e,ui){
		var lastUser = $("#tblUsers tbody tr:last").attr("id");
		var lastColor = $("#" + lastUser).attr("bgcolor");
		var newColor = altColor(lastColor);
		if (lastUser == null) {
			lastUser = "user-0";
		}
		var lastId = parseInt(lastUser.substring(lastUser.indexOf("-") + 1));
		var newId = lastId + 1;
	

		$("#tblUsers tbody").append("<tr id='user-" + newId + "' bgcolor='" + newColor + "'><td><div class='register-tag' >Name:</div><input name='txtUName-" + newId + "' type='text' id='txtUName-" + newId + "' /></td>" +
				"<td><div class='register-tag' >Email:</div><input id='txtUEmail-" + newId + "' type='text' name='txtUEmail-" + newId + "' /></td>" +
				"<td><div class='register-tag' >Password:</div><input id='txtUpwd-" + newId + "' type='password' name='txtUpwd-" + newId + "'/></td>" +
				"<td><div class='register-tag' >Confirm Password:</div><input id='txtUpwdconfirm-" + newId + "' type='password' name='txtUpwdconfirm-" + newId + "' /></td>" +
				"<td><div class='register-tag' >&thinsp;</div><a href='#' id='delUser-1' class='delUser'>X</a></td></tr>");
		$("#lastUser").val(newId);
		
		$(".delUser").bind("click", removeUser);
		//only allow them to add up to 4 users
		if (newId >= 4) {
			$("#btnAddUser").remove();
		}
		return false;

	}
	
	function validateRegisterForm(e,ui) {
		if (nullIsZero($("#txtName").val()) == 0) {
			alert("You did not enter your name.");
			return false;
		}
		if (nullIsZero($("#txtEmail").val()) == 0) {
			alert("You did not enter your email.");
			return false;
		}

		if (!($("#txtEmail").val().indexOf("@") > 0)) {
			alert("You did not enter a valid email address.");
			return false;
		}
		
		if (nullIsZero($("#txtpwd").val()) == 0) {
			alert("You did not enter a password.");
			return false;
		}
		
		if (nullIsZero($("#txtpwd").val()) != nullIsZero($("#txtpwdconfirm").val())) {
			alert("The passwords you entered do not match");
			return false;
		}

		document.frmRegister.submit();		
	
	}

	function submitForm(e,ui) {
		//check that all input fields have been filled in and that passwords match password confirms
		var lastUser = $("#lastUser").val();
		var submitok = true;

		for (var currUser = 1; currUser <=lastUser; currUser++) {
				$("#user-" + currUser + " td input").each( function() {
				if (nullIsZero($(this).attr("id")) != 0) {
					if (nullIsZero($(this).val()) == 0){
						alert ("User " + currUser + " is not filled out entirely.");
						submitok = false;
						return false;
						
					}
				}
			
			});	
			if ($("#txtUpwd-" + currUser).val() != $("#txtUpwdconfirm-" + currUser).val() ) {
				alert ("Passwords for User " + currUser + " do not match.");
				submitok = false;
				return false;			
			}

		}
		if (submitok) {
			document.frmNewUsers.submit();		
		}
		
	
	}
	
	function removeUser(e,ui) {
		var row_id = $(this).attr('id');
		row_id = row_id.substring(row_id.indexOf("-") + 1);

		var lastUser = $("#lastUser").val();
		$("#user-" + row_id).remove();
				
		for (var currUser = parseInt(row_id) + 1; currUser <=lastUser; currUser++) {
			$("#user-" + currUser + " td").children().each( function() {
				if (nullIsZero($(this).attr("id")) != 0) {
					var currName = ($(this).attr("id")).substring(0,$(this).attr("id").indexOf("-") + 1);
					$(this).attr("id", currName + (parseInt(currUser) -1)).attr("name", currName + (parseInt(currUser) -1));
				}
			
			});			
			$("#user-" + currUser).attr("id","user-" + (parseInt(currUser) -1));
		}
		
		$("#lastUser").val(lastUser -1);
		
		return false;

	}	

	
	/********************
	HELPER FUNCTIONS
	*********************/
});	

function altColor(color){
		if (color == '#dddddd') {
			return '#ffffff';
		} else {
			return '#dddddd';
		}
		
	}
	
	function nullIsZero(n) {
		var varN = n;
		if (varN == "" || varN == null) {
			varN = 0;
		} 
		return varN;
	}
	

