/*
==================================================
Style-Switcher 090128 (Paul Sowden) 
==================================================
-> http://www.alistapart.com/stories/alternate 

090615 - Leicht geändert (window.onload) (Wolfgang)
*/

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) {
//function oldWindowOnload() {
  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);

//addLoadEvent(oldWindowOnload);


/*
==================================================
Executing JavaScript on page load 060528 (Simon Willison)
==================================================
-> http://simonwillison.net/2004/May/26/addLoadEvent/

Hiermit können beliebig viele Funktionen beim "window.onload" aufgerufen werden
ohne dass ein vorher definiertes window.onload überschrieben wird.

- addLoadEvent einfach als erste Funktion einbinden
- Funktionen per addLoadEvent(Funktionsname) dem "window.onload" hinzufügen
  anstatt direkt per window.onload=Funktionsname;
*/

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



/*
==================================================
Eingabefelder leeren 090107 (Wolfgang)
==================================================

Das Script löscht auf focus den Standardinhalt von (normalen) Eingabefeldern 
und setzt ihn wieder ein, wenn das Feld nach Verlassen leer ist.

- der Standardwert wird aus dem alt-Attribut ausgelesen 
  und es wird nur gelöscht, wenn dieses gesetzt ist 
- sinnvollerweise sollte alt den selben (Standard-)Wert wie value haben
*/

function inputleeren(inputelement) {
if (inputelement.value==inputelement.alt) inputelement.value="";
}

function inputfuellen(inputelement) {
if (inputelement.value=="") inputelement.value=inputelement.alt;
}

// Initialisierung: 
// die richtigen input-Elemente werden bestimmt 
// und onfocus- und onblur-Funktionen werden zugewiesen
function prepareinputs() {
var inputs = document.getElementsByTagName("input");
for (var i=0;i<inputs.length;i++) {
	/*inputs[i].alt = inputs[i].value*/
	if (inputs[i].type == "text" && inputs[i].alt.length > 0) {
		inputs[i].onfocus = function() {inputleeren(this);};
		inputs[i].onblur = function() {inputfuellen(this);};
		}
	}
}

// addLoadEvent() wird unter "Executing JavaScript on page load" definiert
addLoadEvent(prepareinputs);
// Alternative (überschreibt aber andere window.onload-Definitionen):
// window.onload=prepareinputs; 

// Für GoogleMaps
if (typeof makeMap == 'function'){
	addLoadEvent(makeMap);
}

/*
==================================================
target="_blank" für pdfs 090511 (Wolfgang)
==================================================

Sucht nach Links, deren href auf ".pdf" endet und fügt target="_blank" hinzu.
*/

function addTargetBlank(pdflink){
	pdflink.target="_blank";
	}

function checkPdfLinks(){
	var links = document.getElementById("main").getElementsByTagName("a");
	for (var i=0; i<links.length; i++){
		if (links[i].href.indexOf(".pdf", links[i].href.length-4) > -1 || links[i].href.indexOf(".PDF", links[i].href.length-4) > -1){
			addTargetBlank(links[i]);
			}
		}
	}

addLoadEvent(checkPdfLinks);



/*
==================================================
typo3 4.2.5 Standardfunktion (offset=3)
==================================================

entschlüsselt die typo3 eigene Mailverschlüsselung
*/

function decryptCharcode(n,start,end,offset){n=n+offset;if(offset>0&&n>end){n=start+(n-end-1);}else if(offset<0&&n<start){n=end-(start-n-1);}
return String.fromCharCode(n);}
function decryptString(enc,offset){var dec="";var len=enc.length;for(var i=0;i<len;i++){var n=enc.charCodeAt(i);if(n>=0x2B&&n<=0x3A){dec+=decryptCharcode(n,0x2B,0x3A,offset);}else if(n>=0x40&&n<=0x5A){dec+=decryptCharcode(n,0x40,0x5A,offset);}else if(n>=0x61&&n<=0x7A){dec+=decryptCharcode(n,0x61,0x7A,offset);}else{dec+=enc.charAt(i);}}
return dec;}
function linkTo_UnCryptMailto(s){location.href=decryptString(s,3);}




