// Gemeinsame Funktionen und allgemeine globale Variablen
// ##########################
//var TerminMonth	= new Array() ;
var countTermin	= 0 ;
var space		= new Array() ;
// ##########################
var c_m 		= 0 ;
var c_m_id		= 0 ;
var c_sm_id		= 0 ;
var c_ssm_id	= 0 ;
var c_c_id 		= 0 ;
var newID 		= 0 ;
var old_ID		= 10101 ; 
var old_MenuID	= 0 ;
var old_SubID	= 0 ;
var old_SubsubID= 0 ;
// ###########################
var Menu		= new Array() ;
var Sub			= new Array() ;
var Subsub		= new Array() ;
var nav			= new Array() ;
var m			= new Array() ;
var sm			= new Array() ;
var ssm			= new Array() ;
var Topic	 	= new Array() ;
var menu		= "" ;
var sub			= "" ;
var subsub		= "" ;
var h			= "" ;
var c			= "" ;
var a			= "" ;
var b			= "" ;
var g			= "" ;
var sImp		= "" ;	
var sSep		= "_" ; // darf nicht verändert werden
var impLink 	= "" ;
// ##########################
var ssm			= new Array() ;	// Sub-Submenü-Einträge
var menu		= new Array() ;	// HTML-Code für Menüs
var submenu		= new Array() ;	// HTML-Code für Sub-Menüs
// ##########################
var vOld 		= new Array() ;
var vNew 		= new Array() ;
for( i=0 ; i< vID.length ; i++ ){ 
	var vKenn 		= vID[ i ].split( "_" ) ;
	vNew[vID[ i ]] 	= "" ;
	vOld[vID[ i ]] 	= "" ;
}
//vID[10] = "logo" ;
var nbsp	= "&nbsp;" ;
var sSpaces	= "" ;
for(i = 0 ; i < 200 ; i++){
	sSpaces 	= sSpaces + nbsp ;
	space[ i ]	= sSpaces ;
}


//  ###########################
//  #####  allgemeine Funktionen ################
//  Datumsfunktionen
dayDiff 	= new Function( "future" , "past" , "return Math.floor( ( future - past ) / ( 1000 * 60 * 60 * 24 ) )" );
hourDiff	= new Function( "future" , "past" , "return Math.floor( ( future - past ) / ( 1000 * 60 * 60 ) )" );
minuteDiff	= new Function( "future" , "past" , "return Math.floor( ( future - past ) / ( 1000 * 60 ) )" );
secondDiff	= new Function( "future" , "past" , "return Math.floor( ( future - past ) / ( 1000 ) )" );

function convertToDate( sDate ){    
	var Part		= sDate.split( " " );
	var DPart		= Part[0].split( "." );
	var TPart		= Part[1].split( ":" );
	var vDate = new Date( parseInt(DPart[2]) , parseInt(DPart[1] - 1) , parseInt(DPart[0]) , parseInt(TPart[0]) , parseInt(TPart[1]) , parseInt(TPart[2]) , 0);
	return vDate ;
}

function getAdminReport(){
	var report = "" ;
	var dfuture = convertToDate( loginTime );
	var dpast = convertToDate( lastOwnerVisit );
	var daysDiff 	= dayDiff( dfuture , dpast );
	var hoursDiff 	= hourDiff( dfuture , dpast );
	var minutesDiff	= minuteDiff( dfuture , dpast );
	report = "am " + lastOwnerVisitDate + " um " + lastOwnerVisitTime ;
	if( daysDiff  == 0 ){
		if( hoursDiff == 0 ){
			if((minutesDiff - (hoursDiff*60)) == 1 ){
				report = "Ich bin übrigens vor 1 Minute online gegangen" ;
			}else{
				if((minutesDiff - (hoursDiff*60)) == 0 ){
					report = "Ich bin übrigens im Augenblick zur selben Minute online gegangen." ;
				}else{
					report = "Ich bin übrigens vor " + minutesDiff + " Minuten zuletzt online gegangen." ;
				}				
			}			
		}else{
			if(hoursDiff == 1){
				if((minutesDiff - (hoursDiff*60)) == 1 ){
					report = "Ich bin übrigens vor " + hoursDiff + " Stunde und " + (minutesDiff - (hoursDiff*60)) + " Minute um " + lastOwnerVisitTime + " zuletzt online gegangen." ;
				}else{
					report = "Ich bin übrigens vor " + hoursDiff + " Stunde und " + (minutesDiff - (hoursDiff*60)) + " Minuten um " + lastOwnerVisitTime + " zuletzt online gegangen." ;
				}				
			}else{
					report = "Ich bin übrigens vor " + hoursDiff + " Stunden und " + (minutesDiff - (hoursDiff*60)) + " Minuten um " + lastOwnerVisitTime + " zuletzt online gegangen." ;
			}
		}		
	}
	if( daysDiff  == 1 || Today != lastOwnerVisitDate ){
		report = "Ich war übrigens gestern um " + lastOwnerVisitTime + " zum letzten Mal online." ;
	}
	if( daysDiff  > 1 ){
		report = "Ich war übrigens am " + lastOwnerVisitDate + " um " + lastOwnerVisitTime + " zum letzten Mal online." ;
	}
	return report;
	//alert( report + "\n" + loginTime +"\nDifferenz in Tagen: " + daysDiff  + "\nDifferenz in Minuten: " + minutesDiff  )	
}

