function validateForm(f)
{
	for (var ii=0; ii<f.elements.length; ii++)
	{
		if (f.elements[ii].type=="text" || f.elements[ii].type=="textarea")
		{
			f.elements[ii].value = trimSpaces(f.elements[ii])
		}
	}

	for(var ii=0;ii<f.elements.length;ii++)
	{		
		if(f.elements[ii].value.indexOf("'",0)>=0)
		{
			alert("' Not Allowed in "+f.elements[ii].name);
			f.elements[ii].focus();
			return false;
		}
	}

	for (var i=0; i<f.elements.length; i++)
	{

		if(f.elements[i].alt)
		{
			testOk = false;
			checkValue	= f.elements[i].alt;
			fieldValue	= f.elements[i].value;
			fieldName	= f.elements[i].name
			objFrm		= f;
			objField	= f.elements[i];
			params		= checkValue.split("|");

			if (params[0]!="")
			{
				switch (params[0]) 
				{
					// Calls appropriate validation function based on type				
					case 'blank'					: if (validateBlank(objField)) testOk = true; break;					
					case 'equalto'					: if (validateEqualTo(objField, params[1],objFrm)) testOk = true; break;
					case 'length'					: if (validateLength(objField, params)) testOk = true; break;
					case 'number'					: if (validateNumber(objField, params[1], params[2])) testOk = true; break;
					case 'numeric'					: if (validateNumeric(objField,params)) testOk = true; break;
					case 'zip'						: if (validateZip(objField,params)) testOk = true; break;
					case 'phone'					: if (validatePhone(objField)) testOk = true; break;
					case 'email'					: if (validateEmail(objField)) testOk = true; break;
					case 'charactor'				: if (validateChar(objField,params)) testOk = true; break;
					case 'allowCharactor'			: if (validateAllowChar(objField,params)) testOk = true; break;
					case 'checkTerms'				: if (validateCheckTerms(objField)) testOk = true; break;
					default							: alert('Validation Type Not Found:\n'+params[0]);
				}
				if (!testOk) 
				{
					objField.focus();
					return false;
				}
			}
		}
	}
}

//*****************************************************************************************************

function validateBlank(objField)
{
	if (objField.value == "")
	{
		alert("Please provide "+objField.name);
		return false;
	}
	else 
		return true;
}

//*****************************************************************************************************

function validateEqualTo(objField,checkValue,objFrm)
{
	var match;
	match = 0;
	for (var i=0; i<objFrm.elements.length; i++)
	{
		if(objFrm.elements[i].name==checkValue)
		{
			match=1;
			objSecField = objFrm.elements[i];
			break;
		}
	}

	if(match==1)
	{
		if(!validateBlank(objField))
			return false;
		if(!validateBlank(objSecField))
			return false;

		if (objField.value!=objSecField.value)
		{
			alert("values of "+objField.name+" and "+objSecField.name+" are not same");
			return false;
		}
		else
			return true;
	}
	else
	{
		alert("Error For Programmer:Please Enter The Correct Field Name");
		return false;
	}
}

//*****************************************************************************************************

function validateLength(objField, paramList)
{
	if(paramList[1]=='blank')
	{
		checkValue = paramList[2];
		if(!validateBlank(objField))
			return false;
	}
	else
		checkValue = paramList[1];


	if(objField.value.length>checkValue)
	{
		alert("Please Enter "+checkValue+" Charactor in "+objField.name);
		return false;
	}
return true;
}

//*****************************************************************************************************

function validateNumber(objField, firstNumber, secondNumber)		
{
	if(!validateBlank(objField))
		return false;

	if(isNaN(objField.value))
	{
		alert("Please enter numeric value in "+objField.name);
		return false;
	}
	else
	{
		if(parseInt(objField.value)>=firstNumber && parseInt(objField.value)<=secondNumber)
			return true;
		else
		{
			alert("Please enter numeric value between "+firstNumber+" and "+secondNumber+" in "+objField.name);
			return false;
		}
	}
}

//*****************************************************************************************************

function validateNumeric(objField,paramList)
{
	if(paramList[1]=='blank')
	{
		if(!validateBlank(objField))
			return false;
	}

	if(isNaN(objField.value))
	{
		alert("Please enter only numeric value in "+objField.name);
		return false;
	}
	else
		return true;
}

//*****************************************************************************************************

function validateZip(objField,paramList)
{
	if(paramList[1]=='blank')
	{
		maxLength=parseInt(paramList[2]);
		if(!validateBlank(objField))
			return false;
	}
	else
		maxLength = parseInt(paramList[1]);


	if(!validateNumeric(objField))
		return false;

	if(objField.value.length!=maxLength)
	{
		alert("Please enter "+maxLength+" charactor in "+objField.name);
		return false;
	}
	else
		return true;
}

