function despamify(lnk) {
    var lnk;
    for (var i = 0; i < document.links.length; i++) {
        lnk = document.links[i];
        if ('mailto:' == lnk.href.substring(0,7)) {
            mungeAddr(lnk);
        }
    }
}

YAHOO.util.Event.onDOMReady(despamify);

function mungeAddr(lnk) {
    var addr = unescape(lnk.href.substring(7));
    addr = addr.replace(/ \(at\) /, '@', addr);
    addr = addr.replace(/ \[dot\] /, '.', addr);
    lnk.href = 'm'+'a'+'i'+'l'+'t'+'o'+':' + addr;
    lnk.innerHTML = lnk.innerHTML.replace(/ \(at\) /, '@', addr);
    lnk.innerHTML = lnk.innerHTML.replace(/ \[dot\] /, '.', addr);
}

// Window opener functions  v1.0.6
// http://www.dithered.com/javascript/window/index.html
// code by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)

var winReference = null;

// Open a window at a given position on the screen
function openPositionedWindow(url, name, width, height, x, y, status, scrollbars, moreProperties, openerName) {
    
    // ie 4.5 and 5.0 mac - windows are 2 pixels too short; if a statusbar is used, the window will be an additional 15 pixels short
    var agent = navigator.userAgent.toLowerCase();
    if (agent.indexOf("mac") != -1 && agent.indexOf("msie") != -1 && (agent.indexOf("msie 4") != -1 || agent.indexOf("msie 5.0") != -1) ) {
        height += (status) ? 17 : 2;
    }

    // Adjust width if scrollbars are used (pc places scrollbars inside the content area; mac outside) 
    width += (scrollbars != '' && scrollbars != null && agent.indexOf("mac") == -1) ? 16 : 0;

    var properties = 'width=' + width + ',height=' + height + ',screenX=' + x + ',screenY=' + y + ',left=' + x + ',top=' + y + ((status) ? ',status' : '') + ',scrollbars' + ((scrollbars) ? '' : '=no') + ((moreProperties) ? ',' + moreProperties : '');
    var reference = openWindow(url, name, properties, openerName);
    
    // resize window in ie if we can resize in ns; very messy
    // commented out because openPositionedWindow() doesn't set the resizable attribute
    // left in for reference
    /*if (resizable && agent.indexOf("msie") != -1) {
        if (agent.indexOf("mac") != -1) {
            height += (status) ? 15 : 2;
            if (parseFloat(navigator.appVersion) > 5) width -= 11;
        }
        else {
            height += (status) ? 49 : 31;
            width += 13;
        }
        setTimeout('if (reference != null && !reference.closed) reference.resizeTo(' + width + ',' + height + ');', 150);
    }*/

    return reference;
}

// Open a window at the center of the screen
function openCenteredWindow(url, name, width, height, status, scrollbars, moreProperties, openerName) {
    var x, y = 0;
    if (screen) {
      x = (screen.availWidth - width) / 2;
       y = (screen.availHeight - height) / 2;
   }
    if (!status) status = '';
    if (!openerName) openerName = '';
    var reference = openPositionedWindow(url, name, width, height, x, y, status, scrollbars, moreProperties, openerName);
    return reference;
}

// Core utility function that actually creates the window and gives focus to it
function openWindow(url, name, properties, openerName) {

    // ie4.x pc can't give focus to windows containing documents from a different domain
    // in this case, initially load a local interstisial page to allow focussing before loading final url
    var agent = navigator.userAgent.toLowerCase();
    if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) == 4 && agent.indexOf("msie 5") == -1 && agent.indexOf("msie5") == -1 && agent.indexOf("win") != -1 && url.indexOf('http://') == 0) {
        winReference = window.open('about:blank', name, properties);
        
        setTimeout('if (winReference && !winReference.closed) winReference.location.replace("' + url + '")', 300);
    }
    else {
        winReference = window.open(url, name, properties);
    }

    // ie doesn't like giving focus immediately (to new window in 4.5 on mac; to existing ones in 5 on pc)
    setTimeout('if (winReference && !winReference.closed) winReference.focus()', 200);
    
    if (openerName) self.name = openerName;
    return winReference;
}

// opens a new window containing an image. window is sized 
// so that the image is full bleed.
// @author David Weingart
function popImage(href, w, h) {
    var htmlText = 
    '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \
                    "http://www.w3.org/TR/html4/loose.dtd"> \
    <html> \
    <head> \
    <title>Image Preview<\/title> \
    <style type="text/css"> \
    body {margin:0;padding:0;background:white;} \
    img {display: block;} \
    <\/style> \
    <meta http-equiv="imagetoolbar" content="no"> \
    <script type="text/javascript"> \
    function closeOnEscape(evt) { if (evt.keyCode == 27) self.close(); }; \
    <\/script> \
    <\/head> \
    <body onclick="self.close()" onkeypress="closeOnEscape(event)"><img src="' + href + '" alt="" title="Click to close"><\/body><\/html>';
    if (typeof nuWin != 'undefined' && typeof nuWin.closed != 'undefined' && !nuWin.closed) nuWin.close();
    nuWin = openCenteredWindow('', '', w, h, 0, 0);
    nuWin.document.open();
    nuWin.document.write(htmlText);
    nuWin.document.close();
    
    return false;
}
