// {offset:,panels:[{offset:,sel:}]}
// {panels:[{sel:}]}

function alignPanels( panelsArr )
{
  var lastMax = 0;
  var panels,offset;
  for( var i = 0; i < panelsArr.length; i++ )
  {
    offset = typeof(panelsArr[i].offset)!="undefined"?$(panelsArr[i].offset).outerHeight():0;
    panels = panelsArr[i].panels;

    for( var j = 0; j < panels.length; j++ )
    {
      lastMax = Math.max( lastMax, $(panels[j].sel).offset().top + $(panels[j].sel).outerHeight() + (panels[j].offset?offset:0) );
    }
    for( var j = 0; j < panels.length; j++ )
    {
      if( panels[j].offset && (lastMax - $(panels[j].sel).offset().top) > $(panels[j].sel).outerHeight() )
      {
        $(panels[j].sel).height( lastMax - $(panels[j].sel).offset().top + (panels[j].offset?(offset*-1):(offset)) );
      }
      else
      {
        $(panels[j].sel).height( lastMax - $(panels[j].sel).offset().top );
      }
    }
  }
}

if( typeof(setPanels) != "undefined" )
{
  alignPanels(setPanels);
}