//----------------------------
// Layersniffer
//----------------------------

if (navigator.appName == "Netscape") {
		layerRef="document.layers";
		styleSwitch="";
		layerPosX=".left";
		layerPosY=".top";
}else{
		layerRef="document.all";
		styleSwitch=".style";
		layerPosX=".posLeft";
		layerPosY=".posTop";
}

bVers = "noLayer";
if (document.getElementById) 	bVers = "ns6";
if (document.all) 				bVers = "ie4";
if (document.layers) 			bVers = "ns4";


//----------------------------------
// Img-Swap innerhalb Layern
//----------------------------------
function imgSwapLayer(layer, name, imgsrc) {
	
	if (document.images) {
		if ( document.getElementById ){						
			eval('document.getElementById("'+name+'").src="'+imgsrc+'"');			
		} else {	//nur nn4	
			eval(layerRef+'["'+layer+'"].document.'+name+'.src="'+imgsrc+'"');
		}
	}	
}

//----------------------------------
// Layer ein-/ausschalten
//----------------------------------
function showLayer(layername){	
	if (bVers == "ns6"){
		eval('document.getElementById("'+layername+'").style.visibility="visible"');
	} else if (bVers != "noLayer") {		
		eval(layerRef+'["'+layername+'"]'+styleSwitch+'.visibility="visible"');		
	}
}
function hideLayer(layername){	
	if (bVers == "ns6"){
		eval('document.getElementById("'+layername+'").style.visibility="hidden"');
	} else if (bVers!= "noLayer") {
		eval(layerRef+'["'+layername+'"]'+styleSwitch+'.visibility="hidden"');
	}
}
function moveLayerTop(layername, top){
	// notbremse, falls der abstand nicht ermittelt werden konnte (alte opera)
	if (isNaN(top)) return;
	if (bVers == "ns6"){		
		eval('document.getElementById("'+layername+'").style.top='+(top-2));
	} else if (bVers!= "noLayer") {		
		if (eval(layerRef+'["'+layername+'"]'+styleSwitch+'.style')){			
			eval(layerRef+'["'+layername+'"]'+styleSwitch+'.style.top='+(top-2));
		} else {			
			eval(layerRef+'["'+layername+'"]'+styleSwitch+'.top='+(top-2));			
		}
	}
}

function bildLaden(name, normal, roll, status) {
 	bilder[name] = new Array(3);
 	bilder[name]["normal"] = rootWeb+normal;
 	bilder[name]["roll"] = new Image();
 	bilder[name]["roll"].src = rootWeb+roll;
	bilder[name]["name"] = name;
	bilder[name]["status"] = status;
}

function over (name){
	eval("document."+name+".src=bilder['"+name+"']['roll'].src");
	//eval("status=bilder['"+name+"']['status']");
	return true;
}

function out (name){
	eval("document."+name+".src=bilder['"+name+"']['normal']");
	//status="";
	return true;
}


// begrenzung von zeichen auf maximal-laenge
function checkMax(field, max) {
	var fieldLength = field.value.length;
	if (fieldLength>max) {
		field.value = field.value.substr(0,max);
		alert('Es sind max. '+max+' Zeichen erlaubt.');
	}
}





// onblur:
// wenn das textfeld gefuellt ist, entsprechender radiobutton selektieren
function checkIfFilled(inputref, radioname, radiovalue){
	var i, ref2group;
	if (inputref.value.length>0){		
		ref2group=eval("inputref.form."+radioname);
		for (i=0; i<ref2group.length; i++){			
			if (ref2group[i].value==radiovalue) ref2group[i].checked=true;
		}
	}
}

// onblur:
// wenn das textfeld gefuellt ist, entsprechender radiobutton selektieren
function checkIfSelected(inputref, radioname, radiovalue){
	var i, ref2group;
	if (inputref.options[inputref.selectedIndex].value.length>0){		
		ref2group=eval("inputref.form."+radioname);
		for (i=0; i<ref2group.length; i++){			
			if (ref2group[i].value==radiovalue){
				ref2group[i].checked=true;
				break;
			}
		}
	}
}


// ein textfeld loeschen
function clearTextField(inputref, textname){		
	eval("inputref.form."+textname+".value=''");
}

