function str_shuffle(str)
{ str = str.split("");
  var str2 = new Array();
  while (str.length>0)
  { str2.push(str.splice(rand(0,str.length-1),1));
  }
  return str2.join("");
}

function rand(min,max)
{ return min+Math.floor(Math.random() * ((max-min)+1));
}

function hide_email(email)
{ var character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
  var key = str_shuffle(character_set); var cipher_text = ''; var id = 'e'+rand(1,999999999);
  for (var i=0;i<email.length;i+=1) cipher_text += key.charAt(character_set.indexOf(email.charAt(i)));
  script = 'var a="'+key+'";var b=a.split("").sort().join("");var c="'+cipher_text+'";var d="";';
  script+= 'for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));';
  script+= 'document.getElementById("'+id+'").innerHTML="<a href=\\"mailto:"+d+"\\">"+d+"</a>"';
  script = "eval(\""+script.replace(/([\\"'])/g, "\\$1")+"\")"; 
  script = '<script type="text/javascript">/*<![CDATA[*/'+script+'/*]]>*/</script>';
  return '<span id="'+id+'">[javascript protected email address]</span>'+script;
}

function generate()
{ var xhtml = hide_email(document.getElementById('email').value);
  document.getElementById('xhtml').value = xhtml;
  return false;
}
