function modCount (areaId, classId, moduleClass, setModsHeight) {
	var modsCount = 0;
	modsToAssign = new Array();
	maxHeight = new Array(0,0,0);
	var mods = document.getElementById(areaId).getElementsByTagName('DIV');
	for (var m=0; m<mods.length; m++) {
		if (mods[m].className.indexOf(moduleClass) != -1) {
			modsToAssign[modsCount] = mods[m];
			modsCount += 1;
		}
	}
	if (modsCount > 0) {
		var modsCountNew = modsCount;
		var fl = '';
		for (var s=0; s<modsToAssign.length; s++) {
			if (modsCountNew>4) {
				if (s<=3) modsCount = 4;
				if (s>3) modsCount = Math.min((modsCountNew-4),4);
				if (s>7) modsCount = Math.min((modsCountNew-8),4);
			}
			newClassName = ' ' + classId + modsCount;
			if (s==0 || s==4 || s==8) fl = ' first';
			if (  s==1 || s==2 || s==5) {
				 fl = ' middle';
				 //if (modsToAssign.length ==3 || (modsToAssign.length ==5 && s==4) || (modsToAssign.length == 8 && s==7)) fl = ' last';
			}
			if (s==3 || s==7 || s==11) fl = ' last';
			newClassName += fl;

			if (areaId == 'btm-mods' && modsCount > 1) {
				if ((s == 0 && modsCount == 2) || ((s == 0 || s == 1) && modsCount == 3)) newClassName += ' countin-border';
			}
			modsToAssign[s].className += newClassName;
			if (setModsHeight) {
                if (s<=3) { row = 0; } else if (s<=7) { row = 1; } else { row = 2; }
				maxHeight[row] = Math.max(maxHeight[row], modsToAssign[s].offsetHeight);
			}
		}
		if (setModsHeight) {
			for (var s=0; s<modsToAssign.length; s++) {
				if (s<=3) { row = 0; } else if (s<=7) { row = 1; } else { row = 2; }
				if (modsToAssign[s].className.indexOf("module div div div") != -1) {
					myEl = modsToAssign[s];
				} else {
					myEl = modsToAssign[s].getElementsByTagName("div")[2];
				}
				blueFix = (myEl.className.indexOf("blue div div div")!=-1)?8:0;
				squareFix = (myEl.className.indexOf("square div div div")!=-1)?8:0;
				grayFix = (myEl.className.indexOf("gray div div div")!=-1)?8:0;
				myEl.style.height = (maxHeight[row]-setModsHeight+grayFix+squareFix+blueFix) + 'px';
			}
		}
	}
}