//*****************************************************************************************************

function validatePhone(objField,maxLength)
{
	if(!validateNumeric(objField))
		return false;

	if(objField.value!=maxLength)
	{
		alert("Please enter "+maxLength+" charactor in "+objField.name);
		return false;
	}
	else
		return true;
}

//*****************************************************************************************************

function validateCheckTerms(objField)
{

	if(objField.checked==false)
	{
		alert("Please except terms and condition");
		return false;
	}
	else
		return true;
}

//*****************************************************************************************************

function validateEmail(objField)
{
	var checkError,firstAt,firstDot;

	if(!validateBlank(objField))
		return false;

	checkError = 0;
	firstAt = 0;
	firstDot = 0;

	firstAt = parseInt(objField.value.indexOf('@',0));
	firstDot = parseInt(objField.value.indexOf('.',0));

	if(parseInt(objField.value.charAt(0))>=0 && parseInt(objField.value.charAt(0))<=9)
	{
		checkError = 1;
	}

	if(firstAt>=0)
	{
		if(objField.value.indexOf('@',firstAt+1)>=0)
		{
			checkError = 1;
		}
		if(!findChar(objField.value,'@',2,firstAt,'.'))
		{
			checkError = 1;
		}
	}

	if(firstDot >= 0)
	{
		for(i=0;i<objField.value.length;i++)
		{
			if(objField.value.charAt(i)=='.')
			{
				if(!findChar(objField.value,'.',2,i,'@'))
				{
					checkError = 1;
				}
			}
		}
	}
	else
		checkError = 1;

	if(checkError == 1)
	{
		alert("Please entre valid Email Address in "+objField.name);
		return false;
	}
	else
		return true;
}

//*****************************************************************************************************

function findChar(string,chr,noOfChar,startPos,charNotInclude)
{
	pos = parseInt(string.indexOf(chr,startPos));
	if(pos>1)
	{
		remChar = string.length - pos;
		if(remChar>2)
		{
			subStringLeft = string.substring(pos-2,pos);
			subStringRight = string.substring(pos+1,pos+3);
			if(subStringLeft.indexOf(charNotInclude,0)>=0 || subStringRight.indexOf(charNotInclude,0)>=0)
				return false;
			else
				return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}

//*****************************************************************************************************

function validateChar(objField,paramList)
{
	for(i=1;i<paramList.length;i++)
	{
		if(paramList[i]=='blank')
		{
			if(!validateBlank(objField))
				return false;
		}
		else
		{
			if(paramList[i]=='0-9')
			{
				for(j=0;j<objField.value.length;j++)
				{
					if(parseInt(objField.value.charAt(j))>=0 && parseInt(objField.value.charAt(j))<=9)
					{
						alert("Numeric Value Not Allowed In "+objField.name);
						return false;
						break;
					}
				}
			}
			else
			{
				if(paramList[i]=='A-Z' || paramList[i]=='a-z')
				{
					for(j=0;j<objField.value.length;j++)
					{
						if((objField.value.charAt(j)>='a' && objField.value.charAt(j)<='z') || (objField.value.charAt(j)>='A' && objField.value.charAt(j)<='Z'))
						{
							alert("Charactors are Not Allowed In "+objField.name);
							return false;
							break;
						}
					}
				}
				else
				{
					if(objField.value.indexOf(paramList[i],0)>=0)
					{
						alert(paramList[i]+" Charactors are Not Allowed In "+objField.name);
						return false;
						break;
					}
				}
			}
		}
	}
	return true;
}

//*****************************************************************************************************

function trimSpaces(objField)
{
	temp = objField.value
	while(''+temp.charAt(0)==' ')
	{
		temp = temp.substring(1,temp.length);
	}
	return(temp)
}

//*****************************************************************************************************

function validateConfirm()
{
	if(confirm("Do you want to procced"))
		return true;
	else
		return false;
}

//*****************************************************************************************************

function mouse_out(obj,class1)
{
	obj.className = class1;
}

//*****************************************************************************************************

function mouse_over(obj,class1)
{
	obj.className = class1;
}

//*****************************************************************************************************
function ValidateStatus()
{
	if(confirm("Do You Want To Proceed"))
		return true;
	else
		return false;
}

//*****************************************************************************************************
function count_char(noOfCharators,obj)
{
	if(obj.value.length>noOfCharators)
	{
	var temp1;
	temp1="";
		for(i=0;i<noOfCharators-2;i++)
		{
			temp1 = temp1 + obj.value.charAt(i)
		}
		obj.value = temp1;
		alert("More then "+noOfCharators+" Charactor not allowed");
		return false;
	}
}	 