function lookupcity(plz) {
	var path = 'tools/plz.html?PLZ='+plz;
	lookupframe.location.href=path;
}

function checkoptions(el) {
	if (el.value=="select") {
		document.getElementById('seloptions').style.display = 'block';
	} else {
		document.getElementById('seloptions').style.display = 'none';
	}
	setwin();
}

function trimstr ( value ) // entfernt unnötige leerzeichen aus dem string (like trim in php) by Anton Funk
{
	return value.replace(/^\s*|\s*$/g,"");
}

function checkform() {
	if (document.getElementById('ev_title').value == "") {
		alert('Bitte geben Sie einen Titel an!');
		document.getElementById('ev_title').focus();
		errorBorder(['ev_title']);
		return false;
	}
	if (document.getElementById('ev_ort').value == "") {
		alert('Bitte geben Sie einen Ort an!');
		document.getElementById('ev_ort_select').focus();
		errorBorder(['ev_ort_select']);
		return false;
	}
	if (document.getElementById('ev_desc').value == "") {
		alert('Bitte geben Sie eine Beschreibung an!');
		document.getElementById('ev_desc').focus();
		errorBorder(['ev_desc']);
		return false;
	}
	var rep = "none";
	if ( document.getElementById('end_date').value!="" ) rep = "daily";
	if ( rep=='daily' ) {
		if ( checkdate('daily','start') == false ) return false;
		if ( checkdate('daily','end') == false) return false;
		if (comparedates() == false) return false;
	} else {
		if ( checkdate('none','start') == false ) return false;
	}
	if ( document.getElementById('ev_endtime').value != "" && comparedates() == false) return false;

	if (document.getElementById('ev_time').value != "") {
		var newtime = checktime(document.getElementById('ev_time').value);
		if ( !newtime ) {
			alert('Die Anfangsuhrzeit ist nicht korrekt!');
			document.getElementById('ev_time').focus();
			errorBorder(['ev_time']);
			return false;
		} else {
			document.getElementById('ev_time').value = newtime;
		}
	}
	if (document.getElementById('ev_endtime').value != "") {
		var newtime = checktime(document.getElementById('ev_endtime').value);
		if ( !newtime ) {
			alert('Die Enduhrzeit ist nicht korrekt!');
			document.getElementById('ev_endtime').focus();
			errorBorder(['ev_endtime']);
			return false;
		} else {
			document.getElementById('ev_endtime').value = newtime;
			if (document.getElementById('ev_time').value != "") {
				// Macht so keinen Sinn
			} else {
				alert('Die Anfangsuhrzeit fehlt!');
				document.getElementById('ev_time').focus();
				errorBorder(['ev_time']);
				return false;
			}
		}
	}
	return (true);
}

function checkdate(rep, type) {
	if (type == "start") {
		field = document.getElementById('start_date');
		errfield = ['start_date'];
	} else if (type == "end") {
		field = document.getElementById('end_date');
		errfield = ['end_date'];
	}

	if (type != "end" && field.value == "") {
		if (rep == "none")
		alert("Bitte geben Sie das Datum der Veranstaltung an!");
		else {
			if (type == "start")
			alert("Bitte geben Sie das Anfangsdatum der Veranstaltung an!");
		}
		field.focus();
		errorBorder(errfield);
		return false;
	}

	if (field.value != "") {
		check_date = field.value;
		check_date = check_date.split('.');
		if (check_date.length != 3) {
			if (rep == "none")
			alert("Das angegebene Datum der Veranstaltung ist ungültig!");
			else {
				if (type == "start")
				alert("Das angegebene Anfangsdatum der Veranstaltung ist ungültig!");
				else if (type == "end")
				alert("Das angegebene Enddatum der Veranstaltung ist ungültig!");
			}
			field.focus();
			errorBorder(errfield);
			return false;
		}

		check_date[0] = parseInt(check_date[0],10);
		check_date[1] = parseInt(check_date[1],10)-1;
		if (check_date[2].length == 2) check_date[2] = '20' + check_date[2];

		test_date = new Date(check_date[2],check_date[1],check_date[0]);
		if (test_date.getDate() != check_date[0] || test_date.getMonth() != check_date[1] || test_date.getFullYear() != check_date[2]) {
			if (rep == "none")
			alert("Das angegebene Datum der Veranstaltung ist ungültig!");
			else {
				if (type == "start")
				alert("Das angegebene Anfangsdatum der Veranstaltung ist ungültig!");
				else if (type == "end")
				alert("Das angegebene Enddatum der Veranstaltung ist ungültig!");
			}
			field.focus();
			errorBorder(errfield);
			return false;
		}
	} else {
		if (rep != "none") {
			if (type == "start")
			alert("Das Anfangsdatum der Veranstaltung fehlt!");
			else if (type == "end")
			alert("Das Enddatum der Veranstaltung fehlt!");
			errorBorder(errfield);
		}
		return false;
	}
}