function getEndOfMonth( iYear , iMonth ){
	// Übergabe des Monates in Ist-Wert => 1 = Januar => 12 = Dezember
	var firstday = new Date( iYear , iMonth -1 , 1 );
	if( iMonth == 12){
		var lastday = new Date( parseInt( iYear + 1) , 0  , 1 )   ;
	}else{
		var lastday = new Date( iYear , iMonth  , 1 )  ;
	}	
	var diff	= ( lastday - firstday ) / ( 1000 * 60 * 60 * 24 );
	return new Date( iYear  , iMonth -1   , diff )  ;
}
function getDaysOfMonth( iYear , iMonth ){
	// Übergabe des Monates in Ist-Wert => 1 = Januar => 12 = Dezember
	var firstday = new Date( iYear , iMonth -1 , 1 );
	if( iMonth == 12){
		var lastday = new Date( parseInt( iYear + 1) , 0  , 1 )   ;
	}else{
		var lastday = new Date( iYear , iMonth  , 1 )  ;
	}	
	return ( lastday - firstday ) / ( 1000 * 60 * 60 * 24 );
}

function showDatesByMonth( iYear , iMonth , sFilter ){
	//  Aktuellen Monat neu initialisieren
	var curDatePicker									= new class_DatePicker( iYear , iMonth );
	document.getElementById( "DatePicker" ).innerHTML 	= curDatePicker.Table;
	//  Überprüfen, ob es Einträge zu diesem Monat gibt
	var stype			= TerminMonth[ 0 ] ;
	var sHeader			= "Terminübersicht: " + curDatePicker.MonthHeader ;
			
	if( stype == "[object Object]" ){ 
		// Termineinträge zum aktuellen Monat gefunden
		// den heutigen Tag überprüfen		
		sContent		= getAllMonthEntry( TerminMonth , sFilter ) ;
	}else{
		//alert( sDate1 + " - " + sDate2 ) ;
		sContent = "<div class='tb6_red'>... keine aktuellen Termine für diesen Monat gefunden...</div>" ;		
	}	
	curDatePicker.Entry = sContent ;	
	for(i = 1 ; i <= 5 ; i++){
		document.getElementById( "header_" + i ).innerHTML = sHeader ;
	}
	document.getElementById( "content_1" ).innerHTML = sContent ;
	getContents() ;
	switchThis( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);		
}

function getDatesByCurMonth( iYear , iMonth  ){
	//  Aktuellen Monat neu initialisieren
	//var curDatePicker									= new class_DatePicker( iYear , iMonth );
	//  Überprüfen, ob es Einträge zu diesem Monat gibt
	var stype			= TerminMonth[ 0 ] ;
	var sHeader			= "Terminübersicht: " + curDatePicker.MonthHeader ;		
	if( stype == "[object Object]" ){ 
		// Termineinträge zum aktuellen Monat gefunden
		sContent		= getAllMonthEntry( TerminMonth ) ;
	}else{
		//alert( sDate1 + " - " + sDate2 ) ;		
		sContent	= "" ;
	}	
	if( sContent == ""){
		if( iMonth == 12 ){
			getDatesByCurMonth( parseInt( iYear + 1 , 1 )  )
		}else{
			getDatesByCurMonth( iYear , parseInt(iMonth + 1)  )
		}
	}else{
		curDatePicker.Dates = sContent ;
		
		
	}	
}

function compareDateOnly( sDate1 , sDate2 ){	
	if( sDate1 == sDate2 ){		
		var stype= Termin[ sDate2 ] ;
		if( stype == "[object Object]" ){
			TerminMonth[countTermin]	= Termin[ sDate2 ] ;
			countTermin++ ;
		}
		return "<td class='cal_on' >" ;
	}else{
		var stype= Termin[ sDate2 ] ;		
		if( stype == "[object Object]" ){ 
		    // Termineintrag gefunden
			TerminMonth[countTermin]	= Termin[ sDate2 ] ;
			countTermin++ ;
			return "<td class='cal_sel' >" ;
		}else{
			//alert( sDate1 + " - " + sDate2 ) ;
			return "<td class='cal_off' >" ;
		}
	}						
}

//  Berechnung der ID anhand Menü-, Submenü- und Subsubmenü-Nummer 
function getID( c_m_id , c_sm_id , c_c_id){
	return parseInt(( c_m_id * 10000 ) + (c_sm_id * 100) + c_c_id ) ;
}

