	function getNowDate() {
		var nowTime = new Date();
		var nowDay = nowTime.getDate();
		if (nowDay < 10)
			nowDay = "0" + nowDay;
		var nowMonth = nowTime.getMonth() + 1;
		if (nowMonth < 10)
			nowMonth = "0" + nowMonth;
		var nowYear = nowTime.getYear();
		if (nowYear < 2000)
			nowYear += 1900;
		
		return nowDay + "/" + nowMonth + "/" + nowYear;
	}
	
	function getUnformattedDate(s) {
		ss = s + "";
		
		while (ss.indexOf(" ") > -1)
			ss = ss.substring(0, ss.indexOf(" ")) + ss.substring(ss.indexOf(" ") + 1);
			
		while (ss.indexOf(".") > -1)
			ss = ss.substring(0, ss.indexOf(".")) + ss.substring(ss.indexOf(".") + 1);
			
		while (ss.indexOf("-") > -1)
			ss = ss.substring(0, ss.indexOf("-")) + ss.substring(ss.indexOf("-") + 1);
			
		while (ss.indexOf("/") > -1)
			ss = ss.substring(0, ss.indexOf("/")) + ss.substring(ss.indexOf("/") + 1);
			
		while (ss.indexOf(",") > -1)
			ss = ss.substring(0, ss.indexOf(",")) + ss.substring(ss.indexOf(",") + 1);
		
		return ss;
	}
	
	function formatDate(s) {
		if (s == undefined || s == "")
			return s;
				
		ss = getUnformattedDate(s);
	
		if (ss.length == 0)
			return "";
		else if (ss.length <= 2) {
			var nowTime = new Date();
			if (ss.length == 1)
				ss = "0" + ss;
			var nowMonth = nowTime.getMonth() + 1;
			if (nowMonth < 10)
				nowMonth = "0" + nowMonth;
			var nowYear = nowTime.getYear();
			if (nowYear < 2000)
				nowYear += 1900;
			
			return ss + "/" + nowMonth + "/" + nowYear;
		}
		else if (ss.length <= 4) {
			var nowTime = new Date();
			if (ss.length == 3) {
				if (ss.substring(0,1) < 3 || (ss.substring(0,1) == 3 && ss.substring(1,2) < 2))
					ss = ss.substring(0,2) + "0" + ss.substring(2);
				else
					ss =  "0" + ss.substring(0,1) + ss.substring(1);
			}
			var nowYear = nowTime.getYear();
			if (nowYear < 2000)
				nowYear += 1900;
			
			return ss.substring(0,2) + "/" + ss.substring(2) + "/" + nowYear;
		}
		else if (ss.length <= 6) {
			if (ss.length == 5) {
				if (ss.substring(0,1) < 3 || (ss.substring(0,1) == 3 && ss.substring(1,2) < 2))
					ss = ss.substring(0,2) + "0" + ss.substring(2);
				else
					ss =  "0" + ss.substring(0,1) + ss.substring(1);
			}
			
			return ss.substring(0,2) + "/" + ss.substring(2,4) + "/20" + ss.substring(4);
		}
		else if (ss.length <= 8) {
			if (ss.length == 7) {
				if (ss.substring(0,1) < 3 || (ss.substring(0,1) == 3 && ss.substring(1,2) < 2))
					ss = ss.substring(0,2) + "0" + ss.substring(2);
				else
					ss =  "0" + ss.substring(0,1) + ss.substring(1);
			}
			
			return ss.substring(0,2) + "/" + ss.substring(2,4) + "/" + ss.substring(4);
		}
		else
			return s;
	}
	
	function formatDateForStateNr(s) {
		ss = formatDate(s);
		
		if (ss != undefined && ss != "")
			return ss.substring(8) + ss.substring(3,5) + ss.substring(0,2);
		else
			return "";
	}
	
	function getAgeOnDate(birthDate, calcDate) {
		var age = -1;
		
		if (calcDate == undefined || calcDate.length < 8)
			calcDate = getNowDate();
			
		if (birthDate != undefined && birthDate.length >= 8) {
			var idxBBM = 3;
			var idxBEM = 5;
			var idxBBY = 6;
			
			var idxSBM = 3;
			var idxSEM = 5;
			var idxSBY = 6;
		
			if (birthDate.length == 8) {
				idxBBM = 2;
				idxBEM = 4;
				idxBBY = 4;
			}
			
			if (calcDate.length == 8) {
				idxSBM = 2;
				idxSEM = 4;
				idxSBY = 4;
			}
			
			var birthDay = birthDate.substring(0, 2);
			var birthMonth = birthDate.substring(idxBBM, idxBEM);
			var birthYear = birthDate.substring(idxBBY);
			var startDay = calcDate.substring(0, 2);
			var startMonth = calcDate.substring(idxSBM, idxSEM);
			var startYear = calcDate.substring(idxSBY);
			
			if (isInteger(birthDay) && isInteger(birthMonth) && isInteger(birthYear) &&
			    isInteger(startDay) && isInteger(startMonth) && isInteger(startYear)) {
				age = eval(startYear - birthYear);
				if (eval(startMonth) < eval(birthMonth) ||
				    (eval(startMonth) == eval(birthMonth) && eval(startDay) < eval(birthDay)))
					age -= 1;
			} 
		}
		
		return age;
	}

