//allgemeine methoden

// email validierung

function validiere_email(email) {
	valid = Validate_Email_Address(email);
         
	if(valid == true) return true;
	else return false;
}


function Validate_String(string, return_invalid_chars) {
	valid_chars = '1234567890-_.^~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZäöüÄÖÜ';
	invalid_chars = '';
         
	if(string == null || string == '') return(true);
         
	// For every character on the string.   
	for(index = 0; index < string.length; index++) {
		charx = string.substr(index, 1);
		// Is it a valid character?
		if(valid_chars.indexOf(charx) == -1) {
			// If not, is it already on the list of invalid characters?
			if(invalid_chars.indexOf(charx) == -1) {
				// If it's not, add it.
				if(invalid_chars == '') invalid_chars += charx;
                else invalid_chars += ', ' + charx;
			}
		}
	}                     
            
	// If the string does not contain invalid characters, the function will return true.
	// If it does, it will either return false or a list of the invalid characters used
	// in the string, depending on the value of the second parameter.
	if(return_invalid_chars == true && invalid_chars != '') {
		last_comma = invalid_chars.lastIndexOf(',');
		invalid_chars = invalid_chars.substr(0, last_comma)+' '+invalid_chars.substr(last_comma+1,invalid_chars.length);
			
		return(invalid_chars);
	} else {
		return(invalid_chars == ''); 
	}
}


function Validate_Email_Address(email_address) {
	
/*	at = email_address.indexOf('@');
	dot = email_address.indexOf('.');         
	if(at == -1 || dot == -1 || dot == 0 || dot == email_address.length - 1) return(false);
	user_name = email_address.substr(0, at);
	domain_name = email_address.substr(at + 1, email_address.length);        
	if(Validate_String(user_name) === false || Validate_String(domain_name) === false) return(false);                     */
	
	var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex = "^"+usr+"\@"+domain+"$";
	var myrxp = new RegExp(regex);
	var check = (myrxp.test(email_address));
	if (check != true) {
		return false;
	} else {
		return(true);
	}
}

// ende email

function check_RB(fname, rb, aktion)   {

	//prüft ob in einer radio-button-group ein radio gecheckt ist, wenn nicht fehlermeldung

	var menu = aktion.substr(0, aktion.indexOf(' '));
	var aktion = aktion.substr(aktion.indexOf(' ')+1);
	//alert (document.forms[fname].elements[rb].length);
	
	if (aktion == 'löschen' || aktion == 'kündigen') message = "Sie müssen zuerst eine "+menu+" bestimmen, die Sie "+aktion+" möchten.";
	else if (aktion == 'editieren') message = "Sie müssen zuerst eine "+menu+" bestimmen, die Sie "+aktion+" möchten.";
	else if (aktion == 'anzeigen') message = "Sie müssen zuerst eine "+menu+" bestimmen, die Sie "+aktion+" möchten.";
	else if (aktion == 'umsetzen') message = "Sie müssen zuerst ein "+menu+" bestimmen, um es "+aktion+" zu können.";
	else if (aktion == 'anlegen') message = "Sie müssen zuerst ein "+menu+" bestimmen, um es "+aktion+" zu können.";
	else message = "Sie müssen zuerst ein "+menu+" bestimmen, um es "+aktion+" zu können.";

	var j = false;
	if(isNaN(document.forms[fname].elements[rb].length)) {
		if(document.forms[fname].elements[rb].checked) {
			j = true;
		}
		if (j) {
			if (aktion == 'löschen') {
				return confirm(menu+' wirklich löschen?');
			} else {
				return true;
			}
		} else {
			alert(message);
			return false;
		}
	} else {
		var anzahl = document.forms[fname].elements[rb].length;
		var gruppe = document.forms[fname].elements[rb];
		for(var i=0; i<anzahl ; i++) {
			if(gruppe[i].checked) {
				j = true;
			}
		}
		if (j) {
			if (aktion == 'löschen') {
				return confirm(menu+' wirklich löschen?');
			} else {
				return true;
			}
		} else {
			for(i=0; i<anzahl ; i++) {
				gruppe[i].style.backgroundColor='#fa7d74';
			}
			alert(message);
			return false;
		}
	}
}

