function Jedifans(){
// 	var oldNavMinWidth, oldNavOverflow, oldNavWidth, oldRightSideMarginleft;
	this.navHidden = false;
	
	this.fixHeights = function(){
		var heights = new Array();
		heights[0] = parseFloat(document.getElementById('main').clientHeight);
		heights[1] = parseFloat(document.getElementById('navcont').clientHeight);
		heights[2] = parseFloat(document.getElementById('content').clientHeight);
		heights[3] = parseFloat(document.getElementById('content').scrollHeight);
		
		var toContent = heights[3];
		if(heights[2] > heights[3]){
			toContent = heights[2];
		}
		var toNav = toContent;
		while(toNav < heights[1]){
			toNav += 20;
		}
		
		// increment/decrement by how much in each iteration?
		var change = ((heights[0] - toContent) > 0) ? -10 : 10;
		
		// do 10px increments - work out how many iterations need to be done
		var toContentIterations = Math.ceil(Math.abs((heights[0] - toContent) / change));
		var toNavIterations = Math.ceil(Math.abs((heights[0] - toNav) / change));
		
		// temp variables
		var newVal;
		
		// make sure the css height property is set
		document.getElementById('shadow').style.height = heights[1] + 'px';
		document.getElementById('content').style.height = toContent + 'px';
		document.getElementById('main').style.height = heights[0] + 'px';
		document.getElementById('right').style.height = heights[0] + 'px';
		document.getElementById('left').style.height = heights[0] + 'px';
		
		if(toNav > toContent){
			this.animation(toNavIterations, change);
		}
		else{
			this.animation(toContentIterations, change);
		}
	};
	
	this.animation = function(currentTime, change){
		var newVal;
		var delay = 5;
		if(currentTime > 1){
			if(currentTime < Math.abs(change)){
				if(change > 0){
					change--;
				}
				else{
					change++;
				}
			}
			newVal = parseFloat(document.getElementById('main').style.height) + change + 'px';
			document.getElementById('main').style.height = newVal;
			document.getElementById('left').style.height = newVal;
			document.getElementById('right').style.height = newVal;
			window.setTimeout("jf.animation(" + (currentTime - 1) + ", " + change + ")", delay);
		}
	}
	
	this.fixPngs = function(){
		// Adapted from Sleight (http://www.youngpup.net)
		var imgs = document.getElementsByTagName('img');
		var w, h, url;
		for(var i = 0; i < imgs.length; i++){
			if(imgs[i].src.match('/\.png$/i') != null){
				w = imgs[i].width;
				h = imgs[i].height;
				url = imgs[i].src;
				imgs[i].style.width = w;
				imgs[i].style.height = h;
				imgs[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + url + "', sizingMethod='scale')";
				imgs[i].src = '/img/x.gif';
			}
		}
	};
	
	return true;
}