//  Link-Generator
function getLink( sTyp , sID , sMenu , sClass , sName ){
	if( sTyp == "showContent" ){return "<a onmouseover='if( omo==1 ){showContent(" + sID + "); }' href='javascript:" + sTyp + "(" + sID + ");'>" + sMenu + "</a>" ;	}
	if( sTyp == "in_line" ){return "<td id='"+sName+"' class='"+sClass+"'>" + getLink(  "showContent" , sID , sMenu , sClass , "" ) + "</td>" ;}
	if( sTyp == "cd_img_alt" ){return sID.Title +"\n" + sID.Besetz + "\n" + sID.Img + "\nErschienen: " + sID.Deliv ;}
	if( sTyp == "email"){return "<a href='mailto:"+sID+"'>"+sMenu+"</a>";}
	if( sTyp == "download"){return "<a href='http://"+sID+"'>"+sMenu+"</a>";}
	if( sTyp == "internet"){return "<a target='_blank' href='http://"+sID+"'>"+sMenu+"</a>";}
	if( sTyp == "checkDate" ){return "<a href='javascript:"+sTyp+"( "+sID+" , " + sMenu + " , " + sClass + " )' onmouseover='if(omo == 1){ "+sTyp+"( "+sID+" , " + sMenu + " , " + sClass + " );}'>" 	}
	if( sTyp == "in_row" ){	return "<tr><td id='"+sName+"' class='"+sClass+"'>" + getLink(  "showContent" , sID , sMenu , sClass ) + "</td></tr>" ;}
	if( sTyp == "in_line_switch" ){
		return  "<td class='"+sClass+"'>" +
				"<a onmouseover='if( omo==1 ){showContent(" + sID + "); }' " +
				"onmouseout='showContent( old_ID );' " + 
				"href='javascript:showContent(" + sID + ");'>" + sMenu + "</a></td>" ;
	}	
	if( sTyp == "map24"){
		var sZoom = "1"; var sCountry = "" ; var sStreet = "" ;	var sReturn	= "" ;
		if( sID == ""){	sCounty = "de" ;}else{sCountry = sID ;}
		if( sClass == "" ){	sZoom = "3" ;}else{	sStreet = "&street=" + sClass ;	sZoom = "1" ;}
	    if( sName == ""){sName = sMenu + "<br>" + sClass ;}
		sReturn = "<a target='_blank' href='http://link2.map24.com/?"+
					"lid=932c6909&"+
					"maptype=JAVA&"+
					"country0="+sCountry+"&"+
					"csl="+sZoom+"&"+
					"city0=" + sMenu + sStreet + 
					"'>" + sName + "</a>" ;
		return sReturn ;
	}
	if( sTyp == "cd"){
		return  "<div><a href='" + sID.Img + "' target='_blank'>" +
				"<img class='logo_2' src='" + sID.Img + "' hspace='10' vspace='5' alt='"+sID.ImgAlt+"'></a>" +
				"<div class='tb6_red'>" + sID.Title + "</div>" +
				"<div class='tb7'>" + sID.Besetz + "</div>" +
				"<div class='t7'>Erschienen: " + sID.Deliv + "</div>" +
				"<div class='t7'>" + sID.Shorty + "</div></div>" ;
	}
}
//  Listen
function getList( sTag , sType , sClass , vArray ){
	sReturn = "<"+sTag+" class='" + sClass + "' type='" + sType + "'>" ;
	for( i = 0 ; i < vArray.length ; i++){
		sReturn = sReturn + "<li>" + vArray[i] + "</li>" ;
	}
	sReturn = sReturn + "</"+sTag+">" ;	
	return sReturn;
}
// 2-spaltige Tabellen-Bestandteile in Formularen
var td_td = "<td class='t7'></td>" ;
function getTabRowCode( sTyp , sTag , sType , sSize , sValue , sDisp ){
	if( sTag == "" ){ sTag = "input" ; }
	if( sSize == "" ){ sSize = "10" ; }
	if( sType == "" ){ sType = "hidden" ; }
	if( sTyp == "sAction" ){
		return	"<tr>" +
					"<td class='t7'><input type='hidden' name='form_"+sValue+"_send' value='true'></td>" +
					"<td class='t7'><"+sTag+" type='" + sType + "' id='"+sTyp+"' name='"+sTyp+"' size="+sSize+" value='"+sValue+"'><div class='t7' id='message'></div></td>" +
				"</tr>" ;
	}
	if( sTyp == "sSubmit" ){
		return	"<tr>" +
					td_td +
					"<td class='t7'>" +
						"<input type='submit' value='"+sValue+"' onclick='"+sDisp+"' >"+
						"<input type='reset'>" +
					"</td>" +
				"</tr>" ;
	}
	if( sTyp == "input" ){
		if( sDisp=="" ){sLBL = "" ;}else{ sLBL = sType ;}
		return	"<tr>" +
					"<td class='tb7' id='lbl_"+sLBL+"' >" + sDisp + "</td>" +
					"<td class='t7'><input type='"+sTag+"' id='"+sType+"' name='"+sType+"' size="+sSize+" value='"+sValue+"'></td>" +
				"</tr>" ;
	}

/*		
		getTabRowCode( "input" , "input" , "sUsername" , "20" , "user_Username" , "Benutztername" );
		"<tr>" +
			"<td class='tb7'>Benutztername</td>" +
			"<td class='t7'><input type='text' name='sUsername' size=20 value='" + user_Username + "' ></td>" +
		"</tr>" +
*/
}

