/* locating and creating objects */
function getObj(idvalue) {return document.getElementById(idvalue);}
function getArray(tag) {return document.getElementsByTagName(tag);}
function createEl(tag) {return document.createElement(tag);}
function createTxt(text) {return document.createTextNode(text);}

// Form validation
function formValidate() {
	errMsg = ['Please enter your first and last name, correctly formatted.','Please enter your address.','Please enter your city','Please enter your state.','Please enter a valid zip code','Please enter a valid phone number.','Please enter a valid email address']
	var errorsExist = false;
	
	var name = urName.value;
  	name = name.match(/^[a-zA-Z\-]+\s+[a-zA-Z\-\.\,\s]+$/);
	var state = urState.value;
	state = state.match(/^\w{2}$/);
	var zip = urZip.value;
	zip = zip.match(/(^\d{5}$)|(^\d{5}(-|\.| )?\d{4}$)/);
	var phone = urPhone.value;
	phone = phone.match(/^((\+\d{1,3}(-| |\.)?\(?\d\)?(-| |\.)?\d{1,5})|(\(?\d{2,6}\)?))(-| |\.)?(\d{3,4})(-| |\.)?(\d{4})(( x| ext)\d{1,5}){0,1}$/);
	var email = urEmail.value;
	email = email.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
	
	
	delCurrent = getArray('div');
	for (i=0; i<delCurrent.length; i++) {
	  if (delCurrent[i].className == 'error') {delCurrent[i].style.display = 'none'}
	}
	
    if (!name) {urName.parentNode.insertBefore(createMsg(errMsg[0]),urName); errorsExist = true;}
	if (urAddr.value == "") {urAddr.parentNode.insertBefore(createMsg(errMsg[1]),urAddr); errorsExist = true;}
	if (urCity.value == "") {urCity.parentNode.insertBefore(createMsg(errMsg[2]),urCity); errorsExist = true;}
	if (!state) {urState.parentNode.insertBefore(createMsg(errMsg[3]),urState); errorsExist = true;}
	if (!zip) {urZip.parentNode.insertBefore(createMsg(errMsg[4]),urZip); errorsExist = true;}
	if (!phone) {urPhone.parentNode.insertBefore(createMsg(errMsg[5]),urPhone); errorsExist  = true;}
	if (!email) {urEmail.parentNode.insertBefore(createMsg(errMsg[6]),urEmail); errorsExist = true;}
	
	if (errorsExist == true) {return false;}
}
	
function createMsg(errValue) {
  msg = createEl('div');
	msg.className = 'error';
	msgTxt = createTxt(errValue);
	msg.appendChild(msgTxt);
	return msg;
}

function formGetContents() {
	urName = getObj('name');
	urAddr = getObj('address');
	urCity = getObj('city');
	urState = getObj('state');
	urZip = getObj('zip');
	urPhone = getObj('phone');
	urEmail = getObj('email');
	
	submitBtn = getObj('submit');
	submitBtn.onclick = formValidate;
}
