function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function openPopup(pic_url, breite, hoehe, resize, scroll, menu, dirs){
	gal = window.open(pic_url,'galerie','width='+breite+',height='+hoehe+',resizable='+resize+',scrollbars='+scroll+',location=no,directories='+dirs+',status=no,menubar='+menu+'');
	gal.focus();
	return false;
}

/* --- Get Elements By Class --- */
function getElementsByClass(ClassName,TagName)
{
	if(!document.getElementsByTagName){return false;} // function aviable?
	var args=arguments; // var args=getElementsByClass.arguments; (deprecated)
	if(args.length>0)
	{
		if(args.length==1){args[1]='*'};
		var foundElements=new Array();
		// for (var j=1;j<=args.length;j++)
		// {
			// var tree = new HTMLcollection();
			var tempElements=document.getElementsByTagName(args[1]);
			for (var i=0;i<tempElements.length;i++)
			{
				if(RegExp('\\b'+ClassName+'\\b').test(tempElements[i].className))
				// if(tempElements[i].className && tempElements[i].className==ClassName) [old version]
				{
					foundElements[foundElements.length]=tempElements[i];
				}
			}
		// }
		if(foundElements.length==0)
		{
			return false;
		}else
		{
			return foundElements;
		}
	}else
	{
		return false;
	}
}

/* --- Class Modifications --- */
function cssjs(a,o,c1,c2)
{
	switch (a){
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
	}
}

/* --- for debug purposes --- */
function trace(output)
{
	var p=document.createElement('p');
	if(output && output!=""){
		p.appendChild(document.createTextNode(output));
	}else{
		p.appendChild(document.createTextNode('KEIN INHALT'));
	}
	document.body.insertBefore(p,document.body.firstChild);
};

/* --- Funktionen Laden --- */
window.onload = function () {
	toolballoon.init ();
	Hovermap();
}
var balloonX = -30; //This is balloon's X offset//
var balloonY = 25; //This is balloon's Y offset//



//There's No need to edit anything below this line//
toolballoon = {
  name : "balloon",
  offsetX : balloonX,
  offsetY : balloonY,
  balloon : null
}

toolballoon.init = function () {
	var balloonNameSpaceURI = "http://www.w3.org/1999/xhtml";
	if(!balloonContainerID){ var balloonContainerID = "balloon";}
	var balloonContainer = document.getElementById(balloonContainerID);

	if(!balloonContainer) {
	  balloonContainer = document.createElementNS ? document.createElementNS(balloonNameSpaceURI, "div") : document.createElement("div");
		balloonContainer.setAttribute("id", balloonContainerID);
	  document.getElementsByTagName("body").item(0).appendChild(balloonContainer);
	}

	if (!document.getElementById) return;
	this.balloon = document.getElementById (this.name);
	if (this.balloon) document.onmousemove = function (evt) {toolballoon.move (evt)};

	var a, sTitle;
	var anchors = getElementsByClass('balloon');

	for (var i = 0; i < anchors.length; i ++) {
		a = anchors[i];
		sTitle = a.getAttribute("title");
		if(sTitle) {
			a.setAttribute("balloontitle", sTitle);
			a.removeAttribute("title");
			a.onmouseover = function() {toolballoon.show(this.getAttribute('balloontitle'))};
			a.onmouseout = function() {toolballoon.hide()};
		}
	}
}

toolballoon.move = function (evt) {
	var x=0, y=0;
	if (document.all) {//IE
		x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
		x += window.event.clientX;
		y += window.event.clientY;
		
	} else {//FF etc.
		x = evt.pageX;
		y = evt.pageY;
	}
	this.balloon.style.left = (x + this.offsetX) + "px";
	this.balloon.style.top = (y + this.offsetY) + "px";
}

toolballoon.show = function (text) {
	if (!this.balloon) return;
	this.balloon.innerHTML = text;
	this.balloon.style.display = "block";
}

toolballoon.hide = function () {
	if (!this.balloon) return;
	this.balloon.innerHTML = "";
	this.balloon.style.display = "none";
}
/* --- Mouse Over Maps --- */
function Hovermap()
{
	var links = getElementsByClass('hoverimage');
	if (!links[0]) return;
	preloaded = new Array();
	/* --- URL des Original Bildes rausfinden --- */
	var map = links[0].parentNode;
	var allImages = document.getElementsByTagName('img');
	for(var z=0;z<allImages.length;z++){
		if(allImages[z].useMap == "#"+map.id)
		{
			originalImg = allImages[z];
		}
	}
	baseUrl = originalImg.src.substring(0,originalImg.src.lastIndexOf("/"));
	/* --- */
	for(var i=0;i<links.length;i++)
	{
		links[i].onmouseover = function()
		{
			var thisChangeImg = baseUrl+"/"+this.id+".gif";
			MM_swapImage(originalImg.id,'',thisChangeImg,1);
		}
		links[i].onmouseout = function()
		{
			MM_swapImgRestore();
		}
		/* --- Preloader --- */
		MM_preloadImages(baseUrl+"/"+links[i].id+".gif");
		/* document.preloaded[i] = new Image;
		document.preloaded[i].src = changeImg; */
	};
};