function check_TF(felder, aktion, spezial) {

	// zuerst werden hier textfelder überprüft, ob sie ausgefüllt sind. 
	// danach kommt eventuell der dritte parameter zum tragen. er dient 
	// zur sonderprüfung von bestimmten feldern, bei denen email-adresse, oder postleitzahlen
	// geprüft werden. 'spezial' ist in diesen fällen immer ein array, bestehend aus den zu
	// prüfenden feldern zusammen mit der prüfmethode. also z.b.:
	//			new Array('link_code', 'www', 'v_plz', 'plz')
	// in disem fall wird dann das feld *link_code* auf gültige webadresse geprüft und das 
	// feld *v_plz* auf gültige plz.
	
	var menu = aktion.substr(0, aktion.indexOf(' '));
	var aktion = aktion.substr(aktion.indexOf(' ')+1);
	
	if (!spezial) var spezial = 0;	
	
	var mes1 = "Unvollständige Dateneingabe!\n\n";
	var mes2 = "Bitte füllen Sie das markierte Textfeld aus.";	

	for (var i = 0; i < felder.length; i++) {
		//alert (felder[i]);
		if (document.getElementById(felder[i]).value == "") {
			document.getElementById(felder[i]).focus();
			document.getElementById(felder[i]).style.backgroundColor='#fa7d74';
			alert(mes1+mes2);
			return false;
		} else {
			document.getElementById(felder[i]).style.backgroundColor='#ffffff';
			//document.getElementsByTagName("INPUT")[button].disabled = true;
		}
	}
	
	if (spezial != 0) {
		
		var anzahl = spezial.length;
		for (i=0; i<anzahl;) {
		
			if (spezial[i+1] == 'check_RB') {
			
				return check_RB(spezial[i], spezial[i+2], spezial[i+3]);
			
			} else if (spezial[i+1] == 'www') {
				if(document.getElementById(spezial[i]).value.indexOf('.') == -1 || document.getElementById(spezial[i]).value.indexOf('www') == -1) {
					document.getElementById(spezial[i]).focus();
					document.getElementById(spezial[i]).style.backgroundColor='#fa7d74';
					alert("Eine Web-Adresse muss ein *www* und mindestens zwei Punkte enthalten.");
					return false;
				} else {
					document.getElementById(spezial[i]).style.backgroundColor='#ffffff';
					//document.getElementsByTagName("INPUT")["daten_save"].disabled = true;
				}
			
			} else if (spezial[i+1] == 'pw') {
				if (document.getElementById("user_pw").value == "" && document.getElementById("user_mail").value == "") {
					document.getElementById("user_pw").focus();
					document.getElementById("user_pw").style.backgroundColor='#fa7d74';
					document.getElementById("user_mail").style.backgroundColor='#fa7d74';
					alert("Sie müssen entweder eine Email-Adresse oder ein Passwort eingeben!");
					return false;
				} else {
					document.getElementById("user_pw").style.backgroundColor='#ffffff';
					document.getElementById("user_mail").style.backgroundColor='#ffffff';
					//document.getElementsByTagName("INPUT")["daten_save"].disabled = true;
				}
				var laenge = document.getElementById("user_pw").value.length;
				if (laenge < 5 && document.getElementById("user_mail").value == "") {
					alert("Wenn Sie ein Passwort selber vergeben wollen, so muss dieses mindestens 5 Zeichen lang sein!");
					return false;
				}
			
			} else if (spezial[i+1] == 'email') {	// KOMPLETTE email-adresse prüfen
				if(!validiere_email(document.getElementById(spezial[i]).value)) {
					document.getElementById(spezial[i]).focus();
					document.getElementById(spezial[i]).style.backgroundColor='#fa7d74';
					alert("Ihre eingegebene Email-Adresse ist ungültig!\nEine gültige Emailadresse muss mindestens ein '@' und einen '.' enthalten!");
					return false
				} else {
					document.getElementById(spezial[i]).style.backgroundColor='#ffffff';
				}

			} else if (spezial[i+1] == 'emailname') {	// NUR den namen, nicht die ganze adresse prüfen
				if(!Validate_String(document.getElementById(spezial[i]).value)) {
					var falsch = Validate_String(document.getElementById(spezial[i]).value, true);
					document.getElementById(spezial[i]).focus();
					document.getElementById(spezial[i]).style.backgroundColor='#fa7d74';
					alert ("Der angegebene Email-Name enthällt Zeichen, die nicht erlaubt sind!\nFolgende von Ihnen eingegebene Zeichen sind falsch:\n"+falsch+"\nBitte korrigieren Sie Ihre Eingabe");
					return false
				} else {
					document.getElementById(spezial[i]).style.backgroundColor='#ffffff';
					//document.getElementsByTagName("INPUT")["daten_save"].disabled = true;
				}
			
			} else if (spezial[i+1] == 'zahl') {
				if(isNaN(document.getElementById(spezial[i]).value)) {
					document.getElementById(spezial[i]).focus();
					document.getElementById(spezial[i]).style.backgroundColor='#fa7d74';
					alert ("In dem markierten Feld sind nur Zahlen zugelassen!");
					return false;
				} else {
					document.getElementById(spezial[i]).style.backgroundColor='#ffffff';
					//document.getElementsByTagName("INPUT")["daten_save"].disabled = true;
				}
			}
			i+=2;
		}
	}
}

