		function Verify(form_name)
			{
								
				if (form_name.First_Name.value=="")
					{
						alert("Please enter your first name");
						form_name.First_Name.focus();
						return false;
					}
				if (form_name.Last_Name.value=="")
					{
						alert("Please enter your last name");
						form_name.Last_Name.focus();
						return false;
					}
				if (form_name.Country.value=="0" || form_name.Country.value=="")
					{
						alert("Please select your country");
						form_name.Country.focus();
						return false;
					}
				if (form_name.Email_Address.value=="")
					{
						alert("Please enter a valid e-mail address");
						form_name.Email_Address.focus();
						return false;
					}
				else
					{
						if (ValidateEmail(form_name.Email_Address)==false)
						
							{	
								form_name.Email_Address.focus();
								return false;
							}
					}
				if (form_name.Topic.selectedIndex==0)
					{
						alert("Please select a topic");
						form_name.Topic.focus();
						return false;
					}
				if (form_name.Message.value=="")
					{
						alert("Please enter your message");
						form_name.Message.focus();
						return false;
					}
				return true;
			}
			
	function ValidateEmail(Email)
			{
				
				var Pattern = /^(.+)@(.+)$/;
				var SpecialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

     			var ValidChars = "\[^\\s" + SpecialChars + "\]";
				var QuotedUser = "(\"[^\"]*\")";
				var Piece = ValidChars + '+';

				var Word = "(" + Piece + "|" + QuotedUser + ")";
				var UserPattern = new RegExp("^" + Word + "(\\." + Word + ")*$");
				var KnownDomains = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
				var IPDomain = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
				var NormalDomain = new RegExp("^" + Piece + "(\\." + Piece + ")*$");
				
				var MatchArray = Email.value.match(Pattern);
				var InvalidChars ="'#";
				var checkStr = Email.value; 
			
				if (MatchArray == null) 
				{
					alert("The e-mail address you entered does not follow the accepted pattern.");
					return false;
				}
				
				var User = MatchArray[1];
				var Domain = MatchArray[2];

				for (i = 0; i < User.length; i++) 
				{
					if (User.charCodeAt(i) > 127) 
					{
						alert("The e-mail address you entered contains invalid characters in the username.");
						return false;
					}
				}

				if (User.match(UserPattern) == null) 
				{
					alert("The e-mail address you entered contains an invalid username.");
					return false;
				}


				
				for (i = 0; i < Domain.length; i++) 
				{
					if (Domain.charCodeAt(i) > 127) 
					{
					alert("The e-mail address you entered contains invalid characters in the domain name.");
						return false;
   					}
				}
				
				var IPArray = Domain.match(IPDomain);
				if (IPArray!=null) 
				{
					for (var i=1; i <= 4; i++) 
					{
						if (IPArray[i] > 255) 
							{
								alert("The e-mail address you entered contains an invalid destination IP address.");
								return false;
   							}
					}
					return true;
				}
		 
				var PiecePattern = new RegExp("^" + Piece + "$");
				var DomainArray = Domain.split(".");
				var Len = DomainArray.length;
				for (i=0; i < Len; i++) 
				{
					if (DomainArray[i].search(PiecePattern) == -1) 
					{
						alert("The e-mail address you entered contains an invalid domain name.");
						return false;
		   			}
				}

				if (DomainArray[DomainArray.length - 1].length != 2 && DomainArray[DomainArray.length - 1].search(KnownDomains) == -1) 
				{
					alert("The e-mail address you entered does not end in a well-known domain or two letter country.");
					return false;
				}		
				
				if (Len < 2) 
				{
					alert("The e-mail address you entered is missing a host name.");
					return false;
				}
				
				for (i = 0;  i < checkStr.length;  i++) 
				{ 
        			ch = checkStr.charAt(i); 
					for (j = 0;  j < InvalidChars.length;  j++) 
            			if (ch == InvalidChars.charAt(j)) 
						{
          					alert("The e-mail address you have is an invalide e-mail address.");
							return false; 
					}                       
				} 
				
			
			}
