//Flackern von CSS-Backgrounds im IE verhindern
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

window.thumbDelay=500;

window.onDOMReady = function(){
//Alle bilder mit class "thumb" bekommen on mouse over einen preview
	var x = document.getElementsByTagName('IMG');
	for (var i=0;i<x.length;i++){
		if(x[i].className=='thumb') { 
				x[i].onmouseover = showThumb;
			 	x[i].onmouseout = hideThumb;
			 	x[i].onmousedown = hideThumb;
			 	x[i].onmouseup = hideThumb;
		}	
		var elementFound = true;
	}
	if(elementFound){
		var dElem = document.createElement("div");
		 // Attribute setzen
		dElem.id = "enlarger";
		dElem.style.position	= "absolute";
		dElem.style.display	= "none";
		dElem.style.zIndex	= "1000";
		var iElem = document.createElement("img");
		iElem.id = "mediumImage";
		iElem.src = "spacer.gif";
		iElem.width = "100";
		iElem.height = "100";
		 // das <img> zum div hinzufuegen
		dElem.appendChild(iElem);
		 // den <div> zum body hinzufuegen
		document.getElementsByTagName('body')[0].appendChild(dElem);
	}

}

function getOffset(element) {
	//X, YPosition in Seite auslesen 
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
    } while (element);
    return [valueL, valueT];
}

function showThumb(){
	//onmouseOver SmallImage
	window.thumbDelay = window.thumbDelay || 0;
	var me = this;
	// include a timer
	var innerShow = function() {
		var offsetVals = getOffset(me);
		if(me.getAttribute('rel'))
			medSrc = me.getAttribute('rel').replace(/small/, "medium");
		else
			medSrc = me.src.replace(/small/, "medium");
		document.getElementById('mediumImage').src = medSrc;
		document.getElementById('enlarger').style.top = (offsetVals[1] - 67) + "px";
		document.getElementById('enlarger').style.left = (offsetVals[0] + 50) + "px";
		document.getElementById('enlarger').style.display = 'block';
	};
	
	this.timer = window.setTimeout(innerShow, window.thumbDelay);
}

function hideThumb(){
	//onMouseOut SmallImage
	window.clearTimeout(this.timer);
	document.getElementById('mediumImage').src = '';
	document.getElementById('enlarger').style.display = 'none';
}

var unfoldedRows = ' folder_0 ';

//Zentriertes Fenster aufpoppen - Verwendung auch von CMS-Editor --------------------------------------------------------------------------
function poptext(URL, breite, hoehe){
	if (!breite){var breite=500;}
	if (!hoehe)	{var hoehe=450;}
	
	var top=(screen.availHeight-hoehe)/2;
	var left=(screen.availWidth-breite)/2;
	var args = "height="+hoehe+", width="+breite+",menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left="+left+",top="+top;
	popwin=window.open(URL,'popname',args);
	popwin.focus();
}

//Zentriertes Fenster aufpoppen - Verwendung auch von CMS-Editor --------------------------------------------------------------------------
function popfunc(URL, breite, hoehe){
	if (!breite){var breite=500;}
	if (!hoehe)	{var hoehe=450;}
	
	var top=(screen.availHeight-hoehe)/2;
	var left=(screen.availWidth-breite)/2;
	var args = "height="+hoehe+", width="+breite+",menubar=0,resizable=1,scrollbars=0,status=0,titlebar=0,toolbar=0,left="+left+",top="+top;
	popwin=window.open(URL,'popname',args);
	popwin.focus();
}

