﻿function isValidEmail( emailStr )
{
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s"+specialChars+"\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars+'+';
	var word="("+atom+"|"+quotedUser+")";
	var userPat = new RegExp( "^"+word+"(\\."+word+")*$");
	var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$");
	var matchArray = emailStr.match( emailPat );
	
	if( matchArray == null )
	{
		return false
	}
	
	var user = matchArray[1];
	var domain = matchArray[2];
	if( user.match( userPat ) == null )
	{
		return false
	}
	
	var IPArray = domain.match( ipDomainPat );
	if( IPArray != null )
	{
		for( var i=1; i <= 4; i++ )
		{
			if( IPArray[i] > 255 )
			{
				return false
			}
		}
		return true
	}
	
	var domainArray = domain.match( domainPat );
	if( domainArray == null )
	{
		return false
	}
	
	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
	}
	
	if( len < 2 )
	{
		var errStr = "This address is missing a hostname!";
		return false
	}
	return true;
}

function openWindow( url, title, width, height, features )
{
	var left = ( screen.width - width ) / 2;
	var top  = ( screen.height - height ) / 2 - ( 50 );
	
	features += ( features != '' ) ? ',':'' ;
	features += ',left=' + left + ',top=' + top ;
	
	window.open( url, title, features + ( ( features != '' )?',':'') + 'width=' + width + ',height=' + height ) ;
}

function resizeWindow( width, height )
{
	var left = ( screen.width - width ) / 2;
	var top  = ( screen.height - height ) / 2;
	
	window.resizeTo( width, height );
	window.moveTo( left, top );
}
