/*
==================================================
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(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

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

/*
==================================================
Cockie jquery
==================================================
*/
jQuery.cookie = function (key, value, options) {
 
 // key and at least value given, set cookie...
 if (arguments.length > 1 && String(value) !== "[object Object]") {
  options = jQuery.extend({}, options);
 
  if (value === null || value === undefined) {
   options.expires = -1;
  }
 
  if (typeof options.expires === 'number') {
   var days = options.expires, t = options.expires = new Date();
   t.setDate(t.getDate() + days);
  }
 
  value = String(value);
 
  return (document.cookie = [
   encodeURIComponent(key), '=',
   options.raw ? value : encodeURIComponent(value),
   options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
   options.path ? '; path=' + options.path : '',
   options.domain ? '; domain=' + options.domain : '',
   options.secure ? '; secure' : ''
  ].join(''));
 }
 
 // key and possibly options given, get cookie...
 options = value || {};
 var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
 return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
 

/*
==================================================
Default-JS von Typo3
==================================================
*/
var browserName=navigator.appName;var browserVer=parseInt(navigator.appVersion);var version="";var msie4=(browserName=="Microsoft Internet Explorer"&&browserVer>=4);if((browserName=="Netscape"&&browserVer>=3)||msie4||browserName=="Konqueror"||browserName=="Opera"){version="n3";}else{version="n2";}
function blurLink(theObject){if(msie4){theObject.blur();}}
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,-1);}

/*
==================================================
Element-Klasse hinzufügen/entfernen 100924  (Wolfgang)
==================================================

Elementen soll eine Klasse hinzugefügt werden können,
ohne bestehende Klassen zu überschreiben oder den Klassennamen zu wiederholen.
*/

function addClass(elem, str)
{
	var regExS = new RegExp("\\" + str + "\\b"); // -> /\str\b/ -> Sucht str als einzelnes Wort
	if ( !elem.className || elem.className === "" || elem.className === " ")
	{
		elem.className = str;
	}
	else if (!regExS.test(elem.className))
	{
		elem.className += " " + str;
	}
}

function removeClass(elem, str)
{
	var regExS = new RegExp("\\" + str + "\\b","g");
	elem.className = elem.className.replace(regExS, "");
}



/*
==================================================
@ Zurückübersetzen 100924 (Wolfgang)
==================================================

Wenn zwecks Spamschutz im Html ein alternativer String für @ eingesetzt wird,
kann dieses Script den String wieder zurückübersetzen - so bleiben Bots ohne
js weiterhin ausgesperrt, 95% der Besucher sehen aber die echte E-Mail-Adresse

- der Ersatzstring sollte in einem del mit Klasse "schutz" liegen.
Das ist semantisch ziemlich korrekt und das Script muss nicht lange suchen
- das del sollte per css "text-decoration:none;" bekommen, sonst wird es durchgestrichen dargestellt
- Alle del.schutz werden durch @ (kodiert) überschrieben, sie sollten also für nichts anderes verwendet werden

Benötigt:
- "Executing JavaScript on page load" (addLoadEvent)
*/

function ersetzeAt()
{
	var dels = document.getElementsByTagName("del"), i, len;
	for (i=0, len=dels.length; i<len; i++)
	{
		if (dels[i].className === "schutz")
		{
			dels[i].innerHTML = "&#64;";
		}
	}
}

addLoadEvent(ersetzeAt);


/*
==================================================
Auf Attributunterstützung testen 100924  (Wolfgang)
==================================================

Testet, ob der aktuelle Browser das Attribut "attr" für das Element "elem" unterstützt.
Sinnvoll, um z.B. das originale Browserverhalten für placeholder nicht zu überschreiben.

- gibt true zurück, wenn das Attribut unterstützt wird, sonst false
*/

function elemSupportsAttribute(elem, attr)
{
	return attr in document.createElement(elem);
}



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

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 placeholder-Attribut ausgelesen
  und es wird nur gelöscht, wenn dieses gesetzt ist
- value sollte nicht vorbelegt werden, nur placeholder
- Passwortfelder werden ausgenommen - hier könnte man nur onfocus immer löschen
  (value von Passwortfeldern ist nicht prüfbar)
