j.accordian = function(items, first, options) {

	var active = first;
	var running = 0;

	var titles = options && options.titles || '.title';
	var contents = options && options.contents || '.content';
	var onClick = options && options.onClick || function(){};
	var onShow = options && options.onShow || function(){};
	var onHide = options && options.onHide || function(){};
	var showSpeed = options && options.showSpeed || 'slow';
	var hideSpeed = options && options.hideSpeed || 'fast';

	j(items).not(active).children(contents).hide();
	j(items).not(active).each(onHide);
	j(active).each(onShow);

	j(items).children(titles).click(function(e){

		var p = j(contents, this.parentNode);
		j(this.parentNode).each(onClick);

		if (running || !p.is(":hidden")) return false;
		running = 2;

		j(active).children(contents).not(':hidden').slideUp(hideSpeed, function(){--running;});
		p.slideDown(showSpeed, function(){--running;});

		j(active).each(onHide);
		active = '#' + j(this.parentNode)[0].id;
		j(active).each(onShow);

		return false;
	});

};

function simpleLog(message) {
	j('<div>' + message + '</div>').appendTo('#log');
}

