	function makeDate(datum) {
		var tag, monat, jahr;

		tag = giveday(datum);
		monat = givemonth(datum);
		jahr = giveyear(datum);
	
		var dDatum = new Date(jahr, monat, tag);
		if (isNaN(dDatum)) {
			return(false);
		} else {
			return(dDatum);
		}
	}
	
	function compare2Date(date1,date2,intervall){
		
		date1=makeDate((DateAdd("m", intervall, date1)));
		date2=makeDate(date2);
		if (isNaN(date1)) return(false);
		if (typeof(date1) != "object") return(false);
		if (isNaN(date2)) return(false);
		if (typeof(date2) != "object") return(false);
		if (date1.valueOf() <= date2.valueOf()) {
				return(true);
			}
			else {
				return(false);
			}
	}
	
	function DateAdd(interval, number, datum) {
		var tag, monat, jahr;

		tag = giveday(datum);
		monat = givemonth(datum);
		jahr = giveyear(datum);

		if (interval=="d") tag=parseInt(tag)+parseInt(number);
		if ((interval=="m") || (interval=="m+")) monat=parseInt(monat)+parseInt(number);
		if (interval=="y") jahr=parseInt(jahr)+parseInt(number);
		
		var dDatum = new Date(jahr, monat, tag);
		if (isNaN(dDatum)) return(false);
		if (typeof(dDatum) == "object") {
			if ((interval=="m+") && (dDatum.getDate()<tag))
			{
				dDatum = new Date(dDatum.getFullYear(),dDatum.getMonth(),0);
				if (isNaN(dDatum)) return(false);
				if (!(typeof(dDatum) == "object")) return(false);
			}
			return(dDatum.getDate() + "." + (dDatum.getMonth()+1) + "." + dDatum.getFullYear());
		}
		return(false);	
	}

	function checkYearLength(datum) {
		var jahr;
			
		jahr = giveyear(datum);
		
		if ((jahr.length == 4) && (jahr>1750)) return(true); else return(false);
	}

	function isdate(datum) {
		var tag, monat, jahr;
		
		tag = giveday(datum);
		monat = givemonth(datum) + 1;
		jahr = giveyear(datum);

		if ((isNaN(monat)) || (monat == "") || (parseInt(monat, 10) < 1) || (parseInt(monat, 10) > 12)) {
			return(false);
		} else {
			monat = parseInt(monat, 10);
		}
		if ((isNaN(tag)) || (tag == "") || (parseInt(tag, 10) < 1)) {
			return(false);
		} else {
			tag = parseInt(tag, 10);
		}
		if ((isNaN(jahr)) || (jahr == "") || (parseInt(jahr, 10) < 0) || ((parseInt(jahr, 10) >= 100) && (parseInt(jahr, 10) <= 1753))) {
			return(false);
		} else {
			jahr = parseInt(jahr, 10);
		}

		if (monat == 2) {
			if ((jahr/4) != parseInt((jahr/4), 10)) {
				if (tag > 28) return(false);
			} else {
				if (tag > 29) return(false);
			}
		} else {
			if ((monat == 4) || (monat == 6) || (monat == 9) || (monat == 11)) {
				if (tag > 30) return(false);
			} else {
				if (tag > 31) return(false);
			}
		}
		var dDatum = new Date(jahr, monat - 1, tag);
		if (isNaN(dDatum)) return(false);
		if (typeof(dDatum) == "object") {
			return(true);
		}
		else {
			return(false);
		}
	}

	function compareDate(datum, before) {
		var d = new Date();
		var dTag = d.getDate();
		var dMonat = d.getMonth();
		var dJahr = d.getYear();
		if (parseInt(dJahr, 10) < 2000) dJahr = parseInt(dJahr, 10) + 1900;
		var dDate = new Date(parseInt(dJahr, 10), parseInt(dMonat, 10), parseInt(dTag, 10));

		var dDatum = new Date(giveyear(datum), givemonth(datum), giveday(datum));
		
		if (isNaN(dDatum)) return(false);
		if (typeof(dDatum) != "object") return(false);
		
		if (before) {
			if (dDatum.valueOf() <= dDate.valueOf()) {
				return(true);
			}
			else {
				return(false);
			}
		} else {
			if (dDatum.valueOf() >= dDate.valueOf()) {
				return(true);
			}
			else {
				return(false);
			}
		}
	}

	function checkdate(datum, wert) {
		var d = new Date();
		var dTag = d.getDate();
		var dMonat = d.getMonth();
		var dJahr = d.getYear();
		if (parseInt(dJahr, 10) < 2000) dJahr = parseInt(dJahr, 10) + 1900;
		var dDate = new Date(parseInt(dJahr, 10), parseInt(dMonat, 10), parseInt(dTag, 10));
		var korrjahr;

		var dDatum = new Date(giveyear(datum), givemonth(datum), giveday(datum));
		if (isNaN(dDatum)) return(true);
		if (typeof(dDatum) != "object") return(true);

		var dDummy = new Date(dDate.getFullYear(), dDatum.getMonth(), dDatum.getDate());
		if (isNaN(dDummy)) return(true);
		if (typeof(dDummy) != "object") return(true);

		if (dDummy.valueOf() > dDate.valueOf()) {
			korrjahr = 1;
		}
		else {
			korrjahr = 0;
		}
		if ((dDate.getFullYear() - dDatum.getFullYear() - korrjahr) < wert) {
			return(true);
		}
		else {
			return(false);
		}
	}

	function typeofex(obj) {
		if (typeof(obj) == "object") {
			return(true);
		}
		return(false);
	}