// Einen Sub-Menü-Eintrag vornehmen
function setSubmenu( Menu , c_m_id , c_sm_id , sSubName ){
	Menu[c_m_id].Value["sub"][c_sm_id] 	= sSubName ;
	Menu[c_m_id].Value["subid"][c_sm_id] 	= getID( c_m_id , c_sm_id , 1 )  ;
	Menu[c_m_id].Value["subnav"][c_sm_id] 	= new Array()  ;
	Menu[c_m_id].Value["subsub"][c_sm_id] 	= new Array()  ;
	Menu[c_m_id].Value["subsubid"][c_sm_id]	= new Array()  ;
	Menu[c_m_id].Value["subsubnav"][c_sm_id]= new Array()  ;
} // end setSubmenu
function setSubsub( Menu , c_m_id , c_sm_id , c_c_id , sName ){
    var obj = Menu[c_m_id].Value ;
	obj["subsub"][c_sm_id][c_c_id] 	= sName  ;
	obj["subsubid"][c_sm_id][c_c_id] = getID( c_m_id , c_sm_id , c_c_id )  ;	
	obj["subsubnav"][c_sm_id][c_c_id]= obj["name"] + sSep + obj["sub"][c_sm_id] + sSep + sName  ;
	nav[obj["subsubnav"][c_sm_id][c_c_id]] = obj["subsubid"][c_sm_id][c_c_id];
} // end setSubsub

function showContent( sID ){
	// Austausch der Inhalte, wenn abweichend vom aktuellen   
	for( i=0 ; i< vID.length ; i++ ){      
      var vKenn 	= vID[ i ].split( "_" ) ;
      vNew[vID[ i ]] = ID[ sID ].Value[ vKenn[0] ] ;
      if( vOld[vID[ i ]] != vNew[vID[ i ]] ){
	  	//alert( "Inhalt hat sich geändert: " + vID[i] + "\n\n" + vOld + "\n\n" + vNew ); 
		sNew = vNew[vID[ i ]] ;
        document.getElementById( vID[ i ] ).innerHTML 	= sNew ;
		vOld[vID[ i ]] 									= sNew ; 
      } // end if => Differenz zwischen altem und neuem Inhalt
	} // next => alle Bereiche der Homepage
	curMenuID 	= parseInt( sID / 10000 ) ;
	curSubID	= parseInt( sID / 100 ) % 100 ;
	curSubsubID	= sID % 100 ;
	if( old_MenuID == 0 ){
		//document.getElementById("logo").innerHTML = "<img class=img_h_5 src=images/logo_ata_1.gif>" ;	
		document.getElementById("menu_1" ).style.background = light;
		document.getElementById("sub_1" ).style.background = light;
		old_MenuID = 1 ;
		old_SubID = 1 ;
		old_SubsubID = 1 ;
	}
	if( curMenuID != old_MenuID ){
		// Naviagtion kenntlich machen
		// ... Menü
		document.getElementById("menu_" + old_MenuID ).style.background = dark;
		document.getElementById("menu_" + curMenuID ).style.background = light;			
		// ... Untermenü
		document.getElementById("sm_1").innerHTML = curSub[curMenuID] ;
		document.getElementById("sub_1" ).style.background = light;		
		// ... Unter - Untermenü
		document.getElementById("ssm_1").innerHTML = curSubsub[curMenuID][1] ;
		if( curSubsub[curMenuID][1] != "" ){document.getElementById("subsub_1" ).style.background = light; }		
	}else{
		// Navigation kenntlich machen
		document.getElementById("sub_" + old_SubID ).style.background = dark;
		document.getElementById("sub_" + curSubID ).style.background = light;
		// Unter-Untermenü wechseln
		document.getElementById("ssm_1").innerHTML = curSubsub[curMenuID][curSubID] ;
		if( curSubsub[curMenuID][curSubID] != "" ){
			var oldobj = document.getElementById("subsub_" + old_SubsubID );
			if( oldobj == "[object Object]" ){
				document.getElementById("subsub_" + old_SubsubID ).style.background = dark; 
			}
			document.getElementById("subsub_" + curSubsubID ).style.background = light; 
		}
	}
	old_MenuID = curMenuID ;
	old_SubID = curSubID ;
	old_SubsubID = curSubsubID ;
	
	if( sID != 10401) {
	    if( old_ID != sID){ old_ID = sID } ;
		sCurInfo = sID ;
	} 	
	document.forms.home.sOMO.value 		= omo ;
	document.forms.home.sZoom.value 	= zoom ;
	document.forms.home.sCurInfo.value 	= sID ;	
	//document.getElementById( "disp_CurInfo" ).innerHTML = document.forms.home.elements["sCurInfo"].value;
	getContents() ;
	switchThis( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 );

} // end showContent

