
   function clientAddBlurb (text) {
	this.blurb = text;
   }
   function clientAddImg (img, is_vertical) {
	var ix = this.images.length;
	this.images[ix]          = this.imgDir + img;
	this.images_vertical[ix] = is_vertical;   // boolean
   }
   function Client (clientName, clientImg, clientDesc) {
	this.name     = clientName;
	this.imgDir   = 'images/clients/' + this.name + '/';
	this.img      = this.imgDir + clientImg;
	this.desc     = clientDesc;

	this.blurb    = '&nbsp;';
	this.images          = new Array();
	this.images_vertical = new Array();   // boolean
	this.addBlurb = clientAddBlurb;
	this.addImg   = clientAddImg;
   }

   function loadPortfolio () {

	jQuery('#client_scroller').jcarousel({
		size: clients.length,
		itemLoadCallback: {
			onBeforeAnimation: portfolio_itemLoadCallback
		}
	});

	loadThumbnails(0);
   }

   function portfolio_itemLoadCallback (carousel, state) {

	// Carousel item count runs from 1..n:
	for (var i = carousel.first; i <= carousel.last; i++) {
		if (carousel.has(i)) continue;
		if (i > clients.length) break;

		// Client numbers run from 0..(n-1):
		var client_num = i - 1;

		var client = clients[client_num];
		var item = '<img src="' + client.img + '" width="90" height="60" alt="' + client.desc + '" title="' + client.desc + '" onclick="loadThumbnails(' + client_num + ')" />';

		carousel.add(i, item);
	}
   }

   function loadThumbnails (clientNumber) {
	var client = clients[clientNumber];
	loadImage(client.images[0],client.images_vertical[0]);
	var blurb = document.getElementById('blurb');
	blurb.innerHTML = client.blurb;
	var thumbnailsHTML = "";
	for (var i = 0; i < client.images.length; i++) {
		var src  = client.images[i];
		var vert = client.images_vertical[i];
		/*
		if (! preloads[src]) {
			preloads[src] = new Image();
			preloads[src].src = src;
		}
		*/
		vert = vert ? ',1' : '';
		thumbnailsHTML += '<span class="shadow"><input type="image"' +
			' onclick="loadImage(this.src' + vert + '); ' +
			' return false;"' +
			' onfocus="this.blur();"' +
			' src="' + src + '"/></span>';
	}
	thumbnailsHTML += '<br />';
	thumbnails.innerHTML = thumbnailsHTML;
	/*
	for (var i = 0; i < client.images.length; i++) {
		var src = client.images[i];
		src = src.replace(/_sm.jpg$/, '.jpg');
		if (! preloads[src]) {
			preloads[src] = new Image();
			preloads[src].src = src;
		}
	}
	*/
   }

   function loadImage (url, vertical) {
	if (vertical) {
		photodiv.className = 'vertical';
		mainphoto.src = 'images/white_400x600.gif';
	}
	else {
		photodiv.className = '';
		mainphoto.src = 'images/white_600x400.gif';
	}
	url = url.replace(/_sm.jpg$/, '.jpg');
	mainphoto.src = url;
   }

   function setRightSideWidth () {
	var pageWidth = getPageWidth();
	right.style.width = (pageWidth-250) + 'px';
   }

