// JavaScript Bibliothek
//(C) Diomira.de 2006-2011
// All rights reserved

//Browserweiche
IE = document.all&&!window.opera;
DOM = document.getElementById&&!IE;
MOZ = document.contentType;
OP = window.opera;
//Safari kann nicht erkannt werden, weil alle Ergebnisse true liefern


fadeTimers = new Array();
fadeObjects = new Array();
fadeControl = new Array();

TippText= new Array();
function PopUp(callerID,t,a) {
ClosePopUp();
var relatedElement = document.getElementById(callerID);
var OuterFrame = document.getElementById('PopUP2');
var WriteTag = document.createElement("DIV");
var WriteExtraTag = document.createElement("DIV");
var StyleClass = document.createAttribute("class");
var ElementStyle = document.createAttribute("style");
var ExtraStyleClass = document.createAttribute("class");
OuterFrame.style.display="block";
StyleClass.nodeValue = a;
ExtraStyleClass.nodeValue = "TipBoxExtra";
if(!TippText[callerID.slice(0,5)+'_Extra']) TippText[callerID.slice(0,5)+'_Extra'] = '';


WriteTag.setAttributeNode(StyleClass);
WriteTag.setAttributeNode(ElementStyle);
WriteExtraTag.setAttributeNode(ExtraStyleClass);

var NewTextToParagraph = document.createTextNode(TippText[t]);
var ExtraTextToParagraph = document.createTextNode(TippText[callerID.slice(0,5)+'_Extra']);
var xposparent=findPosX(relatedElement);
var yposparent=findPosY(relatedElement);
WriteTag.appendChild(NewTextToParagraph);
WriteExtraTag.appendChild(ExtraTextToParagraph);
WriteTag.appendChild(WriteExtraTag, WriteTag.lastChild);
OuterFrame.appendChild(WriteTag, OuterFrame.lastChild);

document.getElementById('PopUP2').style.top=(yposparent-(OuterFrame.offsetHeight+10)) + 'px';
document.getElementById('PopUP2').style.left=(xposparent-(OuterFrame.offsetWidth/2)+20) + 'px';

}

function ClosePopUp(callerID) {
var relatedElement = document.getElementById('PopUP2');
relatedElement.innerHTML="";
relatedElement.style.display="none";
}


function findPosX(obj) {
   var curleft = 0;
   if(obj.offsetParent) {
      while(obj.offsetParent) {
         curleft += obj.offsetLeft
         obj = obj.offsetParent;
      }
   }
   else if(obj.x)
     curleft = obj.x;
   return curleft;
}

function findPosY(obj) {
   var curtop = 0;
   if(obj.offsetParent) {
      while(obj.offsetParent) {
         curtop += obj.offsetTop
         obj = obj.offsetParent;
      }
   }
   else if(obj.y)
      curtop = obj.y;
   return curtop;
}



function karte(ID,PLZ,formname)
{if(ID && PLZ) {
document.forms[formname].SubmitByMap.value=ID+'_'+PLZ;
document.forms[formname].submit();
}}


function addUmlaut(type)
{
var relatedElement = document.getElementById('suchort');
l=relatedElement.value.length-1;
	switch (type) {
	case 'a':
	if(relatedElement.value.substr(l,1) == ' ' || relatedElement.value.substr(l,1) == '') relatedElement.value+='Ä'; else relatedElement.value+='ä';
	break;
	case 'u':
	if(relatedElement.value.substr(l,1) == ' ' || relatedElement.value.substr(l,1) == '') relatedElement.value+='Ü'; else relatedElement.value+='ü';
	break;
	case 'o':
	if(relatedElement.value.substr(l,1) == ' ' || relatedElement.value.substr(l,1) == '') relatedElement.value+='Ö'; else relatedElement.value+='ö';
	break;
	case 's':
	relatedElement.value+='ß';
	break;
	}
}



// Browserweiche
IE = document.all&&!window.opera;
DOM = document.getElementById&&!IE;

// Variablen für die Mausposition
var mouseX = 0; // x-Koordinate
var mouseY = 0; // y-Koordinate
var StageX = 0 // Position Website

/* Body-Objekt des IE ermitteln (abhängig, ob IE im Quirks- oder Standardmode*/
function getBody(){
  // Entsprechendes Bodyobjekt zurückgeben (CSS1Compat = Standardmode
  return (window.document.compatMode == "CSS1Compat") ?
          window.document.documentElement : window.document.body || null;
}

var ieBody = null;

// Funktion zum Initialisierung, die in onload aufgerufen wird
function initMousePos(){
  document.onmousemove = getMousePos; // Mausposition ermitteln

  // Falls es sich um einen IE handelt
  if(IE)
    ieBody = getBody(); // Bodyobjekt für IE ermitteln
}

