<!--

	function CountDots(strString)
		{
			var stringLength = strString.length;
			var dotCount = 0;
			for(i=0;i < stringLength; i++)
				{
				var thisCharacter = strString.slice(i,i+1)
				if(thisCharacter ==".") dotCount++
				}
		return(dotCount);
		}

	function CheckMail(str)
		{
		// are regular expressions supported?
		var supported = false;
		if (window.RegExp)
			{
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = true;
			}
		if (!supported) 
			{
			return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
			}
		var valid = true;
		var startExp = new RegExp("^[a-zA-Z0-9][A-Za-z0-9-_]*[a-zA-Z0-9]$");
		var startLengthOneExp = new RegExp("[a-zA-Z0-9]");
		var excludeStartExp = new RegExp("(\\.-)|(-\\.)|(_\\.)|(\\._)|(\\.\\.)"); // exculdes -. .- _. ._ ..
		var excludeEndExp = new RegExp("(\\.-)|(-\\.)");
		
		var domainExp = new RegExp("^[a-zA-Z0-9][A-Za-z0-9-]*[a-zA-Z0-9]$");
		var domain2Exp = new RegExp("^[a-zA-Z][A-Za-z]*[a-zA-Z]$");  //no numbers or  - or _
		  // domain2Exp  not used in V2.0 onwards
		
		
		//find if there are more than one @ then split to left and right @
		var atIndexOne = str.indexOf("@");
		var atIndexTwo = str.lastIndexOf("@");
		if(atIndexTwo == atIndexOne && atIndexOne != -1)
			{
			//if one at sign then split to left and right of @ else return false	
			var emailArray = str.split("@");
			if(emailArray[0].length ==1)
				{
				if(!startLengthOneExp.test(emailArray[0])) valid = false;
				}
			else
				{
				var arrayIndex;
				var startArray = emailArray[0].split(".")
				var intDotCount = CountDots(emailArray[0]);
				//split at "." and assign to new array. loop through each set of characters and test.
				if(startArray)
					{
					for(arrayIndex in startArray)
						{
						if(startArray[arrayIndex].length==1)
							{
							if(!startLengthOneExp.test(startArray[arrayIndex])) valid = false;
							}
						else
							{
							if(!startExp.test(startArray[arrayIndex])) valid = false;
							}
						}
				}
				else	
					{
					valid = false; //no characters b4 @
					}
				}
			if(intDotCount > arrayIndex) valid=false;
			if(excludeStartExp.test(emailArray[0]) || excludeEndExp.test(emailArray[1])) valid = false;	
			if(emailArray[1]) 
				{
				if(emailArray[1].indexOf(".") == -1) valid = false; //must be one "." in domain bit
				//split end bit into new array
				var domainArray = emailArray[1].split(".");
				//again count dots for NS6 
				intDotCount = CountDots(emailArray[1]);
				for(arrayIndex in domainArray)
					{
					if(!domainExp.test(domainArray[arrayIndex])) valid = false;
					}
				if(intDotCount > arrayIndex) valid=false;
			}
		}
	else
		{
		valid = false;
		}
	return(valid);
	}
		
//-->

