var fieldVal = null;

function searchErrors(errors)
{
	errorsExist = 0;
	for (i=0;i<errors.length;i++)
	{
		if (errors[i] != "")
		{
			errorsExist = 1;
			break;	
		}
	}
	return errorsExist;
}

function checkAddress(fieldName, required)
{
	if ($(fieldName) != null) if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF#, \:;' \. -]+$/))
			innerVal = "Only letters, numbers, apostrophes, periods, pound signs, commas, and dashes are allowed.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkCity(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\xC0-\xD6\xD8-\xF6\xF8-\xFF \' \. -]+$/))
			innerVal = "Only letters, apostrophes, periods, and dashes are allowed.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkEmail(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF_\.-]+@[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF_\.-]+\.[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF_-]+$/))
			innerVal = "You must enter a valid e-mail.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
	
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkGeneric(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF&_@#\.?!:;,\/\(\)\'’ -]+$/)) 
			innerVal = "Only letters, numbers, underscores, dashes, and punctuation may be used.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkInt(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[0-9]+$/))
			innerVal = "Only numbers are allowed.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkIntPhone(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[0-9\+ -]+$/))
			innerVal = "Only numbers, plus signs, and dashes are allowed.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkIntZip(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF -]+$/))
			innerVal = "Must be in a valid zip code format.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkMatch(fieldName1, fieldName2, word)
{
	fieldVal1 = $(fieldName1).value;	
	fieldVal2 = $(fieldName2).value;	
	var innerVal = "";
	
	if (fieldVal2 != "")
	{
		if (fieldVal1 != fieldVal2)
			innerVal = word+" must match.";
	}
	else innerVal = "Required Field.";
	$(fieldName2+'Error').innerHTML = innerVal;
	return innerVal;	
}

function checkName(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\xC0-\xD6\xD8-\xF6\xF8-\xFF\'\. -]+$/))
			innerVal = "Only letters, apostrophes, periods, and dashes may be used.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkPassword(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF]+$/) || fieldVal.length < 6)
			innerVal = "At least 6 letters and/or numbers must be used.";
		
	}
	else 
		if (required == 1) innerVal = "Required Field.";

	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkProvince(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\xC0-\xD6\xD8-\xF6\xF8-\xFF ]+$/))
			innerVal = "Only letters are allowed.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkTextarea(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		//if (fieldVal.match(/[\\\<\>]+/))
			//innerVal = "Backslashes, greater than and less then signs are not allowed.";
		innerVal = "";
	}
	else 
		if (required == 1) innerVal = "Required Field.";

	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkUsername(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[\w\d\xC0-\xD6\xD8-\xF6\xF8-\xFF]+$/) || fieldVal.length < 5)
			innerVal = "At least 5 letters and/or numbers without spaces must be used.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";

	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkUSPhone(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[0-9]{3,3}\-[0-9]{3,3}\-[0-9]{4,4}$/))
			innerVal = "Must be in designated format.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkUSZip(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^[0-9]{5,5}(\-[0-9]{4,4})?$/))
			innerVal = "Must be in a valid zip code format.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function checkWebsite(fieldName, required)
{
	if ($(fieldName) != null) fieldVal = $(fieldName).value;	
	else fieldVal = "";
	var innerVal = "";
	
	if (fieldVal != "" && fieldVal != null && fieldVal != "undefined")
	{
		if (!fieldVal.match(/^(http(s)?:\/\/|www.)[^<>]*$/))
			innerVal = "Must begin with http://, https://, or www.";
	}
	else 
		if (required == 1) innerVal = "Required Field.";
		
	handleErrorDIVs(fieldName, innerVal);
	return innerVal;
}

function handleErrorDIVs (fieldName, innerVal) {
	var errorName = fieldName+'Error';
	if ($(errorName )) {
		var errorObj = $(errorName);
		if (innerVal == "") errorObj.style.display = 'none';
		else {
			errorObj.innerHTML = innerVal;
			errorObj.style.display = 'block';
		}
	}
}