// Copyright 2005 The Peoples Email Network
// Patent pending, All Rights Reserved

// COOKIE FUNCTIONS

//alert('js load');

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)) {
        document.sendemail.elements[j].value= strval; // 
        }
      else {
        strval = "0" + strval;  // failsafe against NaN
        ival = parseInt(strval, 10);
   //     alert(j+":"+strval+":"+ival);
        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) {

//return false;

//  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.elements[edit-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.elements['edit-email'].value = '';
//    alert('Not a U.S based address in email field.');
//    return false;
//    }  
  else {
    document.sendemail.elements['edit-email'].value = str2;
    return true;
    }
  }

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

function goodchar(str,field) {

//return false;

//alert(thisfield+":"+field);

if ((typeof field != 'undefined') && (field != '') && (field != null)) {
//  alert("field = "+ field);
  thisfield = field;
  }

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;
          }
       }
    document.sendemail.elements['edit-apt'].value = str;
    }

//alert("thisfield = " +thisfield);

//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) {

//return false;

//  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) {

//return false;

  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.elements['edit-phone'].value = cphone;
    return true;
    }
  }   

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

function valzip5() {

//return false;

  zip5 = document.sendemail.elements['edit-zip5'].value;
//alert(zip5);
  if (zip5 == "") {
    goodzip5 = 0;
    return;
    }
  outz = "";
  goodzip5 = 1;
  for (i=0;i<zip5.length;i++) {
    zchar = zip5.substr(i,1);
    if (zchar == " ") {
      alert("please, no spaces in zip code field, five digits only");
      goodzip5 = 0;
      return false;
      }
    else if (digits.indexOf(zchar) < 0) {
      alert("zip code must be numbers only");
      goodzip5 = 0;
      return false;
      }
    else {
      outz += zchar;
      }
    }
  if (outz.length < 5) {
    alert("no enough digits in zip code, 5 required");
    goodzip5 = 0;
    return false;
    }
  return true;
  }


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

var logf = 1;

// element 1 qnum
// element 2 lf
// element 3 email
// element 4 hon [0|1|2|3|4]
// element 5 first
// element 6 last
// element 7 addr
// element 8 apt
// element 9 city
// element 10 state
// element 11 zip5
// element 12 phone
// element 13 (undefined)
// element 14 vote
// element 15 message
// element 16 (undefined)
// element 17 friends
// element 18 0
// element 19 1
// element 20 0
// element 21 1
// element 22 (undefined)
// element 23 submit


function cf() {



//alert('test1');

//return false;

//if (document.sendemail.elements['edit-email'].value == "test@test.com") 
//{
//  alert(document.sendemail.elements[0].checked);
//  alert(document.sendemail.elements[1].checked);
//  alert(document.sendemail.elements['edit-vote'].value); 
//  }
//return false;

//  if ((document.sendemail.elements[0].checked == false) &&
//      (document.sendemail.elements[1].checked == false) &&
//      (typeof document.sendemail.elements['edit-vote'].value ==  'undefined'))
//{

//if (typeof document.sendemail.elements['edit-vote'].value == 
//'undefined') {

     
//      alert("you have not voted on question (step 1)");
//     return false;
//      }

//alert('test');
//return false;

   if (document.sendemail.elements['edit-email'].value == "") {
      alert("a valid email address is required.");
      return false;
      }

   if (!checkmail(document.sendemail.elements['edit-email'].value)) {
      return false;
      }

   if (document.sendemail.elements['edit-first'].value == "") {
      alert("your first name is required.");
      return false;
      }

   if (!goodchar(document.sendemail.elements['edit-first'].value,'first name')) {
      return false;
      }

   if (document.sendemail.elements['edit-last'].value == "") {
      alert("your last name is required.");
      return false;
      }

   if (!goodchar(document.sendemail.elements['edit-last'].value,'last name')) {
      return false;
      }

   if (document.sendemail.elements['edit-address'].value == "") {
      alert("your address is required.");
      return false;
      }

   if (!goodchar(document.sendemail.elements['edit-address'].value,'address')) 
{
      return false;
      }


   if (document.sendemail.elements['edit-address'].value.indexOf('@') > -1) {
     alert('you have entered an email in the "Address" field, which is for your street address.');
      return false;
     }

 //  if (!goodchar(document.sendemail.elements['edit-apt'].value,'apt')) {
 //     return false;
 //     }

   if (document.sendemail.elements['edit-city'].value == "") {
      alert("your city is required.");
      return false;
      }

   if (!goodchar(document.sendemail.elements['edit-city'].value,'city')) 
{
      return false;
      }

   if (document.sendemail.elements['edit-state'].selectedIndex == 0) {
      alert("your state is required.");
      return false;
      }


   if (document.sendemail.elements['edit-zip5'].value == "") {
      alert("your 5 digit zipcode is required.");
      return false;
      }

   if (!valzip5(document.sendemail.elements['edit-zip5'].value)) {
      return false;
      }

//  if (!goodphone(document.sendemail.elements['edit-phone'].value,'phone')) {
//      return false;
//     }

if (document.sendemail.elements['edit-phone'].value == "") {
  document.sendemail.elements['edit-phone'].value = "None";
  }

   if (document.sendemail.elements['edit-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 2)?  Even just a single word will do.");
      return false;
      }


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


//alert('cf3');

   if ((document.sendemail.elements['edit-friends'].value == "") ||
      (document.sendemail.elements['edit-friends'].value.indexOf("no emails") > -1) ||
      (document.sendemail.elements['edit-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.elements['edit-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.elements['edit-lf'].value = logf;
   logf = 0;

//document.sendemail.elements['op'].value = "Submitting Now";

var submitting = "Submitting to gateways (please wait)";

if (document.layers){ 
  document.layers.submit_status.document.open();
  document.layers.submit_status.document.write(submitting);
  document.sendemail.submit_status.document.close(); 
  }
if (document.all){
  submit_status.innerHTML=submitting; 
  } 
if (document.getElementById){
  document.getElementById("submit_status").innerHTML=submitting;
  	}

//return false;
return true;

   }


function rm() {
//   alert(document.sendemail.elements['edit-friends'].value);
   var r2 = document.sendemail.elements['edit-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.elements['edit-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;
  }

// -->
