// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Projekt individuelle JS-Funktionen kommen in die m_project.js //
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

var globalJSVersion='170804-00';

var NAV6 = (parseInt(navigator.appVersion) >= 5 && navigator.appName == "Netscape") ? 1 : 0;
var NAV4 = (navigator.appName.indexOf("Netscape") >= 0 &&  parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var IE4 = (document.all) ? 1 : 0;
var IE5 = (IE4 && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0;
var OP = navigator.appName.indexOf("Opera") ? 1 : 0;
var shadowPageOf = '';
var ie = document.all;
var w3 = document.getElementById && !document.all;
var quickEditInUse;
var cmsFlashAlreadyPlayed = new Array();

var __flashvars = ''; // wird z.B. für Seitentyp4 benötigt
var __itemCount = 0; // wird z.B. für Seitentyp4 benötigt

// ####################################################################################################
// 
// 	Formular-Checker
//
//	var felder=new Array();
//	var formname='form'; 	// Name des Formulares
//	var werte=new Array();
//
//	werte['feld']='email';	// Name des Formularfeldes
//	werte['feld2']='email';	// z.B. für Passwortprüfung 2er Felder
//	werte['pruef']='email';	// Prüfen auf (email,datum,plz,password,custom oder leer lassen)
//	werte['typ']='text';	// Feldtype
//	werte['pflicht']=1;		// Pflichtfeld
//	werte['fehler']='Bitte geben Sie eine gültige E-Mail Adresse an!'; // Fehlermeldung bei ungültiger E-Mail Adresse!
//	felder[felder.length]=werte;
//
// Prüftyp: Ein Feld mit Prüftyp wird zusätzlich genauer überprüft. Möglich ist hier email, datum oder plz.
// 			Eien Prüfung findet statt, wenn das Feld ein Pflichtfeld ist oder der Benutzer das Feld ausfüllt.
//
// Datum: Ein Datum wird auf das Format TT.MM.YYYY geprüft.
// PLZ: Eine PLZ wird auf 5-stellen und auf vorkommen von Zeichen ausser Zahlen geprüft.
// zahl: es wird geprüft ob das feld nur ziffern enthält
// E-Mail: Eine E-Mail wird auf name, domain und toplevel geprüft. Es dürfen keine 2 @ vorkommen.
//		   Die Domain muss aus mind. 2 Zeichen bestehen. Der Name darf die Zeichen a-z, A-Z, 0-9, ., - und _ enthalten.
//		   Die Domain darf die Zeichen a-z, A-Z, 0-9, . und - enthalten.
// Custom: Eine Javascript Funktion mit den Parametern element-Objekt, Feld-Parameter (Ein trag aus dem Konfigurationsarray für dieses Feld) wird aufgerufen und der Rückgabewert auf Wahrheit überprüft
//
// by Thorsten Peters, t.peters@rosomm-partner.de
//
// ###############################	#####################################################################

function mCheckAll() {
	for (feld=0;feld<felder.length;feld++) {
		var fld=felder[feld];
		var wert;
		if (felder[feld]['feld']) {
			var element=document.forms[formname][felder[feld]['feld']];
		} else {
			var element=document.getElementById(felder[feld]['feldID']);
		}
		if (fld['pflicht']) {
			if (fld['typ']=='text') wert=element.value;
			if (fld['typ']=='checkbox') wert=element.checked;
			if (fld['typ']=='radio') {
				wert=false;
				for (i=0; i<element.length;i++) if (element[i].checked) {
					wert=true;
				}
			}
			if (fld['typ']=='dropdown') wert=element[element.selectedIndex].value;
			if (!wert) {
				alert(fld['fehler']);
				if (fld['typ']!='radio' && element.type!='hidden')element.focus();
				return false;
			}
		}
		if (document.forms[formname][felder[feld]['feld']] && document.forms[formname][felder[feld]['feld']].value!='') {
			if (fld['pruef']=='email') if (!mCheckEmail(element,fld['fehler'])) return false;
			if (fld['pruef']=='datum') if (!mCheckDatum(element)) {
				alert(fld['fehler']);
				if (element.type!='hidden') element.focus();
				return false;
			}
			if (fld['pruef']=='plz') if (!mCheckPLZ(element,fld['fehler'])) return false;
			if (fld['pruef']=='zahl') if (!mCheckINT(element,fld['fehler'])) return false;
			if (fld['pruef']=='length') if (!mCheckLength(element,fld['fehler2'],fld['maxlength'])) return false;
			if (fld['pruef']=='password') if (!mCheckPassword(element,fld['fehler2'],document.forms[formname][fld['field2']])) return false;
			if (fld['pruef']=='custom') {
				eval('var result='+fld['function']+'(element,fld)');
				if (!result) return false;
			}
		}
	}
	return true;
}

function mCheckEmail(email,error) {
	check=email.value.indexOf("@");
	if (check==-1) {
		alert(error); email.focus(); return false;
	} else {
		ename=email.value.substring(0,check);
		rest=email.value.substring(check+1,email.value.length);
		for (i=0; i<ename.length; i++) {
			ok=false;
			if (ename.charAt(i)>='a' && ename.charAt(i)<='z') ok=true;
			if (ename.charAt(i)>='A' && ename.charAt(i)<='Z') ok=true;
			if (ename.charAt(i)>='0' && ename.charAt(i)<='9') ok=true;
			if (ename.charAt(i)=='.' || ename.charAt(i)=='-' || ename.charAt(i)=='_') ok=true;
			if (!ok) { alert(error); email.focus(); return false; }
		}
		if (rest.indexOf("@")!=-1) {
			alert(error); email.focus(); return false;
		} else {
			if (!ename) {
				alert(error); email.focus(); return false;
			} else {
				check=rest.lastIndexOf(".");
				domain=rest.substring(0,check);
				land=rest.substring(check+1,rest.length);
				for (i=0; i<domain.length; i++) {
					ok=false;
					if (domain.charAt(i)>='a' && domain.charAt(i)<='z') ok=true;
					if (domain.charAt(i)>='A' && domain.charAt(i)<='Z') ok=true;
					if (domain.charAt(i)>='0' && domain.charAt(i)<='9') ok=true;
					if (domain.charAt(i)=='.' || domain.charAt(i)=='-') ok=true;
					if (!ok) { alert(error); email.focus(); return false; }
				}
				for (i=0; i<land.length; i++) {
					ok=false;
					if (land.charAt(i)>='a' && land.charAt(i)<='z') ok=true;
					if (land.charAt(i)>='A' && land.charAt(i)<='Z') ok=true;
					if (!ok) { alert(error); email.focus(); return false; }
				}
				if (land.indexOf(".")!=-1) {
					alert(error); email.focus(); return false;
				} else {
					if (!land || !domain) {
						alert(error); email.focus(); return false;
					} else {
						if (domain.length<2) {
							alert(error); email.focus(); return false;
						} else return true;
					}
				}
			}
		}	
	}
}

function mCheckPLZ(plz,error) {
	if (plz.value.length!=5) {
		alert(error);
		plz.focus();
		return false;
	}
	for (i=0; i<plz.value.length; i++) {
		s=plz.value.substring(i,i+1);
		check=parseInt(s);
		if (isNaN(check)) {
			alert(error);
			plz.focus();
			return false;
		}
	}
	return true;
}

function mCheckINT(zahl,error) {
	
	for (i=0; i<zahl.value.length; i++) {
		s=zahl.value.substring(i,i+1);
		check=parseInt(s);
		if (isNaN(check)) {
			alert(error);
			zahl.focus();
			return false;
		}
	}
	return true;
}

function mCheckPassword(password,error,password2) {
	if(password.value!=password2.value) {
		alert(error);
		password.value = '';
		password2.value = '';
		password.focus();
		return false;
	}
	return true;
}

function mCheckDatum(datefield,error) {
	var mNames="JanFebMarAprMayJunJulAugSepOctNovDec"
	var mValues="312831303130313130313031"
	var errormsg=error;
	var date=datefield.value;
	var dots=new Array();
	
	if (date.length<6) {
		return false;
	}
	for (var i=0; i < date.length;i++) if (date.substr(i,1)=='.') dots[dots.length]=i;
	if (dots.length!=2) {
		return false;
	}
	myDD=parseInt(date.substr(0,dots[0]),10);
	myMM=parseInt(date.substr(dots[0]+1,dots[1]-dots[0]-1),10);
	myYYYY=parseInt(date.substr(dots[1]+1,date.length),10);
	if (myYYYY < 1850) return false;
	if ((isNaN(myDD)) || (isNaN(myMM)) || ( isNaN(myYYYY))) {
		return false;		
	}
	var lastdatum = 0
	if (myMM == 2) {
		if (isLeapYear(myYYYY)) lastdatum = 29;
		else lastdatum = 28;
	} else lastdatum = mValues.substr((myMM-1)*2,2);
	
	if ((myDD > lastdatum) || (myDD <=0)) {
		return false;
	}
	var newValue="";
	if (myDD<10) myDD = "0"+myDD;
	if (myMM<10) myMM = "0"+myMM;
	if (myYYYY<10) myYYYY = "0"+myYYYY;
	if (myYYYY<1000) myYYYY = "20"+myYYYY;
	datefield.value=myDD+'.'+myMM+'.'+myYYYY;
	return true;
}

function isLeapYear (Year) { 
	if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) return true;
	else return false;
}

function mCheckLength(field, error, maxlength) {
	if(field.value.length>maxlength) {
		alert(error);
		return false;
	} else return true;
}

function radiovalue(element) {
	for (i=0; i<element.length;i++) if (element[i].checked) {
		return element[i].value
	}
	return false;
}

// ####################################################################################################

// Popup 
function openWin(url,weite,hoehe,id,parameters,centered) {
	var pos='';
	if (centered) {
		var coord=getWindowCenterCoordinates(weite,hoehe);
		pos=',left='+coord['x']+',top='+coord['y']+'';
	} else {
		pos=',left=50,top=50';
	}
	if (!parameters) parameters='menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no';
	if (parameters.indexOf('left=')==-1) parameters+=pos;
	parameters+=',width='+weite+',height='+hoehe;
	popupWin = window.open(url,id,parameters);
}

function changeLang(value,loc) {
	pos1=loc.indexOf("&ID");
	pos2=loc.indexOf("?ID");
	if (pos2>-1) {
		pos=pos2;
		z="?";
	}
	if (pos1>-1) {
		pos=pos1;
		z="&";
	}
	if (pos>-1) {
		teil=loc.substring(pos,loc.length);
		pos3=teil.indexOf("&")
		if (pos3==-1) pos3=loc.length;
		teil2=loc.substring(pos,pos+pos3);
		ok=str_replace(teil2,z+"ID="+value,loc);
		if (ok) location.href=ok;
	}
}

// Abfrage der Fensterhoehe/-breite fuer IE und NN 
function getHeightAndWidth() {
	if (IE4 || IE5) {
		var screenHeight = document.body.clientHeight;
		var screenWidth = document.body.clientWidth;
	}
	
	if (NAV4) {
		var screenHeight = window.innerHeight;
		var screenWidth = window.innerWidth;
	}
}

/*
function confWin(ID,eleID) {
	toggleFormColor(ID);
	if (parent.frames.win && parent.frames.win.document.forms.form) toggleFormColor(parent.frames.win.document.forms.form["field["+eleID+"]"]);
	if (window.opener.layout.document.getElementById(eleID)) toggleFormColor(window.opener.layout.document.getElementById(eleID));
}
*/

// Seite / Layout Config im dms
function confWin(ID,eleID,onoff) {
	/*if (parent.frames.win && parent.frames.win.document.forms.form) {
		toggleFormColor(ID,onoff);
		toggleFormColor(parent.frames.win.document.forms.form["field["+eleID+"]"],onoff);
	}
	if (window.opener.layout) {
		toggleFormColor(ID,onoff);
		if (window.opener.layout.document.getElementById(eleID)) toggleFormColor(window.opener.layout.document.getElementById(eleID),onoff);
	}*/
}

function conf(ID,eleID,onoff,eleName,reDo,quickEdit) {
	if (quickEditInUse) {
		return;
	}
	if (quickEdit == null) {
		quickEdit = false;
	}
	quickEditEnabled = quickEdit;
	curEditElementId = eleID;
	curEditElementName = eleName;
	if (reDo == null) {
		reDo = false;		
	}
	var rowID = 'rowLay'+eleID;
	if (parent && parent.frames && parent.frames.editframe[rowID]) { 
		toggleFormColor(parent.frames.editframe[rowID],onoff);
	}
	
	var editPreviewInfoDiv = document.getElementById('editPreviewInfo');
	var editPreviewHiliteDiv = document.getElementById('editPreviewHilite');
	var editTextDiv = document.getElementById('editTextDiv-' + eleID);
	if (editPreviewInfoDiv != undefined) {
		if (onoff == 2) {
			var epTop = getAbsTop(ID);
			var epLeft = getAbsLeft(ID);
			editPreviewInfoDiv.innerHTML = eleName;
			editPreviewInfoDiv.style.top = epTop - 18;
			editPreviewInfoDiv.style.left = epLeft - 1;
			
			editPreviewHiliteDiv.style.top = epTop - 1;
			editPreviewHiliteDiv.style.left = epLeft - 1;
			editPreviewHiliteDiv.style.width = ID.offsetWidth + 2;
			editPreviewHiliteDiv.style.height = ID.offsetHeight + 2;
			editPreviewHiliteDiv.style.display = 'block';
			editPreviewInfoDiv.style.display = 'block';
		} else {
			editPreviewHiliteDiv.style.top = -1000;
			editPreviewHiliteDiv.style.left = -1000;
			editPreviewInfoDiv.style.top = -1000;
			editPreviewInfoDiv.style.left = -1000;
			editPreviewHiliteDiv.style.display = 'none';
			editPreviewInfoDiv.style.display = 'none';
		}
	}
}

function toggleFormColor(ID,onoff) {
     if (!onoff) {
             if (ID.style.backgroundColor == '' || ID.style.backgroundColor == '#ffffff') onoff=2;
             else onoff=1;
     }
     if (onoff==2) ID.style.backgroundColor='#D7D7D7';
     else ID.style.backgroundColor='';
}


function openWindowScroll(url,weite,hoehe,name,ret) {
	if (!name) name='unitsPopup';
	popupWin = window.open(url,name,'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,width='+weite+',height='+hoehe+',left=50,top=50');
	if (ret) return popupWin;
}

function openWindow(url,weite,hoehe,name) {
	if (!name) name="unitsPopup";
	popupWin = window.open(url,name,'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,width='+weite+',height='+hoehe+',left=50,top=50')
}

function openFreeWindow(url,name,mbar,sta,loc,tbar,res,scr,width,height,left,top) {
	if (res > 1 && scr > 1 && !width && !height) { // alter Aufruf, Signatur hat sich dämlicherweise geändert.
		width=res;
		height=scr;
		res=0;
		scr=0;
	}
	
	if (!mbar) mbar="no"; else mbar="yes";
	if (!tbar) tbar="no"; else tbar="yes";
	if (!res) res="no"; else res="yes";
	if (!sta) sta="no"; else sta="yes";
	if (!loc) loc="no"; else loc="yes";
	popupWin = openWin(url,width,height,name,'menubar='+mbar+',status='+sta+',location='+loc+',toolbar='+tbar+',resizable='+res+',scrollbars='+scr,true);
}

// Flip - Funktion fuer Bilder im Layer
// flLayer = Layername in dem sich das Bild befindet
// flName = Imagename
// flRoll = Rolloverimage

function fliplay(flLayer, flName, flRoll){
	sLN = '\'' + eval("flLayer") + '\'';
	if(document.images) {
		if(document.layers) document.layers[eval(sLN)].document.images[eval("flName")].src = eval(flRoll + '.src');
		else document.images[eval("flName")].src = eval(flRoll + '.src');
	}
} 

// Overskripte v2

var over=new Array();
var selected=new Array();
var mouseOvers=new Array();
var moClickDeselects=false; // Wird der aktive Punkt beim Klicken wieder deselektiert?

function moInit(group,id,overImage,clickImage,layer) {
	if (!mouseOvers[group]) mouseOvers[group]=new Array();
	mouseOvers[group][id]=new Array();
	mouseOvers[group][id]['layer']=layer;
	normal=moGetImage(group,id);
	if (document.images) {
		mouseOvers[group][id]['normalImage']=new Image;
		mouseOvers[group][id]['normalImage'].src=normal.src;
		mouseOvers[group][id]['overImage']=new Image;
		mouseOvers[group][id]['overImage'].src=overImage;
		mouseOvers[group][id]['clickImage']=new Image;
		if (clickImage) {
			mouseOvers[group][id]['clickImage'].src=clickImage;
		} else{
			mouseOvers[group][id]['clickImage'].src=overImage;
		}
	}
}

function moGetImage(group,id) {
	if (mouseOvers[group][id]['layer']) {
		if (document.layers) {
			var img=document.layers[mouseOvers[group][id]['layer']].document.images[group+id];
			if (!img) {
				alert(group+','+id+','+img+' ('+document.layers[mouseOvers[group][id]['layer']].document.images.length+') in '+mouseOvers[group][id]['layer']+'('+document.layers[mouseOvers[group][id]['layer']]+')');
			}
			return img;
		} else {
			return document.images[group+id];
		}
	} else {
		return document.images[group+id];
	}
}

function moSetImage(group,id,mode) {
	img=moGetImage(group,id);
	debug('set '+group+','+id+' ('+img+') to '+mode);
	//alert('set '+group+','+id+' ('+img+') to '+mode);
	//alert(mouseOvers[group][id][mode]);
	modeImg=mouseOvers[group][id][mode];
	src=modeImg.src;
	//alert(img+' && '+img.src+'!='+src);
	var noSet='';
	if (img && img.src!=src) img.src=src;
	else noSet=' (no change)';
	if (img) debug('real img set to '+img.src+noSet);
	else {
		debug('no img for '+group+','+id+','+mode);
	}
}

function moOver(group,id) {
	debug('\nover '+group+','+id+'sel:'+selected[group]+',over:'+over[group]);
	if (over[group]) { // letztes Over zurück
		old=over[group];
		if (selected[group]==old || mouseOvers[group][old]['selected']) {
			moSetImage(group,old,'clickImage');
		} else {
			moSetImage(group,old,'normalImage');
		}
	}
	over[group]=id;
	//alert('over:'+id+','+mouseOvers[group][id]['overImage'].src);
	moSetImage(group,id,'overImage');
}

function moOut(group,id) {
	debug('\nout '+group+','+id+'sel:'+selected[group]+',over:'+over[group]);
	//alert('out:'+id+'ov?'+over[group]+'=='+id+',sel?'+selected[group]+'=='+id);
	if (selected[group]==id || mouseOvers[group][id]['selected']) { // geclicktes zurücksetzen
		moSetImage(group,id,'clickImage');
	} else if (over[group]==id) { //geovertes zurücksetzen
		moSetImage(group,id,'normalImage');
	}
	over[group]=0;
}

function moClick(group,id) {
	debug('\nclick '+group+','+id+'sel:'+selected[group]+',over:'+over[group]+',sel2:'+mouseOvers[group][id]['selected']);
	if (!moClickDeselects && selected[group]) { // zuletzt angeklickten Punkt zurück
		old=selected[group];
		moSetImage(group,old,'normalImage');
		mouseOvers[group][old]['selected']=false;
	} 
	
	if (moClickDeselects && mouseOvers[group][id]['selected']) {
		mouseOvers[group][id]['selected']=false;
		moSetImage(group,id,'normalImage');
		selected[group]=null;
	} else if (!moClickDeselects || id!=selected[group]) {
		selected[group]=id;
		moSetImage(group,id,'clickImage');
		mouseOvers[group][id]['selected']=true;
	}
}

//top && top.frames && top.frames.headerg && top.frames.headerg.
var debugOnOff='on';
function debug(msg) {
	var debugObj=false;
	//alert(document.forms.debugform);
	if (document.forms && document.forms.debugform) debugObj=document.forms.debugform.elements[0];
	if (debugOnOff=='on' && debugObj) {
		debugObj.value+=msg+'\n';
	}
}


function flipImage(imgName,imgNo) { 
	var newSrc=eval(imgNo+'.src');
	//alert(imgName+':'+imgNo+' to:'+newSrc);
	document.images[imgName].src = newSrc;
}


// Flip - Funktion (Austausch eines Bildes)

function flipNavi(imgName,imgNo) { 
	document.images[imgName].src = './_images/'+imgNo+'.gif';
}

function delconfirmrelocate(msg,url) // OK Abbrechen fragen und bei OK weiterleiten
{
        var check;
        check = confirm(msg);
        if (check) 
        {
                window.location=url;
        }
}   

// Abfrage der Formularfelder
function chkmail() {
	if (document.mail.surname.value == "") {
		alert("Bitte Ihren Vornamen eingeben!");
		document.mail.surname.focus();
		return false;
	}
	if (document.mail.name.value == "") {
		alert("Bitte Ihren Namen eingeben!");
		document.mail.name.focus();
		return false;
	}
	if (document.mail.street.value == "") {
		alert("Bitte Ihre Straße eingebe!");
		document.mail.street.focus();
		return false;
    }
	if (document.mail.zipcity.value == "") {
		alert("Bitte geben sie ihre PLZ und den Ort ein!");
		document.mail.zipcity.focus();
		return false;
    }
	if (document.mail.email.value == "") {
		alert("Bitte Ihre eMail-Adresse eingeben!");
    	document.mail.email.focus();
    	return false;
    }	
	if (document.mail.email.value.indexOf('@') == -1) {
		alert("Bitte eine gültige eMail-Adresse eingeben!");
    	document.mail.email.focus();
    	return false;
    }
	if (document.mail.email.value.indexOf('.') == -1) {
		alert("Bitte eine gültige eMail-Adresse eingeben!");
    	document.mail.email.focus();
    	return false;
    }
	clickedButton();
}

function loadHeadline(nr, session) {
	parent.headline.location = '../../ginab/frm_headline.php?hl='+nr+'&dbc='+session;
}

function str_replace(from,to,str) {
	if (str.indexOf(from)==-1) return false;
	else {
		t1=str.substring(0,str.indexOf(from));
		t2=str.substring(str.indexOf(from)+from.length,str.length);
		ok=t1+to+t2;
		return ok;
	}
}

function ucfirst(str) {
	var newString=str.charAt(0).toUpperCase();
	newString+=str.substring(1,str.length);
	return newString;
}

function chklogin()
  {

   if(document.login.usr.value == "")
    {
     alert("Bitte Ihren Benutzernamen eingeben!");
     document.login.usr.focus();
     return false;
    }
	
   if(document.login.pass.value == "")
    {
     alert("Bitte Ihr Passwort eingeben!");
     document.login.pass.focus();
     return false;
    }
}


function debugHandler(msg) {
	if (!top.frames.mnav) var f=top.opener.top.frames.mnav.document.forms.debug.elements[0];
	else var f=top.frames.mnav.document.forms.debug.elements[0];
	if (f && f.name) f.value+=msg+'\n';
}

function ZweiFrames(URL1,F1,URL2,F2) {  
	parent.frames[F1].location.href=URL1;
	parent.frames[F2].location.href=URL2;
}

function DreiFrames(URL1,F1,URL2,F2,URL3,F3) {  
	parent.frames[F1].location.href=URL1;
	parent.frames[F2].location.href=URL2;
	parent.frames[F3].location.href=URL3;
}

// Für Vorschau im CMS
function openEditWin(ID,ele,parentID,sess,lang) {
	if (quickEditInUse == true) {
		return;
	}
	if (!lang) lang = '';
	if (parent.frames.editframe
		&& parent.frames.editframe.isShadowPage < 1
		&& shadowPageOf < 1
	) {
		
		parent.frames.editframe.location.href='cms/elements/element_edit.php?ID='+ID+'&element='+ele+'&parent='+parentID+'&lang='+lang+'&dbc='+sess;
		parent.showHideLayout(true, true, true);
	}
}

// Für Vorschau im CMS
function newReturnWindow(url,name,width,height) {
	return window.open(url,name,'status=yes,left=100,top=100,width='+width+',height='+height+',scrollbars=yes,resizable=yes,status=yes');
}

// Für Vorschau im CMS
function openUnitsWin(modul,parent,altLink) {
	if (quickEditInUse == true) {
		return;
	}
	if (typeof top.frames.mnav.moduleLinks[modul]=='undefined') {
		eval(altLink);
	} else {
		var js=top.frames.mnav.moduleLinks[modul];
		js=str_replace('<parent>',parent,js);
		js=str_replace('<parent>',parent,js);
		js=str_replace(")",",1)",js); // Parameter fromCMS übergeben um Pfad anzupassen
		evl='top.frames.mnav.'+js;
		eval(evl);
	}
}

// Flip Skripte v1, nicht mehr verwenden

var current=0; // aktives image, wird bei onclick gesetzt
var sel=0; // ausgewähltes image, wird bei onmouseover gesetzt

function flip(imgName,imgNo) { 
	var newSrc=eval(imgNo+'.src');
	document.images[imgName].src = newSrc;
}

function allout(){ // blendet sel aus und current ein
	if (sel != 0 && sel!=current){
		flipmnav = 'sel' + sel;
		flipimage = 'no' + sel;
		flip(flipmnav,flipimage);
	}
	if (current != 0){
		himnav = 'sel' + current;
		hiimage = 'sel' + current;
		flip(himnav,hiimage);
	}
}

function alloutall(){  // blendet sel und current aus
	if (sel != 0){
		flipmnav = 'sel' + sel;
		flipimage = 'no' + sel;
		flip(flipmnav,flipimage);
	}
	if (current != 0 && sel!=current){
		himnav = 'sel' + current;
		hiimage = 'no' + current;
		flip(himnav,hiimage);
	}
}

function getWindowCenterCoordinates(width,height) {
	var ret=new Array();
	ret['x']=0;
	ret['y']=0;
	if (screen) {
		//alert(screen.availHeight+':'+height);
		ret['y']=Math.floor((screen.availHeight-height)/2);
		ret['x']=Math.floor((screen.availWidth-width)/2);
		if (ret['x']<0 || isNaN(ret['x'])) ret['x']=0;
		if (ret['y']<0 || isNaN(ret['y'])) ret['y']=0;
	}
	return ret;
}

// Fensterobjekt in die Bildschirmmitte bringen
function centerWindow(win) {
	if (!win) win=top;
	if (win.top.frames) return ""; // Pflegetoolframeset
	var dim=getWindowDimensions(win);
	var coord=getWindowCenterCoordinates(dim['x'],dim['y']);
	if (win.moveTo) {
		//alert('move to: '+coord['x']+','+coord['y']);
		win.moveTo(coord['x'],coord['y'])
	}
}

// Fensterabmessungen ermittlen, funzt erst nachdem die Seite geladen ist.
function getWindowDimensions(win) {
	if (!win) win=top;
	var ret=new Array();
	ret['x']=800;
	ret['y']=600;
	if (win.document.documentElement && win.document.documentElement.offsetWidth) {
		ret['x']=win.document.documentElement.offsetWidth;
		ret['y']=win.document.documentElement.offsetHeight;
	} else if (win.self && win.self.innerWidth) {
		ret['x']=win.self.innerWidth;
		ret['y']=win.self.innerHeight;
	} else if (win.screen.availWidth && win.screen.availWidth) {
		ret['x']=win.screen.availWidth;
		ret['y']=win.screen.availHeight;
	}
	return ret;
}

function cmsLayerShowHide(divID, hideAll)
{
	if(hideAll) {
		if(NAV6){
			var all = document.getElementsByTagName("DIV");
			var ID = '';
			for(i=0; i<=all.length; i++) {
				if(all[i])  {
					ID = all[i].getAttribute('id')+'';
					if(ID.indexOf('cmsSHLayer')!=-1 && ID!=divID) {
						layShowHide(ID, 'hidden');
					}
				}
			}
		} else if(NAV4){
			for(k in document) {
				if(k.indexOf('cmsSHLayer')!=-1 && k!=divID) layShowHide(k, 'hidden');
			}
			//return eval("document." + name); 
		} else if(IE5 || IE4){
			for(k in document.all) {
				if(k.indexOf('cmsSHLayer')!=-1 && k!=divID) layShowHide(k, 'hidden');
			}
		}
	}
	layShowHide(divID, 'visible');
}

// Texteinblenden mit Confirm bei OK zu URL gehen
function delconfirmrelocate(msg,url) {
    var check;
    check = confirm(msg);
	if (check) window.location=url;
}  

// In Tabellenseiten über ein Dot die Session am Leben halten ohne Frames zu benutzen oder sie Seite neuzuladen

var keepAliveCount=0;
var testjens = 0;
function keepSessionAliveLoop(init,sid,path,seconds) {
	if (!sid) sid=session;
	if (!seconds) seconds=19*60;
	//seconds=20;
	if (!path) path="..";

	if (path.indexOf('/') == -1) {
		path += '/';
	}
	
	if (document.images['dbcSessionKeepaliveDot'] && !init) {
		var url=path+'keepalive.php?dbc='+sid+'&image=1&nocache='+Math.random()+'-'+(++keepAliveCount);
		document.images['dbcSessionKeepaliveDot'].src=url;
		//alert('keepalive');
	}
	var evl="keepSessionAliveLoop(0,'"+sid+"','"+path+"',"+seconds+");";
	//alert(evl);
	window.setTimeout(evl,seconds*1000);
}


function changeNavi(value,loc) {
	pos1=loc.indexOf("&lang");
	pos2=loc.indexOf("?lang");
	if (pos2>-1) {
		pos=pos2;
		z="?";
	}
	if (pos1>-1) {
		pos=pos1;
		z="&";
	}
	if (pos>-1) {
		teil=loc.substring(pos,loc.length);
		f=eval(pos+6+value.length);
		teil3=loc.substring(f,loc.length);
		teil2=loc.substring(0,pos);
		ok=str_replace(teil,z+"lang="+value,loc);
		ok=ok+'&'+teil3;
		if (ok) top.parent.navi.location.href=ok;
	}
}

function mnavHandler(menu,level) {
}

function module_searchForm () {
	f = document.forms.module_search;
	needle = f.needle.value;
	rule = f.rule.value;
	
	var ar=f.needle.value.split(" ");
	var nd="";
	var con="";
		
	// Verbindung der Suchwörter ermitteln
	if (f.rule.value) con=f.rule.value;
	if (!con) con="OR";
	
	// Wörter mit Verbindungswort verbinden
	for (i=0; i<ar.length; i++)
	{
		if ((i+1)<ar.length) nd+="'"+ar[i]+"' "+con+" ";
		else nd+="'"+ar[i]+"'";
	}
	f.searchString.value=nd;
	if(f.target && f.target.substring(0, 1) != '_')openFreeWindow('',f.target,'','','','','','1',550,500,0,0);
	if (nd) document.forms.module_search.submit();
}

function hilightNavi(no) {
	if(no)
	{
		var reload=0;
		if (parent.frames && parent.frames.frm_mnav) {
			var naviframe=parent.frames.frm_mnav;
			naviframe.setHighlight(no, true);
		} else {
			reload=1;
		}
		if (reload) {
			window.setTimeout('hilightNavi()',750);
		}
	}
}

function onInteractionEvent(e)
{
	if(e)
	{
		var fname = 'onInteraction'+e.toUpperCase();
		eval('if(window.'+fname+') '+fname+'();')
	}
}

function goPopup(url,width,height,abschnitt,scroll) {
        var popupID='popup'+width+'x'+height+'_'+scroll;
        //popupID='test';
        //alert(popupID);
        //alert(scroll);
        if (scroll==1) {
                
                openWin(url+'&dbc='+dbc+abschnitt,width,height,popupID,'menubar=no,toolbar=no,directories=no,status=no,location=no,scrollbars=yes,resizable=no',false);
        } else {
                openWin(url+'&dbc='+dbc+abschnitt,width,height,popupID,'menubar=no,toolbar=no,directories=no,status=no,location=no,scrollbars=no,resizable=no',false);        
        }

}

function getFlash (flash) {
        if (document.all) {
                if (document.all[flash]) {
                        return document.all[flash];
                }
                if (window.opera) {
                        var movie = eval(window.document + flash);
                        if (movie.SetVariable) {
                                return movie;
                        }
                }
                return;
        }
        if(document.layers) {
                if(document.embeds) {
                        var movie = document.embeds[flash];
                        if (movie.SetVariable) {
                                return movie;
                        }
                }
                return;
        }
        if (!document.getElementById) {
                return;
        }
        var movie = document.getElementById(flash);
        if (movie.SetVariable) {
                return movie;
        }
        var movies = movie.getElementsByTagName('embed');
        if (!movies || !movies.length) {
                return;
        }
        movie = movies[0];
        if (movie.SetVariable) {
                return movie;
        }
        return;
}

function setFlashVar (variable, wert, name) {
        if (!name) name='flash';
        //window.document.flash.SetVariable(variable, wert);
        //eval('window.document.' + name + '.SetVariable(variable, wert);');
        
        var movie = getFlash(name);
		if (movie) {
			movie.SetVariable(variable, wert);
		}
}

function printOpeningTag(name, params) {
	var output = '<' + name;
	for (key in params) {
		output += ' ' + key + '="' + params[key] + '"'
	}
	output += '>';
	document.write(output);
}

function printClosingTag(name) {
	var output = '</' + name + '>';
	document.write(output);
}

function printObjectOpeningTag(params) {
	params['classid'] = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000';
	params['codebase'] = 'https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0';
	printOpeningTag('object', params);
}

function getUrlParams() {
	var search = location.search.substr(1);
	var curPair = null;
	var pairs = search.split('&');
	var params = new Array();
	for (var i=0; i<pairs.length; i++) {
		curPair = pairs[i];
		tmp = curPair.split('=');
		params[tmp[0]] = tmp[1];
	}
	return params;
}

function tellafriend(path, pageID, ID, session) {
	url = path + '/addon/tellafriend/?ID=' + ID + '&' + session + '&pageID=' + pageID + '&link=' + escape(document.location.search);
	openWin(url, 300, 400, 'tellafriend');
}

function getSearchWin (languageid, dbcsessionid, path, f) {
	if (f == null) {
		var f = document.forms.search;
	}
	var needle = f.needle.value;
	var rule = f.rule.value;
	var ar = f.needle.value.split(" ");
	var clients = f.elements['client\[\]'];
	var nd = '';
	var con = '';
	var url = '';
	
	// Gucken ob von index.php oder von page.php der Aufruf kommt
	lookFor = document.location.href;
	
	if (lookFor.indexOf('?') >= 0) {
		lookForPath = lookFor.substring(0, lookFor.indexOf('?'));
	} else {
		lookForPath = lookFor;
	}
	var lastChar = lookForPath.substring(lookFor.length - 1 , lookFor.length);
	if (lookFor.indexOf('content_manager') == -1 && 
			(lookFor.indexOf('index.php') > 0
			|| lastChar == '/' // direct call to index document, invisible in path
			)
	) {
		url = './content_manager/';
	} 
	
	if (path) {
		url = path;
	}
	
	if (lookFor.indexOf('content_manager') == -1 && lookFor.indexOf('/go/') > -1) {
		if (path) {
			url = path + '/content_manager/';
		} else {
			url = '../../../../content_manager/';
		}
	}	
	
	needle = needle.replace(/%/g, '*');
	if (needle == '*') {
		nd = "'#ANYWORD#'";
	} else {
		// Verbindung der Suchwörter ermitteln
		if (f.rule.value) con = f.rule.value;
		if (!con) con = "OR";
		
		// Wörter mit Verbindungswort verbinden
		for (i=0; i<ar.length; i++)
		{
			if ((i+1)<ar.length) nd+="'"+ar[i]+"' "+con+" ";
			else nd+="'"+ar[i]+"'";
		}
	}
	f.searchString.value = nd;
	
	url += 'page.php';
	url += '?ID=' + languageid;
	url += '&dbc=' + dbcsessionid;
	url += '&mod=communicate';
	url += '&searchString=' + escape(f.searchString.value);
	url += '&needle=' + needle;
	url += '&rule=' + rule;
	if (f.display && f.display.checked) {
		url += '&display=' + f.display.value;
	}
	
	if (clients != undefined && clients.length > 0) {
		for (var i = 0; i < clients.length; i++) {
			if (clients[i].type == 'hidden' || (clients[i].type == 'checkbox' && clients[i].checked)) {
				url += '&client[]=' + clients[i].value;
			}
		}
	}
	
	if (f.target == '_self') {
		location.href = url;
	} else {
		window.document.iamDaSearchWindow = true;
		openSearchWindow(url);
	}
	return false;
}

// echt ein scheiss, dass wir die funktionen alle doppelt haben müssen, für front- und backend, :((
function getAbsLeft(el) {
	if (el == undefined || el == null) {
		return 0;
	}
	return (el.offsetParent != undefined || el.offsetParent != null)?el.offsetLeft+getAbsLeft(el.offsetParent):el.offsetLeft;
}

function getAbsTop(el) {
	if (el == undefined || el == null) {
		return 0;
	}
	return (el.offsetParent != undefined || el.offsetParent != null)?el.offsetTop+getAbsTop(el.offsetParent):el.offsetTop;
}

function lockElement(lockElement, lockDivId, text, withInformationIcon) {
	if (lockElement == undefined || lockElement == null) {
		return false;
	}
	if (lockElement.offsetHeight == undefined || lockElement.offsetHeight == null) {
		return false;
	}
	if (lockElement.offsetWidth == undefined || lockElement.offsetWidth == null) {
		return false;
	}
	
	var statusDiv = document.getElementById(lockDivId);
	var statusTd = document.getElementById(lockDivId + 'Td');

	var catX = getAbsTop(lockElement);
	var catY = getAbsLeft(lockElement);

	var catHeight = lockElement.offsetHeight;
	var catWidth = lockElement.offsetWidth;

	statusDiv.style.top = catX;
	statusDiv.style.left = catY;
	statusDiv.style.width = catWidth;
	statusDiv.style.height = catHeight;

	statusDiv.style.filter = "alpha(opacity=75)";
	statusDiv.style.opacity = "0.75";

	if (withInformationIcon) {
		statusTd.innerHTML = "<table width='100%' height='100%' cellpadding='0' cellspacing='0'><tr><td align='center' valign='middle'><table><tr><td class='" + lockDivId + "Icon'>&nbsp;</td><td class='" + lockDivId + "Text'>" + text + "</td></tr></table></td></tr></table>";
	} else {
		statusTd.innerHTML = text;
	}
	statusDiv.style.display = 'block';
	showHideCovered(statusDiv, false);
}

function unlockElement(lockDivId) {
	if (lockElement == undefined || lockElement == null) {
		return false;
	}
	var statusDiv = document.getElementById(lockDivId);
	statusDiv.style.display = 'none';
	showHideCovered(statusDiv, true);
}

function showHideCovered(el, hidden) {
	if (el == undefined || el == null) {
		return 0;
	}
	if (el.offsetHeight == undefined || el.offsetHeight == null) {
		return false;
	}
	if (el.offsetWidth == undefined || el.offsetWidth == null) {
		return false;
	}
	
	if (!ie) return;
	var tags = new Array("applet", "iframe", "select");

	var EX1 = getAbsLeft(el);
	var EX2 = el.offsetWidth + EX1;
	var EY1 = getAbsTop(el);
	var EY2 = el.offsetHeight + EY1;

	for (var k = tags.length; k > 0; ) {
		var ar = document.getElementsByTagName(tags[--k]);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			var CX1 = getAbsLeft(cc);
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = getAbsTop(cc);
			var CY2 = cc.offsetHeight + CY1;

			if (hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				if (!cc.__msh_save_visibility) {
					if (!cc.style.visibility) {
						cc.style.visibility = 'visible';
					}
					cc.__msh_save_visibility = cc.style.visibility;
				}
				cc.style.visibility = cc.__msh_save_visibility;
			} else {
				if (!cc.__msh_save_visibility) {
					if (!cc.style.visibility) {
						cc.style.visibility = 'visible';
					}
					cc.__msh_save_visibility = cc.style.visibility;
				}
				cc.style.visibility = "hidden";
			}
		}
	}
}
var actionLayer;
var actionTd;

