/*
==================================================
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);


/*
==================================================
Counter (Wolfgang)
==================================================

Ben�tigt jQuery
*/
function counterOutput(container, diff, txt, interval)
{
  if (diff > 0)
  {
    var days = Math.floor(diff/(60*60*24));
    var hours = Math.floor(diff/(60*60)%24);
    var minutes = Math.floor(diff/(60)%60);
    var seconds = Math.floor(diff%60);
    
    if(days <= 9) days= '0'+days;
    if(hours<= 9) hours= '0'+hours;
    if(minutes<= 9) minutes= '0'+minutes;
    if(seconds<= 9) seconds= '0'+seconds;
    
    txt = txt.replace(/%d/g, days);
    txt = txt.replace(/%h/g, hours);
    txt = txt.replace(/%m/g, minutes);
    txt = txt.replace(/%s/g, seconds);
    $(container).html(txt);
  }
  else 
  {
    $(container).removeClass('counter-running').addClass('counter-stopped');
    clearInterval(interval);
  }
}

function prepareCounter()
{
  $('.time-counter').each( function()
  {
    var tt = $(this).data('targetdate')
    var ct = $(this).data('curdate')
    var daytimeArray = tt.split(' ');
    var dayArray = daytimeArray[0].split('.')
    var timeArray = daytimeArray[1].split(':')
    var target = new Date(dayArray[2],dayArray[1]-1,dayArray[0],timeArray[0],timeArray[1],0,0);
    var diffseconds = target.getTime()/1000 - ct;
    var that = this;
    var txt = $(this).html();
    var interval = setInterval(function()
      {
        diffseconds -= 1;
        counterOutput(that, diffseconds, txt, interval);      
      }, 1000)
    counterOutput(that, diffseconds, txt, interval);
    $(this).addClass('counter-running');
  });
}
addLoadEvent(prepareCounter);


/*
==================================================
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);}


