// persistant field labels -------------->
function formrule(field)
{
if (field.defaultValue == field.value) field.value = "";
}
function formrule2(field) {
if (field.value == "") {
field.value = field.defaultValue;
}
}

// Start form validation functions ------->

// main function for customizing validation checks
function validateForm(theForm)
{
 // Customize these calls for your form
 // This is where all the potentially mandatory fields are defined

 //
 // Start ------->

 //if (!validRequired(theForm.contact_first_name,"First Name")) // valid name
 // return false;

 //if (!validRequired(theForm.contact_last_name,"Last Name")) // valid name
 // return false;

 if (!validEmail(theForm.contact_email,"Email Address",true)) // valid email
 return false;

 //if (!validDate(theForm.question_1,"Injured DOB",true)) // valid date
 // return false;

 if (!validCheckBox(theForm.attorney_client,"Agree",true)) // valid checkbox state
 return false;

 //if (!validCheckBox(theForm.Attorney_Case,"Not Agree",false)) // valid checkbox state
 // return false;

 // <--------- End
 //

 return true;
}

// do not touch functions below here unless you know what you're doing

function isEmailAddr(email)
{
 var result = false;
 var theStr = new String(email);
 var index = theStr.indexOf("@");
 if (index > 0)
 {
 var pindex = theStr.indexOf(".",index);
 if ((pindex > index+1) && (theStr.length > pindex+1))
 result = true;
 }
 return result;
}

function validRequired(formField,fieldLabel)
{
 var result = true;

 if (formField.value == "")
 {
 alert('Please enter a value for the "' + fieldLabel +'" field.');
 formField.focus();
 result = false;
 }

 return result;
}

function validCheckBox(formField,fieldLabel,desiredState)
{
 var result = true;
 var state = '';

 state = desiredState ? 'checked' : 'not checked';

 if (formField.checked != desiredState)
 {
 alert('This form requires the "' + fieldLabel +'" checkbox to be ' + state + ' before submission.');
 result = false;
 }

 return result;
}

function allDigits(str)
{
 return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
 var result = true;

 // Note: doesn't use regular expressions to avoid early Mac browser bugs
 for (var i=0;i<str.length;i++)
 if (charset.indexOf(str.substr(i,1))<0)
 {
 result = false;
 break;
 }

 return result;
}

function validEmail(formField,fieldLabel,required)
{
 var result = true;

 if (required && !validRequired(formField,fieldLabel))
 result = false;

 if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
 {
 alert('Please enter a valid email address for the "' + fieldLabel +'" field');
 formField.focus();
 result = false;
 }

 return result;

}

function validNum(formField,fieldLabel,required)
{
 var result = true;

 if (required && !validRequired(formField,fieldLabel))
 result = false;

 if (result)
 {
 if (!allDigits(formField.value))
 {
 alert('Please enter a number for the "' + fieldLabel +'" field.');
 formField.focus();
 result = false;
 }
 }

 return result;
}

function validInt(formField,fieldLabel,required)
{
 var result = true;

 if (required && !validRequired(formField,fieldLabel))
 result = false;

 if (result)
 {
 var num = parseInt(formField.value,10);
 if (isNaN(num))
 {
 alert('Please enter a number for the "' + fieldLabel +'" field.');
 formField.focus();
 result = false;
 }
 }

 return result;
}

function validDate(formField,fieldLabel,required)
{
 var result = true;

 if (required && !validRequired(formField,fieldLabel))
 result = false;

 if (result)
 {
 var elems = formField.value.split("/");

 result = (elems.length == 3); // should be three components

 if (result)
 {
 var month = parseInt(elems[0],10);
 var day = parseInt(elems[1],10);
 var year = parseInt(elems[2],10);
 result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
 allDigits(elems[1]) && (day > 0) && (day < 32) &&
 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 }

 if (!result)
 {
 alert('Please enter a valid date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
 formField.focus();
 }
 }

 return result;
}

// <--------- End form validation functions

// Start form required field functions - Quick Contact ------->

function MM_findObj(n, d) { //v4.01
 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
 if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
 var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
 for (i=1; i<a.length;i=i+4){
 if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
 o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
 o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
 v=o.value;t=a[i+2];dv = o.defaultValue;
 if (o.type=='text'||o.type=='password'||o.type=='hidden'){
 if ((r&&v.length==0)||v==dv){err=true}
 if (v.length>0)
 if (t==1){ //fromto
 ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
 } else if (t==2){
 rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
 } else if (t==3){ // date
 ma=a[i+1].split("#");at=v.match(ma[0]);
 if(at){
 cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
 dte=new Date(cy,cm,cd);
 if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
 }else{err=true}
 } else if (t==4){ // time
 ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
 } else if (t==5){ // check this 2
 if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
 if(!o1.checked){err=true}
 } else if (t==6){ // the same
 if(v!=MM_findObj(a[i+1]).value){err=true}
 }
 } else
 if (!o.type&&o.length>0&&o[0].type=='radio'){
 at = a[i].match(/(.*)\[(\d+)\].*/i);
 o2=(o.length>1)?o[at[2]]:o;
 if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
 if (t==2){
 oo=false;
 for(j=0;j<o.length;j++){oo=oo||o[j].checked}
 if(!oo){s+='* '+a[i+3]+'\n'}
 }
 } else if (o.type=='checkbox'){
 if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
 } else if (o.type=='select-one'||o.type=='select-multiple'){
 if(t==1&&o.selectedIndex/1==0){err=true}
 }else if (o.type=='textarea'){
 if(v.length<a[i+1]){err=true}
 }
 if (err){s+='* '+a[i+3]+'\n'; err=false}
 }
 if (s!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+s)}
 document.MM_returnValue = (s=='');
}

// <---------End form required field functions - Quick Contact
