// functions.js
// Production Information
// Chamber Dance Company 2009
// University of Washington
// Author: Thomas Van Doren
// Release: 2008-12-01

var windows = new Array();		// Contents windows (class name: item and r)
var imgs = new Array();			// Images from imgDir
var imgDir = 'img';				// Directory where sidebar images are stored
var numImages = 35;				// Number of images in given directory

// onLoad activities
function loaders() {
	getWindows();
	getImages();
	
	addImagesToSidebar();
}

// Parse document, get all div elements, add divs with class name item or r to windows array
function getWindows() {
	var allDivs = document.getElementsByTagName("DIV");
	for ( var i = 0; i < allDivs.length; i++ ) {
		if ( allDivs[i].className == 'item' || allDivs[i].className == 'r' ) {
			windows[windows.length] = allDivs[i];
		}
	}
}

// Create array of image objects from image directory, then randomly sort
function getImages() {
	for ( var i = 0; i < numImages; i++ ) {
		imgs[i] = new Image;
		var cur = i + 1;
		if ( cur < 10 ) {
			cur = '0' + cur;
		}
		imgs[i].src = imgDir + '/cdc' + cur + '.jpg';
	}
	imgs.sort(randSort);
}

// Function used to randomly sort arrays
function randSort(a, b) {
	var temp = Math.floor(Math.random() * 3);
	return temp--;
}

// Add images to classname r, div boxes (odd indices). Each gets at least one image up to
// as many will fit so that that div does not get longer than its accompanying item div
function addImagesToSidebar() {
	var curImageIndex = 0;	// Keeps track of used images in the imgs array
	for ( var i = 0; i < windows.length / 2; i++ ) {
		var curWinHeight = windows[2 * i].offsetHeight;	// Get height of item div box
		var strInnerHTML = '<img src="' + imgs[curImageIndex].src + '" alt="" />\n';
		windows[2 * i + 1].innerHTML = strInnerHTML;
		curImageIndex++;
		
		// Add images so that r div is as close to as long as curWin; does not exceed left side, though
		// Account for image styling to width of 150px (get height of next image with proper proportions)
		while ( curWinHeight >= (windows[2 * i + 1].offsetHeight + 150 * imgs[curImageIndex].height / imgs[curImageIndex].width ) ) {
			strInnerHTML += '<img src="' + imgs[curImageIndex].src + '" alt="" />\n';
			windows[2 * i + 1].innerHTML = strInnerHTML;
			curImageIndex++;
		}
	}
}