var $ = function(id) {
	return document.getElementById(id);
}

var trace = function(str) {
	document.title = str;
}

var retrace = function(str) {
	document.title += str;
}

var sandbox = function(str, reset) {
	if(!reset) {
		reset = false;
	}
	var sandbox = $('trace_sandbox');
	if(!sandbox) {
		var sandbox = document.createElement('div');
		sandbox.id = 'trace_sandbox';
		sandbox.style.border = '1px dotted brown';
		sandbox.style.background = '#f0f0ff';
		sandbox.style.clear = 'both';
		sandbox.style.padding = '5px';
		sandbox.style.margin = '5px';
		document.body.appendChild(sandbox);
		sandbox = $('trace_sandbox');
	}
	if(reset) {
		sandbox.innerHTML = '';
	}
	sandbox.innerHTML += str;
}

var getElementsByClassName = function(className, sourceElement) {
		var source = sourceElement || document;
		if(typeof(source) == 'string') source = $(source);
		
		var elts = source.getElementsByTagName('*');
		var classArray = new Array();
		for (var j=0; j<elts.length; ++j) {
			if (elts[j].className.indexOf(className) != -1) {
				classArray.push(elts[j]);
			}
		}
		return classArray;
}

var setOpacity = function(self, opacity) {
	self.style.opacity = opacity;
	if(document.all) {
		self.style.filter='alpha(opacity='+opacity*100+')';
	}
}

var addZero = function(number) {
	if(number<10) number = '0'+number;
	return number+'';
}