var AllQuotes;

//Show/hide quotes on the homepage
function showQuote(name) {
    if (!AllQuotes)
        AllQuotes = document.getElementsByTagName('blockquote');
    for (var i = 0; i < AllQuotes.length; i++) {
        if (AllQuotes[i].id && AllQuotes[i].id.indexOf('quote') == 0) {
            AllQuotes[i].className = (AllQuotes[i].id == 'quote' + name ? 'show' : 'hide');
        }
    }
}

//Used to highlite addresses on the contact page
function highlite() {
    if (document.location.hash.length > 1) {
        var ID = document.location.hash.substr(1);
        var EL = document.getElementById(ID);
        if (EL) {
            EL.className = EL.className + ' highlite';
        }
    }
}

//We don't use target=_blank, instead we assign a class of external and wire up a handler
//Ideally this should read a cookie to determine if the user wants to allow external windows
function wireExternal() {
    if (!document.getElementsByTagName) return;
    var links = document.getElementsByTagName('a');
    for (var i = 0; i < links.length; i++) {
        if (links[i].className && links[i].className.indexOf('external') >= 0) {
            links[i].target = '_blank';
        }
    }
}

//Open the map window
function openMap(obj) {
    var w = window.open(obj.href, '_blank', 'width=790,height=550,scrollbars=no,resize=yes', false);
    w.focus();
    return false;
}

//Called on window load
function loadFunctions() {
    highlite();
    wireExternal();
    makeAllLinksAbsolute();
}

function makeAllLinksAbsolute() {
    if (!document.getElementsByTagName) return;
    var Anchors = document.getElementsByTagName('a');
    if (!Anchors || Anchors.length == 0) return;
    for (var i = 0; i < Anchors.length; i++) {
        if (Anchors[i].className && Anchors[i].className.indexOf('noabs') >= 0) {

        } else {
            Anchors[i].href = relLinkToAbs(Anchors[i].href, document.location.href);
        }
    }
    
}
//http://www.phpied.com/relative-to-absolute-links-with-javascript/
function relLinkToAbs(link, host) {
    var lparts = link.split('/');
    if (/http:|https:|ftp:/.test(lparts[0])) {
        // already abs, return
        return link;
    }

    var i, hparts = host.split('/');
    if (hparts.length > 3) {
        hparts.pop(); // strip trailing thingie, either scriptname or blank 
    }

    if (lparts[0] === '') { // like "/here/dude.png"
        host = hparts[0] + '//' + hparts[2];
        hparts = host.split('/'); // re-split host parts from scheme and domain only
        delete lparts[0];
    }

    for (i = 0; i < lparts.length; i++) {
        if (lparts[i] === '..') {
            // remove the previous dir level, if exists
            if (typeof lparts[i - 1] !== 'undefined') {
                delete lparts[i - 1];
            } else if (hparts.length > 3) { // at least leave scheme and domain
                hparts.pop(); // stip one dir off the host for each /../
            }
            delete lparts[i];
        }
        if (lparts[i] === '.') {
            delete lparts[i];
        }
    }

    // remove deleted
    var newlinkparts = [];
    for (i = 0; i < lparts.length; i++) {
        if (typeof lparts[i] !== 'undefined') {
            newlinkparts[newlinkparts.length] = lparts[i];
        }
    }

    return hparts.join('/') + '/' + newlinkparts.join('/');
}



window.onload = loadFunctions;