
function validate_birthdays(){var d=document.getElementById('b_count');if(!d)return true;var c=d.options[d.selectedIndex].value;for(var i=1;i<=c;i++){var f=document.getElementById('b_first_name_'+i);var l=document.getElementById('b_last_name_'+i);var d=document.getElementById('b_last_name_'+i);if(f.value.length<=1){f.focus();f.select();alert('Please complete all of the birthday "First Name" fields.');return false;}
if(l.value.length<=1){l.focus();l.select();alert('Please complete all of the birthday "Last Name" fields.');return false;}
var id='b_event_date_'+i;var d=document.getElementById(id+'_d').value;var m=document.getElementById(id+'_m').value;var y=document.getElementById(id+'_y').value;var dt=new Date();if(parseInt(y)>parseInt(dt.getFullYear())){alert('Invalid birth day, can not be in the future');return false;}
if(parseInt(y)==parseInt(dt.getFullYear())&&(parseInt(m)>(parseInt(dt.getMonth())+1))){alert('Invalid birth day, can not be in the future');return false;}
if(parseInt(y)==parseInt(dt.getFullYear())&&(parseInt(m)==(parseInt(dt.getMonth())+1))&&(parseInt(d)>parseInt(dt.getDate()))){alert('Invalid birth day, can not be in the future');return false;}}
return true;}
function validate_and_submit_form(frm_id){var frm=document.getElementById(frm_id);if(validate_form(frm)==true){submit_form(frm);}}
function validate_form(frm){if(!frm){alert('Error, unable to validate form; form not found.');return false;}
var inp=frm.getElementsByTagName('INPUT');var sel=frm.getElementsByTagName('SELECT');var txt=frm.getElementsByTagName('TEXTAREA');for(var i=0;i<inp.length;i++){var input=inp[i];if((input.parentNode.className.toLowerCase().indexOf('required')>-1)||(input.getAttribute('required')&&(input.getAttribute('required')=='true'))){if(input.value==''){validate_form_error_setfocus(input);return false;}}
if(((input.getAttribute('email'))&&(input.getAttribute('email')=='true'))){var required=false;if(input.getAttribute('required')&&(input.getAttribute('required')=='true'))required=true;if(!validateEmail(input.value,required,true)){validate_form_setfocus(input);return false;}}}
for(var i=0;i<sel.length;i++){var input=sel[i];if((input.className.toLowerCase().indexOf('required')>-1)||((input.getAttribute('required'))&&(input.getAttribute('required')=='true'))){if(input.value==''){validate_form_error_setfocus(input);return false;}}}
for(var i=0;i<txt.length;i++){var input=txt[i];if((input.className.toLowerCase().indexOf('required')>-1)||((input.getAttribute('required'))&&(input.getAttribute('required')=='true'))){if(input.value==''){validate_form_error_setfocus(input);return false;}}}
return true;}
function validate_form_error_setfocus(e){var m='Please enter a value for: '+get_element_caption(e);m=m.replace('&nbsp;',' ');alert(m);try{e.focus();e.select();}catch(e){}}
function validate_form_setfocus(e){try{e.focus();e.select();}catch(e){}}
function get_element_caption(e){var id=e.id.toString();if(id!=''){var c=document.getElementById(id+'_label');if(c){return c.innerHTML;}}
return id;}
function submit_form(frm){if(!frm){alert('Error, unable to validate form; form not found.');return false;}
var inp=frm.getElementsByTagName('INPUT');var sel=frm.getElementsByTagName('SELECT');var txt=frm.getElementsByTagName('TEXTAREA');frm.submit();try{for(var i=0;i<inp.length;i++){inp[i].disabled=true;}
for(var i=0;i<sel.length;i++){sel[i].disabled=true;}
for(var i=0;i<txt.length;i++){txt[i].disabled=true;}}catch(e){}}
function validateEmail(addr,man,db){if(addr==''&&man){if(db)alert('You must enter an email address');return false;}
if(addr=='')return true;var atPos=addr.indexOf(' ',0);if(atPos>0){if(db)alert('Your email address has spaces in, which is not allowed');return false;}
var invalidChars='\/\'\\ ";:?!()[]\{\}^|';for(i=0;i<invalidChars.length;i++){if(addr.indexOf(invalidChars.charAt(i),0)>-1){if(db)alert('Your email address contains invalid characters');return false;}}
for(i=0;i<addr.length;i++){if(addr.charCodeAt(i)>127){if(db)alert("Your email address contains strange or invalid characters.");return false;}}
var atPos=addr.indexOf('@',0);if(atPos==-1){if(db)alert('Your email address must contain an @');return false;}
if(atPos==0){if(db)alert('Your email address must not start with @');return false;}
if(addr.indexOf('@',atPos+1)>-1){if(db)alert('Your email address must contain only one @');return false;}
if(addr.indexOf('.',atPos)==-1){if(db)alert('Your email address must contain a period/dot in the domain name');return false;}
if(addr.indexOf('@.',0)!=-1){if(db)alert('The period/dot must not immediately follow @ in your email address');return false;}
if(addr.indexOf('.@',0)!=-1){if(db)alert('The period/dot must not immediately precede @ in your email address');return false;}
if(addr.indexOf('..',0)!=-1){if(db)alert('Two periods (dots) must not be adjacent in email address');return false;}
var suffix=addr.substring(addr.lastIndexOf('.')+1);if(suffix.length!=2&&suffix!='com'&&suffix!='net'&&suffix!='org'&&suffix!='edu'&&suffix!='int'&&suffix!='mil'&&suffix!='gov'&suffix!='arpa'&&suffix!='biz'&&suffix!='aero'&&suffix!='name'&&suffix!='coop'&&suffix!='info'&&suffix!='pro'&&suffix!='museum'){if(db)alert('invalid primary domain in email address');return false;}
return true;}