function isFieldBlank(s)
{

	var str = new String(s);
	
	for (var i = 0; i < str.length; i++)
	{

		var oneChar = str.charAt(i);
		
		if (oneChar != " ")
		{
	
			return false;

		}
	
	}

	return true;
	
}



function validateEmailNotBlank(email)
{

	if (isFieldBlank(email)) {

		return 'Email address cannot be blank.';

	} else {

		if (isEmail(email)) {

			return true;
			
		} else {

			return '\'' + email + '\' is not a valid email address.';

		}

	}

}

//-----------------------------------
// Check for basic email address structure \w*@\w*.\w*

function isEmail (s) {

   // Quoted from developer.netscape.com/docs/examples/index.html
   var i=1;
   var sLength = s.length;

   // Check for whitespace
   while ((i < sLength) && (s.charAt(i) != " ")) {
        i++;
   }

    if (i < sLength) {
        return false;
   }
    
    i=1;
    // Now check for basic email format

    while ((i < sLength) && (s.charAt(i) != "@")) {
        i++;
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) {
        return false;
    } else {
        i+=2;
    }

    while ((i < sLength) && (s.charAt(i) != ".")) {
        i++;
    }


    if ((i >= sLength - 1) || (s.charAt(i) != ".")) {
        return false;
    } else {
        return true;
    }
}

// end isEmail
// --------------------

//------------------------------
// isUSZip: validates US zip codes.  Most be in format ##### or #####-####

function isUSZip(s)
{

    var i=0;
    var sLength = s.length;
    var format = new Array('0123456789', '0123456789', '0123456789', '0123456789', '0123456789', '-', '0123456789', '0123456789', '0123456789', '0123456789');
    var small_zip = "";
    var bad_zips = new Array('00000', '11111', '33333', '66666', '77777', '88888', '99999');

    if((sLength != 5 && s.indexOf("-") == -1) || (sLength != 10 && s.indexOf("-") > -1))
    {

	return false;

    }

    while (i < sLength && format[i].indexOf(s.charAt(i)) > -1) {
	
	if (i < 5)
	{

		small_zip += s.charAt(i);

	}
	

        i++;
    }

    if (i < sLength) {
        return false;
    }

    for (i = 0; i < bad_zips.length; i++)
    {
	if(small_zip == bad_zips[i])
	{
		return false;
	}
    }
   
    return true;

}

// Done isUSZip
//----------------------------

//-------------------------------------
// isUSPhone: checks that the phone number is at lease 10 numbers long

function isUSPhone(s)
{

    var i=0;
    var sLength = s.length;
    var phone_number = "";

    //get the phone number without any non-numeric characters
    
    while (i < sLength) {

	if(Number(s.charAt(i)) || s.charAt(i) == "0")
	{

		phone_number += s.charAt(i);		

	}

        i++;

    }
 
    if(phone_number.charAt(0) == "1")
    {

	phone_number = phone_number.substr(1);   

    }

    if(phone_number.length < 10)
    {

	return false;

    }

   return true;

}


function isDOB(s)
{

    var i=0;
    var sLength = s.length;
    var phone_number = "";

    //get the phone number without any non-numeric characters
    
    while (i < sLength) {

	if(Number(s.charAt(i)) || s.charAt(i) == "0")
	{

		phone_number += s.charAt(i);		

	}

        i++;

    }
 
    if(phone_number.charAt(0) != "1")
    {

	return false;  

    }   
 if(phone_number.charAt(1) != "9")
    {

	return false;  

    }

    if(phone_number.length != 4)
    {

	return false;

    }



   return true;

}



// Done isUSPhone
//---------------------