/*jsl:option explicit*/
/**
* @fileoverview
* Hilfsfunktionen, um die Eingaben zu überprüfen und die Abfrage direkt via JavaScript abzuschicken. Enthält auch
* die JavaScript Hilfsfunktionen für den Aufruf des Kalenders, für den "bis=ab" Knopf und die gegenseitige
* Ausschließung der Orte
*
* Changes:
* 20080212 MaSu HTML_SEARCH_DELIM
*
* @author LeMa (Martin Leyrer), 2007
* @author MaSu (Susanne Mauritz, 2009
* @version 1.3
*/
// Feld- und Werteliste, um die eingegbenen Parameter in der Suchmaske nach einer Suche wieder anzuzeigen
var returnfields = "";
// Counter für die View-Liste
var ctr = 0;
var doc;
var elem;
var dateFormat;
var dateFormatString = 'TT.MM.JJJJ';
var doBGColor = false; /* Hintergrund */
var doOKCheck = true; /*do onblur ok/nok gif switching*/
var searchview; /* suchedi oder suchobj */
var subform;
var qval;
var doclinkkennung; /* für xml Linkname */
var errortext=''; /* Fehlermessage für generateFTQuery */
var ftquery = ''; /* ftquery für Felderbefüllen nach query */
var HTML_SEARCH_DELIM = '?';
var fehlermsg="Ihre Suche konnte auf Grund eines Fehlers nicht durchgeführt werden."
var AZWithZeros
/**
* Wird von allen Forms aufgerufen, um versch. Variablen und Objekte zu
* initialisieren
*
* @param par {Windows} Window-Objekt, in dessen OnLoad die Funktion aufgerufen wird.
*
* @return Nix
*
* @author Susanne Mauritz, 2008
* @author Martin Leyrer, 2007
* @version 1.0
*/
function initForm(par) {/*init all forms*/
doc = par.document;
if (doc.forms.length === 0) return;/*not in edit mode*/
// elem beinhaltet alle Elemente des gültigen Formulars
elem = doc.forms['Main'].elements;
// form wird auf Namens des gültigen Formulars gesetzt
var form = doc.forms['Main'].name;
dateFormatString = (elem['DateFormat']) ? elem['DateFormat'].value :(typeof(dateFormatString)=='string')? dateFormatString:'TT.MM.JJJJ';
dateFormat = new dateFormat(dateFormatString);
/* rge braucht keine Validierung */
if (elem['subf'].value!=='rge') {readValidationFields(doc.forms['Parameters'].elements);}
if( elem['subf'] !== null) { subform = elem['subf'].value; }
// Defaults
doclinkkennung = 'alldoc/' //Viewname zum Erkennen der Links in der Ergebnisliste
// Prüfen, ob es eine anwendungsspez. Initialisierung gibt (zB Viewname...)
if(window.initAnwForm) {initAnwForm()};
// Initialisierung für AJAX-Funktionen
checkSession(doc, doclinkkennung);
// Kalender- und ab=bis Buttons in erweiterter Suche sichtbar machen
if( document.getElementById('helpcal1') !== null) {
document.getElementById('helpcal1').className='';
}
if( document.getElementById('helpcal2') !== null) {
document.getElementById('helpcal2').className='';
}
if( document.getElementById('helpcal3') !== null) {
document.getElementById('helpcal3').className='';
}
if( document.getElementById('helpcal4') !== null) {
document.getElementById('helpcal4').className='';
}
if( document.getElementById('gleichbutton1') !== null) {
document.getElementById('gleichbutton1').className='px3';
}
if( document.getElementById('gleichbutton2') !== null) {
document.getElementById('gleichbutton2').className='px3';
}
if( document.getElementById('printalldiv') !== null) {
document.getElementById('printalldiv').className='printall';
}
if( document.getElementById('numhead') !== null) {
document.getElementById('numhead').className='';
}
// Fokus auf erstes Eingabefeld setzten
setFocus('')
}
/**
* Einstiegspunkt, wird von allen Submit-Schaltflächen eines Forms aufgerufen (auch Zeitungslesefunktion)
*
* @param par {button} Das Button-Objekt der gedrückten Schaltfläche "submitSuche(this)"
*
* @return Nix
*
* @author Martin Leyrer, 2007
* @author Susanne Mauritz, 2009
* @version 1.0
*/
function submitSuche(par) {
doc = par.form.document;
errortext = ""; /* Reset ErrorMsg */
/* Alte Suchergebnisse verbergen */
if( document.getElementById('suchdatum')) {
setHtml("suchdatum","Einen Moment bitte... Ihre Suche wird durchgeführt...")};
if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)}
if (document.getElementById('suchstring')) {hideId('suchstring',document)}
if( validateFields(par,null,'Parameters') ) {
var form = par.form;
var elem = form.elements;
var queryb = "";
var subform = "";
var leermsg = ""; /* Msg "Keine Suchparameter..." */
returnfields = "";
if( elem['subf'] !== null) {
subform = elem['subf'].value;
}
/* abhängig vom Subform Query erstellen */
switch(subform) {
case "a": // Aktenzeichensuche bei allen gleich
queryb = buildqueryA(par, form, elem);
searchview = "suchedi"
break;
case "f": // Firmenbuchsuche bei allen gleich
queryb = buildqueryF(par, form, elem);
searchview = "suchedi"
break;
default:
queryb = buildquery(par, form, elem, subform) // individuelle Suche in anwSearchlib.js
break;
}
/* eventuelle syntaktische Fehlermeldungen ausgeben */
if ((errortext !="")) { /* Validierung erzeugte Fehlermeldung */
setValidationError( 'ValidationError','Fehler bei der Suche. ' + errortext);
if( document.getElementById('suchdatum')) {
setHtml("suchdatum","Ihre Suche konnte auf Grund eines Fehlers nicht durchgeführt werden.")};
//if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)}
//if (document.getElementById('suchstring')) {hideId('suchstring',document)}
return false; //Abbruch
}
if ( queryb === "") { /* keine Suchparameter */
leermsg = 'Keine Suchparameter eingegeben. Bitte füllen Sie die gewünschten Felder'
if( document.getElementById('datum')) { /* Zeitungslesebuttons */
leermsg += ' oder drücken Sie eine Datumsschaltfläche';
}
setValidationError( 'ValidationError',leermsg + '!');
setFocus();
if( document.getElementById('suchdatum')) {
setHtml("suchdatum","Ihre Suche konnte auf Grund eines Fehlers nicht durchgeführt werden.")};
if( document.getElementById('suchstring')) {
setHtml("suchstring","Sie haben keine Suchparameter eingegeben.");
showId('suchstring',document)
}
//if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)}
return false;
} /* keine Suchparameter */
var querytag = "query";
var queryend = "";
/* FTQuery im Langtext ohne escapes zur Anzeige */
ftquery = "";
if (elem['FT']) {
if (elem['FT'].value !="") {
ftquery = elem['FT'].value
ftquery = ftquery.replace(/\+/,'%2B')
}
}
queryb = escape(queryb).replace(/\+/,'%2B')
var x = form.action;
var y = x.replace(/\.nsf.*/i,'') + '.nsf/' + searchview + HTML_SEARCH_DELIM +
"SearchView&subf=" + subform + "&SearchOrder=4" +
returnfields +
"&ftquery="+ ftquery+
"&query=" + queryb + queryend
form.action = y;
form.baseuri = y;
self.location.href = y;
return false;
} /* if validateFields */
else { // Feldvalidierung hat fehlgeschlagen
if( document.getElementById('suchdatum')) {
setHtml("suchdatum",fehlermsg)};
//if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)}
//if (document.getElementById('suchstring')) {hideId('suchstring',document)}
} /* else - validateFields */
return false;
} /* submitSuche(par)*/
/**
* Erstellt den Query-String für die Suche nach Aktenzeichen.
*
Gibt den neuen Query-String zurück.
*
* @param par {button} Das Button-Objekt der gedrückten Schaltfläche "submitSuche(this)"
* @param form {form} Das aktuelle Form-Objekt
* @param elem {array} Ein Array aller Felder des formulars
*
* @return String
*
* @author Susanne Mauritz, 2007
* @version 1.0
*/
function buildqueryA(par, form, elem) {
var tempquery = "";
// Geschäftsabteilung muss dreistellig sein
if( elem["GA"] !== null) {
if( elem["GA"].value !== "") {
elem["GA"].value = PadDigits(elem["GA"].value, 3);
}
}
// Aktenzahl: manche Anwendungen haben 'Zahl', manche 'AZ'
var azfeld = ""
if( elem["Zahl"]) {
azfeld = "Zahl"
} else {
if( elem["AZ"]) {azfeld = "AZ"}
}
// Aktenzahl muss fünfstellig sein
if( elem[azfeld] !== null) {
if( elem[azfeld].value !== "") {
elem[azfeld].value = PadDigits(elem[azfeld].value, 5);
}
}
//Syntax: edikte_buildsearch( elem, fieldname, build_query, concatop, compop, emptyval) {
tempquery = edikte_buildsearch(elem, "Ger", tempquery, "AND", "=", "NUL");
tempquery = edikte_buildsearch(elem, "GA", tempquery, "AND", "=", "");
tempquery = edikte_buildsearch(elem, "GZ", tempquery, "AND", "=", "NUL");
tempquery = edikte_buildsearch(elem, azfeld, tempquery, "AND", "=", "");
tempquery = edikte_buildsearch(elem, "Jahr", tempquery, "AND", "=", "NUL");
return tempquery;
}
/**
* Erstellt den Query-String für die Suche nach Firmenbuchnummer (AL, FB,ID).
*
Gibt den neuen Query-String zurück.
*
* @param par {button} Das Button-Objekt der gedrückten Schaltfläche "submitSuche(this)"
* @param form {form} Das aktuelle Form-Objekt
* @param elem {array} Ein Array aller Felder des formulars
*
* @return String
*
* @author Susanne Mauritz, 2008
* @version 1.0
*/
function buildqueryF(par, form, elem) {
var tempquery = "";
var atquery = "";
var availquery = "";
// Firmenbuchnummer muss siebenstellig sein
if( elem["FN"]) {
if( elem["FN"].value !== "") {
elem["FN"].value = PadDigits(elem["FN"].value, 7);
}
}
tempquery = edikte_buildsearchExtended(elem, "FN", "FN","=", tempquery, "AND", "NUL",false);
return tempquery;
}
function makeRangeQuery( elem, fieldname, build_query, concatop, compop, emptyval) {
//function makeRangeQuery(fieldname) {
if (elem[fieldname].value !== "NUL") { /* VWert */
var rangeQuery=""
// var wertfieldname = "[Num" + elem[fieldname].value + "]"
var rangeArray = elem[fieldname].value.split("-")
if (rangeArray.length==2) {
var untererwert = rangeArray[0]
var obererwert = rangeArray[1]
if (untererwert!=undefined & untererwert!='') {
rangeQuery = wertfieldname + ">=" + untererwert
}
if (obererwert!=undefined & obererwert!='') {
if (rangeQuery!="") {
rangeQuery = rangeQuery + " AND "
}
rangeQuery = rangeQuery + wertfieldname + "<=" + obererwert
}
}
if( tempquery !== "") { tempquery = tempquery + " AND ";}
tempquery = tempquery + '(' + rangeQuery + ')'
} /* VWert */
}