// http://www.thewatchmakerproject.com

var BoxHeights = {
	maxh: 0,
	boxes: Array(),
	num: 0,
	equalise: function() {
		this.num = arguments.length;
		for (var i=0;i<this.num;i++) if (!$(arguments[i])) return;
		this.boxes = arguments;
		this.maxheight();
		for (var i=0;i<this.num;i++) $(arguments[i]).style.height = this.maxh+"px";
	},
	maxheight: function() {
		var heights = new Array();
		for (var i=0;i<this.num;i++) {
			if (navigator.userAgent.toLowerCase().indexOf('opera') == -1) {
				heights.push($(this.boxes[i]).scrollHeight);
			} else {
				heights.push($(this.boxes[i]).offsetHeight);
			}
		}
		heights.sort(this.sortNumeric);
		this.maxh = heights[this.num-1];
	},
	sortNumeric: function(f,s) {
		return f-s;
		
	},
	maxb: 0,

	baseline: function() {
	this.num = arguments.length;
	for (var i=0;i<this.num;i++) if (!$(arguments[i])) return;
	this.boxes = arguments;
	this.findBase();
	for (var i=0;i<this.num;i++) $(arguments[i]).style.height = (this.maxb - $(arguments[i]).offsetTop) + "px";
},

	findBase: function() {
	var bottoms = new Array();
	for (var i=0;i<this.num;i++) {
		if (navigator.userAgent.toLowerCase().indexOf('opera') == -1) {
			bottoms.push($(this.boxes[i]).offsetTop + $(this.boxes[i]).scrollHeight);
		} else {
			bottoms.push($(this.boxes[i]).offsetTop + $(this.boxes[i]).offsetHeight);
		}
	}
	bottoms.sort(this.sortNumeric);
	this.maxb = bottoms[this.num - 1];
}
}

function $() {
	var elements = new Array();
	for (var i=0,len=arguments.length;i<len;i++) {
	var element = arguments[i];
	if (typeof element == 'string') {
		var matched = document.getElementById(element);
		if (matched) {
			elements.push(matched);
			} else {
			var allels = (document.all) ? document.all : document.getElementsByTagName('*');
			var regexp = new RegExp('(^| )'+element+'( |$)');
			for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]);
			}
		if (!elements.length) elements = document.getElementsByTagName(element);
		if (!elements.length) {
			elements = new Array();
			var allels = (document.all) ? document.all : document.getElementsByTagName('*');
			for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]);
			}
		if (!elements.length) {
		var allels = (document.all) ? document.all : document.getElementsByTagName('*');
		for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]);
		}	
	} else {
	elements.push(element);
	}
}
	if (elements.length == 1) {
	return elements[0];
} else {
	return elements;
} 
	
}