function validField( this_obj , sField , sMessage , sLabel ){
	if( this_obj.value == "" ){ 
		sMessage = sMessage + sLabel + " fehlt<br>" ;
		document.getElementById("lbl_" + sField ).innerHTML = "<span class='tb7_red'>"+sLabel+"</span>" ;
	}else{
		document.getElementById("lbl_" + sField ).innerHTML = "<span class='tb7_green'>"+sLabel+"</span>" ;
	}
	return sMessage;
}
function checkSubmit( this_obj ,this_obj_form_send , sMessage , sFormname ){
	if( sMessage == "" ){
		document.getElementById("message").innerHTML = "<span class=t7_green>" + sFormname + " wird versendet...</span>" ;
		//this_obj_form_send.value 		= "true" ;
		this_obj.submit();	
		alert(".. Ihr Feedback wurde versendet");		
	}else{
		sMessage = "<span class=tb7_red>Kein Versand möglich.<br>Bitte korrigieren Sie die roten Felder</span>" ;
		document.getElementById("message").innerHTML = sMessage ;
	}
}

function sendForm( sForm ){
	var sMessage = "" ;
	if(sForm == "login" ){var obj = document.forms.login ;}
	if(sForm == "feedback" ){var obj = document.forms.feedback ;}
	if(sForm == "registration" ){var obj = document.forms.registration ;}
	
	obj.sCurInfo.value	= old_ID ;
	obj.sOMO.value 		= omo ;
	obj.sZoom.value 	= zoom ;
	
	if( sForm == "feedback" ){
		// Validierung
		sMessage = validField( obj.sFromName , "sFromName" , sMessage , "Name" ) ;
		sMessage = validField( obj.sFrom , "sFrom" , sMessage , "E-Mail-Adresse" ) ;
		sMessage = validField( obj.sBody , "sBody" , sMessage , "Inhalt" ) ;		
		// Versand checken
		//alert("Ihr Feedback wird für den Versand vorbereitet");
		checkSubmit( obj , obj.form_feedback_send , sMessage , "feedback" ) ;
	}
	if( sForm == "login" ){
		document.getElementById("message").innerHTML = "<br><br><span class='t7_green'>Login wird geprüft</span>" ;
		obj.form_login_send.value 		= "true" ;
		obj.submit();
	}
	if( sForm == "registration" ){
		sMessage = validField( obj.sUsername , "sUsername" , sMessage , "Benutzername" ) ;
		sMessage = validField( obj.sPass , "sPass" , sMessage , "Passwort" ) ;
		sMessage = validField( obj.sEMail , "sEMail" , sMessage , "E-Mail<hr>" ) ;
		sMessage = validField( obj.sFirstname , "sFirstname" , sMessage , "Vorname" ) ;
		sMessage = validField( obj.sLastname , "sLastname" , sMessage , "Nachname" ) ;
		sMessage = validField( obj.sStreet , "sStreet" , sMessage , "Strasse" ) ;
		sMessage = validField( obj.sZIP , "sZIP" , sMessage , "PLZ" ) ;
		sMessage = validField( obj.sCity , "sCity" , sMessage , "Wohnort" ) ;
		sMessage = validField( obj.sCountry , "sCountry" , sMessage , "Land" ) ;
		// Versand checken
		checkSubmit( obj , obj.form_registration_send , sMessage , "Registration" ) ;
	}
}

function setAdmin(){
	setImpressum();
	document.getElementById( "admin" ).innerHTML = common["form_Home"];
	//document.getElementById( "uhr" ).innerHTML = common["wetter"];
	document.getElementById("m_1").innerHTML = curMenu ;
	document.getElementById("sm_1").innerHTML = curSub[1] ;
	document.getElementById("Logo").innerHTML = "<img class=img_h_6 src=images/logo_ata_1.jpg>" ;
	document.getElementById("login").innerHTML = common["form_Login"];
}

function setContent( curID , h , c ){
	if( h != "" ){
		curID.Value[ "header" ] = h ;
		curID.Header			= h ;
	}	
	curID.Value[ "content" ]	= c ;	
	curID.Content				= c ;
}

//  Änderungen in den Grundeinstellungen der Homepage
function setCookie(nenner, ckWert){
    var bis = new Date();
	var heute = new Date();
	bis.setDate(heute.getDate() + 365);
	document.cookie = nenner + "=\"" + ckWert +"\";expires=" + bis.toUTCString() + ";";	
}

debug 			= new Function( "sMsg" , "if(dbug==1){alert(sMsg);}" );
setOMO 			= new Function( "flag" , "omo = flag; document.forms.home.sOMO.value = omo ;setImpressum()" );
function gotoID( sID ){	document.forms.home.sCurInfo.value = sID ;}
function doZoom( iZoom ){ 
	document.forms.home.sZoom.value = iZoom ; 
	document.forms.home.submit();
	setCookie( "_Zoom" , iZoom ); 
}