function setze_email(email) {
	//alert (email);
	//document.getElementById('goto').innerHTML += email;
	document.getElementById('goto').value += email + '\n';
/*	var parent_node   = document.getElementById("goto");
	var new_text_node = document.createTextNode(email);
	parent_node.appendChild(new_text_node);*/
	//parent_node.appendChild("<br />");

}

function sichtbar(wer, sicht) {
	document.getElementById(wer).style.display = sicht;
}

function abschalten(elemente) {

	//schaltet die ihr übergebenen elemente ab

	anzahl = elemente.length;
	for (var i=0; i<anzahl; i++) {
		document.getElementById(elemente[i]).disabled = true;
	}
}

function anschalten(elemente) {

	//schaltet die ihr übergebenen elemente an

	anzahl = elemente.length;
	for (var i=0; i<anzahl; i++) {
		document.getElementById(elemente[i]).disabled = false;
	}
}

function set_hidden(feld, wert) {
	document.getElementById(feld).value = wert;
}

function set_hidden_parent(feld, wert) {
	parent.document.getElementById(feld).value = wert;
}


function fenster(winname, wintitel, breite, hoehe) {
	var links=screen.width/2-breite/2;
	var oben=screen.height/2-hoehe/2;
	NewWin = window.open(winname, wintitel, "width="+breite+", height="+hoehe+", top="+oben+", left="+links+", toolbar=0, location=0, resize=yes");
}

function set_focus(element) {
	if (document.getElementById(element) != null) {
		document.getElementById(element).focus();
	}
}


// template-spezifische methoden

// kopfordner.tpl
function change_symbol(aktiv) {
	for (var i = 0; i < ordner.length; i++) {
		document.getElementById(ordner[i]).setAttribute("background", '/img/ordner_zu.gif');
	}
	document.getElementById(aktiv).setAttribute("background", '/img/ordner_auf.gif');
} 


// formular-i.tpl
function gen_antworten(anzahl) {
	document.forum.ant_anzahl.value=anzahl;
	for (var i = 0; i < 10; i++) {
		if (i < anzahl) {
			document.getElementById("a"+i).style.display="inline";
		} else {
			document.getElementById("a"+i).style.display="none";
		}
	}
}

// setup_group.tpl
function edit_user(wen) {
	document.getElementById('user_id').value = wen;
	document.getElementById('modul').value = "setup_user";
	document.prim.submit();
}

// setup_user.tpl
function set_hidden_ap(user) {
	if (document.getElementById(user).checked) {
		document.getElementById('ap_wert').value = 1;
	} else {
		document.getElementById('ap_wert').value = 0;	
	}
	document.getElementById('ap_id').value = user;
	document.mitglieder.submit();
	alert("Änderungen übernommen.");
}

// setup.tpl
function set_hidden_layout(layout) {
	document.getElementById("layoutid").value = layout;
}

// setup_account.tpl
function zeige_rechnung(re_id) {
	document.getElementById("rechnung").setAttribute("src", "/rechnung/"+re_id+".html");
}

function drucken() {
	parent.rechnung.focus();
	parent.rechnung.print();
}

function domaincheck () {
	var name = document.getElementById("v_domain_neu").value;
	var id_tld = document.getElementById("tld").value;
		
	var id = id_tld.substr(0, id_tld.indexOf('-'));
	var tld = id_tld.substr(id_tld.indexOf('-')+1);
	
	var domain = name+"."+tld;
	fenster('/domaincheck.html?domain='+domain, 'Domaincheck', 800, 500);
}

