
/* Constructor */
function Webcamtooltip(tooltipNode) {
	this.cache = new Array();
	this.tooltip = element(tooltipNode);
	this.tooltip_text = element(tooltipNode + '_text');
	this.tooltip_img = element(tooltipNode + '_img');
	this.currentNode = null;
	this.wid = '';
	this.title = '';
	this.alt = '';
	this.empty_img = new Image();
	this.empty_img.src = 'http://www.swisswebcams.ch/deutsch/img/space.gif';
}

/* Methods */
Webcamtooltip.prototype.mouseover = function(node) {
	// Aktuellen Node speichern
	this.currentNode = node;

	// Die WID besorgen
	this.wid = this.currentNode.getAttribute('wid');

	// Title- und Alt-Attribute speichern und aus dem A-Tag löschen
	// damit diese nicht per Browser-Tooltip angezeigt werden.
	this.title = this.currentNode.getAttribute('title');
	this.currentNode.setAttribute('title', '');
	if(!this.title)
		this.title = '';

	this.alt = this.currentNode.getAttribute('alt');
	this.currentNode.setAttribute('alt', '');
	if(!this.alt)
		this.alt = '';

	// Den Text im Tooltip durch den Title-Text ersetzen
	//this.tooltip_text.innerHTML = this.title;

	// Schauen, ob wir das Thumbnail schonmal geladen haben. Wenn
	// nicht, laden wir es jetzt.
	if(!this.cache[this.wid]) {
		this.cache[this.wid] = new Image();
		this.cache[this.wid].src = 'http://www.swisswebcams.ch/thumbnails/bigger/' + this.wid + '.jpg';
	}

	// Das Thumbnail setzen
	this.tooltip_img.src = this.cache[this.wid].src;

	// Den Tooltip anzeigen
	this.tooltip.style.display = 'inline';
}

Webcamtooltip.prototype.mouseout = function() {
	// Den Tooltip verstecken
	this.tooltip.style.display = 'none';

	// Ein leeres Bild einsetzen
	this.tooltip_img.src = this.empty_img.src;

	// Die Title- und Alt-Attribute wieder in den A-Tag schreiben
	this.currentNode.setAttribute('title', this.title);
	this.currentNode.setAttribute('alt', this.alt);
}

Webcamtooltip.prototype.mousemove = function(left, top) {
	// Die absolute Position des Tooltip setzen
	this.tooltip.style.left = left + 'px';
	this.tooltip.style.top = top + 'px';
}

Webcamtooltip.prototype.getLeft = function(event) {
	var pos = 0;

	// Den absoluten Abstand des Mauszeigers vom linken Rand
	// des Dokuments bestimmen
	if(event.pageX)
		pos = event.pageX;
	else if(event.clientX)
		pos = event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;

	// Noch etwas nach rechts verschieben
	return (pos + 10);
}

Webcamtooltip.prototype.getTop = function(event) {
	var pos = 0;

	// Den absoluten Abstand des Mauszeigers vom oberen Rand
	// des Dokuments bestimmen
	if(event.pageY)
		pos = event.pageY;
	else if(event.clientY)
		pos = event.clientY + document.documentElement.scrollTop + document.body.scrollTop;

	// Noch etwas nach unten verschieben
	return (pos + 10);
}

// Der aktuelle Tooltip wird hier gespeichert
var tooltip = null;

// Wird beim onMouseOver über einen Link zu einer Webcam aufgerufen
function wp(event) {
	// Wenn noch kein Tooltip-Objekt existiert, wird es hier erzeugt
	if(tooltip == null)
		tooltip = new Webcamtooltip('webcamtooltip');

	var e = event ? event : window.event;
	var o = e.target ? e.target : e.srcElement;

	// Event-Handler
	o.onmouseout = function(event) {
		tooltip.mouseout();
	}

	o.onmousemove = function(event) {
		var e = event ? event : window.event;

		// Neue Position des Tooltips setzen
		tooltip.mousemove(tooltip.getLeft(e), tooltip.getTop(e));
	}

	// Position des Tooltips setzen
	tooltip.mousemove(tooltip.getLeft(e), tooltip.getTop(e));

	// Tooltip anzeigen
	tooltip.mouseover(o);
}
