﻿/* Function to heandle mailto links ripping out unusable 
chars and substituting pond and euro chars,

  @to: either full href or email address or 

*/
function mailto(to, subject, body)
{
  var fixup = function(s)
  {
    var r = '', d = [];
    for (var i = 0; i < s.length; ++i)
    {
      var v = s.charCodeAt(i);
      if (v > 127)
      {
        if (v == 0xA3) r += "%A3";
        else if (v == 0x20AC) r += "%80";
        continue;
      }
      r += (String.fromCharCode(v));
    }

    return r;
  };
  
  var m_subject = (/[\?&]subject=([^&]*)(&|$)/gi).exec( to );
  subject = subject || (m_subject ? m_subject[1] : '');
  
  //alert(subject + "\n" + fixup(subject));  

  var m_body = (/[\?&]body=([^&]*)(&|$)/gi).exec(to);
  body = body || (m_body ? m_body[1] : '');
 
  var m_to = (/^(mailto:)?([^\?]*)(\?|$)/gi).exec(to);
  to = m_to ? m_to[2] : ( to || '' );

  var link = "mailto:" + fixup(to);
  if ( subject )
  {
    link += "?subject=" + fixup(subject);
    if (body) link += "&body=" + fixup(body);
  }
  else if (body) link += "?body=" + fixup(body);

  document.location.href = link;
  return false;
}