// photo_pic.tpl
function senden() {
	oTextarea = document.getElementsByName('bildHP')[0];
	wert = oTextarea.getAttribute('value');
	document.getElementById('editorvalue').value = wert;
}

function set_hidden_farbschema (wert) {
	document.getElementById("farbschemaid").setAttribute("value", wert);
}


// methoden hilfe
var timer = 0;
function pop_help(a) {
	timer = window.setTimeout("yyy('"+a+"')", 500);	
}

function yyy(a) {
	document.getElementById("frame").src = a;
}


function kill_help(){ 
	window.setTimeout('xxx()', 200);
	clearTimeout(timer);	
}
function xxx(a) {
	document.getElementById("div").style.display = "none";
}



function display_hilfe() {	
	document.getElementById("div").innerHTML = frame.document.body.innerHTML;
	document.getElementById("div").style.display = "inline";	
}


function anzeigen (wen) {
	if (document.getElementById(wen).style.display == "block") {
		document.getElementById(wen).style.display = "none";
	} else {
		document.getElementById(wen).style.display = "block";
	}
}


// MEDIA

function k_abschalten() {
	document.getElementById('vi_kopf').style.display = "none";
	document.getElementById('ei_kopf').style.display = "none";
}

function k_anzeigen(wen, wen_nicht) {
	document.getElementById(wen).style.display = "block";
	document.getElementById(wen_nicht).style.display = "none";
}


function set_url() {
	document.getElementById('url').value=document.aus.ext_pic_url.value;
}

function set_pic() {
	document.getElementById('url').value=document.aus.ext_pic_url.value;
	var URL = "/media/buehne-menu.html?url=";
	URL += document.aus.url.value;
	parent.buehne.location.href = URL;
}

function kopf_senden() {
	for (var i = 0; i < document.kopfbild.ausrichtung.length; i++) {
		if (document.kopfbild.ausrichtung[i].checked) {
			ausrichtung=document.kopfbild.ausrichtung[i].value;
		}
	}
	
	kopfbildid = document.kopfbild.kopfbildid.value;
/*	if (document.getElementById('no_kopf').checked) {
		confirm("Sie haben sich entschlossen kein Kopfbild zu wählen!\n Sind Sie da wirklich sicher?");
		kopfbildid = "ohne";
	} else if (kopfbildid == "") {
		confirm("Sie haben kein Kopfbild gewählt!\nIn diesem Fall wird das bestehende Kopfbild beibehalten.");
	}*/
	if (kopfbildid == "") {
		confirm("Sie haben kein Kopfbild gewählt!\nIn diesem Fall wird das bestehende Kopfbild beibehalten.");
	}
	
	logoid = document.kopfbild.logoid.value;
/*	if (document.getElementById('no_logo').checked) {
		confirm("Sie haben sich entschlossen kein Logo zu wählen!\n Sind Sie da wirklich sicher?");
		logoid = "ohne";
	} else if (logoid == "") {
		confirm("Sie haben kein Logo gewählt!\nIn diesem Fall wird das bestehende Logo beibehalten.");
	}*/
	if (logoid == "") {
		confirm("Sie haben kein Logo gewählt!\nIn diesem Fall wird das bestehende Logo beibehalten.");
	}
	
	opener.location.href="/setup/setup_vhp-pic.html?ausrichtung="+ausrichtung+"&kopfbildid="+kopfbildid+"&logoid="+logoid;
	window.close();
}

function kopf_senden2(){
	layoutid = document.layout.layoutid.value;
	opener.location.href="/setup/setup_vhp-layout.html?layoutid="+layoutid;
	window.close();
}


function refresh_opener(bild){
	bild = document.getElementById(bild).value;
	window.close();
}




//


var browser = navigator.appName;
var browser_special = navigator.appCodeName;
var version = navigator.appVersion;
var identifikation = navigator.userAgent;
var plattform = navigator.platform;
var sprache = navigator.language;


function zeige_originalbild(pfad) {
	fenster = ShowPopUpWnd (pfad, 1024, 768, 1, 'yes');
	fenster.focus();
    
}

function ShowPopUpWnd (url, width, height, scrollbar, resizeable) {
	if (scrollbar == 1) {
		scrollbar = "yes";
	} else if (scrollbar == 0) {
		scrollbar = "no";
	} else if (scrollbar == 2) {
		fenster;
	}
	var links=screen.width/2-width/2;
	var oben=screen.height/2-height/2;
	
	definition = "status=no,toolbar=no, width="+width+", height="+height+", top="+oben+" ,left="+links+", scrollbars="+scrollbar+", resizable="+resizeable;
	return open(url,"fenster",definition);
}






