/**
 * 
 */
var maxColumns = 4;
var minColumnHeight = 50;

jQuery(document).ready(function(){
	var initialColumnWidth = jQuery(".mainmenu_holder").width();
	var columnWidth = (Math.floor(jQuery(".mainmenu_holder").width()/maxColumns));
	jQuery('ul.submenu').each(function(){
		jQuery(this).width(columnWidth);
		// make entire submenu into one list(<ul>)
		
		jQuery(this).find('ul.innermenu').each(function(){
			var that = jQuery(this).parent();
			jQuery(this).children().each(function(){
				that.after(jQuery(this));
				that = jQuery(this);
			});
			jQuery(this).remove();
		});

		// calculate column height
		var colHeightLimit = Math.ceil(jQuery(this).height()/maxColumns);
		if(colHeightLimit<minColumnHeight){
			colHeightLimit = minColumnHeight;
		}
		
		// split menu into columns
		var margin = 0;
		var columnHeight = 0;
		var menuHeight = 0;
		var marginTop = 0;
		
		jQuery(this).children().each(function(){			
			if(columnHeight+jQuery(this).height()/2.6>colHeightLimit){
				margin += columnWidth;
				if(marginTop>menuHeight){
					menuHeight = marginTop;
				}
				jQuery(this).css('margin-top',"-"+marginTop+'px');
				columnHeight = 0;
				marginTop = 0;
			}
			if(margin==0){
				jQuery(this).css('border-left','none');
			}
			jQuery(this).css('width',columnWidth+'px');
			jQuery(this).css('margin-left',margin+'px');
			if(jQuery.support.style==false && jQuery.support.tbody==false){
				marginTop += jQuery(this).height()+3; // fix for ie7
			}else{
				marginTop += jQuery(this).height();
			}
			columnHeight += jQuery(this).height();
		});
		if(marginTop>menuHeight){
			menuHeight = marginTop;
		}
		jQuery(this).height(menuHeight);
		jQuery(this).width(initialColumnWidth);
	});
});
