// open external links in a new window
	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 startList() {
		if (document.all&&document.getElementById) {
			navRoot = document.getElementById("navPrimaryUL");
			for (i=0; i<navRoot.childNodes.length; i++) {
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					node.onmouseover=function() {
						this.className+=" over";
					}
					node.onmouseout=function() {
						this.className=this.className.replace(" over", "");
					}
				}
			}
		}
	}

function setAllHeights() {
    normalizeHeights(["ad1", "ad2", "ad3"]);
    normalizeHeights(["ic1","ic2"]);
    normalizeHeights(["c1","c2","c3"]);
}

function fixForAdHeight() {
	var images = $$('#premiumAds img')
	if (images && images.length > 0) {
  	for (var i = 0; i < images.length; i++) {
  		images[i].observe('load', function(){
  			setTimeout(function(){
  				normalizeHeights(["ad1", "ad2", "ad3"]);
  				var newHeight = $('content').getHeight() + $('masthead').getHeight();
  				$('c1').style.height = newHeight + "px";
  				setAllHeights();
  			}, 250);
  		});
  	}
  }
	else {
    normalizeHeights(["ad1", "ad2", "ad3"]);
    var newHeight = $('content').getHeight() + $('masthead').getHeight();
    $('c1').style.height = newHeight + "px";
    setAllHeights();
	}
}

function normalizeHeights(elements) {
    if (elements && !($(elements.first()))) {
        return;
    }

    var tallest = 0;
    
    for (var i = 0; i < elements.length; i++) {
        var element = $(elements[i]);
        
        if (element && (element.getHeight() > tallest)) {
            tallest = element.getHeight();
        }
    }
    
    for (var i = 0; i < elements.length; i++) {
        var element = $(elements[i]);

        if (element) {
            // This only works if padding is set in px.
            totalPadding = parseInt(element.getStyle("paddingTop")) + parseInt(element.getStyle("paddingBottom"));
            
            if (!isNaN(parseInt(element.getStyle("borderTopWidth")))) {
                totalPadding = totalPadding + parseInt(element.getStyle("borderTopWidth"));
            }
            
            if (!isNaN(parseInt(element.getStyle("borderBottomWidth")))) {
                totalPadding = totalPadding + parseInt(element.getStyle("borderBottomWidth"));
            }
            
            element.setStyle({
               height: (tallest - parseInt(totalPadding)) + "px"
            });
        }
    }
}

Event.observe(window, 'load', function() {
	setAllHeights();

    Event.observe(window, 'resize', function() {
		setAllHeights();
	});

	externalLinks();
});