window.onload = function(){

//felder mit Error-Class werden nach erfolgtem OnChange wieder "demarkiert"
	var x = document.getElementsByTagName('INPUT');
	for (var i=0;i<x.length;i++){
		if(x[i].className=='error') {x[i].oldOnchange = x[i].onchange; x[i].onchange = function() { if(this.oldOnchange != null) this.oldOnchange();	 clearErrorClass(this);}; }	
	}
	var x = document.getElementsByTagName('SELECT');
	for (var i=0;i<x.length;i++){
		if(x[i].className=='error') {x[i].oldOnchange = x[i].onchange; x[i].onchange = function() { if(this.oldOnchange != null) this.oldOnchange();	 clearErrorClass(this);}; }	
	}
	var x = document.getElementsByTagName('TEXTAREA');
	for (var i=0;i<x.length;i++){
		if(x[i].className=='error') {x[i].oldOnchange = x[i].onchange; x[i].onchange = function() { if(this.oldOnchange != null) this.oldOnchange();	 clearErrorClass(this);}; }	
	}
	
	var dds = document.getElementsByTagName('DD');
	for (var j=0;j<dds.length;j++) { $(dds[j]).setHTML("<div style='padding-bottom:10px'>" + $(dds[j]).innerHTML + "</div>"); }
	var x = document.getElementsByTagName('DL');
	for (var i=0;i<x.length;i++){
		if(x[i].className == 'accordion') {
			new Accordion('dt', 'dd', {
				opacity: false,
				onComplete: function() {
					if(!this.elements[this.previous].getNext()) {
						this.elements[this.previous].setStyles({
						   borderBottom: '1px solid #d4cfc3'
						});
					}
				},
				onActive: function(toggler, element){
					toggler.addClass('active');
				},
				onBackground: function(toggler, element){
					if(!element.getNext()) {
						element.setStyles({
						   borderBottom: 'none'
						});
					}
					toggler.removeClass('active');
				}
			}, $(x[i]));	
		}
	}
	
	// zeilen clickbar und faltbar machen
	var x = document.getElementsByTagName('TABLE');
	for (var i=0;i<x.length;i++){
		if(x[i].className.indexOf('rowsClickable') != -1) {
			var rows=x[i].getElementsByTagName('TR');
			for(singleRow in rows) {
				rows[singleRow].onclick = makeRowClickable;
			}	
		}
		if(x[i].className.indexOf('rowsFoldable') != -1) {
			var rows=x[i].getElementsByTagName('TR');
			for(singleRow in rows) {
				if(rows[singleRow].className && rows[singleRow].className.indexOf('folding-row') != -1) {
					rows[singleRow].onclick = foldUnfoldRow;
					rows[singleRow].folded = false;
					if(unfoldedRows != null) {
						if(unfoldedRows.indexOf(' ' + rows[singleRow].id + ' ') == -1) {
							rows[singleRow].onclick();
						}
					}
				}
			}	
		}
	}
	// div-elemente faltbar machen
	var x = document.getElementsByTagName('DIV');
	for (var i=0;i<x.length;i++){
		if(x[i].className.indexOf('foldable') != -1) {
			for(myChildren in x[i].childNodes) {
				if(x[i].childNodes[myChildren].className && x[i].childNodes[myChildren].className.indexOf('innerContent') != -1) {
					x[i].onclick = foldUnfoldChildRow;
					x[i].foldElement = new Fx.Slide($(x[i].childNodes[myChildren]));
					x[i].folded = false;
					if(unfoldedRows.indexOf(' ' + x[i].id + ' ') == -1) {
						var target = {className:x[i].className};
						var tmpObj = {target:target};
						x[i].onclick(tmpObj);
					}
				}
			}	
		}
	}
	
	// cssform-plus: hover auf fieldrow-divs
	for (var i=0;i<x.length;i++){
		if(x[i].className.indexOf('fieldrow') != -1) {
			if(window.ie6) {
				x[i].onmouseover = function() {
					if(this.className.indexOf(' focused') == -1)
						this.className = this.className + ' hovered';
				};
				x[i].onmouseout = function() {
					this.className = this.className.replace(/ hovered/g, '');
				};
			}
			var y = new Array();
			var y0 	= x[i].getElementsByTagName('INPUT');
			var y1 	= x[i].getElementsByTagName('TEXTAREA');
			var y2 	= x[i].getElementsByTagName('SELECT');
			for (c=0; c<y0.length; c++) y.push(y0[c]);
			for (c=0; c<y1.length; c++) y.push(y1[c]);
			for (c=0; c<y2.length; c++) y.push(y2[c]);
			for (var j=0;j<y.length;j++){
				y[j].onfocus = function() {
					if(this.parentNode.className.indexOf('fieldrow') != -1) {
						this.parentNode.className = this.parentNode.className.replace(/ hovered/g, '');
						this.parentNode.className = this.parentNode.className + ' focused';
						this.parentNode.parentNode.className = this.parentNode.parentNode.className + ' killHover';
					}
					else {
						this.parentNode.parentNode.className = this.parentNode.parentNode.className.replace(/ hovered/g, '');
						this.parentNode.parentNode.className = this.parentNode.parentNode.className + ' focused';
						this.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.className + ' killHover';
					}
				}
				y[j].onblur = function() {
					if(this.parentNode.className.indexOf('fieldrow') != -1) {
						this.parentNode.className = this.parentNode.className.replace(/ focused/g, '');
						this.parentNode.parentNode.className = this.parentNode.parentNode.className.replace(/ killHover/g, '');
					}
					else {
						this.parentNode.parentNode.className = this.parentNode.parentNode.className.replace(/ focused/g, '');
						this.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.className.replace(/ killHover/g, '');	
					}
				}
			}
		}
	}
}


