var whitespace = " \t\n\r";
/* Define validations to run */

validations = new Array();
validations[0] = ["document.myCMA.name", "notblank"];
validations[1] = ["document.myCMA.street", "notblank"];
validations[2] = ["document.myCMA.email", "notblank"];
validations[3] = ["document.myCMA.email", "validemail"];
validations[4] = ["document.myCMA.phone", "notblank"];
validations[5] = ["document.myCMA.phone", "isphone"];
validations[6] = ["document.myCMA.sqft", "isnumber"];
function isEmpty(s)
{
   var i;
   if((s == null) || (s.length == 0))
     return true;
   // Search string looking for characters that are not whitespace
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) 
              return false;
    }
    // All characters are whitespace.
    return true;
}

function isPhone(field)
{ 
  var ValidChars = "0123456789-";
	var ph=document.myCMA.phone.value;
	var Char;
	for (i = 0; i < ph.length; i++) 
  { 
		if (ph.indexOf("0")==0)
		{
		 field.select();
  	 return false;
  	}
		if (ph.indexOf("3")=="-")
		{
		 field.select();
  	 return false;
  	}
		Char = ph.charAt(i); 
  	if (ValidChars.indexOf(Char) == -1) 
  	{
  	 field.select();
  	 return false;
  	}
  	if (ph.length !=12)
  	{
  	 field.select();
  	 return false;
  	}
	}		
return true;
}


var invalidaddress=new Array();
invalidaddress[0]="nnsb"
var invalidend=new Array();
invalidend[0]="org"

function isEmail(field)
{
var invalidcheck=0;
var myString=document.myCMA.email.value;
var str=myString.toLowerCase()
var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
if (filter.test(str))
{
var tempstring=str.split("@");
tempstring=tempstring[1].split(".")
var endstring=str.split(".");
endstring=endstring[1].split(" ")
for (i=0;i<invalidaddress.length;i++)
{
		if ((tempstring[0]==invalidaddress[i]) && (endstring[0]==invalidend[i]))
		invalidcheck=1
}
 		if (invalidcheck!=1)
		return true;
		else
		{
		field.select();
		return false;
		}
}
 		else
 		{
		field.select();
		return false;
		}
return true;
}


function isDigit(c)
{   
 return ((c >= "0") && (c <= "9"))
}

function isInteger(field)
{ 
  var i, c;
  var s = field.value;
 for (i = 0; i < s.length; i++)
  { // Check if current character is number.
   c = s.charAt(i);
   if (!isDigit(c)) 
    {
      alert("Field must contain digits");
      field.focus();
			field.select();
      return false;
    }
  }
 invalidChars = "/:!@#$%^&*=<>?_|\{}[];"
 var s = field.value;		
		for (i=0; i<invalidChars.length; i++) 
		{
				badChar = invalidChars.charAt(i)
				if (s.indexOf(badChar,0) > -1) 
				{
				  alert("Field contains invalid characters");
    			field.focus();
					field.select();
					return false;
				}
			}
 return true;
}

function valid()
{
 var i;
 var checkToMake;
 var field;

 for (i = 0; i < validations.length; i++)
   {
     checkToMake = validations[i][1];
     field = eval(validations[i][0]); 
     switch (checkToMake)
      {
       case 'notblank': if (isEmpty(field.value))
                          {
                           alert("Field may not be empty");
                            field.focus();
                           return false;
                          }
                         break;
         case 'validemail' : if (!isEmail(field))
				 									 {
													 	alert("Invalid email address");
														field.focus();
														return false;
													 }
                           break;
         case 'isnumber' : if (!isInteger(field))
                             return false;
														 break;
				 case 'isphone': if (!isPhone(field))
				 								   {
														alert("Invalid phone number");
														field.focus();
				 										return false;
														}
														break;
       }
  }    
  return true;
}