
function Validate()
	{
		var valMsg = "";
		var valError = 0;
		
		if (contact.selTitle.value == "")
			{
			valError=1;
			valMsg += "Title is required\n";
			}
		
		if (contact.txtFirstName.value == "")
			{
			valError=1;
			valMsg += "First Name is required\n";
			}
		if (contact.txtLastName.value == "")
			{
			valError=1;
			valMsg += "Last Name is required\n";
			}
		if (contact.txtEmail.value == "")
			{
			valError=1;
			valMsg += "Email address is required\n";
			}
        if (noAtSign(contact.txtEmail.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + contact.txtEmail.value + "\" does not contain an '@' character\n";
        } else if (nothingBeforeAt(contact.txtEmail.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + contact.txtEmail.value;
            message += "\" must contain at least one character before the '@' character\n";
        } else if (noLeftBracket(contact.txtEmail.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + contact.txtEmail.value;
		    valMsg += "\" contains a right square bracket ']',\nbut no corresponding left square bracket '['\n";
        } else if (noRightBracket(contact.txtEmail.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + contact.txtEmail.value;
		    valMsg += "\" contains a left square bracket '[',\nbut no corresponding right square bracket ']'\n";
        } else if (noValidPeriod(contact.txtEmail.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + contact.txtEmail.value + "\" must contain a period ('.') character\n";
        } else if (noValidSuffix(contact.txtEmail.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + contact.txtEmail.value;
		    valMsg += "\" must contain a two, three or four character suffix\n";
        }
		
		if (valError == 1)
			{
			alert(valMsg);
			}
			else
			{
			
			// Process request here
		
//			var	querystring = "swCompSubscribe.aspx?Action=Add";
			var	querystring = "subscribe.aspx?Action=Add";
			    querystring += "&Title=" + contact.selTitle.value;
				querystring += "&FirstName=" + contact.txtFirstName.value;
				querystring += "&LastName=" + contact.txtLastName.value;
				querystring += "&Address=" + contact.txtAddress.value;
				querystring += "&City=" + contact.txtCity.value;
				querystring += "&State=" + contact.selState.value;
				querystring += "&Postcode=" + contact.txtPostcode.value;
				querystring += "&Phone=" + contact.txtPhone.value;
				querystring += "&Fax=" + contact.txtFax.value
				querystring += "&Email=" + contact.txtEmail.value;
				
				if(contact.rbBusHome[0].checked != 0)
					{
					querystring += "&ContactType=" + contact.rbBusHome[0].value;
					}
					else
					{
					querystring += "&ContactType=" + contact.rbBusHome[1].value;
					}
					
//				alert (querystring);
			    window.location = querystring; 
			}
	}
	

//-------------------------------------------------------------------------
	
function stringEmpty (formField) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( formField.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign (formField) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if (formField.indexOf ('@', 0) == -1) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt (formField) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( formField.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']') {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']') {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']')
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if (formField.indexOf ( '.', 0 ) == -1)
        return ( true );

    return ( false );
}

function noValidSuffix(formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']') {
        return ( false );
    }

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = formField.length;
    var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}
