﻿// reflow page for correct cross-browser footer positioning
function reflow() {
    var bodydiv = document.getElementById("body");
    
    if (bodydiv != null) {
        bodydiv.style.minHeight = "100%";
    }
}

// workaround for absence of target attributes in xhtml strict
function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
            anchor.target = "_blank";
    }
}

function toggle(id) {
    var item = document.getElementById(id);

    if (item.style.display == "block")
        item.style.display = "none";
    else
        item.style.display = "block";
}

// equalize heights of left/right floated divs
// add 20 (px) to compensate for bottom padding

/*
Derived from a script by Alejandro Gervasio.
Modified to work in FireFox by Stefan Mischook for Killersites.com

How it works: just apply the CSS class of 'column' to your pages' main columns.
*/
matchColumns = function() {
    var divs, contDivs, maxHeight, divHeight, d;

    // get all <div> elements in the document
    divs = document.getElementsByTagName('div');
    contDivs = [];

    // initialize maximum height value
    maxHeight = 0;

    // iterate over all <div> elements in the document
    for (var i = 0; i < divs.length; i++) {

        // make collection with <div> elements with class attribute 'container'
        if (/\bcolumn\b/.test(divs[i].className)) {
            d = divs[i];
            contDivs[contDivs.length] = d;

            // determine height for <div> element
            if (d.offsetHeight) {
                divHeight = d.offsetHeight;
            }

            else if (d.style.pixelHeight) {
                divHeight = d.style.pixelHeight;
            }

            // calculate maximum height
            maxHeight = Math.max(maxHeight, divHeight);
        }
    }

    // assign maximum height value to all of container <div> elements
    for (var i = 0; i < contDivs.length; i++) {
        contDivs[i].style.height = (maxHeight) + "px";
    }
}

// run all necessary functions on page load
function loadAll() {
    reflow();
    externalLinks();
    matchColumns();
}

window.onload = loadAll;