				function setMsg(msgtxt)
			{	
				var msg = document.getElementById("errmsg");
				msg.innerHTML = msgtxt;
				msg.style.color = "red";
			}
			
			function ValidateLogin(frm)
			{
				//alert('entering validatelogin');
				//var frm = document.login;
				var modeElement = document.getElementById("mode");
				modeElement.value='0';	
				
				var eml = frm.username.value;
				if(eml == null || eml.length == 0 ){
					setMsg('Email address is mandatory to login');
				   	return false;
				}	
				//alert(eml);			
				var pw0 = frm.password.value;
				
				if(pw0 == null || pw0.length == 0 ){
					setMsg('Password is mandatory to login');
				   	return false;
				}
				
				//alert('entering validEmailName');
				if (!validEmailName(eml))
				{
					frm.username.focus();
					frm.username.select();
					return false;
				}
				//alert('entering validPassword');
				if (!validPassword(pw0, pw0))
				{
					frm.password.focus();
					frm.password.select();
					return false;
				}
				//alert('going to submit');
				//document.body.style.cursor='wait';
				frm.submit();
				//alert("leaving validateLogin");
				return true;
			}
			
		
			function validEmailName(addr)
			{
				//alert("entering validEmailName " + addr);
			
				if (addr.length < 3 || addr.length > 128) {
				   setMsg('Email address must be at least 3 characters');
				   return false;
				}
			
			    if ( addr.indexOf(' ') > -1){
			    	setMsg('Email address contains spaces');
					return false;
				   
			    }
				var invalidChars = '!#$%^&*(){}[]+|=\/\\;:\'"`~?<>,';
				for (i=0; i<invalidChars.length; i++) {
				   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
					  setMsg('Email address contains invalid characters');
					  return false;
				   }
				}
				for (i=0; i<addr.length; i++) {
				   if (addr.charCodeAt(i)>127) {
					  setMsg('Email address contains non ascii characters');
					  return false;
				   }
				}
				if (addr.charAt(0) == '.') {
				   setMsg('Email address must not begin with a period');
				   return false;
				}
				
				var atPos = addr.indexOf('@',0);
				if (atPos == -1) {
				   setMsg('Email address must contain an @');
				   return false;
				}
				if (atPos == 0) {
				   setMsg('Email address must not start with @');
				   return false;
				}
				if (addr.indexOf('@', atPos + 1) > - 1) {
				   setMsg('Email address must contain only one @');
				   return false;
				}
				if (addr.indexOf('.', atPos) == -1) {
				   setMsg('Email address must contain a period in the domain name');
				   return false;
				}
				if (addr.indexOf('@.',0) != -1) {
				   setMsg('Period must not immediately follow @ in email address');
				   return false;
				}
				if (addr.indexOf('.@',0) != -1){
				   setMsg('Period must not immediately precede @ in email address');
				   return false;
				}
				if (addr.indexOf('..',0) != -1) {
				   setMsg('Email address must not contain two sequential periods');
				   return false;
				}
				
				return true;
			}//validEmailName()

			function validPassword(pswd,pswd_confirm)
			{
			
				if (pswd.length < 5 || pswd_confirm.length < 5) {
				   setMsg('Password must be at least 5 characters');
				   return false;
				}
				
				if (pswd.length > 30 || pswd_confirm.length > 30){
				   setMsg('Password cannot be more than 30 characters');
				   return false;
				}
				
				var invalidChars = '!@#$%^&*(){}[]+-|=\/\\;:\'"`~?<>,';
				for (i=0; i<invalidChars.length; i++) {
				   if (pswd.indexOf(invalidChars.charAt(i),0) > -1) {
					  setMsg('Password contains invalid characters');
					  return false;
				   }
				}
				for (i=0; i<pswd.length; i++) {
				   if (pswd.charCodeAt(i)>127) {
					  setMsg('Password contains non ascii characters.');
					  return false;
				   }
				}
			
				if (pswd != pswd_confirm) {
				   setMsg('Password and Confirm Password must match');
				   return false;
				}
				return true;
			}//validPassword
			 


			function confirmLogout()
			{
				if (confirm("Are you sure you want to logout?"))
				{
					window.location.href="ContentWriter?startup=1&mode=off";
					
				}
				
			}//confirmLogout()	
			
			function validateEmailAdd(mode,frm)
			{
				var rtnVal = true;
				var eml = frm.username.value;
				var pw0 = frm.userpswd.value;
				var pw1 = frm.userpswd_confirm.value;
				var fwd = frm.forwardaddress.value;
				var dmn = frm.domain.value;
				var modeElement = document.getElementById("mode");
				modeElement.value=mode;	
								
				if (eml.length < 3 ) {
				   setMsg('Email address must be at least 3 characters');
				   return false;
				}				
				if (!validEmailName(eml + '@' +dmn))
				{
					//alert("returning from validEmailName");
					frm.username.focus();
					frm.username.select();
					return false;
				}
				if (!validPassword(pw0,pw1)){
					frm.userpswd.focus();
					frm.userpswd.select();
					return false;
					
				}
				//document.body.style.cursor='wait';
				frm.mode.value = 'A'
				frm.submit();
				return true;			
			}//validateEmailAdd()
						
			function provideFocus()
			{
			  //alert("entering provideFocus");
			  var obj, typ; //, l, m;
			  if (document.forms[2])
			  {
			    for (i = 0; i < document.forms[2].elements.length; i++)
			    {
			    	//alert(document.forms[2].elements.length);
			    	//alert(document.forms[2].name);
			    	//alert(document.forms[2].elements[i].name);
			      obj = document.forms[2].elements[i];
			      typ = obj.type;
			      if (typ != "hidden" && obj.disabled != true)
			      {
			        obj.focus();
					if (typ.substring(0,Math.min(6,typ.length)) != "select")
			        {
			          obj.select();
			        }
			        return;
			      }
			    }
			  }
			}//provideFocus
			
			function redirectForTimeout(){
					window.location="ContentWriter?pageName=accountLogin.jsp&mode=timeout&error=For security reasons, your session has timed out. Please login again.";
			}//redirectForTimeout()
			
			function validateEmailEdit(mode,frm)
			{
				var eml = frm.username.value;
				var pw0 = frm.userpswd.value;
				var pw1 = frm.userpswd_confirm.value;
				var fwd = frm.forwardaddress.value;
				var modeElement = document.getElementById("mode");
				modeElement.value=mode;
								
				if ((pw0.length > 0 || pw1.length > 0) )
				{	
					if ( !validPassword(pw0,pw1)){
						frm.userpswd.focus();
						frm.userpswd.select();
						return false;
					}
						
				}
				
				// validate forwarding address(es)
				if (fwd != null && fwd.length > 0 && !validEmailList(fwd))
				{
					frm.forwardaddress.focus();
					frm.forwardaddress.select();
					return false;
				}
			
				//document.body.style.cursor='wait';
				frm.mode.value = 'E'
				frm.submit();
				return true;
			}//validateEmailEdit()
			
			function confirmDelete(mode)
			{
				var frm = document.bbsform;
				var modeElement = document.getElementById("mode");
				modeElement.value=mode;
				if (confirm("DELETING EMAIL ACCOUNT WILL DELETE ALL MAIL. Are you sure you want to delete this email account?"))
				{
					document.body.style.cursor='wait';
					frm.mode.value = 'D';//frm.actiontype.value='D';
					frm.submit();
					return true;
				}
				return false;
			}//confitmDelete()
			
			function confirmLogout()
			{
				if (confirm("Are you sure you want to logout?"))
				{
					window.location.href="Logout";
				}
			}//confirmLogout()
			
			function validEmailList(addr)
{
			// parse a comma-delimited string of email addresses, validate each address
			var s = addr.replace(/ +/g,'');    // remove whitspace
			addr = s.replace(/[;]+/g,',');     // replace separator chars with commas
			var a = addr.split(/,/);           // split into array
			var n = '';
		
			//alert ( addr );
			if ( addr.length = 0 )
				return true;
		
			for (l=0; l<a.length; l++)
			{
				if (!validEmailName(a[l])) {
					return false;
				}
				
				var suffix = addr.substring(addr.lastIndexOf('.')+1);
				if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int'
				                       && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero'
				                       && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
				   setMsg('Invalid primary domain in email address');
				   return false;
				}
			}
		
			return true;
		}
			