<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 info@microsoft.com</td><td> - </td><td>link name and email address are both info@microsoft.com</td></tr>
<tr><td>jsenc /mailto info@microsoft.com Microsoft Information</td><td> - </td><td>link name is Microsoft Information and email address is info@microsoft.com</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
setSearchWindowText(r, true);
}
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);
}
setSearchWindowText(ret_value, true);
}
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;