// code for validating the form before submission

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


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

	var firstName = document.forms.signupform.firstName.value; 
	var lastName = document.forms.signupform.lastName.value;
	var email = document.forms.signupform.email.value;
	var password1 = document.forms.signupform.password1.value;
	var password2 = document.forms.signupform.password2.value;
	var address1 = document.forms.signupform.address1.value;
	var address2 = document.forms.signupform.address2.value;
	var city = document.forms.signupform.city.value;
	var state = document.forms.signupform.state.value;
	var zip = document.forms.signupform.zip.value;
	var phone = document.forms.signupform.phone.value;
	var utype = getcheckedval('snagster');

	var msg = "Please complete all fields.";

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

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

	if(utype > 1)
	{
		var emp = document.forms.signupform.emp.value;
		var emppos = document.forms.signupform.emppos.value;
		var emplen = document.forms.signupform.emplength.value;
		var empcontact = document.forms.signupform.empcontact.value;
		var empphone = document.forms.signupform.empphone.value;
		var hastaught = getcheckedval('hastaught');

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

		if(emp == null || emppos == null || emplen == null || empcontact == null || empphone == null)
			result = false;

		if(emp == "" || emppos == "" || emplen == "" || empcontact == "" || empphone == "")
			result = false;

		if(utype == 2 || utype == 4)
		{
			var extra = document.forms.signupform.extra.value;

			if(extra == null || extra == "")
				result = false;
		}
	}

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

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

	if(password1 != password2)
	{
		result = false;
		msg = "The passwords do not match.";
	}

	if(password1.length < 8 || password1.length > 32)
	{
		result = false;
		msg = "Password must have between 8 and 32 characters.";
	}

	if(result == false)
		alert(msg);

	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;

}

function getcheckedval(fieldname)
{
	var gotval = 0;

	eval("var thislen = document.forms.signupform."+fieldname+".length");
	for (var i = 0; i < thislen; i++)
	{
		if (eval("document.forms.signupform."+fieldname+"[i].checked"))
		{
			eval("gotval = document.forms.signupform."+fieldname+"[i].value;");
		}
	}

	return gotval;
}