function setImpressum(){
	if( omo == 1 ){	imp_classNav = "on" ;}else{	imp_classNav = "off" ;}
	imp_classZoom_80 = "off" ;imp_classZoom_90 = "off" ;imp_classZoom_100 = "off" ;imp_classZoom_120 = "off" ;
	if( zoom == 0.8 ){	imp_classZoom_80 = "on" ;  }
	if( zoom == 0.9 ){	imp_classZoom_90 = "on" ; }
	if( zoom == 1 ){	imp_classZoom_100 = "on" ; }
	if( zoom == 1.2 ){	imp_classZoom_120 = "on" ; }
	if( USER.Rolle == "Admin" ){ sFormat = "tb7_red" ; }else{ sFormat = "t7_green" ;}
	impLink = "<table class='tab_imp' id='tab_imp' ><tr>" + 
		"<td colspan=2 class='m_off'>" + 
		"<a href='javascript:showContent(10401);' >Impressum</a></td>" + 
		"<td colspan=2 class='m_" + imp_classNav + "'>" + 
		"<a href='javascript:if(omo==1){setOMO(0);}else{setOMO(1);}'>Blättern</a></td></tr>" +	
		"<tr><td class='z_" + imp_classZoom_80 + "'><a href='javascript:doZoom(0.8)'>80%</a></td>" +	
		"<td class='z_" + imp_classZoom_90 + "'><a href='javascript:doZoom(0.9)'>90%</a></td>" +
		"<td class='z_" + imp_classZoom_100 + "'><a href='javascript:doZoom(1)'>100%</a></td>" +
		"<td class='z_" + imp_classZoom_120 + "'><a href='javascript:doZoom(1.2)'>120%</a></td>" +
		"</tr></table><span class='" + sFormat + "'>" + CountUser + ". Besucher - " +
		"" + USER.Benutzername + 
		"</span>" +
		"";
	document.getElementById( "imp_1" ).innerHTML = impLink ;
}

// Bilder-Preload
function preloadImg() {
// Bilder vor Verwendung laden - Aufruf im onLoad des "Body"-Tag
// Als Parameter können die Bilder benannt werden
  var d=document; 
  if(d.images){ 
  	if(!d.p){ d.p=new Array();}
    var i;
	var j = d.p.length;
	var a = preloadImg.arguments; 
	for(i=0; i<a.length; i++){
	    if (a[i].indexOf("#")!=0){ 
			d.p[j]=new Image; 
			d.p[j++].src=a[i];
		}
	}
  }
}

// Klassen für Termine und Datumsbearbeitungen
function class_Month(){
	var Name = new Array() ;
	Name[0] 		= "Januar" ;
	Name[1] 		= "Februar" ;
	Name[2] 		= "März" ;
	Name[3] 		= "April" ;
	Name[4] 		= "Mai" ;
	Name[5] 		= "Juni" ;
	Name[6] 		= "Juli" ;
	Name[7] 		= "August" ;
	Name[8] 		= "September" ;
	Name[9] 		= "Oktober" ;
	Name[10]		= "November" ;
	Name[11] 		= "Dezember" ;
	this.Name 		= Name ;
	// Kurzbezeichnungen
	var Shortname	= new Array() ;
	Shortname[0]	= "Jan" ;
	Shortname[1]	= "Feb" ;
	Shortname[2]	= "Mrz" ;
	Shortname[3]	= "Apr" ;
	Shortname[4]	= "Mai" ;
	Shortname[5]	= "Jun" ;
	Shortname[6]	= "Jul" ;
	Shortname[7]	= "Aug" ;
	Shortname[8]	= "Sep" ;
	Shortname[9]	= "Okt" ;
	Shortname[10]	= "Nov" ;
	Shortname[11]	= "Dez" ;
	this.Shortname 	= Shortname;
	// 2-stellig
	var	Shorty		= new Array() ;
	Shorty[0]		= "01" ;
	Shorty[1]		= "02" ;
	Shorty[2]		= "03" ;
	Shorty[3]		= "04" ;
	Shorty[4]		= "05" ;
	Shorty[5]		= "06" ;
	Shorty[6]		= "07" ;
	Shorty[7]		= "08" ;
	Shorty[8]		= "09" ;
	Shorty[9]		= "10" ;
	Shorty[10]		= "11" ;
	Shorty[11]		= "12" ;
	this.Shorty		= Shorty ;
}
function class_Week(){
	var Dayname		= new Array() ;
	Dayname[0]		= "Sonntag" ;
	Dayname[1]		= "Montag" ;
	Dayname[2]		= "Dienstag" ;
	Dayname[3]		= "Mittwoch" ;
	Dayname[4]		= "Donnerstag" ;
	Dayname[5]		= "Freitag" ;
	Dayname[6]		= "Samstag" ;
	this.Dayname	= Dayname ;
	var	Shorty		= new Array() ;
	Shorty[0]		= "So." ;
	Shorty[1]		= "Mo." ;
	Shorty[2]		= "Di." ;
	Shorty[3]		= "Mi." ;
	Shorty[4]		= "Do." ;
	Shorty[5]		= "Fr." ;
	Shorty[6]		= "Sa." ;
	this.Shorty		= Shorty ;
}

