  <!--
  var TodaysDate = new Date();
  function WordToCapCase(wordx, FirstOne) {
    var wordy = "" + wordx;
    wordy = "" + wordy.toUpperCase();
    if (wordy == "NW" || wordy == "NE" || wordy == "SW" || wordy == "SE" || wordy == "US" || wordy == "USA" || wordy == "PO")
      return wordy; //leave compass directions, ect. as upper case
    var aChar = "" + wordy.substring(0, 1); //get it while it is still upper case
    if(FirstOne == 0)
      wordx = "" + wordx.toLowerCase();
    var fend = "" + wordx.substring(1);
    wordx = "" + aChar + fend;
    return wordx;
  }
  function PhraseToCapCase(phrasex, FirstOne) {
    var phrasey = "" +phrasex;
    var wordx = "";
    var aChar = " ";
    if (FirstOne == 0)
      phrasex = "" + phrasex.toLowerCase();
    var w1 = 0;
    var w2 = 0;
    for (var i = 0; i < phrasex.length; i++) { //parse into alpha words
      aChar = "" + phrasex.substring(i, i + 1);
      w1 = i;
      w2 = 0;
      wordx = "";
      while ((aChar >= "a" && aChar <= "z") || (aChar >= "A" && aChar <= "Z") || (aChar >= "0" && aChar <= "9")) { //build a new word
        wordx += aChar;
        i++;
        w2 = i; // set w2 at each letter and it will always point to the end of the word.
        if (i >= phrasex.length)
          aChar = " ";
        else
          aChar = "" + phrasex.substring(i, i + 1);
      }
      if (w2 > 0) {
        wordx = "" + WordToCapCase(wordx,FirstOne);
        phrasey = "" + phrasex.substring(0, w1) + wordx + phrasex.substring(w2);
        phrasex = "" + phrasey;
        i--; // because the for loop will increment i again
      }
    }
    return phrasex;
  }
  function NewPhone(ppn) {
    var pn = "";
    var newphone = "";
    var aChar = "";
    var i2=0;
    var i3=0;
    pn += ppn;
// get rid of leading 1s - must  be USA or Canada
    while (pn.substring(0, 1) == "1")  //strip off leading ones - US and Canada only
      pn = pn.substring(1);
// build a new phone number containing ###-###-####
    for (var i = 0; i < pn.length; i++) {
      aChar = "";
      aChar += pn.substring(i, i + 1);
      if ((aChar < "0" || aChar > "9") && i2 < 12)  
        continue;
      newphone += aChar;
      i2 += 1;
    }
      var AreaCodes = new Array();
      AreaCodes["201"] = "NJ ET";
      AreaCodes["202"] = "DC ET";
      AreaCodes["203"] = "CT ET";
      AreaCodes["204"] = "MB CT";
      AreaCodes["205"] = "AL CT";
      AreaCodes["206"] = "WA PT";
      AreaCodes["207"] = "ME ET";
      AreaCodes["208"] = "ID PM";
      AreaCodes["209"] = "CA PT";
      AreaCodes["210"] = "TX CT";
      AreaCodes["212"] = "NY ET";
      AreaCodes["213"] = "CA PT";
      AreaCodes["214"] = "TX CT";
      AreaCodes["215"] = "PA ET";
      AreaCodes["216"] = "OH ET";
      AreaCodes["217"] = "IL CT";
      AreaCodes["218"] = "MN CT";
      AreaCodes["219"] = "IN CE";
      AreaCodes["224"] = "IL CT";
      AreaCodes["225"] = "LA CT";
      AreaCodes["228"] = "MS CT";
      AreaCodes["229"] = "GA ET";
      AreaCodes["231"] = "MI ET";
      AreaCodes["234"] = "OH ET";
      AreaCodes["239"] = "FL ET";
      AreaCodes["240"] = "MD ET";
      AreaCodes["248"] = "MI ET";
      AreaCodes["250"] = "BC PM";
      AreaCodes["251"] = "AL CT";
      AreaCodes["252"] = "NC ET";
      AreaCodes["253"] = "WA PT";
      AreaCodes["254"] = "TX CT";
      AreaCodes["256"] = "AL CT";
      AreaCodes["260"] = "IN CE";
      AreaCodes["262"] = "WI CT";
      AreaCodes["267"] = "PA ET";
      AreaCodes["270"] = "KY CT";
      AreaCodes["276"] = "VA ET";
      AreaCodes["281"] = "TX CT";
      AreaCodes["289"] = "ON ET";
      AreaCodes["301"] = "MD ET";
      AreaCodes["302"] = "DE ET";
      AreaCodes["303"] = "CO MT";
      AreaCodes["304"] = "WV ET";
      AreaCodes["305"] = "FL ET";
      AreaCodes["306"] = "SK MC";
      AreaCodes["307"] = "WY MT";
      AreaCodes["308"] = "NE MC";
      AreaCodes["309"] = "IL CT";
      AreaCodes["310"] = "CA PT";
      AreaCodes["312"] = "IL CT";
      AreaCodes["313"] = "MI ET";
      AreaCodes["314"] = "MO CT";
      AreaCodes["315"] = "NY ET";
      AreaCodes["316"] = "KS CT";
      AreaCodes["317"] = "IN CE";
      AreaCodes["318"] = "LA CT";
      AreaCodes["319"] = "IA CT";
      AreaCodes["320"] = "MN CT";
      AreaCodes["321"] = "FL ET";
      AreaCodes["323"] = "CA PT";
      AreaCodes["330"] = "OH ET";
      AreaCodes["334"] = "AL CT";
      AreaCodes["336"] = "NC ET";
      AreaCodes["337"] = "LA CT";
      AreaCodes["339"] = "MA ET";
      AreaCodes["340"] = "US AT";
      AreaCodes["347"] = "NY ET";
      AreaCodes["351"] = "MA ET";
      AreaCodes["352"] = "FL ET";
      AreaCodes["360"] = "WA PT";
      AreaCodes["361"] = "TX CT";
      AreaCodes["386"] = "FL ET";
      AreaCodes["401"] = "RI ET";
      AreaCodes["402"] = "NE CT";
      AreaCodes["403"] = "AB MT";
      AreaCodes["404"] = "GA ET";
      AreaCodes["405"] = "OK CT";
      AreaCodes["406"] = "MT MT";
      AreaCodes["407"] = "FL ET";
      AreaCodes["408"] = "CA PT";
      AreaCodes["409"] = "TX CT";
      AreaCodes["410"] = "MD ET";
      AreaCodes["412"] = "PA ET";
      AreaCodes["413"] = "MA ET";
      AreaCodes["414"] = "WI CT";
      AreaCodes["415"] = "CA PT";
      AreaCodes["416"] = "ON ET";
      AreaCodes["417"] = "MO CT";
      AreaCodes["418"] = "QC ET";
      AreaCodes["419"] = "OH ET";
      AreaCodes["423"] = "TN CE";
      AreaCodes["425"] = "WA PT";
      AreaCodes["434"] = "VA ET";
      AreaCodes["435"] = "UT MT";
      AreaCodes["440"] = "OH ET";
      AreaCodes["443"] = "MD ET";
      AreaCodes["445"] = "PA ET";
      AreaCodes["450"] = "QC ET";
      AreaCodes["469"] = "TX CT";
      AreaCodes["470"] = "GA ET";
      AreaCodes["475"] = "CT ET";
      AreaCodes["478"] = "GA ET";
      AreaCodes["479"] = "AR CT";
      AreaCodes["480"] = "AZ PM";
      AreaCodes["484"] = "PA ET";
      AreaCodes["501"] = "AR CT";
      AreaCodes["502"] = "KY ET";
      AreaCodes["503"] = "OR PT";
      AreaCodes["504"] = "LA CT";
      AreaCodes["505"] = "NM MT";
      AreaCodes["506"] = "NB AT";
      AreaCodes["507"] = "MN CT";
      AreaCodes["508"] = "MA ET";
      AreaCodes["509"] = "WA PT";
      AreaCodes["510"] = "CA PT";
      AreaCodes["512"] = "TX CT";
      AreaCodes["513"] = "OH ET";
      AreaCodes["514"] = "QC ET";
      AreaCodes["515"] = "IA CT";
      AreaCodes["516"] = "NY ET";
      AreaCodes["517"] = "MI ET";
      AreaCodes["518"] = "NY ET";
      AreaCodes["519"] = "ON ET";
      AreaCodes["520"] = "AZ PM";
      AreaCodes["530"] = "CA PT";
      AreaCodes["540"] = "VA ET";
      AreaCodes["541"] = "OR PM";
      AreaCodes["551"] = "NJ ET";
      AreaCodes["559"] = "CA PT";
      AreaCodes["561"] = "FL ET";
      AreaCodes["562"] = "CA PT";
      AreaCodes["563"] = "IA CT";
      AreaCodes["567"] = "OH ET";
      AreaCodes["570"] = "PA ET";
      AreaCodes["571"] = "VA ET";
      AreaCodes["573"] = "MO CT";
      AreaCodes["574"] = "IN CE";
      AreaCodes["580"] = "OK CT";
      AreaCodes["585"] = "NY ET";
      AreaCodes["586"] = "MI ET";
      AreaCodes["601"] = "MS CT";
      AreaCodes["602"] = "AZ PM";
      AreaCodes["603"] = "NH ET";
      AreaCodes["604"] = "BC PT";
      AreaCodes["605"] = "SD MC";
      AreaCodes["606"] = "KY ET";
      AreaCodes["607"] = "NY ET";
      AreaCodes["608"] = "WI CT";
      AreaCodes["609"] = "NJ ET";
      AreaCodes["610"] = "PA ET";
      AreaCodes["612"] = "MN CT";
      AreaCodes["613"] = "ON ET";
      AreaCodes["614"] = "OH ET";
      AreaCodes["615"] = "TN CT";
      AreaCodes["616"] = "MI ET";
      AreaCodes["617"] = "MA ET";
      AreaCodes["618"] = "IL CT";
      AreaCodes["619"] = "CA PT";
      AreaCodes["620"] = "KS MC";
      AreaCodes["623"] = "AZ PM";
      AreaCodes["626"] = "CA PT";
      AreaCodes["630"] = "IL CT";
      AreaCodes["631"] = "NY ET";
      AreaCodes["636"] = "MO CT";
      AreaCodes["641"] = "IA CT";
      AreaCodes["646"] = "NY ET";
      AreaCodes["647"] = "ON ET";
      AreaCodes["650"] = "CA PT";
      AreaCodes["651"] = "MN CT";
      AreaCodes["660"] = "MO CT";
      AreaCodes["661"] = "CA PT";
      AreaCodes["662"] = "MS CT";
      AreaCodes["678"] = "GA ET";
      AreaCodes["682"] = "TX CT";
      AreaCodes["701"] = "ND MC";
      AreaCodes["702"] = "NV PT";
      AreaCodes["703"] = "VA ET";
      AreaCodes["704"] = "NC ET";
      AreaCodes["705"] = "ON ET";
      AreaCodes["706"] = "GA ET";
      AreaCodes["707"] = "CA PT";
      AreaCodes["708"] = "IL CT";
      AreaCodes["709"] = "NF NT";
      AreaCodes["710"] = "US GT";
      AreaCodes["712"] = "IA CT";
      AreaCodes["713"] = "TX CT";
      AreaCodes["714"] = "CA PT";
      AreaCodes["715"] = "WI CT";
      AreaCodes["716"] = "NY ET";
      AreaCodes["717"] = "PA ET";
      AreaCodes["718"] = "NY ET";
      AreaCodes["719"] = "CO MT";
      AreaCodes["720"] = "CO MT";
      AreaCodes["724"] = "PA ET";
      AreaCodes["727"] = "FL ET";
      AreaCodes["731"] = "TN CT";
      AreaCodes["732"] = "NJ ET";
      AreaCodes["734"] = "MI ET";
      AreaCodes["740"] = "OH ET";
      AreaCodes["754"] = "FL ET";
      AreaCodes["757"] = "VA ET";
      AreaCodes["758"] = "ST AT";
      AreaCodes["760"] = "CA PT";
      AreaCodes["763"] = "MN CT";
      AreaCodes["765"] = "IN CE";
      AreaCodes["770"] = "GA ET";
      AreaCodes["773"] = "IL CT";
      AreaCodes["774"] = "MA ET";
      AreaCodes["775"] = "NV PT";
      AreaCodes["778"] = "BC PT";
      AreaCodes["780"] = "AB MT";
      AreaCodes["781"] = "MA ET";
      AreaCodes["784"] = "ST AT";
      AreaCodes["785"] = "KS MC";
      AreaCodes["786"] = "FL ET";
      AreaCodes["800"] = "NONE";
      AreaCodes["801"] = "UT MT";
      AreaCodes["802"] = "VT ET";
      AreaCodes["803"] = "SC ET";
      AreaCodes["804"] = "VA ET";
      AreaCodes["805"] = "CA PT";
      AreaCodes["806"] = "TX CT";
      AreaCodes["807"] = "ON CE";
      AreaCodes["808"] = "HI HT";
      AreaCodes["810"] = "MI ET";
      AreaCodes["812"] = "IN CE";
      AreaCodes["813"] = "FL ET";
      AreaCodes["814"] = "PA ET";
      AreaCodes["815"] = "IL CT";
      AreaCodes["816"] = "MO CT";
      AreaCodes["817"] = "TX CT";
      AreaCodes["818"] = "CA PT";
      AreaCodes["819"] = "QC ET";
      AreaCodes["822"] = "NONE";
      AreaCodes["828"] = "NC ET";
      AreaCodes["830"] = "TX CT";
      AreaCodes["831"] = "CA PT";
      AreaCodes["832"] = "TX CT";
      AreaCodes["833"] = "NONE";
      AreaCodes["835"] = "PA ET";
      AreaCodes["843"] = "SC ET";
      AreaCodes["844"] = "NONE";
      AreaCodes["845"] = "NY ET";
      AreaCodes["847"] = "IL CT";
      AreaCodes["848"] = "NJ ET";
      AreaCodes["850"] = "FL CE";
      AreaCodes["855"] = "NONE";
      AreaCodes["856"] = "NJ ET";
      AreaCodes["857"] = "MA ET";
      AreaCodes["858"] = "CA PT";
      AreaCodes["859"] = "KY ET";
      AreaCodes["860"] = "CT ET";
      AreaCodes["862"] = "NJ ET";
      AreaCodes["863"] = "FL ET";
      AreaCodes["864"] = "SC ET";
      AreaCodes["865"] = "TN ET";
      AreaCodes["866"] = "NONE";
      AreaCodes["867"] = "YK PA";
      AreaCodes["869"] = "ST AT";
      AreaCodes["870"] = "AR CT";
      AreaCodes["877"] = "NONE";
      AreaCodes["878"] = "PA ET";
      AreaCodes["888"] = "NONE";
      AreaCodes["901"] = "TN CT";
      AreaCodes["902"] = "NS AT";
      AreaCodes["903"] = "TX CT";
      AreaCodes["904"] = "FL ET";
      AreaCodes["905"] = "ON ET";
      AreaCodes["906"] = "MI CE";
      AreaCodes["907"] = "AK AA";
      AreaCodes["908"] = "NJ ET";
      AreaCodes["909"] = "CA PT";
      AreaCodes["910"] = "NC ET";
      AreaCodes["912"] = "GA ET";
      AreaCodes["913"] = "KS CT";
      AreaCodes["914"] = "NY ET";
      AreaCodes["915"] = "TX MC";
      AreaCodes["916"] = "CA PT";
      AreaCodes["917"] = "NY ET";
      AreaCodes["918"] = "OK CT";
      AreaCodes["919"] = "NC ET";
      AreaCodes["920"] = "WI CT";
      AreaCodes["925"] = "CA PT";
      AreaCodes["928"] = "AZ PM";
      AreaCodes["931"] = "TN CT";
      AreaCodes["936"] = "TX CT";
      AreaCodes["937"] = "OH ET";
      AreaCodes["940"] = "TX CT";
      AreaCodes["941"] = "FL ET";
      AreaCodes["949"] = "CA PT";
      AreaCodes["952"] = "MN CT";
      AreaCodes["954"] = "FL ET";
      AreaCodes["956"] = "TX CT";
      AreaCodes["959"] = "CT ET";
      AreaCodes["970"] = "CO MT";
      AreaCodes["971"] = "OR PT";
      AreaCodes["972"] = "TX CT";
      AreaCodes["973"] = "NJ ET";
      AreaCodes["978"] = "MA ET";
      AreaCodes["979"] = "TX CT";
      AreaCodes["980"] = "NC ET";
      AreaCodes["985"] = "LA CT";
      AreaCodes["989"] = "MI ET";
      var ac = newphone.substring(0,3);
      var st = "";
      var tz = "";
      var statetz = "";
      if (!AreaCodes[ac] || AreaCodes[ac] == 'NONE') {
        st = "NONE";
        tz = "NONE";
      } else {
        statetz = AreaCodes[ac];
        st  = statetz.substring(0,2);
        tz = statetz.substring(3);
      }
      var States = new Array();
      States["AK"] = "AK";
      States["AL"] = "AL";
      States["AR"] = "AR";
      States["AZ"] = "AZ";
      States["CA"] = "CA";
      States["CO"] = "CO";
      States["CT"] = "CT";
      States["DE"] = "DE";
      States["DC"] = "DC";
      States["FL"] = "FL";
      States["GA"] = "GA";
      States["HI"] = "HI";
      States["ID"] = "ID";
      States["IA"] = "IA";
      States["IL"] = "IL";
      States["IN"] = "IN";
      States["KS"] = "KS";
      States["KY"] = "KY";
      States["LA"] = "LA";
      States["ME"] = "ME";
      States["MD"] = "MD";
      States["MA"] = "MA";
      States["MI"] = "MI";
      States["MN"] = "MN";
      States["MS"] = "MS";
      States["MO"] = "MO";
      States["MT"] = "MT";
      States["NE"] = "NE";
      States["NV"] = "NV";
      States["NJ"] = "NJ";
      States["NJ"] = "NJ";
      States["NM"] = "NM";
      States["NY"] = "NY";
      States["NC"] = "NC";
      States["ND"] = "ND";
      States["OH"] = "OH";
      States["OK"] = "OK";
      States["OR"] = "OR";
      States["PA"] = "PA";
      States["RI"] = "RI";
      States["SC"] = "SC";
      States["SD"] = "SD";
      States["TN"] = "TN";
      States["TX"] = "TX";
      States["UT"] = "UT";
      States["VT"] = "VT";
      States["VA"] = "VA";
      States["WA"] = "WA";
      States["WI"] = "WI";
      States["WV"] = "WV";
      States["WY"] = "WY";
      States["AB"] = "AB";
      States["BC"] = "BC";
      States["MB"] = "MB";
      States["ON"] = "ON";
      States["NONE"] = "NONE";
      var st2 = "";
      if (!States[st])
        st2 = st;
      else
        st2 = States[st];
      document.Oform.TimeZone.value=tz;
      document.Oform.State.value=st2;
// return the new or original number as the case may be
    return newphone;
  }
  function EmptyMsg(fldx) {
    alert("You must enter " + fldx + ".\n\nIf you wish to send us an Email\nwithout completing this form\nplease click on Email on the left navigation bar..");
    return;
  }
  function ValidateFields() {
    if (document.Oform.FirstName.value <= "     ") {
      EmptyMsg("your FIRST NAME"); document.Oform.FirstName.focus(); return; }
    if (document.Oform.LastName.value <= "     ") {
      EmptyMsg("your LAST NAME"); document.Oform.LastName.focus(); return; }
    //if (document.Oform.Address.value <= "     ") {
      //EmptyMsg("your SHIPPING ADDRESS where we will ship your paper if you later order our software"); document.Oform.Address.focus(); return; }
    //if (document.Oform.City.value <= "     ") {
      //EmptyMsg("your CITY"); document.Oform.City.focus(); return; }
    //if (document.Oform.State.value <= "  ") {
      //EmptyMsg("your STATE or PROVINCE"); document.Oform.State.focus(); return; }
    //if (document.Oform.Zip.value <= "     ") {
      //EmptyMsg("your ZIP or POSTAL CODE"); document.Oform.Zip.focus(); return; }
    if (document.Oform.Email.value <= "     ") {
      EmptyMsg("your E-MAIL ADDRESS"); document.Oform.Email.focus(); return; }
    if (document.Oform.Phone.value <= "     ") {
      EmptyMsg("your USA or Canadian Area Code (otherwise enter your country name)"); document.Oform.Phone.focus(); return; }
    document.Oform.submit(this.form);
    return;
  }
  function NewEmail(em) {
    var echar = "";
    var ia = 0;
    var ip = 0;
    var ie = em.length;
    for (var i = 0; i < ie; i++) {
      echar = "";
      echar += em.substring(i, i + 1);
      if (echar == "@") {
        if (ia > 0)
          ia = 999; // allow only one @
        else
          ia = i + 1; }
      if (echar == ".") // find the last period only
        ip = i + 1;
    }
    if (ia < 2 || ia > ie - 4 || ip < ia + 2 || ip > ie - 2) { //@ must be after at least 1 char with at least 1 char between @ and . and with at least 2 chars after the .
      EmptyMsg("a valid Email address");
      return ""; }
    else
      return em;
  }
  function ParseEmail() {
    document.Oform.Email.value = NewEmail(document.Oform.Email.value); return; }
  function ParseOphone() {
    document.Oform.Phone.value = NewPhone(document.Oform.Phone.value); return; }
  // -->