function comparedates() {
	start_field = document.getElementById('start_date');
	end_field = document.getElementById('end_date');

	if (end_field.value != "") {
		start = start_field.value.split('.');
		end   = end_field.value.split('.');

		start[0] = parseInt(start[0],10);
		start[1] = parseInt(start[1],10)-1;
		if (start[2].length == 2)
		start[2] = '20' + start[2];
		end[0] = parseInt(end[0],10);
		end[1] = parseInt(end[1],10)-1;
		if (end[2].length == 2)
		end[2] = '20' + end[2];

		test_start = new Date(start[2],start[1],start[0]);
		test_end   = new Date(end[2],end[1],end[0]);
		if (test_end.getTime() < test_start.getTime()) {
			alert("Das angegebene Anfangsdatum ist größer als das Enddatum!");
			end_field.focus();
			errorBorder(['end_date']);
			return false;
		}
		return true;
	}
}

function daytoms(iTime) {
	return (iTime.getTime() / (1000 * 60 * 60 * 24))
}

function daydiff(sDate, eDate) {
	return(Math.ceil(daytoms(eDate)-daytoms(sDate)))
}

function getlastdays(m,y,alld) {
	var dl = alld.length-1;
	var cud = new Date(y,m,dl);
	var daycount = new Array(0,0,0,0,0,0,0);
	var ldays = new Array();
	for ( i=dl; i>=1; i-- ) {
		cud.setDate(i);
		var cday = cud.getDay();
		daycount[cday]++;
		ldays[cday] = i;
		if ( daycount.join('') == "1111111" ) break;
	}
	return(ldays);
}

function getalldays(m,y) {
	var cd = getdaysofmonth(m,y);
	var cud = new Date(y,m,1);
	var cuweek = 1;
	var daycount = new Array(0,0,0,0,0,0,0);
	var mdays = new Array();
	for(ad = 1; ad <= cd; ad++) {
		cud.setDate(ad);
		var cday = cud.getDay();
		daycount[cday]++;
		if ( cday==1 ) cuweek++;
		mdays[ad] = new Array(cuweek,cday,daycount[cday]);
	}
	return(mdays);
}

function getdaysofmonth(m,y) {
	m = m+1;
	if(m == 4 || m == 6 || m == 9 || m == 11) {
		t = 30;
	} else if ( m == 2) {
		if( y % 400 == 0 || y % 4 == 0 && y % 100 != 0) {
			t = 29;
		} else {
			t = 28;
		}
	} else {
		t = 31;
	}
	return(t);
}

function comparetime() {
	start_field = document.getElementById('ev_time');
	end_field = document.getElementById('ev_endtime');

	start = start_field.value.split(':');
	end   = end_field.value.split(':');

	if ( end[0] < start[0] ) return false;
	if ( end[0] == start[0] ) {
		if ( end[1] < start[1] ) return false;
	}
	if ( end[0] == start[0] && end[1] == start[1] ) return false;
	return true;
}

function checktime(tim) {

	var dpoint = tim.indexOf(":");
	var point = tim.indexOf(".");
	var komma = tim.indexOf(",");
	var trenner = false;
	if ( dpoint>0 ) {
		var trenner = ":";
	} else if ( point>0 ) {
		var trenner = ".";
	} else if ( komma>0 ) {
		var trenner = ",";
	}

	if ( !trenner ) {
		return false;
	}

	var zeit = tim.split(trenner);
	var std = parseInt(zeit[0],10);
	var min = parseInt(zeit[1],10);
	if ( std>23 || std<0 || isNaN(std) || min>59 || min<0 || isNaN(min) ) {
		return false;
	}
	if ( std<10 ) std = "0"+std;
	if ( min<10 ) min = "0"+min;
	var newtime = std+":"+min;

	return(newtime);
}

function errorBorder(obj) {
	b = 5;
	cnt = 0;
	objects = obj;
	cl = new Array("FFFFFF", "FF9999", "FF0000", "FF0000", "FF9999", "FFFFFF");
	aktiv = window.setInterval("drawborder()",50);
}

function drawborder() {
	for ( i=0; i<objects.length; i++ ) {
		ob = document.getElementById(objects[i]);
		ob.style.backgroundColor = "#"+cl[b];
	}
	if ( b<=0 ) {
		cnt++;
		b = 5;
		if ( cnt>5 ) {
			for ( i=0; i<objects.length; i++ ) {
				ob = document.getElementById(objects[i]);
				ob.style.backgroundColor = "";
			}
			window.clearInterval(aktiv);
		}
	}
	b--;
}

function keyDown(evt){
	var e = evt || window.event;
	var objForm=document.forms[0];
	var ch='';

	if(document.layers){
		if(e.which>0)
		ch = String.fromCharCode(e.which);
	} else if(document.all){
		if(e.keyCode>0)
		ch=String.fromCharCode(e.keyCode);
	} else if (document.getElementById){
		if(e.charCode>0)
		ch = String.fromCharCode(e.charCode);
		if(e.which>0)
		ch = String.fromCharCode(e.which);
		if(e.keyCode>0)
		ch = getNamedKey(e.keyCode);
	}
	if ( e.ctrlKey && ch=="S" ) {
		if ( checkform() ) vaction('WRITE');
	}
	return true;
}

function owin(url,name,w,h) {
	var win;
	win = window.open(url,name,'width='+w+',height='+h+',scrollbars=1,resizable=1');
	win.focus();
	return(win);
}

function opreload() {
	if ( opener.document ) {
		opener.document.location.reload();
	}
	self.close();
	opener.focus();
}