function checkValidation ( addressField ) {
    if ( stringEmpty ( addressField.value ) )
    {
        alert ( "Error! There is no E-Mail address entered" );
        document.forms[0].Email.focus();
    }    
    else if ( noAtSign ( addressField.value ) )
    {
        alert ( "Error! The E-Mail address does not contain an '@' character" );
        document.forms[0].Email.focus();
    }    
    else if ( toomanyAtSign ( addressField.value ) )
    {
        alert ( "Error! The E-Mail address contains too many '@' character" );
        document.forms[0].Email.focus();
    }    
    else if ( nothingBeforeAt ( addressField.value ) )
    {
        alert ( "Error! An E-Mail address must contain at least one character before the '@' character" );
        document.forms[0].Email.focus();
    }    
    else if ( noLeftBracket ( addressField.value ) )
    {   
		alert ( "Error! The E-Mail address contains a right square bracket ']',\nbut no corresponding left square bracket '['" );
		document.forms[0].Email.focus();
    }
    else if ( noRightBracket ( addressField.value ) )
    {
        alert ( "Error! The E-Mail address contains a left square bracket '[',\nbut no corresponding right square bracket ']'" );
        document.forms[0].Email.focus();
    }    
    else if ( noValidPeriod ( addressField.value ) )
    {
        alert ( "Error! An E-Mail address must contain a period ('.') character" );
		document.forms[0].Email.focus();
    }
    else if ( noValidDomain ( addressField.value ) )
    {
        alert ( "Error! An E-Mail address must contain a valid domain name." );
		document.forms[0].Email.focus();
	}	
    else if ( noValidSuffix ( addressField.value ) )
    {
        alert ( "Error! An E-Mail address must contain a two or three character suffix" );
		document.forms[0].Email.focus();
	}	
    else
        return (true);

    return ( false );
}

function linkCheckValidation ( formField ) {
    if ( checkValidation ( formField ) == true ) {
        alert ( 'E-Mail Address Validates OK' );
    }

    return ( false );
}

function stringEmpty ( address ) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( address.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign ( address ) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if ( address.indexOf ( '@', 0 ) == -1 ) {
        return ( true )
    } 
    else 
    {
		return ( false );
    }
}

function toomanyAtSign ( address ) {
    // CHECK THAT THERE IS ONLY ONE '@' CHARACTER IN THE STRING
    var words=address.split("@") 
    if (words.length > 2)
	{	
		return ( true )
	}	
    else
    {
		return ( false );
	}	
}

function nothingBeforeAt ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( address.indexOf ( '[', 0 ) == -1 && address.charAt ( address.length - 1 ) == ']' ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if ( address.indexOf ( '[', 0 ) > -1 && address.charAt ( address.length - 1 ) != ']' ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 3 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidDomain ( address ) {
    // CHECK THAT THERE IS A ATLEAST ONE CHARACTER BETWEEN @ AND THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '@' )+1;
    var pos1 = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( pos1 - pos ) == 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function onlyValidChar(evt)
{
	var e = event || evt; // for trans-browser compatibility
	var charCode = e.which || e.keyCode;
	if ( (charCode < 8) || (charCode > 8 && charCode < 43) || charCode == 44 || charCode == 47 || (charCode >57 && charCode <64) || (charCode >90 && charCode <95) || charCode == 96 || (charCode >122) )
		return false;

	return true;

}
function chk()
{
//	var mine = window.open('','','width=1,height=1,left=0,top=0,scrollbars=no');
//	if(mine)
//	   var popUpsBlocked = false
//	else
//	   var popUpsBlocked = true
//	mine.close()
//	if(popUpsBlocked)
//	{
//		alert('We have detected that you are using popup blocking software. Please disable pop-up blocker before submitting your email address.');
//	}
//	else
//	{
		if (checkValidation(document.forms[0].Email))
		{
			var file='http://71.249.208.210/nyra/email.asp?email='+document.forms[0].Email.value
			var win1  = open(file,"NM","status=yes,scrollbars=yes,location=0,menubar=0,resizable=0,toolbar=0,top='+(screen.width-340)/2+',left='+(screen.height-200)/2+',width=340,height=200");
			//win1.moveTo((screen.width-340)/2,(screen.height-200)/2)
			
			document.forms[0].Email.value='';
			document.forms[0].Email.focus();
			win1.focus();
		}
//	}
	return false;
}