// error strings
var iEmail = "This field must be a valid email address (like yourname@yourdomain.com). Please reenter it now."
var iUsername = "This field must be a valid name (like John Smith). Please reenter it now."
var iCompanyname = "This field must be a valid company name. Please reenter it now."
var iPhone = "This field must be a valid phone number. Please reenter it now."
var iFirmtype = "This field must be filled out. Please choose a most appropriate item."
var iSource = "This field must be filled out. Please choose a most appropriate item."

var reEmail = /^.+\@.+\..+$/
var reUsername = /^[a-zA-Z]+\s{1,}[a-zA-Z]+\s{0,}([a-zA-Z]+){0,}\s{0,}$/
var reInteger = /^\d+$/

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function warnInvalid (theField, s)
{   theField.focus()
	 if (theField.selectedIndex==undefined) theField.select()
    alert(s)
    return false
}

function isEmail (s)
{
   if (isEmpty(s)) 
       return false;
    else {
       return reEmail.test(s)
    }
}

function isUsername (s)

{
   if (isEmpty(s)) 
       return false;
    else {
       return reUsername.test(s)
    }
}

function isCompanyname (s)

{
   if (isEmpty(s)) 
       return false;
   else return true;
}

function isPhone (s)

{
   if (isEmpty(s)) 
       return false;
   else return reInteger.test(s);
}

function process() {
var f=document.userInfoForm;
if (!isUsername(f.username.value)) warnInvalid(f.username, iUsername);
else if (!isCompanyname(f.companyname.value)) warnInvalid(f.companyname, iCompanyname);
else if (f.firmtype.selectedIndex == 0) warnInvalid(f.firmtype, iFirmtype);
else if (isEmpty(f.phone.value)) warnInvalid(f.phone, iPhone);
else if (!isEmail(f.email.value)) warnInvalid(f.email, iEmail);
else if (f.infosource.selectedIndex == 0) warnInvalid(f.infosource, iSource);
else f.submit();
}

function checkTrialInput(){
var f=document.forms["TrialDemoForm"];
if (isEmpty(f.T_Description.value)) warnInvalid(f.T_Description,'Please briefly describe your needs');
else if ( (typeof(f.T_AccNum)!='undefined') && !reInteger.test(f.T_AccNum.value)) warnInvalid(f.T_AccNum, 'Please provide an approximate number of accounts');
else if ( (typeof(f.T_DDate)!='undefined') && isEmpty(f.T_DDate.value)) warnInvalid(f.T_DDate, 'Please provide an approximate solution delivery date');
else f.submit();
}