// Center canvas

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}

function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function zentriere(id) {
 document.getElementById(id).style.left = ((f_clientWidth() - 720) / 2) + "px";
 document.getElementById(id).style.top = ((f_clientHeight() - 520) / 2) + "px";
}

// --- Menu show ---

var curmenu;
var preImages = new Array();
var timerID;

function show(id) {
 if (document.getElementById(curmenu)) {document.getElementById(curmenu).style.display="none";}
 if (document.getElementById(id)) {document.getElementById(id).style.display="block";}
 curmenu = id;
}

// --- MouseEnter & MouseLeave ---

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

// --- Fading ---

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
    //if an element is invisible, make it visible, else make it ivisible
    if(document.getElementById(id).style.opacity == 0) {
        opacity(id, 0, 100, millisec);
    } else {
        opacity(id, 100, 0, millisec);
    }
}

function blendimage(divid, imageid, imagefile, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //set the current image as background
    document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";

    //make image transparent
    changeOpac(0, imageid);

    //make new image
    document.getElementById(imageid).src = imagefile;

    //fade in image
    for(i = 0; i <= 100; i++) {
        setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
        timer++;
    }
}

function currentOpac(id, opacEnd, millisec) {
    //standard opacity is 100
    var currentOpac = 100;

    //if the element has an opacity set, get it
    if(document.getElementById(id).style.opacity < 100) {
        currentOpac = document.getElementById(id).style.opacity * 100;
    }

    //call for the function that changes the opacity
    opacity(id, currentOpac, opacEnd, millisec)
}

// --- Inhalte ändern ---
// Die Bilder sind von 0 bis NumberOfImages durchnummeriert
// Für jede Kategorie gibt es offset & catmax

 offset = 0;
 catmax = 10;
 imagenum = 0;

 currentDiv = "aktuell";

function changePicture(imagename) {
   // Aktuelles Div -> Opacity=0
   changeOpac(0, 'picture');
   document.bild.src="img/leer.gif";

   // neue Bildnummer ermitteln
   imagenum = offset + (imagenum - offset + 1) % catmax;
   checkImg();
   // newPicture = "img/img" + imagenum + ".jpg";
   document.bild.src = preImages[imagenum].src;

   // Fade-In
   opacity('picture', 0, 100, 500);
}

function changeDiv(id) {
   // Aktuelles Div -> Opacity=0
   if (currentDiv != "anfahrt") {changeOpac(0, currentDiv);}
   document.bild.src="img/leer.gif";

   // Aktuelles Div auf 'hidden' setzen
   document.getElementById(currentDiv).style.visibility = "hidden";

   // Falls Bild-Div, Bild initialisieren
   if (id == "picture") {
      imagenum = offset;
      checkImg();
      // newPicture = "img/img" + imagenum + ".jpg";
      document.bild.src = preImages[imagenum].src;
   }

   // Neues Div auf 'visible' setzen
   currentDiv = id;
   if (currentDiv != "anfahrt") {changeOpac(0, currentDiv);}
   document.getElementById(currentDiv).style.visibility = "visible";

   // Fade-In
   if (currentDiv != "anfahrt") {opacity(currentDiv, 0, 100, 500);}
}

function checkImg() {
   document.all['loading'].style.visibility = "visible";
   if (preImages[imagenum] == null) {
      preImages[imagenum] = new Image();
      preImages[imagenum].src = "img/img" + imagenum + ".jpg";
   }
   checkLoad();
   document.getElementById('loading').style.visibility = "hidden";
}

function checkLoad() {
   if (preImages[imagenum].complete == false) {
      timerID = setTimeout("checkLoad()",100);
   }
}

function loadImages() {
   var i;
   var ImgNum = 98;
   var currCount = 0;

   for (i = 0; i < ImgNum; i++) {
       preImages[i] = new Image();
       preImages[i].src = "img/img" + i + ".jpg";
   }
}

// Google-Map

//<![CDATA[

function loadMap() {
  if (GBrowserIsCompatible()) {
     var map = new GMap2(document.getElementById("map"));
     map.addControl(new GSmallMapControl());
     map.setCenter(new GLatLng(51.227058,6.804571), 9);
     map.addOverlay(new GMarker(new GLatLng(51.227058,6.804571)));
     karte = map;
  }
}

//]]>

