


function setdate()
{

   document.form.phonepunc.value = "-/" ;
   document.form.phonemindig.value = "6" ;
   document.form.phonemaxdig.value = "6" ;
   document.form.error.value = "Please enter a date in the format dd/mm/yy."
}

function setphone()
{

   document.form.phonepunc.value = " ()-+" ;
   document.form.phonemindig.value = "10" ;
   document.form.phonemaxdig.value = "10" ;
   document.form.error.value = "Please enter a complete phone number with area code."

}

function setzip()
{

   document.form.phonepunc.value = "-" ;
   document.form.phonemindig.value = "5" ;
   document.form.phonemaxdig.value = "9" ;
   document.form.error.value = "Please enter a valid zip code."

}


function setfillin()
{

   if (document.form.fields.value == "")
   		document.form.error.value = 'Field must be filled in.' ;
   else
        document.form.error.value = 'Field "' + document.form.fields.value + '" must be filled in.' ;

}

function setemail()
{

   document.form.error.value = 'Please enter a valid email address.' ;

}

function setnumber()
{

    document.form.error.value = 'Please enter a valid number.' ;
}


function dosel(){



	var fname = document.form.fields.value.toLowerCase()

	document.form.phonepunc.value = " ()-+" ;

	if ( (fname.indexOf("email") >= 0) || (fname.indexOf("e-mail") >= 0) || (fname.indexOf("e_mail") >= 0) )
	   {
	   	document.form.valtype[1].checked = true  ;
	   	document.form.error.value = "Please enter a valid email address."
	   	return ;

	   }


	if (fname.indexOf("zip") >= 0)
	   {
	   	document.form.valtype[2].checked = true  ;

	   	document.form.phonepunc.value = "-" ;
	   	document.form.phonemindig.value = "5" ;
	   	document.form.phonemaxdig.value = "9" ;
	   	document.form.error.value = "Please enter a valid zip code."

	   	return ;

	   }


	if ((fname.indexOf("phone") >= 0) || (fname.indexOf("fax") >= 0) )
	   {
	   	document.form.valtype[2].checked = true  ;

	   	document.form.phonemindig.value = "10" ;
	   	document.form.phonemaxdig.value = "10" ;
	   	document.form.phonepunc.value = " ()-+"

	   	document.form.error.value = "Please enter a complete phone number with area code."

	   	return ;

	   }


	if (fname.indexOf("date") >= 0)
	   {
	   	document.form.valtype[2].checked = true  ;

	   	document.form.phonepunc.value = "-/" ;
	   	document.form.phonemindig.value = "6" ;
	   	document.form.phonemaxdig.value = "6" ;

	   	document.form.error.value = "Please enter a date in the format dd/mm/yy."
	   	return ;

	   }



	if ((fname.indexOf("num") >= 0) || (fname.indexOf("quant") >= 0) || (fname.indexOf("qty") >= 0) || (fname.indexOf("age") >= 0) || (fname.indexOf("price") >= 0))
	   {
	   	document.form.valtype[3].checked = true  ;
	   	document.form.error.value = 'Field "' + document.form.fields.value + '" must contain a valid number.' ;
	   	return ;

	   }



document.form.valtype[0].checked = true  ;

document.form.error.value = 'Field "' + document.form.fields.value + '" must be filled in.' ;

}



function doadd(){



	p = document.form.fields.value ;
	fldname = p


	if ((p.indexOf(".") >= 0) || (p.indexOf("'") >= 0) || (p.indexOf(" ") >= 0) )
	 {

		 alert('You cannot validate field "' + p + '" because the field name contains a special character such as a space, period or apostrophe. Use field names like "FirstName" or "first_name". Please edit the HTML to remove special character(s) from the field name and then try again.') ;
		 return ;
      }

	found = -1 ;
	var valArr=document.form.valstring.value.split(":;");

	for (i=0; i < valArr.length; i++)
	 {
	 	if (valArr[i].indexOf(p + "^") >= 0)
	 	  {
	 	    found = i ;
	 	    break ;

	 	  }

	 }

	b = 0 ;

	if (document.form.blankok.checked) b = 1 ;

	if (document.form.valtype[0].checked)
	  {


	  	v = p + "^0^" + document.form.min1.value + "^" + document.form.max1.value + "^" + b + "^" + document.form.error.value;

	  	p = p + " (filled in)" ;

	  }


	if (document.form.valtype[1].checked)
	  {


	  	v = p + "^1^" + b + "^" + document.form.error.value;;
	  	p = p + " (email address)" ;

	  }

	if (document.form.valtype[2].checked)
	  {



	  	v = p + "^2^" + document.form.phonemindig.value + "^" + document.form.phonemaxdig.value + "^" + document.form.phonepunc.value + "^" + b + "^" + document.form.error.value;

	  	p = p + " (number sequence)" ;

	  }

	if (document.form.valtype[3].checked)
	  {



	  	v = p + "^3^" + document.form.nummin.value + "^" + document.form.nummax.value + "^" + b +  "^" + document.form.error.value;

	  	p = p + " (number value)" ;

	  }


	if (found < 0)
		n = document.form.vfields.options.length;

	else
		n = found ;

	newopt = new Option(p,p)
	document.form.vfields.options[n] = newopt

	document.form.vfields.selectedIndex = n ;




	valArr[n] = v

	document.form.valstring.value = ""

	for (i=0; i < valArr.length; i++)
	 {
	   document.form.valstring.value = document.form.valstring.value  + valArr[i] + ":;"
	 }



   if (found >= 0)
     {

		alert ('Validation settings for field "' + fldname + '" have been updated.') ;

     }

}



