var tries = 0;
function validateForm ( form )
{
var retval = true; // be optimistic!!
var silent = false;
for ( var e=0; e < form.elements.length; e++ )
{
var el = form.elements[e];
var errname = el.name + "error";
if (el.type != 'radio' && el.value != '')
{
var ndx = el.value.search(/);
if (ndx >= 0)
{
retval=false;
silent=true;
}
}
if (el.name=='title'||el.name=='state'||
el.name=='zipcode'||el.name=='fax'||
el.name=='questions'||el.name=='submit'||
el.name=='reset')
{
// ok if empty or anything else
// but reject junk in non empty fields
if (el.name=='fax' && el.value != '')
{
var ndx = el.value.search(/[^0-9-.\s()+]/);
if (ndx >= 0)
{
retval=false;
silent=true;
}
// international... means the rest could be
// alphanumeric, includin extended latin/ascii set, so...
}
}
else if ( el.type == 'radio' )
{
var group = form [el.name];
var checked = false;
if (!group.length)
checked = el.checked;
else
for ( var r = 0; r < group.length; r ++ )
if ( ( checked = group [ r ].checked ) )
break;
if ( !checked )
{
var output = "Please choose an option!";
document.getElementById(errname).innerHTML=output;
retval = false;
}
else
{
document.getElementById(errname).innerHTML='';
}
}
else if ( el.value == '' )
{
var output = "Please fill in required field!";
document.getElementById(errname).innerHTML=output;
retval = false;
}
else
{
//alert(el.name + " with value " + el.value);
document.getElementById(errname).innerHTML='';
if (el.name=='email')
{
var ndx1 = el.value.search(/^([\w.-])+@([\w])+\./);
var ndx2 = el.value.search(/\.([a-z])+$/);
if (ndx1 < 0 || ndx2 < 0)
{
retval=false;
silent=true;
}
}
/* nope...no can do...people put in things like "no phone"
or even "xxxxx or xxxxxx" augh!
if (el.name=='phone')
{
var ndx = el.value.search(/[^0-9-.\s()+]/);
if (ndx >= 0)
{
retval=false;
silent=true;
}
}
*/
if (el.name=='firstname' || el.name=='lastname' ||
el.name=='state' || el.name=='country')
{
var ndx = el.value.search(/\d/);
if (ndx > 0)
{
retval=false;
silent=true;
}
}
}
}
document.getElementById('generalerror').innerHTML='';
tries++;
if (tries >= 3)
{
//alert("too many failures");
document.getElementById('generalerror').innerHTML=
"\n";
return true;
}
if (retval===false)
{
if (silent===false)
{
document.getElementById('generalerror').innerHTML=
"Please go back and fill in required field(s)!";
}
return false;
}
else
{
return true;
}
}