function callout(content_id, content_url, height, opener) {

	var zindex = 100;
	var width = 514;

	var body_pos = this.getCoordinates();
	var opener_coords = opener.getCoordinates();

	if((opener_coords.left + width) > body_pos.right) {
		var callout_left = ((opener_coords.left)-width) + 'px';
	}
	else {
		var callout_left = (opener_coords.left) + 'px';
	}
	var callout_top = opener_coords.top;



	// Create callout divs
	calloutButtons = new Element('div', {'id':'callout-buttons'});
	calloutButtons.set('html', '<a href="javascript:void(0)" onclick="close_callout()">Close <img src="/assets/images/callout/modal_close.png" /></a>');

	if(height) {
		calloutMessage = new Element('div', {'id':'callout-message','styles':{'overflow':'auto','height':height}});
	}
	else {
		calloutMessage = new Element('div', {'id':'callout-message'});
	}
	calloutContent = new Element('div', {'id':'callout-content'}).adopt(calloutButtons).adopt(calloutMessage);
	calloutInnerbox = new Element('div', {'id':'callout-innerbox'}).adopt(calloutContent);

	calloutBox = new Element('div', {
		'id':'callout-box',
		'styles': {
			'display':'block',
			'z-index':zindex,
			'position':'absolute',
			'top':callout_top,
			'left':callout_left,
			'width':width+'px'
		}
	}).adopt(calloutInnerbox);

	// Load content
	if(content_id) {
		calloutMessage.innerHTML += $(content_id).innerHTML;
	}
	else if(content_url) {
		var request = new Request({	method: 'get',
									url: content_url,
									onSuccess: function(txt, xml) {
										calloutMessage.innerHTML += txt;
									}});
		request.send();
	}

	// Load to document
	document.body.appendChild(calloutBox);
}

function close_callout() {
	if($('callout-box')) {
		$('callout-box').dispose();
	}
}

function callout_speech(message, opener) {

	var zindex = 100;
	var width = 229;

	var body_pos = this.getCoordinates();
	var opener_coords = opener.getCoordinates();

	if((opener_coords.left + width) > body_pos.right) {
		var callout_left = ((opener_coords.left)-width) + 'px';
	}
	else {
		var callout_left = (opener_coords.left + 67) + 'px';
	}
	var callout_top = opener_coords.top - 20;

	// Create callout divs
	calloutConnector = new Element('div', {'id':'callout-speech-connector'});
	calloutMessage = new Element('div', {'id':'callout-speech-message'});
	calloutContent = new Element('div', {'id':'callout-speech-content'}).adopt(calloutMessage);
	calloutInnerbox = new Element('div', {'id':'callout-speech-innerbox'}).adopt(calloutContent);

	calloutBox = new Element('div', {
		'id':'callout-speech-box',
		'styles': {
			'display':'block',
			'z-index':zindex,
			'position':'absolute',
			'top':callout_top,
			'left':callout_left,
			'width':width+'px'
		}
	}).adopt(calloutConnector).adopt(calloutInnerbox);

	// Load content
	calloutMessage.innerHTML += message;

	// Load to document
	document.body.appendChild(calloutBox);
}

function close_callout_speech() {
	if($('callout-speech-box')) {
		$('callout-speech-box').dispose();
	}
}