function getFixedHeight(element){
	if(document.documentElement.offsetHeight - element.offsetHeight - 20 > element.parentNode.offsetHeight + 204) {
		return document.documentElement.scrollTop + element.parentNode.offsetHeight + 204;
	}
}

function clearErrorClass(element){
	element.className = "";
}
function makeRowClickable(){
	myAnker = this.cells[this.cells.length-1].getElementsByTagName('A')[0];
	if(window.ie6) myAnker.href = encodeURI(myAnker.href);
	if(myAnker.target == "_blank") {
		window.open(myAnker.href);
		return false;
	} else {
		document.location.href = myAnker.href;
	}
}

function addSpanToHeadline(){
	//für sifr: es müssen wegen floats INLINE-Elemente ersetzt werden!
	var contentObject = document.getElementById('minWidth');
	var allH2 = contentObject.getElementsByTagName('h2');
	
	// ie6 FIX für bestimmte umburchssituationen
	if(window.ie6) 		ie6preFix = '<span>&nbsp;</span>'; 
	else				ie6preFix = '';
	
	for (i=0;i<allH2.length; i++){
		allH2[i].innerHTML = "<span>" + ie6preFix + allH2[i].innerHTML+"</span>";
	}
	var allH3 = contentObject.getElementsByTagName('h3');
	for (i=0;i<allH3.length; i++){
		if(allH3[i].parentNode.style.display != 'none')
			allH3[i].innerHTML = "<span>" + ie6preFix + allH3[i].innerHTML + "</span>";
	}
/*	var allBlockquotes = contentObject.getElementsByTagName('blockquote');
	for (i=0;i<allBlockquotes.length; i++){
		allBlockquotes[i].innerHTML = "<span>" + ie6preFix + allBlockquotes[i].innerHTML + "</span>";
	}*/

}

function foldUnfoldRow() {
	var el = $(this).getNext();
	// is folded and will be unfolded
	if(this.folded == true) {
		while(el){
			if(el.className != undefined && el.className.indexOf('folding-row') == -1) {
				el.style.display = '';
				// ie6 gets no animation
				if(!window.ie6) {
					var moo_el = $$(el.getChildren());
					moo_el.each(function(item, index){
						var fx = new Fx.Style(item, 'opacity', {duration:300, wait:false});
						fx.start(0,1);
					});
				}
				else
					el.style.display='';
			}
			else if(el.className != undefined && el.className.indexOf('folding-row') != -1) {
				break;	
			}
			el = el.getNext();
		}
		if(!el)
			this.className = this.className.replace(/ noborder/, '');
		
		this.folded = false;
		this.className = this.className.replace(/ folded/, '');
	}
	// is unfolded and will be folded
	else {
		while(el){
			if(el.className != undefined && el.className.indexOf('folding-row') == -1) {
				// ie6 gets no animation
				if(!window.ie6) {
					var moo_el = $$(el.getChildren());
					moo_el.each(function(item, index){
						var fx = new Fx.Style(item, 'opacity', {duration:300, wait:false, onComplete:function(element) {element.parentNode.style.display='none';}});
						fx.start(1,0);
					});
				}
				else
					el.style.display='none';
			}
			else if(el.className != undefined && el.className.indexOf('folding-row') != -1) {
				break;	
			}
			el = el.getNext();
		}
		if(!el)
			this.className = this.className + ' noborder';
		
		this.folded = true;
		this.className = this.className + ' folded';
	}
}

function foldUnfoldChildRow(event) {
	event = event || window.event;
	target = event.target || event.srcElement;
	if(target.className.indexOf('foldable') != -1) { 
		if(this.folded == false) {
			this.foldElement.slideOut();
			this.folded = true;
			this.className = this.className + ' collapsed';
		}
		else {
			this.foldElement.slideIn();
			this.folded = false;
			this.className = this.className.replace(/ collapsed/, '');
		}
	}
}