function getWindowWidth() {
	if (self.innerWidth) {
		return self.innerWidth;
	} else if (document.documentElement && document.documentElement.clientWidth) {
		return document.documentElement.clientWidth;
	} else if (document.body) {
		return document.body.clientWidth;
	}
}

function getWindowHeight() {
	if (self.innerHeight) {
		return self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		return document.documentElement.clientHeight;
	} else if (document.body) {
		return document.body.clientHeight;
	}
}

function showActionLayer(itemID) {
  	if (document.getElementById) {
    	actionLayer = document.getElementById('actionLayer' + itemID);
		if (actionLayer) {
			actionTd = document.getElementById('actionTd' + itemID);
			actionLayer.style.visibility = 'visible';
		}
	}
}

function hideActionLayer(itemID) {
  	if (document.getElementById) {
    	actionLayer = document.getElementById('actionLayer' + itemID);
		if (actionLayer) {
			actionLayer.style.visibility = 'hidden';
		}
	}
}

function onLoadActionLayer() {
	if(typeof(al_itemID) != 'undefined') {
		showActionLayer(al_itemID);
	}
}

/*@deprecated*/ 
function cmsLinkElementShowLayer(linkId, divId, layerGroup, hideAll) {
	if (YAHOO.dbcYuiContainer['overlay_' + linkId]) {
		YAHOO.dbcYuiContainer['overlay_' + linkId].show();
	} else {
		document.getElementById('cmsSHLayer-' + divId + '-' + layerGroup).style.visibility = 'visible';
	}
	/*
	if (hideAll && layerGroup) {
		var allLayers = document.getElementsByTagName('DIV');
		
		for (var i = 0; i < allLayers.length; i++) {
			var curLayer = allLayers[i];
			if (curLayer.id.indexOf('cmsSHLayer') !== -1) {
				var group = curLayer.id.substr(curLayer.id.lastIndexOf('-') + 1);	
				if (group == layerGroup) {
					var tmp = curLayer.id.split('-');
					if (tmp[1] != divId) {
						cmsLayerElementHideLayer(tmp[1], layerGroup);
					}
				}
			}
		}
	}
	*/
}

