// code for validating the form before submission

function SubmitMyForm()
{
	if(ValidateForm())
		document.contactform.submit();
}


function ValidateForm()
{
try
{
	var result = true;

	var firstName = document.forms.contactform.firstName.value; 
	var lastName = document.forms.contactform.lastName.value;
	var email = document.forms.contactform.email.value;
	var address1 = document.forms.contactform.address1.value;
	var address2 = document.forms.contactform.address2.value;
	var city = document.forms.contactform.city.value;
	var state = document.forms.contactform.state.value;
	var zip = document.forms.contactform.zip.value;
	var phone = document.forms.contactform.phone.value;
	var howto = document.forms.contactform.howto.value;
	var purpose = document.forms.contactform.purpose.value;
	var comment = document.forms.contactform.comment.value;

	if(firstName == null || lastName == null || email == null || phone == null)
		result = false;

	if(firstName == "" || lastName == "" || email == "" || phone == "")
		result = false;

	if(!IsEmail(email))
		result = false;

	if(!IsPhone(phone))
		result = false;

	if(result == false)
		alert("Please complete the required fields.");

	return result;
}
catch(e)
{
	return false;
}

}


function IsNumeric(sText)
{
	var ValidChars = "0123456789";
	var IsNumber = true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}

	return IsNumber;
}

function IsPhone(sText)
{
	var ValidChars = "0123456789-";
	var result = true;
	var Char;
	var numCount = 0;

	for (i = 0; i < sText.length; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) != -1) 
			numCount++;
	}

	if(numCount < 10) // must be at least 10 numbers
		result = false;

	return result;
}

function IsFloat(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;
	var foundDot = false;

	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i);
		if(Char == '.')
		{
			if(foundDot) // already found it, fail
				isNumber = false;
			else
				foundDot = true; // just found it, no fail
		} 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}

	return IsNumber;
}

function IsAlphaDash(sText)
{
try
{
	sText = sText.toUpperCase();
	var ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-";
	var IsAlphaDash = true;
	var Char;

	for (i = 0; i < sText.length && IsAlphaDash == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsAlphaDash = false;
		}
	}

	if (sText.length == 0) IsAlphaDash = false; // no blank 'other' if checked

	return IsAlphaDash;
}
catch(e)
{
	return false;
}
}


function IsEmail(argvalue) {
try
{
  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;

  // arrayString = argvalue.split("@"); (works only in netscape3 and above.)
  var retSize = customSplit(argvalue, "@", "arrayString");

  if (arrayString[1].indexOf(".") == -1)
    return false;
  else if (arrayString[1].indexOf(".") == 0)
    return false;
  else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
    return false;
  }

  return true;
}
catch(e)
{
	return false;
}

}

function customSplit(strvalue, separator, arrayName) {
  var n = 0;

  if (separator.length != 0) {
    while (strvalue.indexOf(separator) != -1) {
      eval("arr"+n+" = strvalue.substring(0, strvalue.indexOf(separator));");
      strvalue = strvalue.substring(strvalue.indexOf(separator)+separator.length,
          strvalue.length+1);
      n++;
    }
    eval("arr" + n + " = strvalue;");
    arraySize = n+1;
  }
  else {
    for (var x = 0; x < strvalue.length; x++) {
      eval("arr"+n+" = \"" + strvalue.substring(x, x+1) + "\";");
      n++;
    }
    arraySize = n;
  }

  eval(arrayName + " = new makeArray(arraySize);");

  for (var i = 0; i < arraySize; i++)
    eval(arrayName + "[" + i + "] = arr" + i + ";");

  return arraySize;
}

function makeArray(IntarrSize) {

  for (var n = 0; n < IntarrSize; n++)
    this[n] = "";

  return this;

}