/**
 * Equal Heights Plugin
 * Equalize the heights of elements. Great for columns or any elements
 * that need to be the same size (floats, etc).
 * 
 * Version 1.0
 * Updated 12/10/2008
 *
 * Copyright (c) 2008 Rob Glazebrook (cssnewbie.com) 
 *
 * Usage: $(object).equalHeights([minHeight], [maxHeight]);
 * 
 * Example 1: $(".cols").equalHeights(); Sets all columns to the same height.
 * Example 2: $(".cols").equalHeights(400); Sets all cols to at least 400px tall.
 * Example 3: $(".cols").equalHeights(100,300); Cols are at least 100 but no more
 * than 300 pixels tall. Elements with too much content will gain a scrollbar.
 * 
 */

(function($) {
	$.fn.equalHeights = function(offset, minHeight, maxHeight) {
		tallest = (minHeight) ? minHeight : 0;
		this.each(function() {
			// console.log($(this).attr('id') + ' height is: ' + $(this).height());
			if($(this).height() > tallest) {
				tallest = $(this).height();				
			}
		});
		this.each(function() {
			if($(this).hasClass('tallest') && $(this).height() < tallest) {
				tallest = tallest + 20;				
				// console.log('resetting tallest to '+tallest);
			}
		});

		if((maxHeight) && tallest > maxHeight) tallest = maxHeight;
		return this.each(function() {

			// use an offset for anything but the tallest item
			if ($(this).hasClass('tallest')){
				currHeight = tallest;
			}
			else if ($(this).hasClass('match')) {
				currHeight = tallest;
			}
			else if ((offset) && ($(this).height() != tallest)) {
				currHeight = tallest - offset;	
			}
			else {
				currHeight = tallest;	
			}
			// console.log($(this).attr('id') + ' being resized to: ' + currHeight);
			$(this).height(currHeight).css("overflow","hidden");
		});
	}
})(jQuery);
