/*******************************************************************************
* Datei :           dates.js   ***JAVASCRIPT***                                *
*                                                                              *
* Projekt :         NC EveCal                                                  *
* Version :         4.0.3                                                      *
* Datum :           03.07.2004 (v3.0)                                          *
* Letzte Änderung : 25.11.2007 (v4.0.3)                                        *
* Autor :           Manuel Rennecke <info@netconcept24.de>                     *
* Herausgeber :     (c) 2001-2007 - Net Concept 24                             *
*                                                                              *
* Datums-Funktionen                                                            *
*******************************************************************************/

//**** Datumsangaben bei der Eingabe korrigieren *******************************
function enterDate(field) {
	text = field.value;
	pos = text.length - 1;
	
	if (text != "") {
		if ((text.charCodeAt(pos) < 48 || text.charCodeAt(pos) > 57) && text.charCodeAt(pos) != 46)
			field.value = text.substr(0, text.length - 1);
		// Datumformat ggf. korrigieren
		if (field.value.length == 2 && field.value.substr(1, 1) == ".")
			field.value = "0" + field.value;
		if (field.value.length == 5 && field.value.substr(4, 1) == ".")
			field.value = field.value.substr(0, 3) + "0" + field.value.substr(3);
	}
} 

//**** Datumsangaben nach der Eingabe korrigieren ******************************
function correctDate(field) {
	if (field.value.length >= 8) {
		if (field.value.substr(2, 1) == "." && field.value.length == 8)
			field.value = field.value.substr(0, 6) + "20" + field.value.substr(6);
		// Datum ggf. gültig machen
		check_date = field.value.split('.');
		check_date[0] = parseInt(check_date[0], 10);
		check_date[1] = parseInt(check_date[1], 10);
		if (check_date[1] > 12)
			check_date[1] = 12;
		if (check_date[1] < 1)
			check_date[1] = 1;
		maxD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		if (check_date[2] % 4 == 0)
			maxD[1] = 29;
		if (check_date[0] > maxD[check_date[1] - 1])
			check_date[0] = maxD[check_date[1] - 1];
		if (check_date[0] < 1)
			check_date[0] = 1;
		field.value = (check_date[0] < 10 ? "0" + check_date[0] : check_date[0]) + "." + 
					  (check_date[1] < 10 ? "0" + check_date[1] : check_date[1]) + "." + 
					  (check_date[2] < 100 ? "20" + check_date[2] : check_date[2]);
	}
}

//**** Prüfen, ob Datum vergangen **********************************************
function dateFinished(date) {
	if (date[0] == "" && date[1] == "" && date[2] == "") {
		date[0] = date[1] = "01";
		date[2] = "1970";
	}
	date[0] = parseInt(date[0], 10);
	date[1] = parseInt(date[1], 10) - 1;
	if (date[2].length == 2) 
		date[2] = '20' + date[2];
		
	var test_date = new Date(date[2], date[1], date[0]);
	var now        = new Date();
	now.setHours(0);
	now.setMinutes(0);
	now.setSeconds(0);
	now.setMilliseconds(0);
	if (test_date.getTime() < now.getTime())
		return true;
	return false;
}

//**** Datum überprüfen & korrigieren *******************************
function checkdate(name, form) {
	if (typeof(form) != 'object') {
		var day  = document.forms[form].elements[name + '_day'];	
		var mon  = document.forms[form].elements[name + '_month'];	
		var year = document.forms[form].elements[name + '_year'];
	} else {
		var day  = form.elements[name + '_day'];	
		var mon  = form.elements[name + '_month'];	
		var year = form.elements[name + '_year'];
	}
	correctYear(year);
	correctMonth(mon);
	correctDay(day, mon.value, year.value);
}

function correctYear(field) {
	if (field && field.value != "") {
		if (isNaN(field.value)) {
			date = new Date();
			field.value = date.getFullYear();
		}
		if (field.value.length == 2)
			field.value = "20" + field.value;
	}
}

function correctMonth(field) {
	if (field && field.value != "") {
		if (isNaN(field.value)) {
			date = new Date();
			field.value = date.getMonth() + 1;
		} else {
			if (field.value < 1)
				field.value = "01";
			else if (field.value > 12)
				field.value = "12";
		}
		if (field.value.length == 1)
			field.value = "0" + field.value;
	}
}

function correctDay(field, month, year) {
	var date = new Date();
	if (month == "")
		month = 1;
	if (year == "")
		year = date.getFullYear();
	if (field && field.value != "") {
		if (isNaN(field.value)) {
			field.value = date.getDate();
		} else {
			var maxD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
			if (year % 4 == 0)
				maxD[1] = 29;
			if (field.value < 1)
				field.value = "01";
			else if (field.value > maxD[month - 1])
				field.value = maxD[month - 1];
		}
		if (field.value.length == 1)
			field.value = "0" + field.value;
	}
}

//**** Zeit überprüfen & korrigieren ********************************
function checktime(name, form) {
	if (typeof(form) != 'object') {
		var hour   = document.forms[form].elements[name + '_hour'];	
		var minute = document.forms[form].elements[name + '_minute'];	
		var pm     = null;
		if (document.forms[form].elements[name + '_pm'])
			pm = document.forms[form].elements[name + '_pm'];	
	} else {
		var hour   = form.elements[name + '_hour'];	
		var minute = form.elements[name + '_minute'];	
		var pm     = null;
		if (form.elements[name + '_pm'])
			pm = form.elements[name + '_pm'];	
	}
	
	correctMinute(minute);
	correctHour(hour, pm);
}

function correctMinute(field) {
	if (field && field.value != "") {
		if (isNaN(field.value)) {
			field.value = "00";
		} else {
			if (field.value < 0)
				field.value = "00";
			else if (field.value > 59)
				field.value = "59";
			if (field.value.length == 1)
				field.value = "0" + field.value;
		}
	}
}

function correctHour(field, pm_field) {
	if (field && field.value != "") {
		if (isNaN(field.value)) {
			field.value = "00";
		} else {
			while (pm_field != null && field.value > 12)
				field.value = field.value - 12;
			if (field.value < 0)
				field.value = "00";
			else if (field.value > 23)
				field.value = "23";
			if (field.value.length == 1)
				field.value = "0" + field.value;
		}
	}
}
