var hide_timer = false;
var min = Math.min;
var max = Math.max;

	var tip;
	var pointer;
	
	var offsetY;
	var offsetX;
	var poffsetX;
	var poffsetY;

var init = function(){
	
	$$('#ukmap area').each( function(elem){Event.observe(elem, 'mouseover', function(){ return showRegion(this); }, true);
															Event.observe(elem, 'mouseout', function(){ return hideRegion(this); }, true);
															});

	$(document.body).insert('<div id="regionTip"></div><div id="regionTipPointer"></div>');
	tip = $('regionTip');
	pointer = $('regionTipPointer');
	
	offsetY = tip.getHeight();
	offsetX = tip.getWidth()/2;
	poffsetX = pointer.getWidth()/2;
	poffsetY = pointer.getHeight();

	tip.hide();
	pointer.hide();
	tip.setStyle({position:'absolute'});
	pointer.setStyle({position:'absolute'});
	
	Event.observe(document, 'mousemove', function(e){ positionToolTip(e) }, true);
}

var positionToolTip = function (evt){
	offsetY = tip.getHeight();
	
	tip.setStyle({left:min($(document.body).getWidth()-(offsetX*2), Event.pointerX(evt)-offsetX)+'px',top:(Event.pointerY(evt)-offsetY-4)+'px'});
	pointer.setStyle({left:min($(document.body).getWidth()-(poffsetX*2), Event.pointerX(evt)-poffsetX)+'px',top:Event.pointerY(evt)-poffsetY-4+'px'});
}


var showRegion = function(linkObj){
	clearTimeout(hide_timer);
	tip.update('<h5>'+linkObj.title+'</h5><p>Click here to see whats happening&hellip;</p>');
	tip.show();
	pointer.show();

	linkObj.writeAttribute('title','');
	
	return false;
}

var hideRegion = function(linkObj){
	var tmpH5s = $$('#regionTip h5');
	if(tmpH5s[0]){
		linkObj.writeAttribute('title', tmpH5s[0].innerHTML);
	}
	
	hide_timer = setTimeout("tip.hide();pointer.hide();", 200);
	
	return false;
}

$(document).observe("dom:loaded", init);

