Brent, That jsenc search/function simply is way cool. It will be in the next release, but if you want to grab it now and drop it in your searches directory, here it is:
http://tinyurl.com/3fnm or http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/dqsd/dqsd/searches/jse nc.xml Glenn ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, December 06, 2002 6:13 PM Subject: [DQSD-CVS] dqsd/searches jsenc.xml,NONE,1.1 > 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/ ------------------------------------------------------- This sf.net email is sponsored by: With Great Power, Comes Great Responsibility Learn to use your power at OSDN's High Performance Computing Channel http://hpc.devchannel.org/ _______________________________________________ DQSD-Users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dqsd-users http://sourceforge.net/mailarchive/forum.php?forum_id=8601