function doremove(){

x = document.form.vfields.selectedIndex

if (x < 0) return ;


var valArr=document.form.valstring.value.split(":;");


	document.form.vfields.options[x] = null ;

	document.form.valstring.value = ""

	for (i=0; i < valArr.length; i++)
	 {
	   if (i != x)
	   	document.form.valstring.value = document.form.valstring.value  + valArr[i] + ":;"
	 }




}

function verify_presub()
{

	var m = document.form.S1.value ;

	if ((m.length < 30) || (m.indexOf("<") < 0))
	  {
		  alert("Please paste the entire HTML source for the file containing your form into the box.") ;
		  document.form.S1.focus() ;
		  document.form.S1.select() ;
		  return false ;
      }

	var k = m.indexOf("<form") ;
	if (k < 0) k = m.indexOf("<FORM") ;

	if ( k >=0)
	 {

		 m2 = m.substr(k+4, m.length) ;

		 var k2 = m2.indexOf("<form") ;
		 if (k2 < 0) k2 = m2.indexOf("<FORM") ;

		 if (k2 > 0)
	  	  {
		   alert("Your HTML file contains more than one form. FormBreeze can handle only one form per file. Please remove the extra form before using FormBreeze. You can put the extra form back later, after your main form has been updated to include validation.") ;
		   document.form.S1.focus() ;
		   document.form.S1.select() ;
		   return false ;
          }


      }


   if (document.form.ID.value.length > 0)
    {
	var id = document.form.ID.value ;
    if ((document.form.ID.value.length != 5) || (id < 12863) || (id > 99999))
       {

		   alert("You have entered an invalid account ID. This should be a 5-digit number. You can get the correct ID by signing into your account. If you are not using our form processing service, please leave this box blank.") ;
		   document.form.ID.focus() ;
		   document.form.ID.select() ;
		   return false ;

        }
     }


	return true ;


}

function emailCheck (emailStr) {

var errmsg = "Please enter a valid email address." ;

var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|ws)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);

if (matchArray==null) {
alert(errmsg);
return false;
}
var user=matchArray[1];
var domain=matchArray[2];

for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert(errmsg);
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert(errmsg);
return false;
   }
}

if (user.match(userPat)==null) {
alert(errmsg);
return false;
}

var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert(errmsg);
return false;
   }
}

if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert(errmsg);
return false;
}

if (len<2) {
alert(errmsg);
return false;
}

return true;
}


function echeck(field)
{

	if (field.value.length == 0) return ;

	if (! emailCheck(field.value))
	 {

		 field.focus() ;
		 field.select() ;

     }


}


function multecheck(field)
{

	if (field.value.length == 0) return ;



	s = 0 ;

	v = field.value ;

	e = v.indexOf(",")
	n = 0

	if (e == -1)
	 {

		echeck(field)
		return ;

     }


	while (e > -1)
	 {
		 email = v.substr(0, e)
		 v = v.substr(e+1, v.length)

		 if (! emailCheck(email))
		 	 {
			     if (email == "") alert ("You have an extra comma.") ;
		 		 else alert('"'+ email + '"' + " is not valid.")
		 		 field.focus() ;
		 		 field.select() ;
		 		 return ;

		      }



		 e = v.indexOf(",")

		 n++ ;

		if (n > 5)
		 {
			 alert("The maximum number of email addresses is 5.") ;

			 field.focus() ;
			 field.select() ;
			 return ;
		 }



     }


     email = v
	 if (! emailCheck(email))
		 	 {

			     if (email == "") alert ("You have an extra comma.") ;
		 		 else alert('"'+ email + '"' + " is not valid.")
		 		 field.focus() ;
		 		 field.select() ;
		 		 return ;

		      }


}


function vd_presut()
{
   if (document.theform.form.value == "")
    {

    	alert("You must select the form for which you want to view data.") ;
    	document.theform.form.focus() ;

    	return false ;


    }

   return true ;

}


function cp_presub()
{


  return true ;
}