// Funktion zum Ermitteln der Mausposition
function getMousePos(ereignis){
	  // Aktuelle Mauskoordinaten bei Mausbewegung ermitteln
	  mouseX = (IE) ? window.event.clientX : ereignis.pageX;
	  // Mauskoordinate im Body auch nach Scrollen (Wert ist evtl. höher im IE)
	  mouseY = (IE) ? (window.event.clientY + ieBody.scrollTop) : ereignis.pageY;
	  // Mauskoordinate im Fenser (ohne Scrollen im IE)
	  //mouseY = (IE) ? window.event.clientY : ereignis.pageY;
	StageX=findPosX(document.getElementById('stage'));
	CorrectorX=0;
	if(IE) CorrectorX=18;
	mouseX-=StageX;
	if(document.getElementById('karte')) {rightX=findPosX(document.getElementById('karte'))-70;}

	//Teaser
	if((document.getElementById('KirchenPopUp') && (mouseX<600 || mouseY < document.getElementById('KirchenPopUp').style.top.slice(0,-2)-10) && currentChurchId>0)) closeChurchInfo();

	//PopUp
	if(document.getElementById('PopUP') && document.getElementById('Layer') && document.getElementById(currentPopUP)) if((document.getElementById('Layer').style.display=="" || document.getElementById('Layer').style.display=="none") && document.getElementById('PopUP').style.display=='block' && !( (( (mouseX+StageX)>=findPosX(document.getElementById('PopUP'))-CorrectorX ) &&  ( mouseY>=findPosY(document.getElementById('PopUP'))-0 ) && ( (mouseX+StageX)<=findPosX(document.getElementById('PopUP'))+document.getElementById('PopUP').offsetWidth )-CorrectorX && ( (mouseY)<=findPosY(document.getElementById('PopUP'))+0+document.getElementById('PopUP').offsetHeight ) ) || (/*rechteck außen*/ ((mouseX+StageX)>=findPosX(document.getElementById(currentPopUP))-CorrectorX ) &&  ( mouseY>=findPosY(document.getElementById(currentPopUP))-0 ) && ( (mouseX+StageX)<=findPosX(document.getElementById(currentPopUP))+document.getElementById(currentPopUP).offsetWidth ) && ( (mouseY)<=findPosY(document.getElementById(currentPopUP))+0+document.getElementById(currentPopUP).offsetHeight )) ) ) {closePopUP();}
	//IFrame Popup

	if(document.getElementById('PopUP') && document.getElementById('Layer') && currentIframePopUP && currentIframe) if(currentIframePopUP.id && currentIframe.id && (document.getElementById('Layer').style.display=="" || document.getElementById('Layer').style.display=="none") && document.getElementById('PopUP').style.display=='block' && !( (( (mouseX+StageX)>=findPosX(document.getElementById('PopUP'))-CorrectorX ) &&  ( mouseY>=findPosY(document.getElementById('PopUP'))-0 ) && ( (mouseX+StageX)<=findPosX(document.getElementById('PopUP'))+document.getElementById('PopUP').offsetWidth )-CorrectorX && ( (mouseY)<=findPosY(document.getElementById('PopUP'))+0+document.getElementById('PopUP').offsetHeight ) ) || (/*rechteck außen*/ ((mouseX+StageX)>=findPosX(currentIframe)+findPosX(currentIframePopUP)-CorrectorX ) &&  ( mouseY>=findPosY(currentIframe)+findPosY(currentIframePopUP)-0 ) && ( (mouseX+StageX)<=findPosX(currentIframe)+findPosX(currentIframePopUP)+currentIframePopUP.offsetWidth ) && ( (mouseY)<=findPosY(currentIframe)+findPosY(currentIframePopUP)+0+currentIframePopUP.offsetHeight )) ) ) {closePopUP();}

	//Startseite Info
	//Eingang
	if(document.getElementById('karteninfo') && document.getElementById('bar1')) if(document.getElementById('karteninfo').style.display!='block' && fadeTimers['karteninfo']==null && (mouseX<700 && mouseX>(300) && mouseY>250 && mouseY<500)) showMapInfo(true);
	//Ausgang
	if(document.getElementById('karteninfo') && document.getElementById('bar1')) if(document.getElementById('karteninfo').style.display=='block' && fadeControl['karteninfo']==null  && !(mouseX<700 && mouseX>(300) && mouseY>250 && mouseY<500) && !(mouseX<1000 && mouseX>700 && mouseY>250 && mouseY<800)) showMapInfo(false);
}


/**
 *
 * @access public
 * @return void
 **/
var switchClick; var currentSwitcherObject;
function switcher(id1,id2,click1,click2,interval) {
		currentSwitcherObject=id2;
		fadeControl[id1+"_switcher"]=window.setInterval(function() {doSwitch(id1,id2,click1,click2)},(interval)*1000);
}


function doSwitch(id1,id2,click1,click2){
	oldSwitcherObject=currentSwitcherObject;
	if(currentSwitcherObject==id1) {switchClick=click2; currentSwitcherObject=id2;} else {switchClick=click1;currentSwitcherObject=id1};
	//alert(currentSwitcherObject+"//"+id1+"//"+id2);

	if(oldSwitcherObject) fadeInOut(oldSwitcherObject, 0, 20,5);
	document.getElementById(currentSwitcherObject).className="transparenz-0-T";
	document.getElementById(currentSwitcherObject).style.display='block';
	fadeInOut(currentSwitcherObject, 100, 20,5);
		document.getElementById(currentSwitcherObject).onclick=function() {window.open(switchClick); return false;}

		fadeControl[currentSwitcherObject]=window.setInterval(function() {switchFaderProcessing(currentSwitcherObject,oldSwitcherObject)},1);
}

function switchFaderProcessing(ObjectName,oldSwitcherObject){

 	if(fadeTimers[ObjectName]!=null)
	{
		return;
	}
	 else {
		window.clearInterval(fadeControl[ObjectName]);

		if(oldSwitcherObject) {
			document.getElementById(oldSwitcherObject).onclick=null;
			document.getElementById(oldSwitcherObject).style.display='none';
		}

	}

}


