// Calculate tab and subtab widths
totalwidth = 0;
unsettabs = 0; 

for (i = 0; i < numbercolumns; i++) {
	totalwidth = totalwidth + tab_ar[i];
	if (tab_ar[i] == 0) { unsettabs = unsettabs + 1; }
}
tabadjustment = numbercolumns + 1;
tabgap = pagewidth - totalwidth - tabadjustment;
runningtotal = 0;
for (i = 0; i < numbercolumns; i++) {
	if (tab_ar[i] == 0) { tab_ar[i] = Math.floor(tabgap / unsettabs); }
	runningtotal = runningtotal + tab_ar[i];
	if (i == (numbercolumns - 1)) {
		tab_ar[i] = tab_ar[i] + (pagewidth - tabadjustment - runningtotal);
	}
	if (tabsub_ar[i] == 0) { tabsub_ar[i] = tab_ar[i]; }
	if (tabsub_ar[i] < tab_ar[i]) { tabsub_ar[i] = tab_ar[i]; }
	if (tabsuboffset_ar[i] == 0) { tabsuboffset_ar[i] = tab_ar[i]; }
	if (i == (numbercolumns - 1)) {
		if ((tabsub_ar[i] > tab_ar[i]) && (tabsuboffset_ar[i] == tab_ar[i])) { tabsuboffset_ar[i] = tabsub_ar[i]; }
		tabsub_ar[i] = tabsub_ar[i] - 1;
	}
}

if (numbercolumns > 3) {
	if ((tabsub_ar[numbercolumns-2] > (tab_ar[numbercolumns-2] + tab_ar[numbercolumns-1])) && (tabsuboffset_ar[numbercolumns-2] == tab_ar[numbercolumns-2])) { 
		tabsuboffset_ar[numbercolumns-2] = tabsub_ar[numbercolumns-2] - tab_ar[numbercolumns-1]; 
	}
}

if (numbercolumns > 4) {
	if ((tabsub_ar[numbercolumns-3] > (tab_ar[numbercolumns-3] + tab_ar[numbercolumns-2] + tab_ar[numbercolumns-1])) && (tabsuboffset_ar[numbercolumns-3] == tab_ar[numbercolumns-3])) { 
		tabsuboffset_ar[numbercolumns-3] = tabsub_ar[numbercolumns-3] - tab_ar[numbercolumns-1] - tab_ar[numbercolumns-2]; 
	}
}

if (numbercolumns > 5) {
	if ((tabsub_ar[numbercolumns-4] > (tab_ar[numbercolumns-4] + tab_ar[numbercolumns-3] + tab_ar[numbercolumns-2] + tab_ar[numbercolumns-1])) && (tabsuboffset_ar[numbercolumns-4] == tab_ar[numbercolumns-4])) { 
		tabsuboffset_ar[numbercolumns-4] = tabsub_ar[numbercolumns-4] - tab_ar[numbercolumns-1] - tab_ar[numbercolumns-2] - tab_ar[numbercolumns-3]; 
	}
}

for (i = 0; i < numbercolumns; i++) {
	if (tab_ar[i] != 0) {
		eval('dqm__main_width' + i + ' = ' + tab_ar[i] + ' \n');
		eval('dqm__sub_menu_width' + i + ' = ' + tabsub_ar[i] + ' \n');
		eval('dqm__sub_xy' + i + ' = "-" + tabsuboffset_ar[i] + ",' + dqm__main_height + '"');
		//eval('dqm__sub_xy' + (numbercolumns-3) + ' = "-' +  dqm__sub_menu_width + ',' + dqm__main_height + '"');
	}
}	
