// COOKIE FUNCTIONS

//alert('test');

var today = new Date();
var expires = new Date(today.getTime() + (90 * 86400000));
var cookstr = '';

function loadvals() {
//  alert('loadvals');

  cookstr = Get_Cookie("us");
  if (cookstr != null) {
    cooklen = cookstr.length;
    }
  else {
    return;
    cooklen = 0;
    }

//  alert(cookstr);

  strval = '';
  j = 3;
  for (i=0;i<cooklen;i++) {
    thisc = cookstr.substr(i,1);
    if (thisc != "~") {
      strval = strval + thisc;
      }
    else {
      if ((j != 4) && (j != 10)) {
        return document.sendemail.elements[j].value= strval; // 
        }
      else {
        strval = "0" + strval;  // failsafe against NaN
        ival = parseInt(strval, 10);
   //     alert(j+":"+strval+":"+ival);
        return document.sendemail.elements[j].selectedIndex = ival;
        }
      j++;
      strval = '';
      }
    }
  }


function Set_Cookie(name,value,expires,path,domain,secure) {
  document.cookie = name + "=" +escape(value) +
    ( (expires) ? ";expires=" + expires.toGMTString() : "") +
    ( (path) ? ";path=" + path : "") + 
    ( (domain) ? ";domain=" + domain : "") +
    ( (secure) ? ";secure" : "");
  }

function Get_Cookie(name) {
  var start = document.cookie.indexOf(name+"=");
  var len = start+name.length+1;
  if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
  if (start == -1) return null;
  var end = document.cookie.indexOf(";",len);
  if (end == -1) end = document.cookie.length;
  return unescape(document.cookie.substring(len,end));
  }


// END COOKIE FUNCTIONS


var anyfriends=0;

var thisfield = "";

function checkmail(str) {

//  alert(str);
  str2 = str.toLowerCase();

char2 = str2.substr(str2.length-1,str2.length);
while (mChars.indexOf(char2) < 0) {
   str2 = str2.substr(0,str2.length-1);
   char2 = str2.substr(str2.length-1,str2.length);
   }

  str3 = str2.substr(str2.length-5);
  str3 = str3.substr(str3.indexOf(".")+1);
//  alert(str3);  
  if (!str2.match(/([a-z0-9._-]+@[a-z0-9._-]+\.[a-z0-9._-]+)/)) {
    //document.sendemail.email.value = '';
    alert('Not a valid email address in email field.');
    return false;
    }
  if (!str3.match(/com|biz|info|org|us|net|ws|edu|gov|mil|name|tv/)) {
    //document.sendemail.email.value = '';
//    alert('Not a U.S based address in email field.');
//    return false;
    }  
  else {
    document.sendemail.email.value = str2;
    return true;
    }
  }

var iChars = "|[]{}()`\\";
var jChars = "|[]{}`\\";
var pChars = "0123456789";
var mChars = "abcdefghijklmnopqrstuvwxyz01234567890_-.@";

function goodchar(str) {

if (thisfield == "apt") {
   instr = str;
   str = "";
   flen = instr.length;
   for (var i = 0; i < instr.length; i++) {
      thischar = instr.substr(i,1);
      if ((thischar != "#") && (thischar != "'")) { 
          str += thischar;
          }
       }
eval("document.sendemail." + thisfield + ".value = str");
    }


//alert(f);
  for (var i = 0; i < str.length; i++) {
//    alert(i + ":"+ str.charAt(i));
    if (iChars.indexOf(str.charAt(i)) != -1) {
      alert("Sorry, \"" + str.charAt(i) + "\" characters are not allowed in the " + thisfield + " field");
      return false;
      }
    }
  return true;
  }  

function goodchar2(str) {
//alert('goodchar');
  for (var i = 0; i < str.length; i++) {
    //alert(i + ":"+ str.charAt(i));
    if (jChars.indexOf(str.charAt(i)) != -1) {
      alert("Sorry, \"" + str.charAt(i) + "\" characters are not allowed in the " + thisfield + " field");
      return false;
      }
    }
  return true;
  }  

function goodphone(str,field) {
  cphone = '';
  pindx = 0;
  for (var i = 0; i < str.length; i++) {
    if (pChars.indexOf(str.charAt(i)) > -1) {
      cphone = cphone + str.charAt(i)
      pindx++;
      if ((pindx == 3) || (pindx == 6)) {
        cphone = cphone + "-";
        }
      }
    }
  if (cphone.length != 12) {
    phoneok = 0;
    alert("Did not find your 10 digit phone number with area code, " +
"required by some members of Congress");
    return false;
    }
  else {
    phoneok = 1;
    document.sendemail.phone.value = cphone;
    return true;
    }
  }   

var digits = "0123456789";
var goodzip5 = 0;

function valzip5() {
  zip5 = document.sendemail.zip5.value;
//alert(zip5);
  if (zip5 == "") {
    goodzip5 = 0;
    return;
    }
  goodzip5 = 1;
  for (i=0;i<5;i++) {
    zchar = zip5.substr(i,1);
    if ((zchar == "") || (zchar == " ")) {
      alert('not enough digits in zipcode, 5 required');
      goodzip5 = 0;
      return false;
      }
    else if (digits.indexOf(zchar) < 0) {
      alert('zip code must be numbers only');
      goodzip5 = 0;
      return false;
      }
    }
  return true;
  }