var currentChurchId=-1;
function getCurchInfo(ChurchID,top)
{
	var xmlhttp;
	top +=200;

	if(currentChurchId != ChurchID && ChurchID>0) {

	if (window.XMLHttpRequest)
	  {
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  xmlhttp=new XMLHttpRequest();
	  }
	else if (window.ActiveXObject)
	  {
	  // code for IE6, IE5
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	else
	  {
	  alert("Ihr Browser unterstützt diese Funktion leider nicht.");
	  }
	xmlhttp.onreadystatechange=function()
	{
	  var KirchenPopUp = document.getElementById('KirchenPopUp');

	    	  //Hack für IE6 z-index Problem
	    	  var html='';
	          var is_ie6 =
	           document.all &&
	           (navigator.userAgent.toLowerCase().indexOf("msie 6.") != -1);
	 		if (is_ie6)
	        {  html = "<iframe style='position:absolute;display:none;display:block;z-index:-1; width:3000px; height:3000px; top:0; left:0; filter:mask();'></iframe>";
	           KirchenPopUp.innerHTML = html;
	        }


	  KirchenPopUp.style.top=top + 'px';
	  KirchenPopUp.style.left=(StageX+600) + 'px';

	if(xmlhttp.readyState==4)
	  { KirchenPopUp.innerHTML='';
		KirchenPopUp.innerHTML=html+xmlhttp.responseText;
	  } else {
	  KirchenPopUp.innerHTML='';
	  KirchenPopUp.innerHTML=html+"<div style='width:200px;height:200px;background:url(./grafik/timebar.gif) center center no-repeat;background-color:FFFFFF;'></div>";
	  }
	}
	xmlhttp.open("GET","./diomiraapi?SID=" + SessionID + "&ChurchID="+ChurchID+"&ident={" + authentication + "}",true);
	xmlhttp.send(null);
	if(currentChurchId!=ChurchID && currentChurchId>-1)ClosePopUp();
	currentChurchId=ChurchID;
	}
	}

	function closeChurchInfo()
	{
	  var KirchenPopUp = document.getElementById('KirchenPopUp');
	  KirchenPopUp.innerHTML='';
	  currentChurchId=-1;
	  //ClosePopUp();
	}



function checkAddForm()
{
	check=0;
	fehler=false;
	if(document.patch.WahlStunden.value=='' || document.patch.WahlMinuten.value=='')
		{fehler='Bitte geben Sie die Uhrzeit ein!';}
	 else
	 	{if(document.patch.WahlStunden.value>23 || document.patch.WahlMinuten.value>59 || document.patch.WahlStunden.value.match(/[^0-9]/) || document.patch.WahlMinuten.value.match(/[^0-9]/)) {fehler='Bitte geben Sie eine gültige Uhrzeit ein!';}
			else {
			if(document.patch.WahlMinuten.value.match(/^[0-9]$|[0-5][1-46-9]/)) fehler='Bitte geben Sie eine seriöse Uhrzeit ein';
			}
		}
	if(document.patch.WahlWoTag.value=='_') fehler='Bitte geben Sie den Wochentag an!';
	if(document.patch.WahlAngebot.value=='_') fehler='Bitte geben Sie die Art des Termins an!';
	if(document.patch.WahlRegel.value=='_') fehler='Bitte geben Sie an, ob der Termin regelmäßig stattfindet!';
	if(document.patch.WahlSprache.value=='_') fehler='Bitte geben Sie an, in welcher Sprache der Termin stattfindet!';
	if(!fehler) check=1; else alert(fehler);
	return check;
}


function checkAddForm7(Stunden, Minuten)
{
	alert(Stunden);
	check=0;
	fehler=false;
	if(Stunden=='' || Minuten=='')
		{fehler='Bitte geben Sie die Uhrzeit ein!';}
	 else
	 	{if(Stunden>23 || Minuten>59 || Stunden.match(/[^0-9]/) || Minuten.match(/[^0-9]/)) {fehler='Bitte geben Sie eine gültige Uhrzeit ein!';}
			else {
			if(Minuten.match(/^[0-9]$|[0-5][1-46-9]/)) fehler='Bitte geben Sie eine seriöse Uhrzeit ein';
			}
		}
	if(!fehler) check=1; else alert(fehler);
	return check;
}





function clipBoard(x)
{
	t=0;
	inlay='Block_0';
	while(document.getElementById(inlay)) {
		if(t==x)document.getElementById(inlay).style.display='block'; else document.getElementById(inlay).style.display='none';
		t++;
		inlay='Block_'+t;
	}
}


var IsExtended, YesDoExtend;
function selectCheck(a){
	if(a==1) {
	if(document.search.typ0.checked==true)
	for(c=1;c<=12;c++) document.search.elements['typ'+c].checked=false; else document.search.typ0.checked=true;
	if(IsExtended==true && document.search.searchText.value=='') SrincDropDown();
	} else {
	YesDoExtend=false;
	for(c=1;c<=12;c++) if(document.search.elements['typ'+c].checked==true) YesDoExtend=true;
	if(YesDoExtend==true)document.search.typ0.checked=false;else document.search.typ0.checked=true;
	var textsearch= document.search.searchText.value;
	var textsearch=textsearch.replace(/  | |[%&/$?!]/g, '');
	if(textsearch.length>3) YesDoExtend=true;
	if(YesDoExtend==true) ExtendDropDown();
	else if(IsExtended==true) SrincDropDown();
	}
}

function ExtendDropDown() {
	if(!IsExtended) {
	var relatedElement = document.getElementById('UKrS');
	var KMStep = new Array(50,75,100,200);

	for(c=0;c<=3;c++) {
	var km = KMStep[c];
	relatedElement.options[relatedElement.options.length] = new Option("Umkreis bis " + km + "km", km);
	}
	IsExtended = true;
	}
}

function SrincDropDown() {
	var relatedElement = document.getElementById('UKrS');
	relatedElement.options.length = 3;
	IsExtended = false;
}




var showMsgLocationIsOpen = 0;
var pid;
var latitude = Array();
var longitude = Array();

function showMsgLocation() {
	html="<iframe style='position:absolute;display:none;display:block;z-index:-1; width:3000px; height:3000px; top:0; left:0; filter:mask();border:0px;'></iframe><div class='schattenboxRechts' style='border:0px;position:relative;padding:0px 10px 0px 0px; width:250px;'>";
	html+="<div style='background-color:#FFFFFF;border:1px solid;padding:10px 10px 10px 10px;'>Um die Kirche auf der Landkarte richtig zu positionieren, ziehen Sie einfach die Markierung an die richtige Stelle und klicken Sie auf speichern.<p style='padding-top:10px;'><input type='button' class='button3' id='NewPosCancel' value='abbrechen' onclick='closeMsgLocation()'>&nbsp;<input type='button' class='button1' id='NewPosSave' value='speichern' onclick='saveMsgLocation(pid)'> </div></div><div class='schattenboxUnten'></div>";
	var msglocation = document.getElementById('msglocation');
	if(MOZ) msglocation.style.left=(StageX+(findPosX(document.getElementById('MyGmap'))-StageX )+(document.getElementById('MyGmap').offsetWidth-100))+'px';
	else msglocation.style.left=((findPosX(document.getElementById('MyGmap'))-StageX )+(document.getElementById('MyGmap').offsetWidth-100))+'px';
	msglocation.innerHTML=html;
	showMsgLocationIsOpen=1;
}

function closeMsgLocation(){
	var msglocation = document.getElementById('msglocation');
	msglocation.innerHTML='';
	showMsgLocationIsOpen=0;
}

function saveMsgLocation(ChurchID){
	var msglocation = document.getElementById('msglocation');
	msglocation.innerHTML='';

	var xmlhttp;

	if(ChurchID && ChurchID>0) {

	if (window.XMLHttpRequest)
	  {
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  xmlhttp=new XMLHttpRequest();
	  }
	else if (window.ActiveXObject)
	  {
	  // code for IE6, IE5
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	else
	  {
	  alert("Ihr Browser unterstützt diese Funktion leider nicht.");
	  }
	xmlhttp.onreadystatechange=function()
	{

	if(xmlhttp.readyState==4)
	  {
	  msglocation.innerHTML=xmlhttp.responseText;
	    latitude[pid]=thisMarker[0].getPoint().lat();
	    longitude[pid]=thisMarker[0].getPoint().lng();
	    window.setTimeout("closeMsgLocation()", 1500);

	  } else {
	  msglocation.innerHTML='';
	  html="<iframe style='position:absolute;display:none;display:block;z-index:-1; width:3000px; height:3000px; top:0; left:0; filter:mask();border:0px;'></iframe><div style='width:250px;'><div class='schattenboxRechts' style='border:0px;position:relative;padding:0px 10px 0px 0px;'>";
	  msglocation.innerHTML=html+="<div style='background:url(./grafik/timebar.gif) center center no-repeat;background-color:#FFFFFF;border:1px solid;padding:10px 10px 10px 10px;'> </div></div></div><div class=\"schattenboxRechtsUnten\" style=\"padding-right:14px\"> <div class=\"schattenboxUnten\"> </div></div></div>";
	  showMsgLocationIsOpen=0;
	  }
	}


	xmlhttp.open("GET","./diomiraapi?SID=" + SessionID + "&ChurchID="+ChurchID+"&newGeo="+thisMarker[0].getPoint()+"&ident={" + authentication + "}&action=setgeopos",true);
	xmlhttp.send(null);
	}
}




function doChurchLog(churchID,roodID,ChurchName,ChurchCity,refreshPage) {
	getValue="&ChurchName="+ChurchName+"&ChurchCity="+ChurchCity+"&refreshPage="+refreshPage;
	openlayer(800);
	getAjax(churchID,'startLog',getValue,'LayerContainer');

}


function  classPreselect(){
	xx=0;

	while (firstInputField=document.getElementsByTagName("input")[xx]) {
	if(firstInputField.getAttribute("type")=="hidden" && firstInputField.id.substr(0,1)=="P") {
		thisType=firstInputField.value;
		thisValue=firstInputField.id.substr(1);
		if(thisType==1) inlay="A"+thisValue;
		if(thisType==2) inlay="B"+thisValue;
		if (OP) {Categories.document.getElementById(inlay).checked=true;


		} else  {
		var oIframe = document.getElementById('Categories');
  		var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
  		if (oDoc.document) oDoc = oDoc.document;
  		oDoc.forms["classification"].elements[inlay].checked=true;
		}
		//Categories.document.getElementById(inlay).checked=true;
	}
	xx++;
	}
}


function saveLogEntry(churchID,refreshPage){
	var getValue = '';

	var oIframe = document.getElementById('Categories');
  	var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
  	if (oDoc.document) oDoc = oDoc.document;
	if(oDoc.getElementsByTagName("input")) {

	var xx=0;
	var classifier = "";
		while (firstInputField=oDoc.getElementsByTagName("input")[xx]) {
		thisType=firstInputField.id.substr(0, 1);
		thisValue=firstInputField.id.substr(1);
		thisFlag=firstInputField.checked;
		//alert(thisType+' '+thisValue+' '+thisFlag);
			if(thisFlag==true) {
				if(thisType=="A") classifier+="1,"+thisValue+";";
				if(thisType=="B") classifier+="2,"+thisValue+";";
			}
		xx++;
		}
	if(classifier == "")classifier="void";
	getValue="&classifier="+classifier;
	}
	if(document.log.kirchenstatus[0].checked==true) getValue+="&kirchenstatus=1"+"&datumsFeld="+document.getElementById('datumAm').value;
	if(document.log.kirchenstatus[1].checked==true) getValue+="&kirchenstatus=4"+"&datumsFeld="+document.getElementById('datumSeit').value;
	if(document.log.kirchenstatus[2].checked==true) getValue+="&kirchenstatus=3"+"&datumsFeld="+document.getElementById('datumVon').value+"~~"+document.getElementById('datumBis').value;
	if(document.log.kirchenstatus[3].checked==true) getValue+="&kirchenstatus=2"+"&datumsFeld="+document.getElementById('datumVon').value+"~~"+document.getElementById('datumBis').value;
	getValue+="&voting="+document.getElementById('vote').value+"&refreshPage="+refreshPage;
	if(document.getElementById('logID').value>0) getValue+="&logID="+document.getElementById('logID').value;
	bewertung=maskText(document.log.bewertung.value);
	if(document.getElementById('bewertung').value.length>0)getValue+="&bewertung="+bewertung;
	if(!getValue) alert("Bitte machen Sie wenigstens eine Angabe!"); else
	getAjax(churchID,'saveLog',getValue,'LayerContainer');
}


function openlayer(layerWidth) {

	WindowWidth =document.body.clientWidth;
	WindowHeight =document.body.clientHeight;

	x= (WindowWidth/2)-(layerWidth/2);

	if(IE) y=document.documentElement.scrollTop +(document.documentElement.clientHeight *0.2);
	else y=window.pageYOffset+(window.innerHeight*0.2);

	//Bildschirm sperren
	document.getElementById('Layer').style.display="block";
	document.getElementById('Layer').style.top='0px';
	document.getElementById('Layer').style.left='0px';
	document.getElementById('Layer').style.width=WindowWidth+20+'px';
	document.getElementById('Layer').style.height=WindowHeight+50+'px';
	document.getElementById('Layer').className='transparenz-0';
	fadeInOut('Layer',50, 1, 5);
	document.getElementById('PopUP').style.display='block';
	document.getElementById('PopUP').style.top=y+'px';
	document.getElementById('PopUP').style.left=x+'px';
	document.getElementById('PopUP').className='LayerBox';
	document.getElementById('PopUP').innerHTML="<div onclick='closelayer();' style='background:url(./grafik/fensterschliessen.gif) top right no-repeat;cursor:pointer;width:120px;margin-right:10px;margin-top:10px;height:20px;'>&nbsp;</div><div ID='LayerContainer' style='text-align:left'></div>";
	fadeInOut('PopUP',100, 1, 5);
}

function closelayer(refreshPage) {
	fadeInOut('Layer', 0, 1, 5);
	fadeInOut('PopUP', 0, 1, 5);
	fadeControl['PopUP']=window.setInterval(function() {doCloselayer('PopUP',refreshPage);},200);
}

function doCloselayer(ObjectName,refreshPage){
 			if(fadeTimers[ObjectName]!=null)
			{
				return;
			}
			else {
				window.clearInterval(fadeControl[ObjectName]);
				fadeControl[ObjectName]=null;
				document.getElementById('Layer').style.top='0px';
				document.getElementById('Layer').style.left='0px';
				document.getElementById('Layer').style.width='0px';
				document.getElementById('Layer').style.height='0px';
				document.getElementById('Layer').style.display="none";
				document.getElementById('Layer').className='';
				document.getElementById('PopUP').className='';
				document.getElementById('PopUP').innerHTML='';
				document.getElementById('PopUP').style.display="none";
				if(refreshPage) {saveYPos();document.forms[refreshPage].submit();}
		}
}

function getAjax(ChurchID,LayerAction,getValues,ContainerName,ContainerObject) {

if(!ContainerObject) var container = document.getElementById(ContainerName); else container=ContainerObject;

var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Ihr Browser unterstützt diese Funktion leider nicht.");
  }
xmlhttp.onreadystatechange=function()
{

if(xmlhttp.readyState==4)
  {
    container.innerHTML=xmlhttp.responseText;
	popUPLoadOngoing=false;
  } else {
	container.innerHTML='';
	html="<iframe style='position:absolute;display:none;display:block;z-index:-1; width:3000px; height:3000px; top:0; left:0; filter:mask();border:0px;'></iframe>";
	container.innerHTML=html+="<div style='background:url(./grafik/timebar.gif) center center no-repeat;background-color:#FFFFFF;border:1px solid;padding:10px 10px 10px 10px;'> </div>";
  }
}
popUPLoadOngoing=true;
xmlhttp.open("GET","./diomiraapi?SID=" + SessionID + "&ChurchID="+ChurchID+"&ident={" + authentication + "}&action="+LayerAction+getValues,true);
xmlhttp.send(null);
}


var currentPopUP=null;
var popUPLoadOngoing=false;

function showChurchLog(UID,PID,Nick,NoOfLogs,ContactColumns,ContactRows,objectName){
if(currentPopUP==null || (currentPopUP!=null && currentPopUP!=objectName+'_'+UID+'_'+PID)) {
	Nick=maskText(Nick);
	currentPopUP=objectName+'_'+UID+'_'+PID;
	object=document.getElementById(objectName+'_'+UID+'_'+PID);
	y=findPosY(object);
	x=findPosX(object)+30;
	document.getElementById('PopUP').style.display="block";
	if(DOM) document.getElementById('PopUP').style.opacity= 1;
	else if(IE && document.getElementById('PopUP').filters.alpha) document.getElementById('PopUP').filters.alpha.opacity =  100;
	document.getElementById('PopUP').style.top=y+"px";
	document.getElementById('PopUP').style.left=x+"px";
	getAjax(PID,"showLog","&UID="+UID+"&Nick="+Nick+"&NoOfLogs="+NoOfLogs+"&ContactColumns="+ContactColumns+"&ContactRows="+ContactRows,"PopUP");
	}
}

var  currentIframePopUP =null;
var  currentIframe =null;
function showMemberMenu(UID,Nick,logsYN,hasContact,FormName,ObjectName,CallerUID,PopUpAncorObjectName,hasiframe,refreshSourceParam){
	var iframeshift=1;
if((currentPopUP && (currentPopUP.slice(0,ObjectName.length)!=ObjectName || hasiframe==true)) || !currentPopUP) {
	var iy=0;
	var ix=0;
	if(!PopUpAncorObjectName) {
	currentPopUP='membermenue_'+UID;
	object=document.getElementById('membermenue_'+UID);
	} else {
	currentPopUP=PopUpAncorObjectName;
	if(hasiframe==false) object=document.getElementById(PopUpAncorObjectName);
	else {
	var oIframe = document.getElementById(ObjectName);
	var iframeheight=0;
	iframeheight= oIframe.clientHeight;

	currentIframe=oIframe;
	iy=findPosY(oIframe);
	ix=findPosX(oIframe);
  	var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
  	if (oDoc.document) oDoc = oDoc.document;

		object=oDoc.getElementById(PopUpAncorObjectName);
		currentIframePopUP=object;
	}
//	alert(object.id+"---"+PopUpAncorObjectName);
	}
	if(iframeheight>0) iframeshift=(iy+iframeheight)/(iy+findPosY(object)+80);
	y=(iy+findPosY(object)+40)*iframeshift;
	x=ix+findPosX(object)+30;

	if(!hasiframe) hasiframe="false";
	if(!refreshSourceParam) refreshSourceParam="false";
	document.getElementById('PopUP').style.display="block";
	if(DOM) document.getElementById('PopUP').style.opacity= 1;
	else if(IE && document.getElementById('PopUP').filters.alpha) document.getElementById('PopUP').filters.alpha.opacity =  100;
	document.getElementById('PopUP').style.top=y+"px";
	document.getElementById('PopUP').style.left=x+"px";
	if(CallerUID==0 || CallerUID=="") {plug1=plug2=plug3="pleaseLogIn()";} else {plug1="doNewMessage("+UID+",false,\""+FormName+"\")";plug2="addToContact("+UID+",'"+FormName+"','"+ObjectName+"','"+PopUpAncorObjectName+"',"+hasiframe+",'"+refreshSourceParam+"');";plug3="deleteFromContact("+UID+",'"+FormName+"','"+ObjectName+"','"+PopUpAncorObjectName+"',"+hasiframe+",'"+refreshSourceParam+"');";}
	menuHTML="<form name=\"api\" style=\"display:inline\"><div style=\"width:190px;\"><div class=\"schattenboxRechts\" style=\"position:relative;padding:0px 10px 0px 0px;\">";
	menuHTML+="<div style=\"padding:10px 10px 10px 10px;background-color:#FFFFFF;border:1px solid;\" align=\"left\">";
	if(!hasContact)menuHTML+="<div style=\"background:url(./grafik/kontakte_24.png) top left no-repeat;padding:2px 0px 0px 35px\"><p><a class=\"redlink\" onClick=\""+plug2+"\" style=\"cursor:pointer;\"><span style='color:#4798DE'>"+Nick+"</span> zu meinen Kontakten hinzufügen</a></p></div>";
	menuHTML+="<div style=\"background:url(./grafik/kuvert_18.png) top left no-repeat;padding:2px 0px 0px 35px\"><p><a class=\"redlink\" onClick='"+plug1+"' style=\"cursor:pointer;\"><span style='color:#4798DE'>"+Nick+"</span> eine Nachricht schreiben</a></p></div>";
	if(logsYN) menuHTML+="<div style=\"background:url(./grafik/buchlupe_24.png) top left no-repeat;padding:2px 0px 0px 35px\"><p><a class=\"redlink\" style=\"cursor:pointer;\" onClick=\"document.api.goTo.value='showchurchlog_id_"+UID+"';document.api.submit();\">Zeige Kirchenlogbuch von <span style='color:#4798DE'>"+Nick+"</span> ("+logsYN+")</a></p></div>";
	else menuHTML+="<div style=\"background:url(./grafik/buchlupe_24.png) top left no-repeat;padding:2px 0px 0px 35px\"><p onClick=\"\" style=\"color:#C1C1C1;cursor:pointer;\">Zeige Kirchenlogbuch von <span style='color:#C1C1C1'>"+Nick+"</span> (0)</p></div>";
	if(hasContact)menuHTML+="<div style=\"background:url(./grafik/kontakte_24.png) top left no-repeat;padding:2px 0px 0px 35px\"><p><a class=\"redlink\" onClick=\""+plug3+"\" style=\"cursor:pointer;\"><span style='color:#4798DE'>"+Nick+"</span> von meinen Kontakten löschen</a></p></div>";
	menuHTML+="<input type='hidden' name='goTo'></div></div><div class=\"schattenboxRechtsUnten\" style=\"padding-right:14px\"> <div class=\"schattenboxUnten\"> </div></div></div></form>";
	document.getElementById('PopUP').innerHTML=menuHTML;

	}
}

function doNewMessage(toUID,ReplyID,refreshPage) {
	getValue="&ReplyID="+ReplyID+"&toUID="+toUID+"&refreshPage="+refreshPage;
	openlayer(395);
	getAjax(false,'newMessage',getValue,'LayerContainer');
}

function doSendMessage(toUID,ReplyID,refreshPage) {
	messageText=maskText(document.api.messageTextBox.value);
	getValue="&toUID="+toUID+"&ReplyID="+ReplyID+"&messageText="+messageText+"&refreshPage="+refreshPage;
	openlayer(395);
	getAjax(false,'sendMessage',getValue,'LayerContainer');
}


function doNewTopic(refreshPage) {
	openlayer(445);
	getValue="&refreshPage="+refreshPage;
	getAjax(false,'openNewThread',getValue,'LayerContainer');
}

function doNewGroupMessage(peerGroupID,peerGroupName,refreshPage) {
	openlayer(445);
	getValue="&refreshPage="+refreshPage+"&peerGroupID="+peerGroupID+"&peerGroupName="+peerGroupName;
	getAjax(false,'openNewGroupThread',getValue,'LayerContainer');
}

function doSendTopic(ChID,refreshPage) {
	messageText=maskText(document.api.messageTextBox.value);
	messageTopic=maskText(document.api.messageTopic.value);
	getValue="&messageTopic="+messageTopic+"&messageText="+messageText+"&ChID="+ChID+"&refreshPage="+refreshPage;
	openlayer(445);
	getAjax(false,'sendNewThread',getValue,'LayerContainer');
}

function doSendGroupMessage(peerGroupID,peerGroupName,refreshPage) {
	messageText=maskText(document.api.messageTextBox.value);
	messageTopic=maskText(document.api.messageTopic.value);
	getValue="&messageTopic="+messageTopic+"&messageText="+messageText+"&peerGroupID="+peerGroupID+"&refreshPage="+refreshPage+"&peerGroupName="+peerGroupName;
	openlayer(445);
	getAjax(false,'sendNewThread',getValue,'LayerContainer');
}

function showMessageHistory(MessageID,ObjectName){
	getValue="&MessageID="+MessageID;
	var oIframe = document.getElementById(ObjectName);
  	var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
  	if (oDoc.document) oDoc = oDoc.document;
	getAjax(false,'showMessageHistory',getValue,false,oDoc.body);
}


function postAlert(NoOfMessages) {
	openlayer(445);
	getValue="&NoOfMessages="+NoOfMessages;
	getAjax(false,'postAlert',getValue,'LayerContainer');
}


function closePopUP(){
	if(document.getElementById('PopUP').style.display=='block' && popUPLoadOngoing==false) {
	document.getElementById('PopUP').style.display='none';
	document.getElementById('PopUP').innerHTML="";
	currentPopUP=null;
	}
}


function addToContact(UID,FormName,ObjectName,PopUpAncorObjectName,hasiframe,refreshSourceParam){
	if(currentPopUP!='membermenue_'+UID) showMemberMenu(UID,false,false,false,FormName,ObjectName,false,PopUpAncorObjectName);
	getValue="&UID="+UID;
	getAjax(false,'addToContact',getValue,'PopUP');
	if(document.getElementById(ObjectName) && refreshSourceParam)getDataControl['addToContact'+getValue]=window.setInterval(function() {refreshContacts(FormName,ObjectName,'addToContact',refreshSourceParam,hasiframe);},200);
}

function deleteFromContact(UID,FormName,ObjectName,PopUpAncorObjectName,hasiframe,refreshSourceParam){
	if(currentPopUP!='membermenue_'+UID) showMemberMenu(UID,false,false,false,FormName,ObjectName,false,PopUpAncorObjectName);
	getValue="&UID="+UID;
	getAjax(false,'deleteFromContact',getValue,'PopUP');
	if(document.getElementById(ObjectName) && refreshSourceParam)	getDataControl['deleteFromContact'+getValue]=window.setInterval(function() {refreshContacts(FormName,ObjectName,'deleteFromContact',refreshSourceParam,hasiframe);},200);
}

function refreshContacts(FormName,ObjectName,LayerAction,refreshSourceParam,hasiframe){
	var timeout=0;
	if(popUPLoadOngoing==true && timeout<100)
			{
			timeout++;
				return;
			}
			else {
		if(timeout>99) alert("timeout");
		x=0;
	window.clearInterval(getDataControl[LayerAction+getValue]);
	//getValue="&FormName="+FormName+"&ObjectName="+ObjectName+"&Columns="+Columns+"&Rows="+Rows;
	if(refreshSourceParam) getValue="&"+refreshSourceParam;
	if(hasiframe) {
	var oIframe = document.getElementById(ObjectName);
	currentIframe=oIframe;
  	var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
  	if (oDoc.document) oDoc = oDoc.document;
	object=oDoc.getElementById("container_"+ObjectName);
		getAjax(false,'refreshContacts',getValue, ObjectName,object);
	} else {
		getAjax(false,'refreshContacts',getValue, ObjectName);}
	getValue="&FormName="+FormName;
	if(document.getElementById("ContainerContacts")) getAjax(false,'refreshContacts',getValue, "ContainerContacts");
	window.setTimeout(function (){popUPLoadOngoing=false;closePopUP()}, 1500);
}
}


function pleaseLogIn(ObjectName){
	if(!currentPopUP) showMemberMenu(false,false,false,false,false,false,false,ObjectName);
	html="<form name=\"api\" style=\"display:inline\"><div style=\"width:250px;\"><div class=\"schattenboxRechts\" style=\"position:relative;padding:0px 10px 0px 0px;\">";
	html+="<div style=\"padding:10px 10px 10px 20px;background-color:#FFFFFF;border:1px solid;\" align=\"left\"><p style=\"color:#C93131\">Um diese Funktion nutzen zu können, loggen Sie sich bitte ein</p>";
	html+="<div style=\"background:url(./grafik/pfeil_8.gif) center left no-repeat;padding:2px 0px 0px 13px\"><p style=\"color:#4798DE\"><a class=\"redlink\" onClick=\"document.api.goTo.value='register_0'; document.api.submit();\" style=\"cursor:pointer;\" >zum Login</a></p></div><p>Wenn Sie noch kein Mitglied der Dio-Community sind, laden wir Sie herzlich ein, sich uns anzuschließen.</p><div style=\"background:url(./grafik/pfeil_8.gif) center left no-repeat;padding:2px 0px 0px 13px\"><p style=\"color:#4798DE\"><a class=\"redlink\" onClick=\" document.api.goTo.value='register_1'; document.api.submit();\" style=\"cursor:pointer;\" >der Community beitreten</a></p></div>";
	html+="</div></div><div class=\"schattenboxRechtsUnten\" style=\"padding-right:14px\"> <div class=\"schattenboxUnten\"> </div></div></div><input type=\"hidden\" name=\"goTo\"></form>";
	document.getElementById('PopUP').innerHTML=html;

}



function votingControl(instance,star){
	voteText = new Array(5);
	voteText[0]="keine Bewertung";
	voteText[1]="hat mir gar nicht gefallen";
	voteText[2]="hat mir nicht sehr gefallen";
	voteText[3]="war weder besonders gut noch schlecht";
	voteText[4]="hat mir gut gefallen";
	voteText[5]="hat mir sehr gut gefallen";

	document.getElementById(instance).value=star;
	document.getElementById(instance+'text').innerHTML=voteText[star];
	for (x=1;x<6;x++) {
	if(x<=star) document.getElementById(instance+x).src="./grafik/starYellow.gif";
	else document.getElementById(instance+x).src="./grafik/starGrey.gif";
	}
}

function votingClear(instance){
for (x=1;x<6;x++) document.getElementById(instance+x).src="./grafik/starWhite.gif";
document.getElementById(instance).value=0;
document.getElementById(instance+'text').innerHTML="keine Bewertung";
}



function fadeInOut(objectName, destOp, rate, delta){
		fadeObjects[objectName] = new Object;
		fadeObjects[objectName]["Name"] = objectName;
		fadeObjects[objectName]["destOp"] = destOp;
		fadeObjects[objectName]["delta"] = delta;
		fadeTimers[objectName] = window.setInterval(function() {doFade(fadeObjects[objectName]);},  rate);
}

function doFade(fadeObject){
	object= document.getElementById(fadeObject.Name);
	if (!object) window.clearInterval(fadeTimers[fadeObject.Name]);

	if(DOM) OpacValue=object.style.opacity*100;
	else if(IE) OpacValue=object.filters.alpha.opacity;

	OpacValue=Math.round(OpacValue);
	diff = fadeObject.destOp-OpacValue;

	if (OpacValue > fadeObject.destOp) direction = -1; else direction = 1;

	fadeObject.delta=Math.min(direction*diff, fadeObject.delta);
	OpacValue+=direction*fadeObject.delta;
	if(DOM)object.style.opacity= OpacValue/100;
	else if(IE) object.filters.alpha.opacity =  OpacValue;
//if(OpacValue>1)alert(OpacValue +'=='+ fadeObject.destOp);
	if (OpacValue == fadeObject.destOp) {
		window.clearInterval(fadeTimers[fadeObject.Name]);
		fadeTimers[fadeObject.Name]=null;
	}
}



function strechBox(boxId,textID,textID2){
	object= document.getElementById(boxId);
	objectText= document.getElementById(textID);
	objectText2= document.getElementById(textID2);
	if(objectText2.style.display=="none") {
		objectPosX=findPosX(object);
		objectPosY=findPosY(object);
		object.style.position="absolute";
		if(IE)object.style.top=(objectPosY-12)+"px";
		object.style.width="310px";
		object.style.backgroundColor="#F2D87E";
		objectText.style.display="none";
		objectText2.style.display="block";
		object.style.height=(objectText2.offsetHeight)+"px";
	}
}

function srinkBox(boxId,textID,textID2){
	object= document.getElementById(boxId);
	objectText= document.getElementById(textID);
	objectText2= document.getElementById(textID2);
	if(objectText2.style.display=="block") {
		object.style.backgroundColor="#F7F0D7";
		object.style.position="static";
		object.style.width="195px";
		objectText.style.display="block";
		objectText2.style.display="none";
		object.style.height="80px";
	}
}


//Ajax für XML-Austausch

getDataObject = new Array();
getDataControl= new Array();

function getXMLData(LayerAction,getValues) {

if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {

  }

	xmlhttp.onreadystatechange=function()
	{

		if(xmlhttp.readyState==4)
		  {
		  	//Ergebnis parsen
			if (window.DOMParser)
			  {
				  parser=new DOMParser();
				  xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
			  }
			else // Internet Explorer
			  {
				  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
				  xmlDoc.async="false";
				  xmlDoc.loadXML(xmlhttp.responseText);
			  }

			var start = xmlDoc.firstChild;
			getDataObject[LayerAction+getValues]=xmlDoc;

		  } else {
			//Warten
		  }
	}
xmlhttp.open("GET","./diomiraapi?SID=" + SessionID + "&ident={" + authentication + "}&action="+LayerAction+getValues,true);
xmlhttp.send(null);

}

function safeText(txt) {
var ENTITIES = {34: "quot", 60: "lt", 62: "gt", 38: "amp", 160: "nbsp", 161: "iexcl", 162: "cent", 163: "pound", 164: "curren", 165: "yen", 166: "brvbar", 167: "sect", 168: "uml", 169: "copy", 170: "ordf", 171: "laquo", 172: "not", 173: "shy", 174: "reg", 175: "macr", 176: "deg", 177: "plusmn", 178: "sup2", 179: "sup3", 180: "acute", 181: "micro", 182: "para", 183: "middot", 184: "cedil", 185: "sup1", 186: "ordm", 187: "raquo", 188: "frac14", 189: "frac12", 190: "frac34", 191: "iquest", 192: "Agrave", 193: "Aacute", 194: "Acirc", 195: "Atilde", 196: "Auml", 197: "Aring", 198: "AElig", 199: "Ccedil", 200: "Egrave", 201: "Eacute", 202: "Ecirc", 203: "Euml", 204: "Igrave", 205: "Iacute", 206: "Icirc", 207: "Iuml", 208: "ETH", 209: "Ntilde", 210: "Ograve", 211: "Oacute", 212: "Ocirc", 213: "Otilde", 214: "Ouml", 215: "times", 216: "Oslash", 217: "Ugrave", 218: "Uacute", 219: "Ucirc", 220: "Uuml", 221: "Yacute", 222: "THORN", 223: "szlig", 224: "agrave", 225: "aacute", 226: "acirc", 227: "atilde", 228: "auml", 229: "aring", 230: "aelig", 231: "ccedil", 232: "egrave", 233: "eacute", 234: "ecirc", 235: "euml", 236: "igrave", 237: "iacute", 238: "icirc", 239: "iuml", 240: "eth", 241: "ntilde", 242: "ograve", 243: "oacute", 244: "ocirc", 245: "otilde", 246: "ouml", 247: "divide", 248: "oslash", 249: "ugrave", 250: "uacute", 251: "ucirc", 252: "uuml", 253: "yacute", 254: "thorn", 255: "yuml", 34: "quot", 60: "lt", 62: "gt", 38: "amp"};
	if(!txt) return '';
	txt = txt.replace(/&/g,"&amp;");
	var new_text = '';
	for(var i = 0; i < txt.length; i++) {
		var c = txt.charCodeAt(i);
		if(typeof ENTITIES[c] != 'undefined') {
			new_text += '&' + ENTITIES[c] + ';';
		} else if(c < 128) {
			new_text += String.fromCharCode(c);
		}else {
			new_text += '&#' + c +';';
		}
	}
	return new_text.replace(/</g,"&lt;").replace(/>/g,"&gt;");
}


function maskText(messageText){
	messageText=safeText(messageText);
	messageText=messageText.replace(/[&]/g,"@@@");
	messageText=messageText.replace(/[=]/g,"|~|");
	messageText=messageText.replace(/\n/g,"<br>");
return messageText;
}


function saveYPos(){
	if(IE) Ypos=document.documentElement.scrollTop;
	else Ypos=window.pageYOffset;
	document.getElementById('YPos').value=Ypos;
}


function moveToYPos(YPos){
	if(document.getElementById('NewMessages').value>0) postAlert(document.getElementById('NewMessages').value);
	if(YPos>0) {
    document.documentElement.scrollTop=YPos;
	}
}


