// JavaScript Document

/*var attendeeFields = ["first_name", "last_name", "email"];
var retreatFields = ["place", "start_date", "end_date"];*/

function removeErrorMsg(el) {
	// If error message already exists, removes it
	if (document.getElementById("error_" + el.id)) {
		var errorNode = document.getElementById("error_" + el.id);
		errorNode.parentNode.removeChild(errorNode);
	}
}
function writeErrorMsg(el,msg) {
	// Creates error message in div container
	// Using parentNode.innerHTML causes problem (textfield gets erased)
	var errorMsg = document.createElement("span");
	errorMsg.id = "error_" + el.id;
	errorMsg.className = "error";
	var txt = document.createTextNode(msg);
	errorMsg.appendChild(txt);
	el.parentNode.appendChild(errorMsg);
}

function checkField(el) {
	removeErrorMsg(el);
	if (el.id == "email") {
		if (!el.value.match(/^.+@.+\.[a-z]{1,4}$/)) {
			writeErrorMsg(el, "Email is invalid");
			return false;
		} else {
			return true;
		}
	} else if (el.id == "password_conf") {
		var password = document.getElementById("password");
		if (password.value != el.value) {
			writeErrorMsg(el, "Passwords do not match");
			return false;
		} else {
			return true;
		}
	} else if (el.id == "phone") {
		if (!el.value.match(/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/)) {
			writeErrorMsg(el, "Wrong phone number format");
			return false;
		} else {
			return true;
		}
	} else if (el.id == "date") {
		var dateCheck = true;
		if (!el.value.match(/^[0-1][0-9]\/[0-3][0-9]\/\d{4}$/)) {
			dateCheck = false;
		} else {
			var date = el.value.split("/");
			if ((date[0] <= 0) || (date[0] > 12) || (date[1] <= 0) || (date[1] > 31)) {
				dateCheck = false;
			}
		}
		if (!dateCheck) {
			writeErrorMsg(el, "Wrong date format");
		}
		return dateCheck;
	}  else {
		if (el.value == "") {
			writeErrorMsg(el, "This field is required");
			return false;
		} else {
			return true;
		}
	}
}

function checkForm(form) {
	//var fields = ["first_name", "last_name", "password", "password_conf", "email", "office_phone", "emergency_phone"];
	var fields;
	switch (form.id) {
		case "appointment":
			fields = ["first_name", "last_name", "phone", "email", "date"];
			break;
		case "contact":
			fields = ["first_name", "last_name", "email"];
			break;
	}
	var check = true;
	for (i=0; i<fields.length; i++) {
		var el = document.getElementById(fields[i]);
		check &= checkField(el);
	}
	//alert(check + " " + Boolean(check));
	return Boolean(check);
}