// kalender


var date = new Date();
var curr_dy = date.getDate(); 
var curr_mn = date.getMonth();
var curr_yr = date.getFullYear();
var DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var moty = ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
var tage = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];

function zeige_kal(welcher) {
	for (i=1; i<6; i++) {
		ziel = "calTbl"+i;
		kill_kal(ziel);
	}
	welcher = "calTbl"+welcher;
	buildCalendar(welcher, curr_mn, curr_yr);
	document.getElementById(welcher).style.visibility = "visible";
}

function kill_kal(welcher) {
	document.getElementById(welcher).style.visibility = "hidden";
}

function set_datum(datum, welcher) {	
	document.getElementById(welcher).style.visibility = "hidden";
	welcher = "datum"+welcher.substring(welcher.length-1, welcher.length);
	document.getElementById(welcher).value = datum;	
}

function Calendar_get_daysofmonth(monthNo, p_year) {
	if ((p_year % 4) == 0) {
		if ((p_year % 100) == 0 && (p_year % 400) != 0)
			return DOMonth[monthNo];
		return lDOMonth[monthNo];
	} else
		return DOMonth[monthNo];
}

function getNextMonth(m,y,incr){
	var ret_arr = new Array();
	ret_arr[0] = m + incr; 
	ret_arr[1] = y;
	if (ret_arr[0] == 12){ 
		ret_arr[0]=0; 
		ret_arr[1]=ret_arr[1]+1; 
	}
	if (ret_arr[0] == -1){ 
		ret_arr[0]=11; 
		ret_arr[1]=ret_arr[1]-1; 
	}
	return ret_arr;
}

function figureDOTW(m,d,y){
	var tDate = new Date(); 
	tDate.setDate(d); 
	tDate.setMonth(m); 
	tDate.setYear(y); 
	return tDate.getDay();
}

function kill_kids(mutter){ // töten aller kinder der mutter
	var anzahl = mutter.childNodes.length;
	for (i=0;i<anzahl;i++) { 
		mutter.removeChild(mutter.childNodes[0]); 
	}
}

function XBrowserAddHandler(target, eventName, handlerName) { 
	if (target.addEventListener) { 
		target.addEventListener(eventName, function(e){target[handlerName](e);}, false);
	} else if (target.attachEvent) { 
		target.attachEvent("on" + eventName, function(e){target[handlerName](e);});
	} else { 
		var originalHandler = target["on" + eventName]; 
		if (originalHandler) { 
			target["on" + eventName] = function(e){originalHandler(e);target[handlerName](e);}; 
		} else { 
			target["on" + eventName] = target[handlerName]; 
		} 
	} 
}

function Demo_ClickHandler(e) { 
	//kill_kal(welcher); 
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	//alert("hallo");
} 



function stopit(e) {
	e.stopPropagation();
	e.cancelBubble = true;
}

function removeEvent(obj, evType, fn){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, false);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}

function aufheben () {
	if (document.releaseEvents) {
		document.releaseEvents(Event.MOUSEOUT);
	}
	document.onmouseout = null;
	return false;
}



