function validate_form(frm) {
  var value = '';
  var errFlag = new Array();
  var _qfGroups = {};
  _qfMsg = '';

  value = frm.elements['first_name'].value;
  if (value == '' && !errFlag['first_name']) {
    errFlag['first_name'] = true;
    _qfMsg = _qfMsg + '\n - First Name is required';
  }

  value = frm.elements['last_name'].value;
  if (value == '' && !errFlag['last_name']) {
    errFlag['last_name'] = true;
    _qfMsg = _qfMsg + '\n - Last Name is required';
  }

  value = frm.elements['email'].value;
  if (value == '' && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - Email is required';
  }

  value = frm.elements['email'].value;
  var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
  if (value != '' && !regex.test(value) && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - Email must be a valid email address';
  }

  value = frm.elements['phone'].value;
  if (value == '' && !errFlag['phone']) {
    errFlag['phone'] = true;
    _qfMsg = _qfMsg + '\n - Phone is required';
  }

  if (_qfMsg != '') {
    _qfMsg = 'Invalid information entered.' + _qfMsg;
    _qfMsg = _qfMsg + '\nPlease correct these fields.';
    alert(_qfMsg);
    return false;
  }
  return true;
}
function formatAsPhone(phone,req) {
   var digits = phone.value.replace(/[^0-9]/ig, '');
   var isreq = (req) ? true : false;
   if (!digits && isreq) {
       alert('Please enter a valid phone number for: '+phone.name);
       phone.focus();
       return;
   }
   if(digits.length > 0){
       switch(digits.length){
           case 10:
               phone.value = '(' + digits.substring(0, 3) + ') ' + digits.substring(3, 6) + '-' + digits.substring(6, 10);
           break;
           default:
              alert('Please enter 10 digits for '+phone.name+'.\nAn Area Code is required.');
              phone.value = digits;
              //phone.focus();
             break;
       }  
   }
}
function formatAsDate(elm) {
     var digits = elm.value.replace(/[^0-9]/ig, '');
     if (!digits) {
      //alert('Please enter a valid date for: '+id);
       return;
     }
     switch(digits.length){
         case 8:
             elm.value = digits.substring(0, 2) +'-'+ digits.substring(2, 4) +'-'+ digits.substring(4, 8);
         break;
         case 6:
             elm.value = digits.substring(0, 2) +'-'+ digits.substring(2, 6)
         break
         default:
         /*
            alert('Please enter a valid date for: '+id);
            elm.value = digits;
            elm.focus();
            */
           break;
     }  
}