- .getAttribute("placeholder") ist notwendig, da das Attribut den betroffenen Browsern nicht bekannt ist
- wenn der Browser placeholder unterstützt und das Verhalten daher von selbst bietet (z.B. Safari), wird das js nicht ausgeführt

Benötigt:
- "Executing JavaScript on page load" (addLoadEvent)
- "Auf Attributunterstützung testen" (elemSupportsAttribute)
*/

function clearInput(inputElement)
{
	if (inputElement.value === inputElement.getAttribute("placeholder"))
  {
    inputElement.value = "";
  }
}

function fillInput(inputElement)
{
	if (inputElement.value === "")
  {
    inputElement.value = inputElement.getAttribute("placeholder");
  }
}

// Initialisierung:
// die richtigen input-Elemente werden bestimmt
// und onfocus- und onblur-Funktionen werden zugewiesen
function prepareInputs()
{
	if (elemSupportsAttribute("input", "placeholder"))
	{
		return;
	}
	var inputs = document.getElementsByTagName("input"), i, len, inputElement;
	for (i=0, len=inputs.length; i<len ;i++)
  {
		inputElement = inputs[i];
		if (inputElement.type != "password" && inputElement.getAttribute("placeholder") && inputElement.getAttribute("placeholder").length > 0)
		{
			inputElement.onfocus = function() {clearInput(this);};
			inputElement.onblur = function() {fillInput(this);};
			fillInput(inputElement);
		}
		/*else if (inputElement.type === "password")
		{
			inputElement.onfocus = function() {this.value="";};
			//inputElement.onblur = function() {fillInput(this);};
			//fillInput(inputElement);
		}*/
	}
}

function smoothMenu() {

	jQ('#menu-0 li').hover(
	  function() {
		//jQ(this).children('ul').show();
		//jQ(this).addClass("hover");
		jQ(this).children('ul').fadeIn(400);
	  },
	  function() {
		//jQ(this).children('ul').hide();
		//jQ(this).removeClass("hover");
		jQ(this).children('ul').fadeOut(400);
	  }
	);
jQ('#menu-0 li ul li').bind({
mouseenter: function(){
jQ(this).stop().animate({ backgroundColor: '#004B2D' }, 'slow');
},
mouseleave: function(){
jQ(this).stop(false,true).animate({ backgroundColor: '#ffffff' }, 'slow');
},
focusin: function(){
jQ(this).stop().animate({ backgroundColor: '#004B2D' }, 'slow');
},
focusout: function(){
jQ('#menu-0 li ul li').stop(false,true).animate({ backgroundColor: '#ffffff' }, 'slow');
}
});

		
		};
		
jQ('.col-aside .csc-textpic-image').hover(
	  function() {
		var element = jQ(this);
		var t = setTimeout(function() {
			jQ(element).find('.csc-textpic-caption').fadeIn('slow');
		}, 500);
		jQ(this).data('timeout', t);
	  },
	  function() {
	     clearTimeout(jQ(this).data('timeout'));
		jQ('.col-aside .csc-textpic-image').find('.csc-textpic-caption').fadeOut('slow');
	  }
	);


jQ('#top').click(function()
{
jQ('.col-content').scrollTo( 0, 800, { queue:true } );
/*
	jQ('.col-content').scrollTo(0, 800, 
	{
		easing: 'easeInOut'
	});
*/
});



jQ('#transbox-foot').click(function() {
    this.className += ' poked';
});

jQ('.inner').click(function() {
    this.className += ' poked';
});


var TimeToFade = 1000.0;

function fade(eid)
{
  var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }
   
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  }  
}
/*
==================================================
Coda-Slider
==================================================
*/

jQ(window).bind("load", function() {
jQ("div#slider1").codaSlider()
// jQuery(“div#slider2?).codaSlider()
// etc, etc. Beware of cross-linking difficulties if using multiple sliders on one page.
});

function closeWarning() {
	jQ('#_d').click(
		function () {
		$.cookie('weitzBrowser', 'ignored', { expires: 7 });
		jQ('#_l').remove();
		jQ('#_d').remove(); 
    });
	}
	


	


/*
==================================================
AddLoadEvent
==================================================
*/
addLoadEvent(closeWarning);
addLoadEvent(smoothMenu);
addLoadEvent(prepareInputs);

jQuery(document).ready(function() {
	if (jQ('#bgslide div').size()>= 1) initialize();
}
);
