/* vim: set tabstop=2 shiftwidth=2 foldmethod=marker: */
/**
 * 
 * ska.tooltip.js - ツールチップ処理
 *
 * @author      SHOGO <shogo@studiofly.net>
 * @copyright   2005-2007 studiofly software
 * @version     CVS: $Id: ska.tooltip.js,v 1.6 2007/07/26 06:51:36 shogo Exp $
 *
 */
ska.tooltip = {
	element: null,
	// 初期化
	init: function()
	{
		this.element = $('ska_tooltip');
		if (!this.element) {
			var body = document.getElementsByTagName('body')[0];
			var div  = $(document.createElement('div'));
			div.setAttribute('id', 'ska_tooltip');
			div.setStyle({position: 'absolute', visibility: 'hidden'});
			body.insertBefore(div, body.firstChild);
			this.element = div;
		}
	},
	// ツールチップの追加
	create: function(element, content)
	{
		element = $(element);
		if (!element) return false;
		element._tooltip = content;
		Event.observe(element, 'mouseover', this.onMouseover.bindAsEventListener(this), true);
		Event.observe(element, 'mouseout',  this.onMouseout.bindAsEventListener(this),  true);
	},
	onMouseover: function(event)
	{
		var element = Event.element(event);
		var tooltip = this.element;
		tooltip.update(element._tooltip);
		var left = Event.pointerX(event) - tooltip.offsetWidth - 32;
		var top  = Event.pointerY(event) - Math.round(tooltip.offsetHeight * 2 / 3);
		this.timer = setTimeout(function(){
			tooltip.setStyle({left: left + 'px', top: top + 'px', visibility: 'visible'});
			tooltip.show();
		}, 300);
	},
	onMouseout: function()
	{
		this.timer = clearTimeout(this.timer);
		this.element.setStyle({visibility: 'hidden'});
	}
};
ska.thumbnail = {
	init: function(noThumbnail)
	{
		ska.tooltip.init();
		$A(document.getElementsByTagName('a')).each(function(a){
			a = $(a);
			if (!a.hasClassName('thumbnail')) return;
			if (!a.href.match(/^https?:/)) return;
			var src = 'http://thumbs.bookmacro.com/u/' + a.href;
			a._img  = new Image();
			a._img.onload = function() {
				ska.tooltip.create(
					a, '<img src="' + src + '" width="160" height="120" alt="' + a.href + '" />'
					);
				};
			a._img.onload = function() {
				ska.tooltip.create(
					a, '<img src="' + src + '" width="160" height="120" alt="' + a.href + '" />'
					);
				};
			a._img.onerror = function() {
				ska.tooltip.create(
					a, '<img src="' + noThumbnail + '" width="160" height="120" alt="' + a.href + '" />'
					);
				};
			a._img.src = src;
		});
	}
};
