function validateForm(e) {
  var lead = new Object();
  var form = (e) ? e.target : window.event.srcElement;
  var valid = true;
  for (var i=0; i<form.elements.length; i++) {
    var vf = validateField(form.elements[i]);
    if (!vf) {
      valid = false;
      break;
    }
    try
    {
        var llmap = form.elements[i].llmapping;
        if (llmap == undefined && navigator.appName != "Microsoft Internet Explorer")
        {
            llmap = form.elements[i].getAttribute("llmapping");
        }
        if (llmap != undefined && llmap != null)
        {
            lead[llmap] = form.elements[i].value;
        }
    }
    catch(ex){}
  }
  if(valid){
    if (lead["email"] != undefined && lead["email"].length > 0){
        lla.saveLead(lead);
    }
  }
  return valid;
}
function validateField(field) {
  var rules     = field.rules;
  var invalid   = false;
  if (rules && rules.length) {
    for (var i=0; (invalid==false) && (i<rules.length); i++) {
      switch (rules[i].rule) {
        case 'regex':
          if (!field.value.match(rules[i].match)) {
            invalid = true;
          }
          break;
        case 'nregex':
          if (field.value.match(rules[i].match)) {
            invalid = true;
          }
          break;
        case 'max':
          if ((field.value.length > 0) && field.value > rules[i].match) {
            invalid = true;
          }
          break;
        case 'min':
          if ((field.value.length > 0) && field.value < rules[i].match) {
            invalid = true;
          }
          break;
        case 'maxLength':
          if (field.value.length > rules[i].match) {
            invalid = true;
          }
          break;
        case 'minLength':
          if (field.value.length < rules[i].match) {
            invalid = true;
          }
          break;
        case 'selected':
          if (field.options[field.selectedIndex].value == (''||undefined)) {
            invalid = true;
          }
          break;
        default:
          break;
      }
      if (invalid) {
        alert('Please fix your answer to "' + field.id + '".');
      }
    }
  }
  return !invalid;
}