//Flackern von CSS-Backgrounds im IE verhindern
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

var unfoldedRows = null;

//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;
	popwin2=window.open(URL,'popname2',args);
	popwin2.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(' ' + rows[singleRow].id + ' ') == -1) {
						rows[singleRow].onclick();
					}*/
				}
			}	
		}
	}
	
	// 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, '');	
					}
				}
			}
		}
	}

    //fontsizer - mal davon ausgehend, dass wenn einer da ist, alle da sind
    //und nur dann, wenn cookies enabled sind
    if(document.getElementById('fsNormal') && navigator.cookieEnabled == true){
        document.getElementById('fsNormal').onclick = setFontsize;          
        document.getElementById('fsLarger').onclick = setFontsize;          
        document.getElementById('fsLargest').onclick = setFontsize;          
    }
}


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 || window.ie7) iepreFix = '<span>&nbsp;</span>'; 
	else				iepreFix = '';
	
	for (i=0;i<allH2.length; i++){
		allH2[i].innerHTML = "<span>" + iepreFix + 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>" + iepreFix + 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 = window.event || event;
	target = event.srcElement || event.target;

	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;
	
    var scriptHost = getHost();
    
    // init
	if(serverScript.indexOf('Press') != -1)
		var url = scriptHost+"/customer/standardlife/press/"+serverScript+".php";
	if(serverScript.indexOf('Download') != -1)
		var url = scriptHost+"/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: window.location.host+"/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
    var scriptHost = getHost();

    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: scriptHost+"/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;
	}
		
}


function setFontsize()
{
  	var url         = '';
  	var requestData = '';
    var scriptHost  = getHost();
    var bodyClass   = document.body.className;
    var newClass    = '';

    url = scriptHost + '/customer/standardlife/extras/set_fontsize.php';
    

    document.getElementById('fsNormal').className   = 'normal';
    document.getElementById('fsLarger').className   = 'larger';
    document.getElementById('fsLargest').className  = 'largest';
    bodyClass = bodyClass.replace(/larger/g, "");
    bodyClass = bodyClass.replace(/largest/g, "");

    this.className = this.className + 'Active';

    if(this.id == 'fsLarger'){
        newClass    = 'larger';
        bodyClass   = bodyClass + ' larger';
    }
    
    if(this.id == 'fsLargest'){
        newClass    = 'largest';
        bodyClass   = bodyClass + ' largest';
    }

    document.body.className = bodyClass;

    requestData = 'fontsize='+newClass+'&no_location=true';

	var temp = new Ajax(url, {data: requestData, method: 'get'});
	temp.request();
    
    return false;
}

function getHost()
{
    //die beiden tlds (.de, .at) und staging-pfade abfedern
    var scriptHost;

  	if(window.location.host.indexOf('staging.com2-gmbh.de') != -1){
        scriptHost = 'http://'+window.location.host+'/cms_sites/standardlife';
    }
    else{
        scriptHost = 'http://'+window.location.host;
    }

    return scriptHost;
}