// ein textfeld loeschen
function resetPulldown(inputref, pulldownname){
	
	var i, ref2options;
	ref2options=eval("inputref.form."+pulldownname);
	for (i=0; i<ref2options.length; i++){					
		if ( (ref2options[i].value.length==0) || (ref2options[i].value==0) ){
			ref2options[i].selected=true;
			break;
		}
	}	
}



/* sticky footer */

/**
 * Prueft, ob der verwendete Browser Internet Explorer 6 oder aelter ist.
 * @return boolean true, wenn User Agent IE6 oder aelter ist, sonst false
 */
function isIE6OrLess(){
	var agt=navigator.userAgent.toLowerCase();
	var is_major = parseInt(navigator.appVersion);
	var is_minor = parseFloat(navigator.appVersion);
	var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	return (is_ie && (is_major == 4) && (agt.search(/msie [56]\./)!=-1) );
}

$(document).observe("dom:loaded", function() {
	
	// wenn wir mit nem normalen Browser hier sind, initialisiere
	// die dynamischen Funktionalitaeten der Seite
	if (!isIE6OrLess()) {
		
		// Füge dem body Klasse hinzu, damit im CSS zwischen JS und
		// Non-JS unterschieden werden kann
		$(document.body).addClassName('dynd');
		
		// initialisiere globales Overlay
		if ($('overlay')) 
			window.overlay = new Overlay($('overlay'));

		// initialisiere das Layer am Footer bei Klick auf Fingerstern
		if ($('layertrigger') && $('sternlayer')) {
			$('layertrigger').observe('click', function(event) {
				event.stop();
				if (overlay.show($('sternlayer'))) {
					$('sternlayer').down('h2.akm').writeAttribute('tabindex', "-1");
				}
			});
			
			$('sfooterlogo').observe('mouseover', function(event) {
				Effect.Queues.get('sfooter').each(function(effect) { effect.cancel(); });

				new Effect.Parallel([
						new Effect.Morph($('layertrigger').down("img"), {
							style: "width:142px;",
							sync: true
						}),
						new Effect.Morph($('sfooterlogo'), {
							style: "top:-20px;",
							sync: true
						})
					], {
						duration:0.5,
						delay:0.1,
						queue: {
							scope:'sfooter'
						}
					}
				);
			});
			
			$('sfooterlogo').observe('mouseout', function(event) {
				Effect.Queues.get('sfooter').each(function(effect) { effect.cancel(); });
				
				new Effect.Parallel([
						new Effect.Morph($('layertrigger').down("img"), {
							style: "width:75px;",
							sync: true
						}),
						new Effect.Morph($('sfooterlogo'), {
							style: "top:0px;",
							sync: true
						})
					], {
						duration:0.5,
						delay:0.1,
						queue: {
							scope:'sfooter'
						}
					}
				);
			});
		}
	}
});




var Overlay = Class.create({
	initialize: function(elm) {
		this.element = $(elm).hide();
		this.open = false;
		this.content = null;
		this.lastContent = null;
		
		this.element.observe('click', function(event) {
			event.stop();
			this.hide();
		}.bind(this));
	},
	show: function(content) {
		this.content = content;
		if (!this.open && this.content) {
			
			this.element.setStyle({
				height: ( Math.max($(document.viewport).getHeight(), $(document.body).getHeight()) )+"px"
			});
			
		
			this.element.appear({
				duration: 0.4,
				to:0.8,
				afterFinish: function() {
					this.open = true;
					document.fire("overlay:opened");
					
					if (this.content) {
						this.content.appear({duration:0.4});
					}
					
				}.bind(this)
			});
			
			this.lastContent = this.content;
			return true;
		}
		else if(this.content && this.content != this.lastContent) {
			this.lastContent.fade({duration:0.4});
			this.content.appear({duration:0.4});
			this.lastContent = this.content;
			return true;
		}
		else {
			return false;
		}
	},
	hide: function() {
		if (isIE6OrLess()) {
			return true;
		}
		
		if (this.open) {
			if (this.content) {
				this.content.fade({duration:0.4});
			}
			
			this.element.fade({
				duration: 0.4,
				afterFinish: function() {
					this.open = false;
					document.fire("overlay:closed");
				}.bind(this)
			});
			return true;
		}
		else {
			return false;
		}		
	}
});