<!--
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
// detect browser for specific stylesheet settings
if (navigator.userAgent.indexOf("Apple") > 0){ 
	document.write("<LINK REL=\"stylesheet\" HREF=\"../../css/mac.css\" TYPE=\"text/css\">");
} else {
	document.write("<LINK REL=\"stylesheet\" HREF=\"../../css/nonMac.css\" TYPE=\"text/css\">");
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
//
// initalize gallery fileNames
//
//this._fileArray = new Array();
//initFileArray();
//
// load XML config file
//
function initFileArray() {
	document.getElementById("penLabel").innerHTML = '<b>load XML<\/b>';
	if (window.ActiveXObject){
		document.getElementById("penLabel").innerHTML = '<b>load XML for IE<\/b>';
		var j = 0;
		var nameArray = new Array();
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
  		xmlDoc.onreadystatechange=verify;
		xmlDoc.load("../../config/galleries.xml");
		var gallery_entries = xmlDoc.getElementsByTagName(this._xmlElement)[0].childNodes;
		for (i=0; i < gallery_entries.length; i++) {
			if(gallery_entries[i].tagName == "image"){
				nameArray[j] = gallery_entries[i].firstChild.nodeValue;
				j++;
			}
		}
		copyFileArray(nameArray);
		document.getElementById("penLabel").innerHTML = 'IS: nameArray: ' + nameArray;
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument){
		document.getElementById("penLabel").innerHTML = '<b>load XML for FireFox<\/b>';
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.load("../../config/galleries.xml");
        xmlDoc.onload = evaluateNodes;
	}
	// no good browser found
	else{
		document.getElementById("penLabel").innerHTML = '<b>Bad browser!<\/b>';
		if (!xmlDoc.load("../../config/galleries.xml")){
			document.getElementById("penLabel").innerHTML = '<b>Failed to load XML data source!<\/b>';
		}
	}
}
function verify()
{
  // 0 Object is not initialized
  // 1 Loading object is loading data
  // 2 Loaded object has loaded data
  // 3 Data from object can be worked with
  // 4 Object completely initialized
  if (xmlDoc.readyState != 4)
  {
    return false;
  }
}
var xmlElement = this._xmlElement;
//
// extract gallery image files for all gallery screens from XML configuration
//
function evaluateNodes() {
	//read config from XML file
	var j = 0;
	var nameArray = new Array();
  	var gallery_entries = xmlDoc.getElementsByTagName(xmlElement)[0].childNodes;
	for (i=0; i < gallery_entries.length; i++) {
		if(gallery_entries[i].tagName == "image"){
			nameArray[j] = gallery_entries[i].firstChild.nodeValue;
			j++;
		}
	}
	copyFileArray(nameArray);
	document.getElementById("penLabel").innerHTML = '<b>FF: nameArray: ' + nameArray + '<\/b>';
}

function copyFileArray(ar) {
	this._fileArray = ar;
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
// variables for initalizing the gallery grid
this._pageMode="small"; //
this._isSelected=0;
this._previousSelected=-1;

// initialize gallery images
function initGrid() {
	//document.getElementById("penLabel").innerHTML = '<b>Grid Init: fileArray: ' +  this._fileArray + '<\/b>';
	var cell = document.getElementById(this._isSelected);
	cell.style.backgroundColor = "rgb(131,132,131)";
	var imageName = this._fileArray[this._isSelected] + "_small.jpg";
	loadImage(imageName);
	image = document.getElementById("smallImage");
   	image.src = "./gallery/" + imageName;
	for (i=this._fileArray.length;i<36; i++) {
		cell = document.getElementById(i);
		cell.style.backgroundColor = "rgb(240,240,240)";
	}
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
//
// when resizing browser window, position main layer in center of screen
//
function correctPosition(layer) {
	var topPosition = document.getElementById(layer).offsetTop;
	var leftPosition = document.getElementById(layer).offsetLeft;
	if (topPosition < 0) {
		document.getElementById(layer).style.top = '300px';
	} else {
		document.getElementById(layer).style.top = '50%';
	}
	if (leftPosition < 0) {
		document.getElementById(layer).style.left = '477px';
	} else {
		document.getElementById(layer).style.left = '50%';
	}
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
//
// fill content of homepage screen depending on Browser type. Mac does not understand wmode, thus special HTML is inserted for flash
// redirect to special subsite when mobile tries to access page
//
function initLayers() {
	
	//Initialize our user agent string to lower case.
	var uagent = navigator.userAgent.toLowerCase();
	// old: var browser = window.navigator.userAgent;
	var isMobile = false;
	if (uagent.search("blackberry") > -1 ||
		uagent.search("android") > -1 ||
		uagent.search("ipod") > -1 ||
		uagent.search("iphone") > -1 )
	{
		isMobile = true;
	}
	if(isMobile) {
		   window.location= './mobile/index.html';
	}
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
//
// initialize navigation highlighting depending on active top- and subnavigation
//
function initNav() {
	// 5 top navigation entries
	topNavArray = new Array("top1","top2","top3","top4","top5");
	// 4 bars between top navigation entries
	topBarArray = new Array("bar1","bar2","bar3","bar4");
	// 6 subnavigation entries (note: currently only 3 are used)
	subNavArray = new Array("sub1","sub2","sub3","sub4","sub5","sub6");
	// init top naviuation
	for(i=0;i<topNavArray.length;i++) {
	 	if(topNavArray[i] != this._topNavActive) // active top navigation entry is define in each page HTML
			if (document.getElementById(topNavArray[i])) {
				setOpacity(document.getElementById(topNavArray[i]), 50);
			}			
	}
	//init bars in top nav
	var barCode = this._topNavActive.substring(3,4);
	for(i=0;i<topBarArray.length;i++) {
		if (i != barCode-1 && i != barCode-2) 
			if (document.getElementById(topBarArray[i])) 
				setOpacity(document.getElementById(topBarArray[i]), 50);
	}
	//init sub nav
	for(i=0;i<subNavArray.length;i++) {
		if(subNavArray[i] != this._subNavActive) // active sub navigation entry is define in each page HTML
			if (document.getElementById(subNavArray[i]))
				setOpacity(document.getElementById(subNavArray[i]), 50);
	}
}

//
// lighten navigation entries in case not active
//
function fadeOutNav(navId,opacity) {
  if (document.getElementById(navId) && navId != this._subNavActive && navId != this._topNavActive) {
    obj = document.getElementById(navId);
    if (opacity > 50) {
      setOpacity(obj, opacity);
      opacity -= 15;
      window.setTimeout("fadeOutNav('"+navId+"',"+opacity+")", 50);
    }
  }
}

//
// darken navigation entries in case selected
//

function fadeInNav(navId,opacity) {
  if (document.getElementById(navId) && navId != this._subNavActive && navId != this._topNavActive) {
    obj = document.getElementById(navId);
    if (opacity <= 100) {
      setOpacity(obj, opacity);
      opacity += 15;
      window.setTimeout("fadeInNav('"+navId+"',"+opacity+")", 50);
    }
  }
}

//
// lightening and darken of navigation entries is done via opacity of images
//
function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity; // firefox flicker workaround
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
// dynamic beahviour of gallery layers
function onMouseOverHandler(id) {
	var cell = document.getElementById(id);
	if(this._fileArray[id]) { // file exists
		if(this._pageMode=="small") {
			if(this._isSelected != id) {
				colorFader(id,"makeDark");
				cell.className ="pointer";
				for (i=0; i<this._fileArray.length; i++) {
					if (i != id) {
						colorFader(i,"makeLight");
						//cell = document.getElementById(i);
						//cell.className ="grey";
					}
				}
				swapSmallImage(id);
				this._isSelected=id;
			}
		} else if(this._pageMode=="large") {
			colorFader(id,"makeDark");
			//cell.className ="blue";
			for (i=0; i<this._fileArray.length; i++) {
				if (i != id && i!= this._isSelected) {
					colorFader(i,"makeLight");
					//cell = document.getElementById(i);
					//cell.className ="grey";
				}
			}
		}	
	}
}

function onMouseOutHandler(id) {
	if (id!= this._isSelected && id < this._fileArray.length) {
		colorFader(id,"makeLight");
	}
}

function onClickHandler(id) {
	var cell = document.getElementById(id);
	if(this._fileArray[id]) { // file exists
		showLargeLayer(id);
		if(this._pageMode == "small") {
				this._pageMode="large";
		} else if(this._pageMode == "large") {
			for (i=0; i<this._fileArray.length; i++) {
				if (i != id) {
					colorFader(i,"makeLight");
					//cell = document.getElementById(i);
					//cell.className ="grey";
				}
			}
			if(this._isSelected != id) {
				swapSmallImage(id);
			}
		}
		this._isSelected=id;
	}
}

function showLargeLayer(id) {
	var typeDetect = this._fileArray[id];
	type = typeDetect.substring(typeDetect.length-5,typeDetect.length);
	if(type == "flash") {
		document.getElementById("largeImages").innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,29,0" align="bottom" width="562" height="450" ><param name="movie" value=".\/gallery\/' + typeDetect + '.swf' + '" \/>   <param name="quality" value="high" \/><param name="LOOP" value="true" \/><param name="wmode" value="transparent" \/><embed src=".\/gallery\/' + typeDetect + '.swf' + '" width="562" height="450" loop="true" quality="high" pluginspage="http:\/\/www.macromedia.com\/go\/getflashplayer" type="application\/x-shockwave-flash" wmode="transparent"><\/embed><\/object>';
		document.getElementById("largeImagesFrame").style.visibility = 'visible';
		document.getElementById("largeImages").style.visibility = 'visible';
	} else {
		var imageName = this._fileArray[id] + "_large.jpg";
		loadImage(imageName);
		document.getElementById("largeImages").innerHTML = '<img src="./gallery/' + typeDetect + '_large.jpg' + '" alt="' + typeDetect + '" name="largeImage" width="562" height="450" id="largeImage" \/>';
		document.getElementById("largeImagesFrame").style.visibility = 'visible';
		document.getElementById("largeImages").style.visibility = 'visible';
	}
}

function loadImage(imageName) {
	myImage=new Image();
	myImage.src="./gallery/" + imageName;
}

function swapSmallImage(id) {
	var imageName = this._fileArray[id] + "_small.jpg";
	loadImage(imageName);
	image = document.getElementById("smallImage");
	//alert("./gallery/" + imageName);
   	image.src = "./gallery/" + imageName;
}

function closeHandler() {
	document.getElementById("largeImages").style.visibility = 'hidden';
	document.getElementById("largeImagesFrame").style.visibility = 'hidden';
	this._pageMode="small";
	for (i=0; i<this._fileArray.length; i++) {
		cell = document.getElementById(i);
		cell.className ="grey";
	}
	initGrid();
}

hexa = new Array(16);
this._tableCell;
this._inFade=false;

for(var i = 0; i < 10; i++) hexa[i] = i;
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";

function hex(i) {
	if (i < 0) return "00";
	else if (i > 255) return "ff";
	else return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function colorFader(id,mode) {
	//alert(id + ", " + mode);
	var sr,sg,sb,er,eg,eb,step,at;
	var cell = document.getElementById(id);
	if(mode=="makeLight") {
		er = 192;
		eg = 191;
		eb = 191;
	}
	if(mode=="makeDark") {
		er = 131;
		eg = 132;
		eb = 131;
	}
	var rgb = cell.style.backgroundColor;
	if (rgb.substr(0,1)=="#") { // for IE !!!
		sr = parseInt(rgb.substr(1,2),16);
		sg = parseInt(rgb.substr(3,2),16);
		sb = parseInt(rgb.substr(5,2),16);
		//alert("drin: rgb: " + rgb + ", values: " + values);
	} else {
		var values = new Array();
		values = rgb.substr(4,rgb.length-5).split(",");
		sr = values[0];
		sg = values[1];
		sb = values[2];
	}
	step=10;at=1;
	setBg(id, sr, sg, sb, er, eg, eb, step, at);
}

function setBg(id, sr, sg, sb, er, eg, eb, step, at) {
	//var cell = document.getElementById(id);
	//alert("sr: " + sr + ", step: " + step + ", at: " + at + ", er: " + er + ", result: " + (sr * ((step-at)/step)  + er * (at/step)));
	setbgColor(id,
		parseInt(sr - at*(sr-er)/step),
		parseInt(sg - at*(sg-eg)/step),
		parseInt(sb - at*(sb-eb)/step));
	at++;
	if (at<=step) setTimeout("setBg(" + id + ", " + sr + ", " + sg + ", " + sb + ", " + er + ", " + eg + ", " + eb + ", " + step + ", " + at + ")",1);
}

function setbgColor(id, r, g, b) {
	var current_cell = document.getElementById(id);
	//alert("r: " + r + ", g: " + g + ", b: " + b);
	var hr = hex(r); var hg = hex(g); var hb = hex(b);
	current_cell.style.backgroundColor = "#"+hr+hg+hb;
}

///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
// validation for kontakt form
function validate(frm) {
	// reset colors in case previos validation failed
	//frm.name.style.backgroundColor = "rgb(131,132,131)";
	//frm.email.style.backgroundColor = "rgb(131,132,131)";
	frm.email.style.backgroundColor = "#FFFFFF";
	frm.name.style.backgroundColor = "#FFFFFF";
	frm.captcha.style.backgroundColor = "#FFFFFF";
    //
    // Check the Email field is valid
    //
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(frm.email.value)) {
        alert("Bitte geben Sie eine gültige email Adresse an");
		frm.email.style.backgroundColor = "#F15D22";
        frm.email.focus();
        return false;
    }
    //
    // Check the Name field to see if any characters were entered
    //
    if (frm.name.value.length == 0 || frm.name.value == " name")
    {
        alert("Bitte geben Sie Ihren Namen an");
		frm.name.style.backgroundColor = "#F15D22";
        frm.name.focus();
        return false;
    }
    //
    // Check Captcha
    //
    if (frm.captcha.value != "PARTS")
    {
        alert("Der eingegebene Sicherheitscode ist falsch! Bitte versuchen Sie es noch einmal.");
		frm.captcha.style.backgroundColor = "#F15D22";
        frm.captcha.focus();
        return false;
    }
	alert("Herzlichen Dank für Ihre Anfrage");
}

//-->
