
jQuery.fn.mouseOverDelay = function(delay, callbackOver, callbackOut) {
	return this.each( function(idx, obj) {
		var tid;
		jQuery(obj).hover( function() {
			tid = setTimeout(callbackOver, delay * 1000);
		}, function(){
			clearTimeout(tid);
			callbackOut();
		});
	});
};

jQuery(document).ready( function() {

	jQuery('div.list_box dl').css('display','none');

	function genToggleFunc(obj, toggle) {
		var target = obj.childNodes;
		var i;
		for (i=0; i<target.length; i++)
			if (target[i].tagName && target[i].tagName.toLowerCase() === "dl")
				return function() { jQuery(target[i])[toggle]('fast'); };
	}

	jQuery('div.list_box').each( function(idx, obj) {
		jQuery(obj).mouseOverDelay(
			1, genToggleFunc(obj, 'slideDown'), genToggleFunc(obj, 'slideUp')
		);
	} );

} );

