// http://www.quirksmode.org/js/detect.html
// liste von thias stark gekuerzt -- war nur an firefox auf mac interessiert!
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		}
	]

};
BrowserDetect.init();

// CSS Browser Selector   v0.2.3
// Documentation:         http://rafael.adm.br/css_browser_selector
// License:               http://creativecommons.org/licenses/by/2.5/
// Author:                Rafael Lima (http://rafael.adm.br)
// Contributors:          http://rafael.adm.br/css_browser_selector#contributors
var css_browser_selector = function() {
	var 
		ua = navigator.userAgent.toLowerCase(),
		is = function(t){ return ua.indexOf(t) != -1; },
		h = document.getElementsByTagName('html')[0],
		b = (!(/opera|webtv/i.test(ua)) && /msie (\d)/.test(ua)) ? ((is('mac') ? 'ieMac ' : '') + 'ie ie' + RegExp.$1)
			: is('gecko/') ? 'gecko' : is('opera') ? 'opera' : is('konqueror') ? 'konqueror' : is('applewebkit/') ? 'webkit safari' : is('mozilla/') ? 'gecko' : '',
		os = (is('x11') || is('linux')) ? ' linux' : is('mac') ? ' mac' : is('win') ? ' win' : '';
	var c = b+os+' js';
	h.className += h.className?' '+c:c;
}();

//toggelt die sichtbarkeit des jeweiligen objekts  display INLINE/none
function sichtbar(objekt){
	if (document.getElementById(objekt).style.display != 'inline'){
		document.getElementById(objekt).style.display= 'inline';
	} else {
		document.getElementById(objekt).style.display= 'none';
	}
}
// oeffnet ein neues Browserfenster und positioniert es in der mitte des bildschirms
// KEINE statuszeile, groesse NICHT veraenderbar
var neuesFenster = null;
function neuesFensterOeffnen(meinURL,fensterbreite,fensterhoehe) {
	if (!neuesFenster || neuesFenster.closed) {
		var links = (screen.availWidth/2) - (fensterbreite/2);
		var oben = (screen.availHeight/2) - (fensterhoehe/2);
		var fensterParameter = "top=" + oben +",left=" + links + ",height=" + fensterhoehe +",width=" + fensterbreite + ",status=no,resizable=no";
		neuesFenster = window.open(meinURL,"neuesFenster",fensterParameter);
	} else {
		neuesFenster.focus();
		neuesFenster.location.href=meinURL;
	}
}
// StyleSwitcher functions written by Paul Sowden
// http://www.idontsmoke.co.uk/ss/
// http://www.alistapart.com/stories/alternate/
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

// http://www.maratz.com/blog/archives/2006/05/22/smart-back-to-top-link/
// top-scroll-link wird nur sichtbar, wenn das browser-fenster zu klein ist...
var d = document;
function topLinksichtbar(){
	var viewport_height = (self.innerHeight) ? self.innerHeight : (document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : (document.body) ? document.body.clientHeight : 0;
	var page_height = d.getElementsByTagName('body')[0].offsetHeight;
	if (!document.getElementById('scrollTop')) return false;
	var ttl = d.getElementById('scrollTop');
	if (page_height < viewport_height) ttl.style.visibility = 'hidden';
}
addLoadEvent(topLinksichtbar);

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

/* 
wenn das browserFenster > 800 ist, wird
	body.hg fixiert
	menu.pos fixiert
	der text-resizer rechts vom inhalt gezeigt
	
	dies geschieht durch austauschen bzw. einfuegen spez. "class"
	diese sind in "style.css" definiert
*/

//text resizer zuerst unsichtbar machen
document.write("<style type='text/css'>#menuRechtsUnten {visibility:hidden;} </style>"); 
addLoadEvent(browserBreite);
function browserBreite(){
	var browserWidth = getBrowserWidth();
	if (!document.getElementsByTagName) return false;
	//nur wenn browserFenster gross genug ist
	if (browserWidth > 800){
		// firefox bis 2 am mac hat grosse probleme mit dem fixierten menue
		// deswegen nehme ich dies hier raus!
		if ((BrowserDetect.OS == "Mac") && (BrowserDetect.browser == "Firefox") && (BrowserDetect.version <= 2.5)){
			//alert ("firefox 1.5 mac");
		} else {
			var body = document.getElementsByTagName('body')[0];
			body.className = 'hgFixed'; //body.hg wird fixiert
			classeAendern('menu','fixed'); //menu.pos. fixiert, hier liegen die PROBLEME bei firefox/mac!
		}
		// das soll bei allen browsern stattfinden
		classeAendern('menuRechtsUnten','grossScreen'); // textResizer rechts von inhalt positioniert
	}
	if (!document.getElementById('menuRechtsUnten')) return false;
	var menuRechtsUnten= document.getElementById('menuRechtsUnten');
	menuRechtsUnten.style.visibility = 'visible'; // text resizer wieder sichtbar machen
}

// http://www.themaninblue.com/experiment/ResolutionLayout/
function getBrowserWidth(){
	if (window.innerWidth){
		return window.innerWidth;
	} else if (document.documentElement && document.documentElement.clientWidth != 0){
		return document.documentElement.clientWidth;	
	} else if (document.body){
		return document.body.clientWidth;
	}		
		return 0;
}

// dom scripting. s.200
function classeAendern(element, wert){
	if (!document.getElementById) return false;
	if (!document.getElementById(element)) return false;
	var el= document.getElementById(element);
	el.className = wert;
}

// image fadeIn
// http://clagnut.com/sandbox/imagefades/
document.write("<style type='text/css'>#thephoto {visibility:hidden;} </style>");

addLoadEvent(initImage);
function initImage() {
	imageId = 'thephoto';
	if (!document.getElementById(imageId)) return false;
	image = document.getElementById(imageId);
	setOpacity(image, 0);
	image.style.visibility = 'visible';
	fadeIn(imageId,0);
}

function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
  
	// 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;
}

function fadeIn(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity <= 100) {
			  setOpacity(obj, opacity);
			  opacity += 10;
			  window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100); //umso kuerzer, um so schneller
		}
	}
}