function create_safe_image(image_src) {
	the_image 	= Builder.node('img', { src: image_src, style: 'display: none' });
	Event.observe(the_image, 'load', function(event) { elt = Event.element(event); elt.show(); });
	
	return the_image;
}

function show_loader(id, message, img) {
	celt		= $(id);		
	cofs 		= celt.cumulativeOffset();	
	
	loader_id	= 'loader_' + id;
	
	// find any rogue loaders that may be haning around
	$$('#' + loader_id).invoke('remove');	
	
	loader_div 	= document.createElement('div');	
	
	loader_div 	= Builder.node('div', Builder.node('span', message));
	
	loader_div.addClassName('loader');
	loader_div.setAttribute('id', loader_id);
	
	loader_div.setStyle({
		width: 	celt.getWidth() + 'px',
		height:	celt.getHeight() + 'px',
		top: 	cofs.top + 'px',
		left: 	cofs.left + 'px'
	});
	
	loader_image		= new Image();
	loader_image.src 	= '/staticfiles/mls/images/' + img;
	loader_div.appendChild(loader_image);
	
	document.body.appendChild(loader_div);
}

function hide_loader(id) {
	c = $('loader_' + id);
	try {
		c.parentNode.removeChild(c);
	} catch(e) {}
}

function set_cookie(name, value, expires, path, domain, secure) {	
	var today = new Date();
	today.setTime(today.getTime());

	if(expires)
		expires = expires * 1000 * 60 * 60 * 24;
		
	var expires_date = new Date(today.getTime() + (expires));

	document.cookie = name + "=" + escape(value) +
		(( expires ) ? ";expires=" + expires_date.toGMTString() : "") +
		(( path ) ? ";path=" + path : "") +
		(( domain ) ? ";domain=" + domain : "") +
		(( secure ) ? ";secure" : "");
}

function set_center(elt) {
	center_box(elt);
}

function destroy_draggable(id) {
	elt = $(id);
	elt.parentNode.removeChild(elt);
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
