function getStyle(a, b) {c = ((a.currentStyle) ? a.currentStyle[b] : ((window.getComputedStyle) ? document.defaultView.getComputedStyle(a,null).getPropertyValue(b) : false)); return (c != null) ? c : 0;}

var clearance = {
	init : function() {
    // console.log("clearance.init()");
		if ($('.clearance')) { // check if thumbs exist
			this.ff_gc = $('.clearance').children();
			var rmh = false; // max row height (false indicates first in new row)
			var rmt = false; // max row offsetHeight (false indicates first in new row)
			var rch = 0; // cur row height
			var rct = 0; // cur row offsetHeight;
			var r = 0; // row #
			var rc = 0; // element increment
			var rpc = 0; // cols per row
			var rs = []; // array - sort into rows
			var rsmh = []; // array - max height of each row

			// break out into rows -- just get number across from first row
			for (i=0; i<this.ff_gc.length; i++) {
				if (this.ff_gc[i].offsetHeight == null) continue;

				rct = this.findPos(this.ff_gc[i]); // get offsets

				// convert into rows
				if (rct[1] > rmt) {// current offset height is greater than previous -- must be new row
					if (rmt !== false) break; // we've got number per row
					rmt = rct[1];
				}
				rpc++;
			}

			var j = 0;
			// get max height for each row
			for (i=0; i<this.ff_gc.length; i++) {
				if (this.ff_gc[i].offsetHeight == null) continue;

				if (j == 0 || (j % rpc) == 0) {
					if (j > 0) r++; // start new row if not first
					rs[r] = []; // intialize row array
					rsmh[r] = 0; // initalize max row height
					rc = 0;
				}

				// offsetHeight includes padding, so we deduct padding since we are adding it to the element's height
				rch = this.ff_gc[i].offsetHeight - parseInt(getStyle(this.ff_gc[i], 'padding-top')) - parseInt(getStyle(this.ff_gc[i], 'padding-bottom'));

				if (rch > rsmh[r]) rsmh[r] = rch; // check max height
				rs[r][rc] = this.ff_gc[i];
				rc++;
				j++;
			}
			
			for (i=0; i<rs.length; i++) { // each row
				if (!rs[i] == null) continue;
				for (j=0; j<rs[i].length; j++) {// each column in row
					rs[i][j].style.height = rsmh[i] +'px';
				}
			}
		}
	},

	findPos : function(a) {
	  l = 0; t = 0; if (a.offsetParent) {do {l += a.offsetLeft; t += a.offsetTop;} while (a = a.offsetParent);} return [l,t];
	}
};


$(document).ready(function(){
  clearance.init();
});

$(window).resize(function() {
  clearance.init();
});