//validation javascript

//validation for First Name or Middle Name or Last Name
function validateName(fieldId, fieldName, required)
{
	var validChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	var flag = validateCharSets(fieldId, fieldName, 2, 100, required, validChars, fieldName + ' should be in alphabets only.')
	return flag;
		
}

function validateCharSets(fieldId, fieldName, minLength, maxLength, required, validChars, invalidCharsMsg)
{
	var flag = validateText(fieldId, fieldName, minLength, maxLength, required)
	var field = document.getElementById(fieldId);
	if(flag == true)
	{
		for(var ctr=0;ctr<field.value.length;ctr++)
		{
			if(validChars.indexOf(field.value.substring(ctr, ctr+1)) == -1)
			{
				alert(invalidCharsMsg);
				flag=false;
				break;
			}
		}
	}
	if(flag == false)
		field.focus();
			
	return flag;
}

//validation for text
function validateText(fieldId, fieldName, minLength, maxLength, required)
{
	var field = document.getElementById(fieldId);
	var flag = true;

	//alert(field);
	
	if(field.value == "" && required == true)
	{
		alert(fieldName + ' cannot be blank.');
		flag = false;
	}
	else if(field.value == "" && required == false)
	{
		return flag;
	}
	else if(field.value.length < minLength)
	{
		alert(fieldName + ' should be atleast ' + minLength + ' characters long.');
		flag = false;
	}
	else if(field.value.length > maxLength)
	{
		alert(fieldName + ' cannot be  longer than ' + maxLength + ' characters.');
		flag = false;
	}

	if(flag == false)
		field.focus();

	return flag;
}

function validatePhoneNo(fieldId, fieldName, required)
{
	validateNumeric(fieldId, fieldName, 1000000000, 9999999999, required)
}

//validation for numeric
function validateNumeric(fieldId, fieldName, minValue, maxValue, required)
{
	var field = document.getElementById(fieldId);
	var numericValue;
	var flag = true;
	
	if(field.value == "" && required == true)
	{
		alert(fieldName + ' cannot be blank.');
		flag = false;
	}
	else if(field.value == "" && required == false)
	{
		return flag;
	}
	else
	{
		numericValue = parseFloat(field.value);
		if(isNaN(numericValue) == false)
		{
			if (maxValue != 0 && maxValue != minValue)
			{
				if(numericValue < minValue)
				{
					alert(fieldName + ' cannot be less than ' + minValue + '.');
					flag = false;
				}
				else if(numericValue > maxValue)
				{
					alert(fieldName + ' cannot be greater than ' + maxValue + '.');
					flag = false;
				}
			}
		}
		else
		{
			alert(fieldName + ' should be a numeric value.');
			flag=false;
		}
	}
		
	if(flag == false)
		field.focus();

	return flag;
}

//validation for date
function validateDate(fieldId, fieldName, required)
{
	var field = document.getElementById(fieldId);
	var flag = true;
	
	

	if(field.value == "" && required == true)
	{
		alert(fieldName + ' cannot be blank.');
		flag = false;
	}
	else if(field.value == "" && required == false)
	{
		return flag;
	}
	else if( isNaN(new Date(field.value)) == true )
	{
		alert(fieldName + ' should be a date.');	
		flag = false;
	}

	if(flag == false)
		field.focus();

	return flag;
}

//validation for date
function validateEMailID(fieldId, fieldName, required)
{
	var field = document.getElementById(fieldId);
	var flag = true;

	if(field.value == "" && required == true)
	{
		alert(fieldName + ' cannot be blank.');
		flag = false;
	}
	else if(field.value == "" && required == false)
	{
		return flag;
	}
	else if(field.value.indexOf("@") == -1 || field.value.indexOf("@") == 0)
	{
		alert(fieldName + ' should be in format "username@domain".');	
		flag = false;
	}

	if(flag == false)
		field.focus();

	return flag;
}

function formatDate(field)
{
	value = field.value;
	
	slash1 = value.indexOf("\\");
	slash2 = value.indexOf("\\");

	if(slash1 == -1 || slash2 == -1)
		return false;
}