// nicetitle stolen shamelessly (and modified slightly) // from the excellent site http://www.codepoetry.netaddEvent(window, "load", makeNiceTitles);var XHTMLNS = "http://www.w3.org/1999/xhtml";var CURRENT_NICE_TITLE;var browser = new Browser();function makeNiceTitles() {    if (!document.createElement || !document.getElementsByTagName) return;    // add namespace methods to HTML DOM; this makes the script work in both    // HTML and XML contexts.    if(!document.createElementNS)    {        document.createElementNS = function(ns,elt) {            return document.createElement(elt);        }    }    if( !document.links )    {        document.links = document.getElementsByTagName("a");    }    for (var ti=0;ti<document.links.length;ti++) {        var lnk = document.links[ti];        if (lnk.title) {            lnk.setAttribute("nicetitle",lnk.title);            lnk.removeAttribute("title");            addEvent(lnk,"mouseover",showNiceTitle);            addEvent(lnk,"mouseout",hideNiceTitle);            addEvent(lnk,"focus",showNiceTitle);            addEvent(lnk,"blur",hideNiceTitle);        }    }    var acrtags = document.getElementsByTagName("acronym");    if (acrtags) {        for (var ti=0;ti<acrtags.length;ti++) {            var acrtag = acrtags[ti];        if (acrtag.title) {            acrtag.setAttribute("nicetitle", acrtag.title);            acrtag.removeAttribute("title");            addEvent(acrtag,"mouseover",showNiceTitle);            addEvent(acrtag,"mouseout",hideNiceTitle);            addEvent(acrtag,"focus",showNiceTitle);            addEvent(acrtag,"blur",hideNiceTitle);        }        }    }    var instags = document.getElementsByTagName("ins");    if (instags) {    for (var ti=0;ti<instags.length;ti++) {        var instag = instags[ti];        if (instag.dateTime) {            var strDate = instag.dateTime;            var dtIns = new Date(strDate.substring(0,4),parseInt(strDate.substring(4,6)-1),strDate.substring(6,8),strDate.substring(9,11),strDate.substring(11,13),strDate.substring(13,15));            instag.setAttribute("nicetitle","Added on "+dtIns.toString());            addEvent(instag,"mouseover",showNiceTitle);            addEvent(instag,"mouseout",hideNiceTitle);            addEvent(instag,"focus",showNiceTitle);            addEvent(instag,"blur",hideNiceTitle);        }    }    }}function findPosition( oLink ) {  if( oLink.offsetParent ) {    for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) {      posX += oLink.offsetLeft;      posY += oLink.offsetTop;    }    return [ posX, posY ];  } else {    return [ oLink.x, oLink.y ];  }}function showNiceTitle(e) {    if (CURRENT_NICE_TITLE) hideNiceTitle(CURRENT_NICE_TITLE);    if (!document.getElementsByTagName) return;    if (window.event && window.event.srcElement) {        lnk = window.event.srcElement    } else if (e && e.target) {        lnk = e.target    }    if (!lnk) return;    if (lnk.nodeType == 3) {        // lnk is a textnode -- ascend parents until we hit a link        lnk = getParent(lnk,"A");    }    if (!lnk) return;    nicetitle = lnk.getAttribute("nicetitle");        var d = document.createElementNS(XHTMLNS,"div");    d.className = "nicetitle";    tnt = document.createTextNode(nicetitle);    pat = document.createElementNS(XHTMLNS,"p");    pat.className = "titletext";    pat.appendChild(tnt);    d.appendChild(pat);    /* commented out because I don't want the url to show. Craig.    if (lnk.href) {        tnd = document.createTextNode(lnk.href);        pad = document.createElementNS(XHTMLNS,"p");        pad.className = "destination";        pad.appendChild(tnd);        d.appendChild(pad);    }    */        STD_WIDTH = 300;    if (lnk.href) {        h = lnk.href.length;    } else { h = nicetitle.length; }    if (nicetitle.length) {      t = nicetitle.length;    }    h_pixels = h*6; t_pixels = t*10;        if (h_pixels > STD_WIDTH) {        w = h_pixels;    } else if ((STD_WIDTH>t_pixels) && (t_pixels>h_pixels)) {        w = t_pixels;    } else if ((STD_WIDTH>t_pixels) && (h_pixels>t_pixels)) {        w = h_pixels;    } else {        w = STD_WIDTH;    }            //d.style.width = w + 'px';        /*    mx = lnk.offsetLeft;    my = lnk.offsetTop;    */    mpos = findPosition(lnk);    mx = mpos[0];    my = mpos[1];    //xy = getMousePosition(e);    //mx = xy[0]; my = xy[1];        d.style.left = (mx+5) + 'px';    d.style.top = (my+25) + 'px';    if (document.body && document.body.offsetWidth && ((mx+w) > document.body.offsetWidth)) {        d.style.left = (document.body.offsetWidth - w - 20) + "px";    }        document.getElementsByTagName("body")[0].appendChild(d);        CURRENT_NICE_TITLE = d;}function hideNiceTitle(e) {    if (!document.getElementsByTagName) return;    if (CURRENT_NICE_TITLE) {        document.getElementsByTagName("body")[0].removeChild(CURRENT_NICE_TITLE);        CURRENT_NICE_TITLE = null;    }}// Add an eventListener to browsers that can do it somehow.// Originally by the amazing Scott Andrew.function addEvent(obj, evType, fn){  if (obj.addEventListener){    obj.addEventListener(evType, fn, true);    return true;  } else if (obj.attachEvent){	var r = obj.attachEvent("on"+evType, fn);    return r;  } else {	return false;  }}function getParent(el, pTagName) {	if (el == null) return null;	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase		return el;	else		return getParent(el.parentNode, pTagName);}function getMousePosition(event) {  if (browser.isIE) {    x = window.event.clientX + document.documentElement.scrollLeft      + document.body.scrollLeft;    y = window.event.clientY + document.documentElement.scrollTop      + document.body.scrollTop;  }  if (browser.isNS) {    x = event.clientX + window.scrollX;    y = event.clientY + window.scrollY;  }  return [x,y];}// Determine browser and version.function Browser() {// blah, browser detect, but mouse-position stuff doesn't work any other way  var ua, s, i;  this.isIE    = false;  this.isNS    = false;  this.version = null;  ua = navigator.userAgent;  s = "MSIE";  if ((i = ua.indexOf(s)) >= 0) {    this.isIE = true;    this.version = parseFloat(ua.substr(i + s.length));    return;  }  s = "Netscape6/";  if ((i = ua.indexOf(s)) >= 0) {    this.isNS = true;    this.version = parseFloat(ua.substr(i + s.length));    return;  }  // Treat any other "Gecko" browser as NS 6.1.  s = "Gecko";  if ((i = ua.indexOf(s)) >= 0) {    this.isNS = true;    this.version = 6.1;    return;  }}