function buildCalendar(welcher, m, y){

	//event.cancelBubble = true;
	aufheben();

	var dayNo = figureDOTW(m, 1, y);
	var monthNo = Calendar_get_daysofmonth(m, y);
	var dayCount = 1;
	var nMonth = getNextMonth(m, y, +1);
	var pMonth = getNextMonth(m, y, -1);
	
	var mutter = document.getElementById(welcher);	
	//mutter.setAttribute("style", "position:absolute; width:188px; heigth: 188px; top:360px;");	
	kill_kids(mutter);
	
	//var DOMLayer = document.createElement('LAYER');
	//DOMLayer.setAttribute("OnMouseout", "kill_kal('"+welcher+"');");
	//DOMLayer.setAttribute("style", "position:relative; width:188px; heigth: 160px; top:0px; left: 0px");
	//DOMLayer.onmousout = alert("hallo");
	//DOMLayer.setCapture;
	//DOMLayer.releaseCapture;

	//DOMLayer.ClickHandler = Demo_ClickHandler; 
	//XBrowserAddHandler(DOMLayer,"mouseout","ClickHandler"); 	
	
	var kalender = document.createElement('TABLE');
	
	//window.document.captureEvents(Event.MOUSEOUT);
	//window.document.onclick = stopit;
	//kalender.addEventListener("onmouseout", stopit, true);
	//removeEvent(kalender, "mouseout", stopit)
	
	mutter.appendChild(kalender);
	
	kalender.setAttribute("width", 188);
	kalender.setAttribute("height", 160);
	kalender.setAttribute("border", 1);
	kalender.setAttribute("cellspacing", 1);
	kalender.setAttribute("cellpadding", 1);
	kalender.setAttribute("z-index", 3);
	kalender.setAttribute("cursor", "pointer");
	kalender.setAttribute("id", welcher);
	
	kalender.setAttribute("style", "background-color: #ffffff; cursor: pointer; position:absolute; margin:0 0 0 0;");	
	//DOMLayer.appendChild(kalender);
	
	var TBody = document.createElement('TBODY');
	kalender.appendChild(TBody);

	var navTR = document.createElement('TR');
	navTR.setAttribute("style", "background-color:#bbbbbb;");
	TBody.appendChild(navTR);
	
	var navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	if (curr_yr < y-1) {
		navTD.innerHTML = '<a href="javascript:void(0)" title="Ein Jahr zurück" onclick="buildCalendar(\''+welcher+'\', '+m+','+(y-1)+')"><img src="/img/doppelpfeil_li.gif" border="0"/></a>';
	} else {
		navTD.innerHTML = "";
	}
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	if (curr_mn < m || curr_yr != y) {
		navTD.innerHTML = '<a href="javascript:void(0)" title="Einen Monat zurück" onclick="buildCalendar(\''+welcher+'\','+pMonth[0]+','+pMonth[1]+')"><img src="/img/pfeil_li.gif" border="0"/></a>';
	} else {
		navTD.innerHTML = "";
	}
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	navTD.innerHTML = moty[m] +'<br/>'+y;
	navTD.setAttribute("style", "background-color:#dddddd;");
	navTD.setAttribute("colspan", 3);
	navTD.setAttribute('width', 100);
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	navTD.innerHTML = '<a href="javascript:void(0)" title="Einen Monat vor" onclick="buildCalendar(\''+welcher+'\','+nMonth[0]+','+nMonth[1]+')"><img src="/img/pfeil_re.gif" border="0"/></a>';
	navTR.appendChild(navTD);
	navTD = document.createElement('TD');
	navTD.setAttribute("align", "center");
	navTD.innerHTML = '<a href="javascript:void(0)" title="Ein Jahr vor" onclick="buildCalendar(\''+welcher+'\','+m+','+(y+1)+')"><img src="/img/doppelpfeil_re.gif" border="0"/></a>';
	navTR.appendChild(navTD);
		
	navTR = document.createElement('TR');
	navTR.setAttribute("style", "background-color:#cccccc;");
	navTR.setAttribute("align", "center");
	
	for(i=0; i<tage.length; i++) {
		navTD = document.createElement('TD');
		var navTD_text = document.createTextNode(tage[i]);
		navTD.appendChild(navTD_text);
		navTR.appendChild(navTD);
		
	}
	TBody.appendChild(navTR);
	
	for (i=0; i<6; i++){ 
		var calTR = document.createElement('TR');
		calTR.setAttribute("align", "center");
		var calTDtext;
		
		for (j=0; j<7; j++){
		
			var calTD = document.createElement('TD');
			if (j == 0 || j == 6 ) //wochenende
				calTD.style.backgroundColor = '#ffffff';
			if ((i==0 && j < dayNo) || dayCount > monthNo) // if this is the first row....
				calTDtext = document.createElement('BR');
			else  {
				calTDtext = document.createTextNode(dayCount.toString());
				
				if (dayCount == curr_dy && m == curr_mn && y == curr_yr)
					calTD.style.color = '#f00f00';
				dayCount++;
			}
			calTD.appendChild(calTDtext);
			if (curr_dy >= dayCount && (m == curr_mn && y == curr_yr)) {
				calTD.setAttribute("style", "background-color:#000000");
			} else {
				calTD.setAttribute("OnClick","set_datum('"+(dayCount-1)+"."+(m+1)+"."+(y)+"', '"+welcher+"');");
			}
			calTD.setAttribute('width','14%');
			calTR.appendChild(calTD);
		}
		TBody.appendChild(calTR);
	}
	

	//alert(mutter.innerHTML);
}



