function validateAtLeastOneChecked( frm, field_name, custErr ) {
 var checkboxes_checked = 0;
 for (i=0; i< frm.elements.length; i++) {
   if (frm.elements[i].name == field_name) {
     if (frm.elements[i].checked) {
    checkboxes_checked = 1;
  }
   }
 }
 if (checkboxes_checked == 0) {
   return '-> ' + custErr + "\n";
 } else {
  return '';
 }
}

function validateEmail(email) {
 var emailPat=/^(.+)@(.+)$/;
 var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
 var validChars="\[^\\s" + specialChars + "\]";
 var quotedUser="(\"[^\"]*\")";
 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
 var atom=validChars + '+';
 var word="(" + atom + "|" + quotedUser + ")";
 var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
 var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
 var matchArray=email.match(emailPat);

 if (matchArray==null) {
  return false;
}

 var user=matchArray[1];
 var domain=matchArray[2];

 if (user.match(userPat)==null) {
  return false;
}

 var IPArray=domain.match(ipDomainPat);
 if (IPArray!=null) {
   for (var i=1;i<=4;i++) {
     if (IPArray[i]>255) {
    return false;
  }
   }
  return true;
 }

 var domainArray=domain.match(domainPat);
 if (domainArray==null) {
  return false;
}

 var atomPat=new RegExp(atom,"g");
 var domArr=domain.match(atomPat);
 var len=domArr.length;
 if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
  return false;
}

 if (len<2) {
  return false;
}

 return true;
}

  function validateData(strValidateStr,objValue,custErr) {
 var strErr = '';
 var epos = strValidateStr.search("=");
 var command  = "";
 var cmdvalue = "";
 if(epos >= 0) {
  command  = strValidateStr.substring(0,epos);
  cmdvalue = strValidateStr.substr(epos+1);
} else {
  command = strValidateStr;
 }

 switch(command) {

 case "req": case "required": {
   if (eval(objValue.value.length) == 0) {
     if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name + " : Required Field.\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
   }
  break;
 }

 case "maxlength":
 case "maxlen": {
   if (eval(objValue.value.length) >  eval(cmdvalue)) {
     if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name + " : "+cmdvalue+" characters maximum."
           + "\n       [Current length = " + objValue.value.length + " ].\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
   }
  break;
 }

 case "minlength": 
 case "minlen": {
   if (eval(objValue.value.length) <  eval(cmdvalue)) {
     if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name + " : " + cmdvalue + " characters minimum."
           + "\n       [Current length = " + objValue.value.length + " ].\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
   }
  break;
 }

 case "alnum":
 case "alphanumeric": {
  var charpos = objValue.value.search("[^A-Za-z0-9]");
  if (objValue.value.length > 0 &&  charpos >= 0) {
    if (!custErr || custErr.length == 0) {
    strErr = objValue.name+": Only alpha-numeric characters allowed."
           + "\n       [Error character position " + eval(charpos+1)+"].";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
  }
  break; 
 }

 case "num": 
 case "numeric": {
  var charpos = objValue.value.search("[^0-9]");
  if (objValue.value.length > 0 &&  charpos >= 0) {
    if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name+": Only digits allowed "
           + "\n       [Error character position " + eval(charpos+1)+"].\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
  }
  break;
 }

 case "alphabetic":
 case "alpha": {
  var charpos = objValue.value.search("[^A-Za-z]");
  if (objValue.value.length > 0 &&  charpos >= 0) {
    if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name+": Only alphabetic characters allowed"
           + "\n       [Error character position " + eval(charpos+1)+"].\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
  }
  break; 
 }

 case "email": {
   if (!validateEmail(objValue.value,strErr)) {
     if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name+": Enter a valid Email address.\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
   }
  break;
 }

 case "lt": 
 case "lessthan": {
   if (isNaN(objValue.value)) {
   strErr = strError + '-> ' + objValue.name+": Should be a number.\n";
 } else {
   if (eval(objValue.value) >=  eval(cmdvalue)) {
     if (!custErr || custErr.length == 0) {
     strErr = '-> ' + objValue.name
            + " : value should be less than "+ cmdvalue +".\n";
   } else {
     strErr = '-> ' + custErr + "\n";
    }
   }
  }
  break;
 }

 case "gt": 
 case "greaterthan": {
   if (isNaN(objValue.value)) {
   strErr = '-> ' + objValue.name+": Should be a number.\n";
 } else {
   if (eval(objValue.value) <=  eval(cmdvalue)) {
     if (!custErr || custErr.length == 0) {
     strErr = '-> ' + objValue.name
            + " : value should be greater than " + cmdvalue + ".\n";
   } else {
     strErr = '-> ' + custErr + "\n";
    }
   }
  }
  break;
 }

 case "regexp": {
   if (!objValue.value.match(cmdvalue))  {
     if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name+": Invalid characters found.\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
   }
  break;
 }

 case "notregexp": case "!regexp": {
   if (objValue.value.match(cmdvalue)) {
     if (!custErr || custErr.length == 0) {
    strErr = '-> ' + objValue.name+": Invalid characters found.\n";
  } else {
    strErr = '-> ' + custErr + "\n";
   }
   }
  break;
 }

 case "dontselect": {
   if (objValue.selectedIndex == null) {
   alert("BUG: dontselect command for non-select Item");
 } else {
   if (objValue.selectedIndex == eval(cmdvalue)) {
     if (!custErr || custErr.length == 0) {
     strErr = '-> ' + objValue.name+": Please Select one option.\n";
   } else {
     strErr = '-> ' + custErr + "\n";
    }
   }
  }
  break;
 }

}
 return strErr;
}

  function validateForm(objFrm,arrObjDesc) {
 var strErr = '';
 for(var itrobj=0; itrobj < arrObjDesc.length; itrobj++) {
  var strErr_element = '';
  if(objFrm.elements.length <= itrobj)  { 
   alert("BUG: Obj descriptor for a non existent form element"); 
   return false; 
 }
  for (var itrdesc=0; itrdesc < arrObjDesc[itrobj].length ;itrdesc++) {
    if (strErr_element != '') {
    break;
  }
   strErr_element = validateData( arrObjDesc[itrobj][itrdesc][0],
                                  objFrm[itrobj],
                                  arrObjDesc[itrobj][itrdesc][1] );
  }
  strErr = strErr + strErr_element;
}
 return strErr;
}

//-- if using this method, you must specify the validation array
//-- in reverse order as well
  function validateFormReverse(objFrm,arrObjDesc) {
 var strErr = '';
 for(var itrobj=0; itrobj < arrObjDesc.length; itrobj++) {
  var strErr_element = '';
  if(objFrm.elements.length <= itrobj)  { 
   alert("BUG: Obj descriptor for a non existent form element"); 
   return false; 
 }
  for (var itrdesc=0; itrdesc < arrObjDesc[itrobj].length ;itrdesc++) {
    if (strErr_element != '') {
    break;
  }
   strErr_element = validateData( arrObjDesc[itrobj][itrdesc][0],
                                  objFrm[objFrm.length-1-itrobj],
                                  arrObjDesc[itrobj][itrdesc][1] );
  }
  strErr = strErr + strErr_element;
}
 return strErr;
}

  function displayErrors( header, strErr ) {
    if ((strErr) && (strErr.length > 0)) {
  alert( header + "\n" + strErr );
  return true;
} else {
  return false;
 }
  }
      function submit_new() {
      var validation_array = [];
      var default_validation = [];

      default_validation['email'] = [
        ['required','You must enter your email address in order to signup.'],
        ['email',   'Your email address appears to be invalid.']
      ];

      default_validation['gender'] = [
      ];

      default_validation['first_name'] = [
      ];

      default_validation['last_name'] = [
      ];

      default_validation['age'] = [
        [ "regexp=^(|1[3-9]|[2-9][0-9][0-9]?)$",
          "Your have entered an invalid age. (13+ and digits only)" ]
      ];

      default_validation['zip'] = [
      ['regexp=^(|[0-9A-Za-z -.][0-9A-Za-z -.][0-9A-Za-z -.][0-9A-Za-z -.]*)$',
       'Your postal code appears to be invalid.']
      ];

      // loop through list ids looking for list ids that require more
      for (var i=0;i<document.foca_pop.elements.length;i++) {
        if (document.foca_pop.elements[i].name == 'list_id' &&
            document.foca_pop.elements[i].checked == true) {

          // harris
          if (document.foca_pop.elements[i].value == 2839
              || document.foca_pop.elements[i].value == 2840
              || document.foca_pop.elements[i].value == 4131) {

            default_validation['zip'].unshift(
              ['required', "Please enter your zip code."]
            );

            default_validation['age'].unshift(
              ['required', "Please enter your age"]
            );

            default_validation['gender'].unshift(
              ['dontselect=0', "Please select your gender."]
            );

          }

        }

      }

      for (var i=0;i<document.foca_pop.elements.length;i++) {

        if (default_validation[document.foca_pop.elements[i].name]) {
          validation_array[i] =
            default_validation[document.foca_pop.elements[i].name];
        } else {
          validation_array[i] = [];
        }

      }

      var strErr = validateForm(document.foca_pop,validation_array);

      strErr = strErr + validateAtLeastOneChecked(document.foca_pop,'list_id',
                        'Please select at least one list.' );

      if (displayErrors( 'There were problems with your request:'      + "\n" +
                     '===========================================', strErr)) {
        return false;
      } else {
        return true;
      }
    }


var NA = null;

function UserInfo() {
  this.appCodeName = NA; this.appName = NA; this.appVersion = NA;
  this.platform = NA; this.cookiesEnabled = NA; this.javaEnabled = NA;

  /* Navigator object properties ************************************/

  if (top.navigator.appCodeName != null)  // get browser code name
    this.appCodeName = navigator.appCodeName;

  if (top.navigator.appName != null)  // get browser app name
    {
    if (navigator.userAgent.indexOf("Opera") != -1)
      this.appName = "Opera";
    else
      this.appName = navigator.appName;
    }

  if (top.navigator.appVersion != null)  // get browser version number
    {
    this.appVersion = navigator.appVersion;
    var index = this.appVersion.indexOf(" ");
    this.appVersion = this.appVersion.substring(0,index);
    if (this.appName.indexOf("Internet") != -1)
      {
      if (top.navigator.userAgent.indexOf("5.0") != -1)
        this.appVersion = "5.0";
      }
    }

}

var user = new UserInfo();

if ( ((  (user.appCodeName.toLowerCase().indexOf("mozilla") != -1)
      || (user.appName.toLowerCase().indexOf("netscape") != -1))
      && (parseInt(user.appVersion) >= 5))
    ||
     (   (user.appName.toLowerCase().indexOf("internet") != -1)
      && (parseInt(user.appVersion) >= 4))) {
  document.write( '<table border=0 bgcolor="#ff0000" width="728" height="90" ' );
  document.write( 'cellspacing="0" cellpadding="0"> ' );
  document.write( '<form target=_blank method="POST" action="http://www.focalex.com/subscriber/subscribe.mpl/137222" onsubmit="return submit_new();" name="foca_pop"> ' );
  document.write( '<input type=hidden name="affiliate_id" value="137222"> ' );
  document.write( '<input type=hidden name="gatherer_id" value="default"> ' );
  document.write( '<input type=hidden name="form_type" value="headline"> ' );
  document.write( '<input type=hidden name="form_version" value="general_1.1"> ' );
  document.write( '<input type=hidden name="country_code_guess" value="US"> ' );
  document.write( '  <tr> ' );
  document.write( '    <td align=center valign="top"><table border=0 cellpadding="0" ' );
  document.write( '    cellspacing="0" height="90"> ' );
  document.write( '        <tr> ' );
  document.write( '          <td valign=middle align="center"> ' );
  document.write( '            <img src="http://img.focalex.com/images/affiliate/ban/top_728_red.gif" width="220" height="45" border="0" hspace="0"> ' );
  document.write( '          </td> ' );
  document.write( '        </tr> ' );
  document.write( '        <tr> ' );
  document.write( '          <td width=175 align="center" valign="middle"> ' );
  document.write( '            <table border=0 cellpadding="0" cellspacing="0"> ' );
  document.write( '              <tr> ' );
  document.write( '                <td> ' );
  document.write( '                  <a href="http://www.focalex.com/subs.emp?aid=137222" target="_blank"><img src="http://img.focalex.com/images/affiliate/ban/more_lists_728_red.gif" width="103" height="30" border="0" hspace="0"></a> ' );
  document.write( '                </td> ' );
  document.write( '                <td> ' );
  document.write( '                  <a href="http://www.focalex.com/affiliates/?pc=137222&ban=ihead" target="_blank"><img src="http://img.focalex.com/images/affiliate/ban/webmasters_728_red.gif" width="103" height="30" border="0" hspace="0"></a> ' );
  document.write( '                </td> ' );
  document.write( '              </tr> ' );
  document.write( '            </table> ' );
  document.write( '          </td> ' );
  document.write( '        </tr> ' );
  document.write( '      </table> ' );
  document.write( '    </td> ' );
  document.write( '    <td align=center valign="top"><table border=0 cellpadding="0" ' );
  document.write( '    cellspacing="1" height="90"> ' );
  document.write( '        <tr> ' );
  document.write( '          <td align=center nowrap> ' );
  document.write( '            <font face="Arial,Helvetica" size="1" style="font-size:8pt;" ' );
  document.write( '            color="#000000"><b> ' );
  document.write( '            Age: <input type=text name="age" maxlength="4" size="5" style="font-size:8pt;font-face:Arial,Helvetica;"> ' );
  document.write( '                  Gender: ' );
  document.write( '      <select name=gender style="font-size:8pt;font-face:Arial,Helvetica;"> ' );
  document.write( '      <option value="">-- ' );
  document.write( '      <option>F ' );
  document.write( '      <option>M ' );
  document.write( '      </select>     ' );
  document.write( ' ' );
  document.write( '            Email: <input type=text size="7" name="email" ' );
  document.write( '            style="font-size:8pt;font-face:Arial,Helvetica;"> ' );
  document.write( '            Zip: <input type=text size="5" name="zip" ' );
  document.write( '            style="font-size:8pt;font-face:Arial,Helvetica;"> ' );
  document.write( '            <input type=submit value="Sign Up!" ' );
  document.write( '            style="font-size:7pt;font-face:Arial,Helvetica;"> ' );
  document.write( '            &nbsp; ' );
  document.write( '            <a ' );
  document.write( '            href="http://www.focalex.com/offers.mpl?location=3&aid=137222&form_type=headline&_offer_id=41&_ad_id=145&_depth=1&_client_id=56&no_thanks=1" target="_blank"><font color="#000000">No Thanks!</font></a> ' );
  document.write( '            <a href="http://www.focalex.com/privacy/" target="_blank"><font ' );
  document.write( '            color="#000000">Privacy</font></a> ' );
  document.write( '            </b></font> ' );
  document.write( '          </td> ' );
  document.write( '        </tr> ' );
  document.write( '        <tr> ' );
  document.write( '          <td align=center valign="top"> ' );
  document.write( '            <table border=0 bgcolor="#ffffff" cellspacing="0" ' );
  document.write( '            cellpadding="0" width="100%"> ' );
  document.write( ' ' );
  document.write( '               ' );
  document.write( '              <tr> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="254" checked style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Special Offers</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="273" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Small Biz.</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="161" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Books</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="257" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Home Office</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="172" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Music</font> ' );
  document.write( '                </td> ' );
  document.write( '              </tr> ' );
  document.write( '               ' );
  document.write( '              <tr> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="1203" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  IT Pros</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="213" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Pers. Finance</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="174" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Sports</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="179" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Travel</font> ' );
  document.write( '                </td> ' );
  document.write( '                <td nowrap> ' );
  document.write( '                  <font color="#000000" face="Arial,Helvetica" size="1" ' );
  document.write( '                  style="font-size:8pt;"> ' );
  document.write( '                  <input type=checkbox name="list_id" value="341" style="font-size:8pt;font-face:Arial,Helvetica;height:14px;"> ' );
  document.write( '                  Credit Cards</font> ' );
  document.write( '                </td> ' );
  document.write( '              </tr> ' );
  document.write( '               ' );
  document.write( '               ' );
  document.write( '              <tr> ' );
  document.write( '                <td nowrap colspan="5" width="525" align="center" style="padding-bottom:3px;"> ' );
  document.write( '                 <font size=1 face="Arial,Helvetica" color="#000000" ' );
  document.write( '                 style="font-size:8pt;"> ' );
  document.write( '                 <input type=checkbox name="list_id" ' );
  document.write( '                 value="2583" checked ' );
  document.write( '                 style="font-size:8pt;font-face:Arial,Helvetica;margin-top:0px;margin-bottom:0px;"> ' );
  document.write( '                       Signup to <b>Offers-For-You.com</b> for great Steals & Deals ' );
  document.write( ' ' );
  document.write( '                </font></td> ' );
  document.write( '              </tr>  ' );
  document.write( '               ' );
  document.write( '            </table> ' );
  document.write( '          </td> ' );
  document.write( '        </tr> ' );
  document.write( '      </table> ' );
  document.write( '    </td> ' );
  document.write( '  </tr> ' );
  document.write( '</form> ' );
  document.write( '</table> ' );
} else {
  document.write( '<iframe width="728" height="90" frameborder="0" border="0" framspacing="0" marginheight="0" marginiwdth="0" scrolling="no" vspace="0" hspace="0" src="http://www.focalex.com/code/embedded_form.mpl?type=iframe&lname=general&form_type=headline&color=red&aid=137222&gatherer_id=&target=_blank&default=">' );
  document.write( '<a href="http://www.focalex.com/subs.emp?aid=137222" target="_blank"><img src="http://img.focalex.com/images/affiliate/ban/fallback_general_728.gif" width="728" height="90" border="0"></a>' );
  document.write( '</iframe>' );
}
