var errors = new Array();

function IN_strVal(fieldName, maxlen, minlen)
{
	IN_clearError(fieldName);
	
	if(minlen == null)
	{
		minlen = 1;
	}
	
	var len = gev(fieldName).length;
	
	if(len < minlen)
	{
		if(minlen == 1)
		{
			IN_addError(fieldName, 'Cannot be left blank.');
			return false;
		}
		else
		{
			IN_addError(fieldName, 'Must be at least ' + minlen + ' chars long.');
			return false;
		}
	}
	else if(len > maxlen)
	{
		if(minLen == 1)
		{
			IN_addError(fieldName, 'Must be less than ' + maxlen + ' chars long.');
			return false;
		}
		else
		{
			IN_addError(fieldName, 'Must be between ' + minlen + ' and ' + maxlen + ' chars long.');
			return false;
		}
	}
	
	return true;
}

function IN_emailVal(fieldName)
{
	IN_clearError(fieldName);
	
	if(gev(fieldName).length == 0)
	{
		IN_addError(fieldName, 'Cannot be left blank.');
		return false;
	}
	
	if(!gev(fieldName).match(/\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/))
	{
		IN_addError(fieldName, 'Invalid email address.');
		return false;
	}
	
	return true;
}

function IN_telNoVal(fieldName)
{
	IN_clearError(fieldName);
	
	if(gev(fieldName).length == 0)
	{
		IN_addError(fieldName, 'Cannot be left blank.');
		return false;
	}
	else
	{
		if(gev(fieldName).length > 20)
		{
			IN_addError(fieldName, 'Too long.');
			return false;
		}
	}
	
	return true;
}



function IN_clearError(fieldName)
{
	ge(fieldName).className = '';
	ge(fieldName + '_error').innerHTML = '';
}

function IN_clearErrors()
{
	errors = new Array();
}

function IN_addError(fieldName, errorStr)
{
	errors[fieldName] = errorStr;
	ge(fieldName).className = 'input_error';
	ge(fieldName + '_error').innerHTML = ' - ' + errorStr;
}

function IN_thereAreErrors()
{
	var key;
	for(key in errors)
	{
        if(errors.hasOwnProperty(key))
		{
			return true;
		}
    }
	
	return false;
}
