function handleSearchInputTitle(obj, mode) {
	if (mode == 'hide' && obj.value == 'Suchbegriff oder Buchungs-Nr.') {
		obj.value = ''
		obj.style.color = '#000000'
	} else if (obj.value == '') {
		obj.value = 'Suchbegriff oder Buchungs-Nr.'
		obj.style.color = '#999999'
	}
}

function showFilter(filter) {
	var obj = document.getElementById(filter);

	if (obj) {
		if (obj.style.display == 'none') {
			obj.style.display = 'block';
		} else {
			obj.style.display = 'none';
		}
	}
}

function doFilterSubmit(direction) {
	var obj = document.getElementById('filtersearch');

	if (obj && obj != 'undefined') {
		if (obj.page.value == '')
			obj.page.value = 1;

		if (direction == 'back') {
			obj.page.value = eval(obj.page.value) - 1;
			obj.direction.value = 'backward';
		} else {
			obj.page.value = eval(obj.page.value) + 1;
			obj.direction.value = 'forward';
		}

		obj.directionClicked.value = true;
		obj.reset.value = false;
		obj.submit();
	}
}

function doMerkzettelSubmit(bnr, command, filterall) {
	var obj = document.getElementById('filtersearch');

	if (obj && obj != 'undefined') {
		obj.command.value = command;
		obj.booknr.value = bnr;
		obj.filterall.value = filterall;
		obj.reset.value = false;
		obj.directionClicked.value = true;
		obj.submit();
	}
}

function setSubmittedFilter(filter) {
	var obj = document.getElementById('filtersearch');
	if (obj && obj != 'undefined') {
		obj.clickedFilter.value = filter;
//		obj.submit();
	}
}

function checkDates() {
	var start = document.getElementById('startDate');
	var end = document.getElementById('endDate');
	
	if ((!start || start == 'undefined') || (!end || end == 'undefined')) {
		return false;
	}
	
	if (start.value == 'TT.MM.JJJJ' && end.value == 'TT.MM.JJJJ') {
		alert(unescape("Bitte geben Sie mindestens ein Datum ein"));
		return false;
	}
		
	if (start.value != 'TT.MM.JJJJ') {
		if (isDate(start.value) == false) {
			start.focus();
			return false;
		}
	}

	if (end.value != 'TT.MM.JJJJ') {
		if (isDate(end.value) == false) {
			end.focus();
			return false;
		}
	}
	
	if (start.value != 'TT.MM.JJJJ' && end.value != 'TT.MM.JJJJ') {
		tagvon = start.value.substr(0,2);
		monatvon = start.value.substr(3,2);
		jahrvon = start.value.substr(6,4);
		tagbis = end.value.substr(0,2);
		monatbis = end.value.substr(3,2);
		jahrbis = end.value.substr(6,4);
		
		s = jahrvon + monatvon + tagvon;
		e = jahrbis + monatbis + tagbis;
		
		if (eval(s) >= eval(e)) {
			alert(unescape("Das Startdatum muss vor dem Enddatum liegen"));
			return false
		}
	}
	
	return true;
}

// Declaring valid date character, minimum year and maximum year
var dtCh = ".";
var minYear = 1900;
var maxYear = 2100;

function isInteger(s) {
	var i;
	for (i = 0; i < s.length; i++) {
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9")))
			return false;
	}
	// All characters are numbers.
	return true;
}

function stripCharsInBag(s, bag) {
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1)
			returnString += c;
	}
	return returnString;
}

function daysInFebruary(year) {
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}

function DaysArray(n) {
	for ( var i = 1; i <= n; i++) {
		this[i] = 31
		if (i == 4 || i == 6 || i == 9 || i == 11) {
			this[i] = 30
		}
		if (i == 2) {
			this[i] = 29
		}
	}
	return this
}

function isDate(dtStr) {
	var daysInMonth = DaysArray(12)
	var pos1 = dtStr.indexOf(dtCh)
	var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
	var strDay = dtStr.substring(0, pos1)
	var strMonth = dtStr.substring(pos1 + 1, pos2)
	var strYear = dtStr.substring(pos2 + 1)
	strYr = strYear
	if (strDay.charAt(0) == "0" && strDay.length > 1)
		strDay = strDay.substring(1)
	if (strMonth.charAt(0) == "0" && strMonth.length > 1)
		strMonth = strMonth.substring(1)
	for ( var i = 1; i <= 3; i++) {
		if (strYr.charAt(0) == "0" && strYr.length > 1)
			strYr = strYr.substring(1)
	}
	month = parseInt(strMonth)
	day = parseInt(strDay)
	year = parseInt(strYr)
	if (pos1 == -1 || pos2 == -1) {
		alert(unescape("Das Datumsformat ist %3A TT.MM.JJJJ"));
		return false;
	}
	if (strDay.length < 1 || day < 1 || day > 31
			|| (month == 2 && day > daysInFebruary(year))
			|| day > daysInMonth[month]) {
		alert(unescape("Bitte geben Sie einen g%FCltigen Wert f%FCr den Tag ein"));
		return false;
	}
	if (strMonth.length < 1 || month < 1 || month > 12) {
		alert(unescape("Bitte geben Sie einen g%FCltigen Wert f%FCr den Monat ein"));
		return false;
	}
	if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
		alert(unescape("Bitte geben Sie einen g%FCltigen Wert f%FCr das Jahr zwischen " + minYear + " und " + maxYear + " ein"));
		return false;
	}
	if (dtStr.indexOf(dtCh, pos2 + 1) != -1
			|| isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
		alert(unescape("Bitte geben Sie einen g%FCltigen Wert f%FCr das Datum ein"));
		return false;
	}
	return true
}

