
function cloakMail(strUsername, strDomain, strText) {
  if (strText == undefined) {
    document.write('<a href="mailto:' + strUsername + '@' + strDomain + '">' + strUsername + '@' + strDomain + '</a>');
  } else {
    document.write('<a href="mailto:' + strUsername + '@' + strDomain + '">' + strText + '</a>');
  }
}

function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
  var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
  var oCurrent;
  var oAttribute;
  for(var i=0; i<arrElements.length; i++){
    oCurrent = arrElements[i];
    oAttribute = oCurrent.getAttribute(strAttributeName);
    if(typeof oAttribute == "string" && oAttribute.length > 0){
      if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
        arrReturnElements.push(oCurrent);
      }
    }
  }
  return arrReturnElements;
}


function mailtoLinks() {
  if (!document.getElementById) return;
  var main = document.getElementById("container");
  if (!main.getElementsByTagName) return;
  var anchors = main.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href").match(/^mailto:/, "i")) {
        anchor.title = "Send email to " + anchor.innerHTML;
        anchor.innerHTML = anchor.innerHTML + 
            " <img src=\"image/mail-envelope-closed-micro-icon.png\" />";
    }
  }
}


function externalLinks() {
  if (!document.getElementById) return;
  var main = document.getElementById("container");
  if (!main.getElementsByTagName) return;
  var anchors = main.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    /* If a link begins with http:// or https:// *and* it doesn't already have
     * the external attribute value, then give it the external link treatment */

    if (anchor.getAttribute("href").match(/^https?:\/\//, "i")
        /* Because MSIE is stupid, we need this extra hack */
        && anchor.href.substr(0,15) != location.href.substr(0,15)) {
      anchor.target = "_blank";
      if (!anchor.getAttribute("rel") || 
          !anchor.getAttribute("rel").match(/external/, "i")) {
        anchor.rel = "external";
        anchor.innerHTML = anchor.innerHTML + 
            " <img src=\"image/external.png\" alt=\"external link\" />";
      }
    }
  }
}

function bookLinks() {
  var books = getElementsByAttribute(document, "span", "class", "isbn-10");
  for (var i=0; i<books.length; i++) {
    isbn = books[i].innerHTML

    google = "<a href=\"http://books.google.com/books?btnG=Search+Books" + 
        "&as_brr=0&q=isbn%3A" + isbn + 
        "\" target=\"_blank\">" + 
        "<img src=\"http://www.google.com/options/icons/booksearch.gif\" " + 
        "height=\"16\" style=\"vertical-align: bottom;\" " + 
        "alt=\"Google Books\" title=\"Search using Google Books\" /></a>"

    a9 = "<a href=\"http://www.a9.com/" + isbn + "\" target=\"_blank\">" + 
        "<img src=\"image/amazon-icon-16x16.png\" alt=\"A9.com OpenSearch\" " + 
        "style=\"vertical-align: bottom;\" " + 
        "title=\"Search using A9.com OpenSearch\" /></a>";

    books[i].innerHTML += ' ' + google
    books[i].innerHTML += ' ' + a9

  }
}

function onLoad() {
  externalLinks();
  mailtoLinks();
  bookLinks();
}

window.onload = onLoad;
