	function isEmpty(s)
	{  
			return ((s == null) || (s.length == 0)||s.charAt(0) == ' ')
	}
	//Select and focus on object.
	function selfocobj(obj, str)
	{
				alert(str);
				obj.select();
				obj.focus();
	}

	// checks whether string is numeric or not.
	function isNumeric(obj,s)
	{
			if(isEmpty(obj.value) | isNaN(obj.value)){
					selfocobj(obj, s)
					return false;
				}
			return true;
	}
	// checks whether string is empty or not
	function required(obj, s)
	{ 
		if(isEmpty(obj.value)){
			selfocobj(obj, s)
			return false;
		}		
		return true;
	}
	function IsValidFloatValue(strVal)
	{
		nNoOfArguments = IsValidFloatValue.arguments.length;

		//if no parameter is supplied
		if(nNoOfArguments < 1)
		{
			return false;
		}		

		//valid characters a supplied string can have
		var sValidChars = "0123456789.";
		strVal = new String(strVal);	//convert the value to a string object

		var bReturn = true;	
		var i = new Number(0);
		//if more than one decimal exist in value
		if(strVal.indexOf(".") != strVal.lastIndexOf("."))
			return false;

		//if first character is 0 
		if(('0' == strVal.charAt(0)))
		{
			//if next is not decimal
			if (!('.' == strVal.charAt(1)))
			{
				return false;
			}
		}	

		while ((bReturn) && (i < strVal.length))
		{
			bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
			i++;
		}
		return (bReturn)
	}
    function IsDateValid(nMonth, nDay, nYear)
		{
			nMonth=nMonth-1;
			//nDay=nDay-1;
			nNoOfArguments = IsDateValid.arguments.length;

			//if any of the three parameter is not supplied
			if(nNoOfArguments < 3)
			{
				return false;
			}	

			//if month value is not correct i.e. not between 0-11
			if ((nMonth > 11) || (nMonth < 0))
			{
				return false;
			}

			//if day value is not correct i.e. not between 1-31
			if ((nDay > 31) || (nDay < 1))
			{
				return false;
			}

			//if month value is 0,2,4,6,7,9,11 i.e. January,March,May,July,August,October,December
			//and days are 31 return true.
			//if month value is 3,5,8,10 i.e. April,June,September,November
			// and days are greater then 30 return false.
			//if month value is 1 i.e. February and days are 29 check for leap year,
			//if not a leap year return false. else if days are greater then 28 return false. 	

			switch (nMonth)
			{				
				case 0:
				case 2:
				case 4:
				case 6:
				case 7:
				case 9:
				case 11:			
					return (true);
					break;

				case 3:
				case 5:
				case 8:
				case 10:
					if (nDay > 30)
					{
						return (false);
					}
					return (true);
					break;

				case 1 :
					if (nDay <= 28)
					{
						return true;
					}
					if (nDay > 29)
					{
						return false;
					}
					if (nYear % 4 != 0)
					{
						return false;
					}
					else
					{
						if (nYear%100 == 0)
						{
							if (nYear % 400 == 0)
							{
								return true;
							}
							else
							{
								return false;
							}
						}
						else
						{
							return true;
						}
					}
					break;
			}
	}

function IsValidAlphaNumValue(strVal)
{
	nNoOfArguments = IsValidAlphaNumValue.arguments.length;

	//if parameter is not supplied
	if(nNoOfArguments < 1)
	{
		return false;
	}
		
	//valid characters a supplied string value can have
	var sValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$.,/- ";
	
	strVal = new String(strVal);	//convert the value to a string object
	
	var bReturn = true	
	var i = new Number(0);
	while ((bReturn) && (i < strVal.length))
    {
		bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
		i++
    }
	return (bReturn);	
}

function IsValidAlphabaticValue(strVal)
{
	nNoOfArguments = IsValidAlphabaticValue.arguments.length;

	//if parameter is not supplied
	if(nNoOfArguments < 1)
	{
		return false;
	}
		
	//valid characters a supplied string value can have
	var sValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	
	strVal = new String(strVal);	//convert the value to a string object
	
	var bReturn = true	
	var i = new Number(0);
	while ((bReturn) && (i < strVal.length))
    {
		bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
		i++
    }
	return (bReturn);	
}

function isEmail (obj, s) {   
	var reEmail = /^.+\@.+\..+$/
	if (isEmpty(obj.value) || !reEmail.test(obj.value)) {
	    selfocobj(obj, s)
		return false;
	  }
	return true;
}

function IsValidUserName(strVal)
{
	nNoOfArguments = IsValidUserName.arguments.length;

	//if parameter is not supplied
	if(nNoOfArguments < 1)
	{
		return false;
	}
		
	//valid characters a supplied string value can have
	var sValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
	
	strVal = new String(strVal);	//convert the value to a string object
	
	var bReturn = true	
	var i = new Number(0);
	while ((bReturn) && (i < strVal.length))
    {
		bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
		i++
    }
	return (bReturn);	
}

function isEmail (obj, s) {   
	var reEmail = /^.+\@.+\..+$/
	if (isEmpty(obj.value) || !reEmail.test(obj.value)) {
	    selfocobj(obj, s)
		return false;
	  }
	return true;
}


function IsValidEMail(strValue)
{
	nNoOfArguments = IsValidEMail.arguments.length;

	//if no parameter is supplied
	if(nNoOfArguments < 1)
	{
		return false;
	}	

	var strVal	= new String(strValue);
	var bReturn1 = false;
	var bReturn2 = false;
	var bReturn3 = false;
	var bReturn4 = false;
	var bReturn5 = false;
	var bReturn5 = false;

	//if '@' comes after first character then true
	bReturn1	=	(strValue.indexOf("@") > 0);							

	//if '.' comes after first character then true
	bReturn2	=	(strValue.indexOf(".") > 0);							

	//if single '@' exist in string then true
	bReturn3	=	(strValue.indexOf("@") == strValue.lastIndexOf("@"));	

	//if '.' exist after @ in string then true
	bReturn4	=	(strValue.indexOf(".",strValue.indexOf("@")) > (strValue.indexOf("@")));		

	//if '.' does not comes immediatly after @ then true
	bReturn5	=	(strValue.indexOf(".",strValue.indexOf("@")) != (strValue.indexOf("@")+1));		

	//if '.' does not comes immediatly before @ then true
	bReturn6	=	(strValue.lastIndexOf(".",strValue.indexOf("@")) != (strValue.indexOf("@")-1)); 

	//if all values are true return true else false.
	return(bReturn1 && bReturn2 && bReturn3 && bReturn4 && bReturn5 && bReturn6);
}


function IsValidPhoneNumber(strVal)
{
	nNoOfArguments = IsValidPhoneNumber.arguments.length;

	//if parameter is not supplied
	if(nNoOfArguments < 1)
	{
		return false;
	}
		
	//valid characters a supplied string value can have
	var sValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- ";
	
	strVal = new String(strVal);	//convert the value to a string object
	
	var bReturn = true	
	var i = new Number(0);
	while ((bReturn) && (i < strVal.length))
    {
		bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
		i++
    }
	return (bReturn);	
}

function isEmail (obj, s) {   
	var reEmail = /^.+\@.+\..+$/
	if (isEmpty(obj.value) || !reEmail.test(obj.value)) {
	    selfocobj(obj, s)
		return false;
	  }
	return true;
}
	

