// these are (ruh-roh) globals. You could wrap in an
// immediately-Invoked Function Expression (IIFE) if you wanted to...
var currentTallest = 0, currentRowStart = 0, rowDivs = new Array();

function setConformingHeight(el, newHeight) {
	// set the height to something new, but remember the original height in case
	// things change
	el.data("originalHeight", (el.data("originalHeight") == undefined) ? (el
			.height()) : (el.data("originalHeight")));
	el.height(newHeight);
}

function getOriginalHeight(el) {
	// if the height has changed, send the originalHeight
	return (el.data("originalHeight") == undefined) ? (el.height()) : (el
			.data("originalHeight"));
}

function columnConform() {

	// find the tallest DIV in the row, and set the heights of all of the DIVs
	// to match it.
	$('.footer .top > div, div.block_geg > ul')
			.each(
					function() {

						// "caching"
						var $el = $(this);

						var topPosition = $el.position().top;

						if (currentRowStart != topPosition) {

							// we just came to a new row. Set all the heights on
							// the completed row
							for (currentDiv = 0; currentDiv < rowDivs.length; currentDiv++)
								setConformingHeight(rowDivs[currentDiv],
										currentTallest);

							// set the variables for the new row
							rowDivs.length = 0; // empty the array
							currentRowStart = topPosition;
							currentTallest = getOriginalHeight($el);
							rowDivs.push($el);

						} else {

							// another div on the current row. Add it to the
							// list and check if it's taller
							rowDivs.push($el);
							currentTallest = (currentTallest < getOriginalHeight($el)) ? (getOriginalHeight($el))
									: (currentTallest);

						}
						// do the last row
						for (currentDiv = 0; currentDiv < rowDivs.length; currentDiv++)
							setConformingHeight(rowDivs[currentDiv],
									currentTallest);

					});

}

$(window).resize(function() {
	columnConform();
});

// Dom Ready
// You might also want to wait until window.onload if images are the things that
// are unequalizing the blocks
$(function() {
	columnConform();
});

function writeFlash(p) {
	writeEmbed(
			'D27CDB6E-AE6D-11cf-96B8-444553540000',
			'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
			'application/x-shockwave-flash', p);
}

function writeEmbed(cls, cb, mt, p) {
	var h = '', n;

	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
	h += typeof (p.id) != "undefined" ? 'id="' + p.id + '"' : '';
	h += typeof (p.name) != "undefined" ? 'name="' + p.name + '"' : '';
	h += typeof (p.width) != "undefined" ? 'width="' + p.width + '"' : '';
	h += typeof (p.height) != "undefined" ? 'height="' + p.height + '"' : '';
	h += typeof (p.align) != "undefined" ? 'align="' + p.align + '"' : '';
	h += '>';

	for (n in p)
		h += '<param name="' + n + '" value="' + p[n] + '">';

	h += '<embed type="' + mt + '"';

	for (n in p)
		h += n + '="' + p[n] + '" ';

	h += '></embed></object>';

	document.write(h);
}
$(document).ready(function() {

	$("a[rel=external]").click(function() {
		$(this).attr("target", "_blank");
	})

});

