function processForm()
{
   standardRe = /([^a-z0-9\ \_\-\.\!\#\&\*\?])/ig;
   checkEmailAddress();
}





function checkEmailAddress()
{
   addy = window.document.ScramblerForm.EmailBox.value;
   addyre=/^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;



   if (addy.match(addyre))
   {
      //disect email
      eMail1 = addy.substring(0,addy.indexOf("@",0));
      eMail2 = addy.substring((addy.indexOf("@",0)+1),addy.length);
      eMail3 = addy.substring((addy.indexOf("@",0)+1),addy.lastIndexOf("."));

      //get domain and add five letters
      eDom = addy.substring((addy.lastIndexOf(".")+1),addy.length);
      if(     eDom == "com")  { eDomExt = "plete"; eDomScr = "-c-o-m-/"; }
      else if(eDom == "net")  { eDomExt = "works"; eDomScr = "-n-e-t-/"; }
      else if(eDom == "org")  { eDomExt = "anize"; eDomScr = "-o-r-g-/"; }
      else if(eDom == "edu")  { eDomExt = "cated"; eDomScr = "-e-d-u-/"; }
      else if(eDom == "gov")  { eDomExt = "ernor"; eDomScr = "-g-o-v-/"; }
      else if(eDom == "biz")  { eDomExt = "natum"; eDomScr = "-b-i-z-/"; }
      else if(eDom == "info") { eDomExt = "rmant"; eDomScr = "-i-n-f-o-/"; }
      else if(eDom == "ca")   { eDomExt = "nooks"; eDomScr = "-c-a-/"; }
      else if(eDom == "uk")   { eDomExt = "ulele"; eDomScr = "-u-k-/"; }
      else if(eDom == "au")   { eDomExt = "ditor"; eDomScr = "-a-u-/"; }
      else                    { eDomExt = "izzle"; eDomScr = "nada"; }

      eMail2Render = eMail2;
      eMail2Code = eMail2 + eDomExt;

      checkLinkText();
   }
   else
   {
      alert("Email address is not valid.");
      window.document.ScramblerForm.EmailBox.focus();
   }
}




function checkLinkText()
{
   if((window.document.ScramblerForm.LinkBox.value.length > 0)&&(window.document.ScramblerForm.LinkBox.value != " ")&&(window.document.ScramblerForm.LinkBox.value != "  "))
   {
      eLinkText = window.document.ScramblerForm.LinkBox.value;
      if(eLinkText.match(standardRe))
      {
         window.document.ScramblerForm.LinkBox.focus();
         alert("Illegal character in link text box.");
      }
      else
      {

         processSubject();
      }
   }
   else
   {
      alert("Please enter some link text.");
      window.document.ScramblerForm.LinkBox.focus();
   }
}






function processSubject()
{
   if((window.document.ScramblerForm.SubjectBox.value.length > 0)&&(window.document.ScramblerForm.LinkBox.value != " ")&&(window.document.ScramblerForm.LinkBox.value != "  "))
   {
      if(window.document.ScramblerForm.SubjectBox.value.match(standardRe))
      {
         window.document.ScramblerForm.SubjectBox.focus();
         alert("Illegal character in subject text box.");
      }
      else
      {
         eSubjectTextCode = window.document.ScramblerForm.SubjectBox.value;
         eSubjectTextRender = "?subject=" + escape(window.document.ScramblerForm.SubjectBox.value);
         processStatus();
      }
   }
   else
   {
      eSubjectTextCode = "";
      eSubjectTextRender = "";
      processStatus();
   }
}



function processStatus()
{
   userstatusmessage = window.document.ScramblerForm.StatusBox.value;

   if(userstatusmessage.length > 0)
   {
      if(userstatusmessage.match(standardRe))
      {
         window.document.ScramblerForm.StatusBox.focus();
         alert("Illegal character in status message box.");
      }
      else
      {
         userstatusmessage = window.document.ScramblerForm.StatusBox.value;
         eStatusMessageRender = " onMouseOver=\"top.status=\'" + userstatusmessage + "\'\;return true\;\" onMouseOut=\"top.status=\'\'\;return true\;\"";
         eStatusMessageCode = window.document.ScramblerForm.StatusBox.value;
         buildLink();
      }
   }
   else
   {
      eStatusMessageRender = "";
      eStatusMessageCode = "";
      buildLink();
   }

}


function buildLink()
{
   //noscript section
   if(eDomScr == "nada")
   {
      eMailTail = eMail2;
   }
   else
   {
      eMailTail = eMail3 + "/DÖT/" + eDomScr;
   }

   eMailTail = replace(eMailTail,".","/DÖT/");

   eMailUser = eMail1;
   eMailUser = replace(eMailUser,".","/DÖT/");

   eNoScript = "<nosc" + "ript>" + eLinkText + ": " + eMailUser + "/ÄT/" + eMailTail + "</nosc" + "ript>";
   eNoScriptRender = "<b>" + eLinkText + ": " + eMailUser + "/ÄT/" + eMailTail + "</b>";


   eWholeCodeRender = "<A HREF=\"mai" + "lto:" + eMailUser + "@" + eMail2Render + eSubjectTextRender + "\"" + eStatusMessageRender + ">" + eLinkText + "</A>";
   eWholeCodeCode = "<sc" + "ript language=\"JavaSc" + "ript\">unScramble(\"" + eMail1 + "\",\"" + eMail2Code + "\",\"" + eLinkText + "\",\"" + eSubjectTextCode + "\",\"" + eStatusMessageCode + "\")\;</sc" + "ript>" + eNoScript;
   window.document.ScramblerForm.CodeBox.value = eWholeCodeCode;
   renderFrame();
}



function renderFrame()
{
   top.renderframe.document.open();
   top.renderframe.document.writeln("<HTML>");
   top.renderframe.document.writeln("<HEAD><TITLE></TITLE></HEAD>");
   top.renderframe.document.writeln("<BODY text=\"#000000\" link=\"#0000FF\" vlink=\"#0000FF\" alink=\"#0000FF\">");
   top.renderframe.document.writeln("<font size=\"1\" face=\"verdana,arial\">This is what your email link will look like...<br>&nbsp\;<br></font>");
   top.renderframe.document.writeln(eWholeCodeRender);
   //top.renderframe.document.writeln("<HR><font size=\"1\" face=\"verdana,arial\">" + eNoScriptRender + "</font>");
   top.renderframe.document.writeln("</BODY>");
   top.renderframe.document.writeln("</HTML>");
   top.renderframe.document.close();

}




function replace(string,text,by) {
// Replaces text with by in string --THANKS IRT.ORG!--
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