function cmsElementShowLayer(divId, layerGroup, effectConf, hideAll) {
	cmsElementShowHideLayer('show', divId, layerGroup, effectConf, hideAll);
}

function cmsElementHideLayer(divId, layerGroup, effectConf) {
	cmsElementShowHideLayer('hide', divId, layerGroup, effectConf);
}

function cmsElementShowHideLayer(action, divId, layerGroup, effectConf, hideAll) {
	if (effectConf.effect && effectConf.effect != '-1') {
		if (effectConf.duration == undefined || !effectConf.duration) {
			effectConf.duration = 1;
		}
		var myOverlay = new YAHOO.widget.Overlay(
			'cmsSHLayer-' + divId + '-' + layerGroup
			,
			{
				visible: false,
				iframe: false,
				effect: {
						effect: YAHOO.widget.ContainerEffect[effectConf.effect],
						duration: effectConf.duration
				}
			}
		);
		if (action == 'show') {
			myOverlay.show();
		} else if (action == 'hide') {
			myOverlay.hide();
		}
	} else {
		if (action == 'show') {
			document.getElementById('cmsSHLayer-' + divId + '-' + layerGroup).style.visibility = 'visible';
		} else if (action == 'hide') {
			document.getElementById('cmsSHLayer-' + divId + '-' + layerGroup).style.visibility = 'hidden';
		}
		
	}
	
	if (hideAll && layerGroup) {
		var allLayers = document.getElementsByTagName('DIV');
		
		for (var i = 0; i < allLayers.length; i++) {
			var curLayer = allLayers[i];
			if (curLayer.id.indexOf('cmsSHLayer') !== -1) {
				var group = curLayer.id.substr(curLayer.id.lastIndexOf('-') + 1);	
				if (group == layerGroup) {
					var tmp = curLayer.id.split('-');
					if (tmp[1] != divId) {
						cmsElementHideLayer(tmp[1], layerGroup, effectConf);
					}
				}
			}
		}
	}
}

function jumpTo(flashID, num) {
	setFlashVar('jumpTo', num, flashID);
}

// Kalender im Pagefooter anzeigen
// by DR

function showCalenderInPage (){
	var div = document.getElementById('calenderExistsTrue');
	if (div != undefined) {
            showEventCalender();
	}
}

function cmsElementPlayFlash(flashId) {
	// workaround: wenn flash direkt abgespielt
	// wird klappt es im firefox nicht, wenn das flash
	// voher erst sichbar gemacht wird (display: block)
	window.setTimeout(
		function () {
			if (cmsFlashAlreadyPlayed[flashId] != true) {
				var flash = getFlash(flashId);
				flash.Play();
				cmsFlashAlreadyPlayed[flashId] = true;
			}
		},
		0
	);
}

//-->	

