


  	/**
  	* Prints the text in a alert box and returns false
  	*/
  	function invalidField(text)
  	{
  		alert(text);
  		return false;
  	}

  	/**
  	* Checks whether the given value is an empty string or not.  	
  	*/
  	function isEmpty(value)
  	{
  		if(value == null)
  			return true;
  		else
  			return (trim(value) == "");
  	}
  	
  	/**
  	* Remvoves the whitespaces 
  	*/ 
  	function trim(value)
  	{
  		return value.replace(/^ */g,"").replace(/ *$/g,"");
  	}
  	
  	/**
  	* Checks whether the given value is a number or not
  	*/
  	function isNumber(value)
  	{
  		return trim(value).match(/\d+/) == trim(value);
  	}
  	


  	/**
  	* Checks whether the given value is a mail address or not
  	*/
  	function isMail(value)
  	{
  		return emailCheck(value);
  	}

  	
  	/**
  	* Checks whether the given value is a date or not
  	*/
  	function isDate(value)
  	{
  		if(value == null)
  			return false;
  			
  		var test = value.split(".");
  		
  		if(test.length < 3)
  			return false;
  			
  		var day = test[0];
		var month = test[1];
		var year = test[2];
		
		return day > 0 && day <= 31 && month > 0 && month <= 12 && year > 0 && year < 100;
		
  	
  	}

 	/**
  	* Checks whether the given value is a time or not
  	*/
  	function isTime(value)
  	{
  		if(value == null)
  			return false;
  			
  		var test = value.split(":");
  		
  		if(test.length < 2)
  			return false;
  			
  		var hour = test[0];
		var minute = test[1];
		
		return hour > 0 && hour <= 24 && minute >= 0 && minute < 60;		
  	
  	}



	function emailCheck (emailStr) 
	{
		/* The following pattern is used to check if the entered e-mail address
		   fits the user@domain format.  It also is used to separate the username
		   from the domain. */
		var emailPat=/^(.+)@(.+)$/
		/* The following string represents the pattern for matching all special
		   characters.  We don't want to allow special characters in the address. 
		   These characters include ( ) < > @ , ; : \ " . [ ]    */
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		/* The following string represents the range of characters allowed in a 
		   username or domainname.  It really states which chars aren't allowed. */
		var validChars="\[^\\s" + specialChars + "\]"
		/* The following pattern applies if the "user" is a quoted string (in
		   which case, there are no rules about which characters are allowed
		   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
		   is a legal e-mail address. */
		var quotedUser="(\"[^\"]*\")"
		/* The following pattern applies for domains that are IP addresses,
		   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
		   e-mail address. NOTE: The square brackets are required. */
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		/* The following string represents an atom (basically a series of
		   non-special characters.) */
		var atom=validChars + '+'
		/* The following string represents one word in the typical username.
		   For example, in john.doe@somewhere.com, john and doe are words.
		   Basically, a word is either an atom or quoted string. */
		var word="(" + atom + "|" + quotedUser + ")"
		// The following pattern describes the structure of the user
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		/* The following pattern describes the structure of a normal symbolic
		   domain, as opposed to ipDomainPat, shown above. */
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
		
		/* Finally, let's start trying to figure out if the supplied address is
		   valid. */
	
		/* Begin with the coarse pattern to simply break up user@domain into
		   different pieces that are easy to analyze. */
		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) 
		{
			return false
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		
		// See if "user" is valid 
		if (user.match(userPat)==null) 
		{
		    return false
		}
	
		
		// Domain is symbolic name
		var domainArray=domain.match(domainPat)
		if (domainArray==null) 
		{
		    return false
		}
		
		/* domain name seems valid, but now make sure that it ends in a
		   three-letter word (like com, edu, gov) or a two-letter word,
		   representing country (uk, nl), and that there's a hostname preceding 
		   the domain or country. */
		
		/* Now we need to break up the domain to get a count of how many atoms
		   it consists of. */
		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || 
		    domArr[domArr.length-1].length>3) 
		{
		   return false
		}
		
		// Make sure there's a host name preceding the domain.
		if (len<2) 
		{
		   return false
		}
	
		// If we've gotten this far, everything's valid!
		return true;
	}

