/* Assumes miniBannerVars.js already included */

/* Init dynamic parts of main images array */
function mb_init()
{
	for (var i = 0; i < mb_images.length; ++i) {
		mb_images[i].count = mb_images[i].length;
		mb_images[i].flags = new Array();
		for (j = 0; j < mb_images[i].length; ++j) {
			mb_images[i].flags[j] = true;
		}
	}	
}

function mb_setRefresh(height)
{
	setTimeout("mb_refreshHTML(" + height + ");", 25 * 1000);
}

function mb_preLoad()
{
	preLoadElm = document.getElementById('mb_preLoadElm');

	preLoadElm.style.display = 'none';

	var	html = "";

	for (var i = 0; i < mb_images.length; ++i) {
		var	row = mb_images[i];

		for (var j = 0; j < row.length; ++j) {
			html += "<img src='/acatalog/mb_pics/" + row[j][0] + "' />";
		}
	}

	preLoadElm.innerHTML = html;
}

function mb_refreshHTML(height)
{
	mb_init();
	document.getElementById('mb_1').innerHTML = mb_generateHTML(height);

	mb_setRefresh(height);
}

function mb_generateHTML(height)
{
	var	result = "";

	result += "<table cellspacing='0' cellpadding='0' align='center' class='mb_offset'>";

	var	rowArr = 0;
	do {
		var	rowArr = mb_getRowArr(height);	

		result += "<tr><td><table cellspacing='0' cellpadding='0'><tr>";

		for (var i = 0; i < rowArr.length; ++i) {
			result += "<td><a href='" + rowArr[i][1] + "'><img border='none' class='mbimg' src='/acatalog/mb_pics/" + rowArr[i][0] + "' /></a></td>";
		}

		result += "</tr></table></td></tr>";

		height -= rowArr.height;
	} while (height > 0);

	result += "</table>";

	return result;
} 

/* remHeight: Max remaining height avail */
function mb_getRowArr(remHeight)
{
	var	result = null;

	while (result == null) {
		var	rowType = Math.floor(Math.random() * mb_images.length);
		var	row = mb_images[rowType];

		/* Check that image size will fit remaining height and that enough unused elements remain */
		if ((row.height > remHeight) || (row.rowsize > row.count))
			continue; 			/* Nope, try again */

		/* Add enough previously unused images to result to fill a row */
		result = new Array();
		for (var i = 0; i < row.rowsize;) {
			var	dex = Math.floor(Math.random() * row.length);
			if (row.flags[dex]) {	/* If this particular image not flagged as 'used' */
				row.flags[dex] = false;
				result.push(row[dex]);
				++i;
			}
		}

		result.height = row.height;
		row.count -= row.rowsize;
	}

	return result;
}