function checkDate( iYear , iMonth , iDate ){
	if( iDate < 10 ){ sCheckDate = "0" + iDate; }else{ sCheckDate = "" + iDate ; }
	if( iMonth < 10 ){ sCheckMonth = "0" + iMonth; }else{ sCheckMonth = "" + iMonth ; }
	sCheck = sCheckDate + "." + sCheckMonth + "." + iYear ;
	for(i = 1 ; i <= 5 ; i++){
		document.getElementById( "header_" + i ).innerHTML = sCheck ;
	}
	var stype= Termin[ sCheck ] ;
	if( stype == "[object Object]" ){ 
		obj = Termin[sCheck] ;
		sContent = Termin[sCheck].DispDay4 ;
	}else{ sContent = "... kein Termineintrag gefunden" }
	sOld = document.getElementById( "content_1" ).innerHTML ;
	if( sOld != sContent ){ document.getElementById( "content_1" ).innerHTML = sContent ; }
}

function getAllMonthEntry( TerminMonth , sFilter ){
	sContent = "" ;
	var count = -1 ;
	for( iT = 0 ; iT < TerminMonth.length ; iT++){
		if( sFilter == "" ){
		    count = count + 1 ;
			sContent = sContent + getSection( count, TerminMonth[iT].DispDay5 , TerminMonth[iT].DispDay4 ) ;
		}else{
			for( i = 0 ; i < TerminMonth[iT].Type.length ; i++ ){
				if(TerminMonth[iT].Type[i] == sFilter ){
					count = count + 1 ;
					sContent = sContent + getSection( count , TerminMonth[iT].DispDay5 , TerminMonth[iT].DispDay4 ) ;
				}
				if(TerminMonth[iT].Title[i] == sFilter ){
					count = count + 1 ;
					sContent = sContent + getSection( count , TerminMonth[iT].DispDay5 , TerminMonth[iT].DispDay4 ) ;
				}			
			}		
		}		
	}
	if( sContent == "" ){
		sContent = "<div class=tb6_red>... keine Termine "+sFilter+" vorhanden</div>" ;
	}else{
		//getContents() ;
		//switchThis( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
	}
	return sContent;
}