function notext() {
  if ((document.sendemail.friends.value.indexOf('no email') > -1) ||
    (document.sendemail.friends.value.indexOf('will extract') > -1) )
  {
  document.sendemail.friends.value='';
  }
}

var logf = 1;

function cf() {

//alert('cf1');

//   if ((document.sendemail.elements[0].checked == false) &&
//      (document.sendemail.elements[1].checked == false)) {
//      alert("you have not voted on first question (step 1)");
//      return false;
//      }

   if (document.sendemail.email.value == "") {
      alert("a valid email address is required.");
      return false;
      }

   if (!checkmail(document.sendemail.email.value)) {
      return false;
      }

   if (document.sendemail.first.value == "") {
      alert("your first name is required.");
      return false;
      }

   if (!goodchar(document.sendemail.first.value)) {
      return false;
      }

   if (document.sendemail.last.value == "") {
      alert("your last name is required.");
      return false;
      }

   if (!goodchar(document.sendemail.last.value)) {
      return false;
      }

   if (document.sendemail.address.value == "") {
      alert("your address is required.");
      return false;
      }

   if (!goodchar(document.sendemail.address.value)) {
      return false;
      }

   if (document.sendemail.city.value == "") {
      alert("your city is required.");
      return false;
      }

   if (!goodchar(document.sendemail.city.value)) {
      return false;
      }

   if (document.sendemail.state.selectedIndex == 0) {
      alert("your state is required.");
      return false;
      }


   if (document.sendemail.zip5.value == "") {
      alert("your 5 digit zipcode is required.");
      return false;
      }

   if (!valzip5(document.sendemail.zip5.value)) {
      return false;
      }

//  if (!goodphone(document.sendemail.phone.value,'phone')) {
//      return false;
//     }

if (document.sendemail.phone.value == "") {
  document.sendemail.phone.value = "None";
  }

   if (document.sendemail.message.value == "") {
      alert("Most members of congress would like to hear something " 
    + "personal from you.  Won't you say just a couple simple heartfelt words (step 3)?");
      return false;
      }


   if (document.sendemail.message.value.length > 5500) {
      alert("Limit of 5,000 characters for your message.  Please shorten.");
      return false;
      }


//alert('cf3');

   if ((document.sendemail.friends.value == "") ||
      (document.sendemail.friends.value.indexOf("no emails") > -1) ||
      (document.sendemail.friends.value.indexOf("will extract") > -1)) {

      if (anyfriends == 0) {

  var fp = "You haven't invited any friends to vote.  " +
"This is a CRITICAL part of mobilizing public opinion on this question " +
"(step 4).";
   //  alert(fp);
     anyfriends=1;
document.sendemail.friends.value = "None";
   //  return false;

        }

     }


// SET COOKIE

valstr = document.sendemail.email.value + "~" +
         document.sendemail.hon.selectedIndex + "~" +
         document.sendemail.first.value + "~" + 
         document.sendemail.last.value + "~" + 
         document.sendemail.addr.value + "~" + 
         document.sendemail.apt.value + "~" + 
         document.sendemail.city.value + "~" + 
         document.sendemail.state.selectedIndex + "~" +
         document.sendemail.zip5.value + "~" + 
         document.sendemail.phone.value + "~";

Set_Cookie("us", valstr, expires);

   document.sendemail.lf.value = logf;
   logf = 0;

document.sendemail.submit.value = "  Submitting Now  ";

return true;

   }


function rm() {
//   alert(document.sendemail.elements['friends'].value);
   var r2 = document.sendemail.friends.value.toLowerCase();
   r1 = r2.match(/([a-z0-9._-]+@[a-z0-9._-]+\.[a-z0-9._-]+)/g);
   var r3 = new Array();
   if (r1) {
     for (var i = 0; i < r1.length; i++) {
       rr = r1[i];
       r4 = rr.substr(rr.length-5);
       r4 = r4.substr(r4.indexOf(".")+1);
       if (r4.match(/com|biz|info|org|us|net|ws|edu|gov|mil|name|tv/)) {
         r3.push(rr);
         }
       }
     }
   if (r3.length > 0) {
     return r3;
     }
   else {
     return null;
     }
   }


function extr3(){
  r = rm();
  a=0;
  b=new Array();
  f="";
  if(r){
    for(i=0;i<r.length;i++) {
      c=0;
      for(j=i+1;j<r.length;j++) {
        d=r[i].toLowerCase();
        e=r[j].toLowerCase();
        if(d==e){
          c++;
          }
        }
      if(c==0){
        b[a]=r[i].toLowerCase();
        a++;
        }
      }
    for(k=0;k<b.length;k++) {
      f+=b[k]+"\n";
      }
    }
  else {
    f = "[no emails detected]";
    }
  document.sendemail.friends.value=f;
  }


function mymail2(str) {
  mailme = "mail" + "to:" + "dc" + "@" + "thepen#us";
  mi = mailme.indexOf("#");
  mailme = mailme.substr(0,mi) + "." + mailme.substr(mi+1) + "?Subject=" + str;
  return mailme;
  }

// -->
