function isDateGreaterThen(inputDate, maxDate) {
    var preg = /^(\d{2})\.(\d{2})\.(\d{4})$/;
    if(!preg.exec(inputDate)) {
        return false;
    }

    if(!maxDate) {
        maxDate = new Date();
    }
    var mDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate());
    var iDate = new Date(RegExp.$3, RegExp.$2-1, RegExp.$1);
    
    return iDate <= mDate;
}

function validateSearchForm() {
    var result = true;
    if($F('filters_keywords').length<3){
	showError('keywords_error', 'Bitte Suchbegriff eingeben');
	result = false;
    } else {
	Element.hide('keywords_error');
    }

    date_from = $F('filters_publication_date_from');
    if(date_from==''){
	showError('publication_date_from_msg', 'Bitte Datum eingeben');
	result = false;
    } else if(!/^\d{2}\.\d{2}\.\d{4}$/.test(date_from)){
	showError('publication_date_from_msg', 'Bitte Eingabeformat tt.mm.jjj');
	result = false;
    } else if(!isDateGreaterThen(date_from)) {
	showError('publication_date_from_msg', 'Datum in der Zukunft');
	result = false;
    }

    date_to = $F('filters_publication_date_to');
    if(date_to=='') {
	showError('publication_date_to_msg', 'Bitte Datum eingeben');
	result = false;
    } else if(!/^\d{2}\.\d{2}\.\d{4}$/.test(date_to)){
	showError('publication_date_to_msg', 'Bitte Eingabeformat tt.mm.jjj');
	result = false;
    } else if(!isDateGreaterThen(date_to)) {
	showError('publication_date_to_msg', 'Datum in der Zukunft');
	result = false;
    }

    return result;
}

function showError(id, msg) {
    Element.hide(id);
    Element.update(id, '<span class="form-error">'+msg+'</span>');
    Effect.Appear(id);
}