function setDate( cTermin , Termin , TerminNr , s_Date , s_Start , s_Title , s_Program , s_City , s_Street , s_Building , s_Partner , s_Description , s_Type , s_End ){
	if( s_Street == "" ){ sLink = s_City;}else{ sLink = s_City + " - " + s_Street;}
	// Termine nach Datum
	var stype = Termin[ s_Date ] ;
	if( stype == "[object Object]" ){
		k = Termin[s_Date].Title.length ;
	}else{
		Termin[s_Date]			= new class_Termin( s_Date );	
		Termin[s_Date].DateOnly	= s_Date ;
		k = 0 ;		
	}
	datePart = s_Date.split( "." ) ;
	link_s_Date = "<a href='javascript:checkDate( "+datePart[2]+" , "+datePart[1]+" , "+datePart[0]+");'>"+s_Date+"</a>" ;
	Termin[s_Date].Type[k]			= s_Type ;
	Termin[s_Date].Time[k]			= s_Start ;
	Termin[s_Date].Title[k]			= s_Title ;
	Termin[s_Date].City[k]			= s_City ;	
	Termin[s_Date].Street[k]		= s_Street ;
	Termin[s_Date].Map24[k]			= getLink( "map24" , "de" , s_City , s_Street , sLink ) ;
	Termin[s_Date].Place[k]			= s_Building ;
	Termin[s_Date].Programm[k]		= s_Program ;
	Termin[s_Date].Desc[k]			= s_Description ;
	Termin[s_Date].Disp1[k]			= "<div class=tb6>"+link_s_Date+" <span class=t6>"+s_Start+"</span> <span class=tb6_red>"+s_Title+"</span> in <span class=tb6_blue>"+s_City+"</span></div>" ;
	Termin[s_Date].Disp2[k]			= "<div class=tb7>"+link_s_Date+" "+s_Start+" "+s_Type+"</div><div class=tb5_red>"+s_Title+"</div><br>" ;
	Termin[s_Date].Disp3[k]			= "<div class=tb7>"+link_s_Date+" "+s_Start+" "+s_Type+"</div><div class=tb5_red>"+s_Title+"</div><div class=t7><span class=tb7>"+getLink( "map24" , "de" , s_City , s_Street , sLink )+"</span></div><br>" ;
	Termin[s_Date].Disp4[k]			= "<div class=tb7>"+s_Date+" "+s_Start+" "+s_Type+"</div><div class=tb5_red>"+s_Title+"</div><div class=t7><span class=tb7>"+getLink( "map24" , "de" , s_City , s_Street , sLink )+"</span></div class=t7>"+s_Description+"</div></div>" ;
	Termin[s_Date].Disp5[k]			= "<span class=tb7>"+s_Date+" <span class=t7>"+s_Start+"</span> <span class=tb7_red>"+s_Title+"</span> in <span class=tb7_blue>"+s_City+"</span></span>" ;
	Termin[s_Date].DispDay1			= "" ;
	Termin[s_Date].DispDay2			= "" ;
	Termin[s_Date].DispDay3			= "" ;
	Termin[s_Date].DispDay4			= "" ;
	Termin[s_Date].DispDay5			= "" ;
	for( i = 0 ; i <= k ; i++ ){
		if( k > 0 && i != k  ){ sBr = "<br>&nbsp;&nbsp;&nbsp;&nbsp;"; }else{ sBr = "" ; }
		Termin[s_Date].DispDay1 = Termin[s_Date].DispDay1 + Termin[s_Date].Disp1[i] + sBr  ;
		Termin[s_Date].DispDay2 = Termin[s_Date].DispDay2 + Termin[s_Date].Disp2[i] + sBr  ;
		Termin[s_Date].DispDay3 = Termin[s_Date].DispDay3 + Termin[s_Date].Disp3[i] + sBr  ;
		Termin[s_Date].DispDay4 = Termin[s_Date].DispDay4 + Termin[s_Date].Disp4[i] + "<hr>"  ;
		Termin[s_Date].DispDay5 = Termin[s_Date].DispDay5 + Termin[s_Date].Disp5[i] + sBr  ;
	}
	// Termin nach laufender Nummer
	TerminNr[cTermin] 				= new class_Termin( s_Date );
	TerminNr[cTermin].Type[0]		= s_Type ;
	TerminNr[cTermin].Time[0]		= s_Start ;
	TerminNr[cTermin].Title[0]		= s_Title ;
	TerminNr[cTermin].City[0]		= s_City ;	
	TerminNr[cTermin].Street[0]		= s_Street ;
	TerminNr[cTermin].Map24[0]		= getLink( "map24" , "de" , s_City , s_Street , sLink ) ;
	TerminNr[cTermin].Place[0]		= s_Building ;
	TerminNr[cTermin].Programm[0]	= s_Program ;
	TerminNr[cTermin].Desc[0]		= s_Description ;	
	TerminNr[cTermin].Disp[0]		= "<div class=tb7>"+s_Date+" "+s_Start+" "+s_Type+"</div><div class=tb5_red>"+s_Title+"</div>" ;	
	TerminNr[cTermin].Disp1[0]		= Termin[s_Date].Disp1[k] ;
	TerminNr[cTermin].Disp2[0]		= Termin[s_Date].Disp2[k] ;
	TerminNr[cTermin].Disp3[0]		= Termin[s_Date].Disp3[k] ;
	TerminNr[cTermin].Disp4[0]		= Termin[s_Date].Disp4[k] ;
	TerminNr[cTermin].Disp5[0]		= Termin[s_Date].Disp5[k] ;
	TerminNr[cTermin].DispDay1		= Termin[s_Date].DispDay1 ;
	TerminNr[cTermin].DispDay2		= Termin[s_Date].DispDay2 ;
	TerminNr[cTermin].DispDay3		= Termin[s_Date].DispDay3 ;
	TerminNr[cTermin].DispDay4		= Termin[s_Date].DispDay4 ;
	TerminNr[cTermin].DispDay5		= Termin[s_Date].DispDay5 ;
}

function text2html( sText ){
	sText.replace( /:-\)\?/ , "<img class=smily src=images/achselzuck.gif >"  ) ;
	sText.replace( /:-\[\]/ , "<img class=smily src=images/anstoss.gif >"  ) ;
	sText.replace( /:-\)\)\)/ , "<img class=smily src=images/grin.gif >"  ) ;
	sText.replace( /:-\)\)/ , "<img class=smily src=images/veryhappy.gif >"  ) ;
	sText.replace( /:-\)/ , "<img class=smily src=images/happy.gif >"  ) ;
	sText.replace( /:-S/ , "<img class=smily src=images/confused.gif >"  ) ;
	sText.replace( /;-\)/ , "<img class=smily src=images/zwink.gif >"  ) ;
	sText.replace( /\[:-\)/ , "<img class=smily src=images/headphone.gif >" ) ;
	sText.replace( /\(ph\)/ , "<img class=smily src=images/phone.gif >" ) ;
	sText.replace( /\(mp\)/ , "<img class=smily src=images/mphone.gif >"  ) ;
	sText.replace( /\(@\)/ , "<img class=smily src=images/mail.gif >"  ) ;
	sText.replace( /\(ti\)/ , "<img class=smily src=images/time.gif >"  ) ;
	sText.replace( /\(au\)/ , "<img class=smily src=images/auto.gif >"  ) ;
	sText.replace( /copyright/ , "©"  ) ;
	return sText ;
}
