function validateFields()
{
	/* Form */
	var parentNode = document.getElementById("insertionNode");
	var stateField = document.getElementById("state");
	var inError = false;
	/* Firstname */
	inError = validateField(parentNode, "firstname", 0, "Please provide your first name");
	/* Lastname */
	inError = inError | validateField(parentNode, "lastname", 0, "Please provide your last name");
	/* Title */
	inError = inError | validateField(parentNode, "title", 0, "Please provide your position in the company");
	/* Company Name */
	inError = inError | validateField(parentNode, "companyname", 0, "Please provide your company name");
	/* Email */
	inError = inError | validateField(parentNode, "email", 2, "Please provide an email address");
	/* Phone */
	inError = inError | validateField(parentNode, "phone", 1, "Please provide your phone number");
	/* Number of locations */
	inError = inError | validateField(parentNode, "custentity19", 4, "Please provide the number of locations you currently have");
	/* State */
	inError = inError | validateField(parentNode, "state", 3, "Please provide the state your company is registered");
	
	if(!inError)
	{
		document.forms.salesForm.submit();
	}
}

function setAttr(__field, __attrName, __attrValue)
{
	var attr = document.createAttribute(__attrName);
	attr.nodeValue = __attrValue;
	__field.setAttributeNode(attr);
}

function validateField(__parentNode, __fieldname, __type, __errorText)
{
	var validationType = __type == null ? 0 : __type;
	var field = document.getElementById(__fieldname);
	var inError = false;
	
	var errorFieldName = "error-div-" + __fieldname;
	clearErrorField(__parentNode, errorFieldName);
	
	switch(__type)
	{
		case 0:
			inError = !isTextField(field.value);
			break;
		case 1:
			inError = !isPhoneField(field.value);
			break;
		case 2:
			inError = !isEmail(field.value);					
			break;
		case 3:
			inError = !isDropDownSelected(field);
			break;
		case 4:
			inError = !isNumberField(field.value);
			break;
	}
			
	if(inError)
	{
		displayErrorField(__parentNode, __fieldname, __errorText, errorFieldName);
	}
	
	return inError;
}

function clearErrorField(__parentNode, __errorFieldName)
{
	var rmField = document.getElementById(__errorFieldName);
	if(rmField != null)
	{
		__parentNode.removeChild(rmField);
	}
}

function displayErrorField(__parentNode, __fieldname, __errorText, __errorFieldName)
{
	var errorDiv = document.createElement("div");
	setAttr(errorDiv, "style", "color:#dd0000");
	setAttr(errorDiv, "id", __errorFieldName);
	errorDiv.innerHTML = __errorText;
	var labelField = document.getElementById(__fieldname + "Label");
	__parentNode.insertBefore(errorDiv, labelField);
}

function isDropDownSelected(__field)
{
	if(__field.selectedIndex > 0)
	{
		return true;
	}
	return false;
}

function isTextField(__field)
{
	if(__field.length > 0)
	{
		return true;
	}
	return false;
}

function isNumberField(__field)
{
	var regex = /^\d*$/;
	if(__field.length > 0 && __field.match(regex) != null)
	{
		return true;
	}
	return false;
}

function isPhoneField(__field)
{
	var regex = /^\d{10}$/;
	if(__field.length > 0 && __field.match(regex) != null)
	{
		return true;
	}
	return false;
}

function isEmail(__field)
{
	var regex = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
	if(__field.length > 0 && __field.match(regex) != null)
	{
		return true;
	}
	return false;
}