function filterResults(formName, button, serverScript) {
	button = null;
	// init
	if(serverScript.indexOf('Press') != -1)
		var url = "http://www2.standardlife.de/customer/standardlife/press/"+serverScript+".php";
	if(serverScript.indexOf('Download') != -1)
		var url = "http://www2.standardlife.de/customer/standardlife/download/"+serverScript+".php";
	// get search term
	var sform = document.forms[formName];
	
	var sterm = sform.elements[0];

	var requestData = '';
	
	requestData = 'filter[' + encodeURIComponent(sterm.name) + ']' + '=' + encodeURIComponent(sterm.value);
	for(var i=1; i<sform.elements.length; i++) {
		if(sform.elements[i].type == 'checkbox') {
			if(sform.elements[i].checked)
				requestData += '&' + 'filter[category][' + encodeURIComponent(sform.elements[i].value) + ']' + '=true';
			else
				requestData += '&' + 'filter[category][' + encodeURIComponent(sform.elements[i].value) + ']' + '=false';
		}
		if(sform.elements[i].type == 'hidden') {
			requestData += '&' + 'filter[' + encodeURIComponent(sform.elements[i].name) + ']' + '=' + encodeURIComponent(sform.elements[i].value);
		}
	}
	var temp = new Ajax(url, {data: requestData, method: 'get', update: $('filteredResult'), onComplete: function() { sIFR.replaceElement("#filteredResult .show h3", named({sFlashSrc: "http://www2.standardlife.de/flash/cael-h.swf", sColor: "#E98800",  sWmode: "transparent"})); } } );
	temp.request();
}

function localFilterResults(checkbox, byId) {
	byId = byId || false;
	// do nothing
	// case A: filter by DB-ID
	if(byId) {
		var tmp = $('kID' + checkbox.value.toString());
		if(!tmp) return false;
		if(checkbox.checked) {
			tmp.setOpacity(0);
			tmp.setStyle('display','block');
			tmp.setStyle('clear','both');
			var fx = new Fx.Style(tmp, 'opacity', {duration:300, wait:false, onComplete:function(element) {
				sIFR.replaceElement("#filteredResult #"+element.id+" h3", named({sFlashSrc: "http://www2.standardlife.de/flash/cael-h.swf", sColor: "#E98800",  sWmode: "transparent"}));
				//element.className = element.className.replace(/ hiddenBlock/g, '');
			}});
			fx.start(0,1);	
		} 
		else {
			var fx = new Fx.Style(tmp, 'opacity', {duration:300, wait:false, onComplete:function(element) {element.setStyle('display','none');}});
			fx.start(1,0);	
		}
	
	}
	// case A: filter by virtual CSS classname
	else {
		var x = document.getElementsByTagName('TABLE');
		for (var i=0;i<x.length;i++){
			if(x[i].className.indexOf('listItem') != -1) {
				if(x[i].className.indexOf(checkbox.value) != -1) {
					if(checkbox.checked) {
						var tmp = $(x[i]);
						x[i].className = x[i].className.replace(/ filteredItem/g, '');
						tmp.setOpacity(0);
						var fx = new Fx.Style(tmp, 'opacity', {duration:300, wait:false});
						fx.start(0,1);	
					} 
					else {
						var fx = new Fx.Style($(x[i]), 'opacity', {duration:300, wait:false, onComplete:function(element) {element.className = element.className + ' filteredItem';}});
						fx.start(1,0);	
					}
				}
			}
		}
	}
}


function showHideMap(anchor, ident, img_src) {
	if(!anchor.isActive) {
		anchor.innerHTML = 'Lade Karte...';
		var img 	= $('img_' + ident);
		var para 	= $('para_' + ident);
		var link1 	= $('link1_' + ident);
		var link2 	= $('link2_' + ident);	
		img.src 	= img_src;
		var that 	= anchor;
		img.onload 	= function() {
			this.style.display = '';
			para.style.display = '';
			link1.style.display = '';
			link2.style.display = '';
			that.innerHTML = 'Karte schließen';
			$(this).setOpacity(0);
			var fx = new Fx.Style($(this), 'opacity', {duration:300, wait:false});
			fx.start(0,1);
		}; 
		anchor.isActive = true;
	}
	else {
		var img 	= $('img_' + ident);
		var para 	= $('para_' + ident);
		var link1 	= $('link1_' + ident);
		var link2 	= $('link2_' + ident);
		img.setStyle('display', 'none');
		para.style.display = 'none';
		link1.style.display = 'none';
		link2.style.display = 'none';
		anchor.innerHTML = 'Karte öffnen';
		anchor.isActive = false;
	}
		
}