function formValidate()
{

var vbname = true;
var vbagency = true;
var vbsname = true;
var vbareacode = true;
var vbphone = true;
var vbemail = true;
var vbtopics = true;
var vbduration = true;
var vbIp = true;

var alertmessage = "";



if (IsEmpty(document.NewPage.ContactName.value))
{
	alertmessage = alertmessage + "Name is required.\n";
	vbname = false;
}

/**
if (vbname == true && IsText(document.NewPage.ContactName.value) == false)
{
	alertmessage = alertmessage + "Name must contain letters only.\n";
	vbname = false;
}
*/

if (vbname == true && document.NewPage.ContactName.value.length <= 2)
{
	alertmessage = alertmessage + "Name must contain more than 2 characters.\n";
	vbname = false;
}

if (IsEmpty(document.NewPage.Agency.value))
{
	alertmessage = alertmessage + "Agency's Name is required.\n";
	vbagency = false;
}

if (vbagency == true && document.NewPage.Agency.value.length <= 2)
{
	alertmessage = alertmessage + "Agency's Name must contain more than 2 characters.\n";
	vbname = false;
}

/**
if (vbagency == true && IsText(document.NewPage.Agency.value) == false)
{
	alertmessage = alertmessage + "Agency's Name must contain letters only.\n";
	vbname = false;
}
*/

if (IsEmpty(document.NewPage.SupervisiorName.value))
{
	alertmessage = alertmessage + "Supervisor's Name is required.\n";
	vbsname = false;
}

if (vbsname == true && document.NewPage.SupervisiorName.value.length <= 2)
{
	alertmessage = alertmessage + "Supervisor's Name must contain more than 2 characters.\n";
	vbname = false;
}

/**
if (vbsname == true && IsText(document.NewPage.SupervisiorName.value) == false)
{
	alertmessage = alertmessage + "Supervisor's Name must contain letters only.\n";
	vbsname = false;
}
*/

if (IsEmpty(document.NewPage.ContactPhoneA.value) || document.NewPage.ContactPhoneA.value.length != 3)
{
	alertmessage = alertmessage + "Valid three digit Area Code is required.\n";
	vbareacode = false;
}

if (vbareacode == true && IsNumeric(document.NewPage.ContactPhoneA.value) == false)
{
	alertmessage = alertmessage + "Area Code may only contain numbers.\n";
	vbareacode = false;
}

if (IsEmpty(document.NewPage.ContactPhoneB.value) || document.NewPage.ContactPhoneB.value.length != 3)
{
	alertmessage = alertmessage + "Valid Phone Number is required.\n";
	vbphone = false;
}

if (vbphone == true && IsNumeric(document.NewPage.ContactPhoneB.value) == false)
{
	alertmessage = alertmessage + "Phone Number may only contain numbers.\n";
	vbphone = false;
}

if (IsEmpty(document.NewPage.ContactPhoneC.value) || document.NewPage.ContactPhoneC.value.length != 4)
{
	if (vbphone != false)
	{
		alertmessage = alertmessage + "Valid Phone Number is required.\n";
		vbphone = false;
	}
}

if (vbphone == true && IsNumeric(document.NewPage.ContactPhoneC.value) == false)
{
	alertmessage = alertmessage + "Phone Number may only contain numbers.\n";
	vbphone = false;
}

if (IsEmpty(document.NewPage.Email.value) || !(IsEmail(document.NewPage.Email.value)))
{
   alertmessage = alertmessage + "E-mail Address is required and must be a valid e-mail address.\n";
   vbemail = false;
}

if (IsEmpty(document.NewPage.Topic.value))
{
	alertmessage = alertmessage + "Topic(s) Requested is required.\n";
	vbtopics = false;
}

if (IsEmpty(document.NewPage.Duration.value))
{
	alertmessage = alertmessage + "Duration of Message is required.\n";
	vbduration = false;
}

if ((IsEmpty(document.NewPage.UserIP.value)) || (!(document.NewPage.UserIP.value == document.NewPage.SourceIP.value)))
{
   alertmessage = alertmessage + "IP address check is Required.\n";
   vbIp = false;
}


if ((vbname == false) || (vbphone == false) || (vbemail == false) || (vbagency == false) || (vbsname == false) || (vbareacode == false) || (vbtopics == false) || (vbduration == false) || (vbIp == false))
{
    alert(alertmessage);
 	return (false);
}
else
{

return (true);
	
}

}

//Empty Function
function IsEmpty(s)
{   
 return ((s == null) || (s.length == 0) || (s == ""))
}

//Number Only Function with decimal
function IsNumeric(valNum)
{
  var checkOK = "0123456789-";
  var checkStr = valNum;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  
  return allValid;
}


//Email Function
function IsEmail(emailstr)
{
// var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/  Nathan supposedly found error in this one.
 var filter = /^\w[-\.a-zA-Z0-9_]*@\w[-\.a-zA-Z0-9_]*\.\w{2,3}$/ ;
 
 if (filter.test(emailstr))
  return true;
 else
  return false;
}

//Phone Format Function
function IsPhoneNumber(phonestr) 
{
     // Check for correct phone number
     rePhoneNumber = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);
 
     if (!rePhoneNumber.test(phonestr)) {
          return false;
     }
return true;
}

function IsText(valString)
{
  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
  var checkStr = valString;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  
  return allValid;
};
