View the DQSD CVS repository here:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/
Update of /cvsroot/dqsd/dqsd/searches
In directory sc8-pr-cvs1:/tmp/cvs-serv13244/searches
Added Files:
jsenc.xml
Log Message:
added jsenc to url encrypt/decrypt strings and generate encoded mailto strings to hide
from email harvesters
--- NEW FILE: jsenc.xml ---
<search function="jsenc">
<name>Javascript String URL encoder/decoder</name>
<description>
Converts to/from url encoded strings<br/>
<div class="helpboxDescLabels">Switches:</div>
<table class="helpboxDescTable">
<tr><td>/all</td><td> - </td><td>encode all characters</td></tr>
<tr><td>/mailto</td><td> - </td><td>generates a javascript encoded
mailto string that can be pasted into your webpage to hide it from email address
harvesters</td></tr>
</table>
<div class="helpboxDescLabels">Examples:</div>
<table class="helpboxDescTable">
<tr><td>jsenc %78%20%79%20%7A</td><td> - </td><td>Returns x y
z</td></tr>
<tr><td>jsenc x%20y%20z</td><td> - </td><td>Returns x y z</td></tr>
<tr><td>jsenc x y z</td><td> - </td><td>Returns x%20y%20z</td></tr>
<tr><td>jsenc /all x y z</td><td> - </td><td>Returns
%78%20%79%20%7A</td></tr>
<tr><td>jsenc /mailto [EMAIL PROTECTED]</td><td> - </td><td>link name and
email address are both [EMAIL PROTECTED]</td></tr>
<tr><td>jsenc /mailto [EMAIL PROTECTED] Microsoft Information</td><td> -
</td><td>link name is Microsoft Information and email address is
[EMAIL PROTECTED]</td></tr>
</table>
</description>
<category>Functions</category>
<contributor>Brent Beardsley</contributor>
<script><![CDATA[
function jsenc(q)
{
if (nullArgs("jsenc",q))
return false;
var all_chars = false;
var args = parseArgs(q, "all, mailto");
var str = args.q;
if (args.switches.length > 0) {
if (args.switches[0].name == 'all') {
all_chars = true;
} else if (args.switches[0].name == 'mailto') {
var r = jsenc_mailto(args.q);
if (r == false) {
// failed to encode mailto
nullArgs("jsenc", "?");
} else {
// successfully encoded mailto
document.deff.q.value = r;
}
return false;
} else {
nullArgs("jsenc", "?");
return false;
}
}
var ret_value = "";
if (str.match(/(%[0-9A-Fa-f]{2}|%u[0-9A-Fa-f]{4})+/)) {
// decode
ret_value = jsenc_decode(str);
} else {
// encode
ret_value = jsenc_encode(str, all_chars);
}
document.deff.q.value = ret_value;
}
function jsenc_mailto(q)
{
var r = q.match(/(\S+@\S+\.\S+)(\s+(.*))?/);
if (r == null)
return false;
var email_address = r[1];
var email_name = r[3];
if (email_name == '') {
email_name = email_address;
}
email_address = "mailto:"+email_address;
var should_swap_name = (email_name.match(/@.*?\./) != null) ? true : false;
var swapped_email_address = jsenc_email_swap(email_address);
var swapped_email_name = should_swap_name ? jsenc_email_swap(email_name) :
email_name;
var encstr = "";
encstr += "var s='"+swapped_email_address+"';var r='';for(var
i=0;i<s.length;i++,i++){r=r+s.substring(i+1,i+2)+s.substring(i,i+1)}";
if (should_swap_name) {
// encrypt the name too if it's an email address
encstr += "var u='"+swapped_email_name+"';var t='';for(var
j=0;j<u.length;j++,j++){t=t+u.substring(j+1,j+2)+u.substring(j,j+1)}";
encstr += ("document.write('<a href=\"'+r+'\">'+t+'</a>')");
} else {
// name isn't an email address - don't waste the space swapping it
encstr += ("document.write('<a href=\"'+r+'\">"+email_name+"</a>')");
}
var outstr = "";
outstr += "<SCRIPT language=\"javascript\">eval(unescape('";
outstr += jsenc_encode(encstr, true);
outstr += "'))</SCRIPT>";
return outstr;
}
function jsenc_email_swap(str)
{
var r = '';
for(var i=0;i<str.length;i++,i++)
{
r=r+str.substring(i+1,i+2)+str.substring(i,i+1);
}
return r;
}
function jsenc_encode(str, all_chars)
{
var myall_chars = (typeof all_chars != "undefined") ? all_chars : true;
var outstr = '';
if (myall_chars != true) {
// encode all spaces, punctuation, accented characters, and any other
non-ASCII characters
outstr = escape(str);
} else {
// encode all characters
for (var i=0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code > 255) {
// unicode
var enc_str = "%u"+code.toString(16).toUpperCase();
while (enc_str.length < 6)
enc_str = "0" + enc_str;
outstr += enc_str;
} else {
// ascii
outstr += "%";
outstr += ((code < 16) ? "0" : "") + code.toString(16).toUpperCase();
}
}
}
return outstr;
}
function jsenc_decode(str)
{
return unescape(str);
}
]]></script>
<copyright>
Copyright (c) 2002 David Bau
Distributed under the terms of the
GNU Public License, Version 2 (http://www.gnu.org/copyleft/gpl.txt)
</copyright>
</search>
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
DQSD-CVS mailing list
https://lists.sourceforge.net/lists/listinfo/dqsd-cvs
DQSD CVS repository:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/