/*change log:
08072005 added session functionionality in session01.js
removed all navig functions from here, added 2 see 08072005!
09082005 new for EX31
*/
/*function list for forms
suche initForm(par)
suche toggleTrace()
selMultVis(selfld)
onSubmitSuche(par)
onKeyPress(e)
checkSubf(doc)
getQuery(fld,raw)
twoDATVV(fld,name,value)
checkInputFields(tab)
subSearch(but)
chOrt(fld)
bis2ab(but,target,source)
count() unused, handled by LS
ed..
*/
/*dummies until session active:*/
var sessionid = null;
var subf = 'e';/*subform subfe Einfache Suche*/
var fldns;/*field names dep on subf*/
var dateFormat;/*date validation*/
var vplzreg = /(\d{4})|(\d{3}\*)|(^\d{2}\*$)|(^\d\*)$/;
//var nonblank = /\S{2,}/;
var logand = ' AND ';/*was & */
var logor = ' | ';
//var delim = '~';
var ctr=0;
var html_delim = '?';/*no ! bec of http get &query=.&.*//*05082004*/
//var framsg = 'Funktion ohne Frames nicht unterstutzt!';/*05082004*/
//var fldmsg = 'Folgende Felder sind leer oder fehlerhaft:
';/*05082004*/
var activexmsg = '
ActiveX ist nicht aktiviert - beachten Sie bitte die Hinweise
';/*09022006*/
var schmsg = '
Geben Sie bitte mindestens einen gultigen Suchbegriff ein!
';/*05082004*/
var doBGColor = false;/*do errmsg input field bg color change*/
var doOKCheck = false;/*do onblur ok/nok gif switching*/
var browser = ''
function initForm(par) { /*onLoad event for form suche*/
String.prototype.right = right;/*define right function*/
/*avoid framing by others:*/
if (self.parent!=top) {top.location=self.parent.location;return false;}
var doc = par.document;
window.top.defaultStatus = doc.title;
setButImgHover(doc);
/* Detect Browser, check activeX - only req for MSIE<7 */
getBrowser();
if ((browser.indexOf('MSIE')==0) && (browser.indexOf('7')==-1)) {
if (CheckActiveX()==false){
setHtml( 'msgtext', activexmsg, true);
}
}
checkSession(doc); /* Funktion in JS XMLHTTP01 page */
checkSubf(doc); /* Pflichtfelder initialisieren etc. */
}
function getBrowser() { /* Browser und Version feststellen */
var det = navigator.userAgent.toLowerCase();
browserversion=parseInt(navigator.appVersion);
if (navigator.appVersion.indexOf('5.')>-1) {browserversion=5};
if (navigator.appVersion.indexOf('6.')>-1) {browserversion=6};
if (navigator.appVersion.indexOf('7.')>-1) {browserversion=7};
browser='OTHER';
if (navigator.appName =='Netscape') {browser='NS'+browserversion;}
if ((navigator.product == 'Gecko') && window.find && (det.indexOf('safari') < 0)) {browser='NS7';}
if ((navigator.product == 'Gecko') && !window.find && (det.indexOf('safari') < 0)) {browser='NS6';}
if (navigator.appName=='Microsoft Internet Explorer'){browser='MSIE'+browserversion;}
if (navigator.appVersion.indexOf('MSIE 3')>0) {browser='MSIE3';}
}
function CheckActiveX() {
if (self.ActiveXObject) { /* Nur MSIE < 7 */
try {
e = new ActiveXObject("Shell.UIHelper");
}
catch(e) {
return false;
}
}
}
function toggleTrace() {
var t=document.forms[0].elements['Trace'];
if (t==null) return;
t.value=(t.value==4)?0:++t.value;
if (t.value==3) alert('Tracing on'); else
if (t.value==4) alert('Nodupl off (duplos on)'); else
if (t.value==0) alert('Tracing off');
}
function selMultVis(selfld) {/*make 1st selected sel-mult-option visible (VKat)*/
var sopt = selfld.options;
for (var i=1;i1) retval += ' | ['+name+']=' + options[i].value + '';
}
}
if (num>0) retval += ')';
return retval;
default :
return name+'-'+type;
}/*sw*/
}/*wi*/
}
function twoDATVV(fld,name,value) {/*create DATVV ft-query*/
var frst,scnd,name2,value1,value2,retval;
if (name=='VVDat1') {frst=true;scnd=false;value1=value;name2 = 'VVDat2';}
else {frst=false;scnd=true;value2=value;name2 = 'VVDat1';}
retval = getQuery(fld.form.elements[name2],true);/*raw!*/
if (retval.length>0) {
if (frst) return '';/*wait for 2nd turn*/
else {frst=true;value1=retval;}
}
if (frst && scnd) {/*both*/
if (value1==value2)
retval = '([DATVV]=' + value1 + logor + '[DATVVO]=' + value1 + ')';
else
retval = '([DATVV]>=' + value1 + logand + '[DATVV]<=' + value2 +
logor + '[DATVVO]>=' + value1 + logand + '[DATVVO]<=' + value2 + ')';
} else {/*not both*/
if (frst)
retval = '([DATVV]>=' + value1 + logor + '[DATVVO]>=' + value1 + ')';
else
retval = '([DATVV]<=' + value2 + logor + '[DATVVO]<=' + value2 + ')';
}/*both*/
// alert(name+"="+value1+'\n'+name2+"="+value2);
return retval;
}
function checkInputFields(tab) {/*check fields in Fields*/
/*copied from valid0*/
errmsg = '';
for (var i in Fields) {
if (tab && tab!=Fields[i].tab) continue;/*field not on current tab*/
if (Fields[i].isMand() || Fields[i].getValue().length>0) {
if (! Fields[i].isValid()) {
if (errmsg.length==0) var focus = Fields[i];/*remember 1st field in error*/
genMessage(Fields[i]);
}/*if !Fields*/
}/*if Fields[i]*/
}/*for*/
if (errmsg.length>0) {/*at least 1 error*/
setHtml( 'msgtext', errmsg, true);
if (focus.tab!=null) setTab(focus.tab);/*show tab of rememb'd field*/
focus.elem[0].focus();/*set focus to field*/
return false;
}/*if*/
return true;
}
function subSearch(but) {/*create Query field and submit*/
var submit = false; /*submit form or just set new location*/
var searchView = false; /*SearchView search or OpenForm/LotusScript search*/
var elem = but.form.elements;
var query = '';
if (subf=='e') { /*einfache*/
if (but.value=='Suche') { /* Eingabefelder nur bei Suche, nicht DATBM Suche prüfen */
if (!checkInputFields()) return false;
}
else {
var tmp1 = but.value;
query = '[DATBM]>=' + tmp1;
}
tmp1 = getQuery(elem['VKat']);
if (tmp1.length>0) {query += (query.length>0) ? logand + tmp1 : tmp1;}
tmp1 = getQuery(elem['VOrt']);
if (tmp1.length>0) {query += (query.length>0) ? logand + tmp1 : tmp1;}
tmp1 = getQuery(elem['VPlz']);
if (tmp1.length>0) {query += (query.length>0) ? logand + tmp1 : tmp1;}
tmp1 = getQuery(elem['BL']);
if (tmp1.length>0) {query += (query.length>0) ? logand + tmp1 : tmp1;}
} else if (subf=='a') { /*aktenzeichen*/
/* Aktenzeichen */
if (!checkInputFields()) return false;/*Ger,GA,GZ,Zahl,Jahr*/
var ga = '';
var gz = '';
var zahl = '';
var jahr = '';
query = elem['Ger'].options[elem['Ger'].selectedIndex].value;
ga = elem['GA'].value;
if (ga!='') { /* GA eingegeben */
ga = ('000' + ga).right(3);
query += ga;
} else
{ /* keine GA eingegeben - alle GAs */
ga = '???';
query += ga;
}
gz = elem['GZ'].options[elem['GZ'].selectedIndex].value;
if (gz!='ALL') { /* GZ eingegeben */
query += gz;
} else
{ /* keine GZ eingegeben - alle GZ */
gz = '*';
query += gz;
}
zahl = elem['Zahl'].value;
if (zahl!='') { /* Zahl eingegeben */
zahl = ('00000' + zahl).right(5);
query += zahl;
} else
{ /* keine Zahl eingegeben - alle Zahlen */
zahl = '?????';
query += zahl;
}
jahr = elem['Jahr'].options[elem['Jahr'].selectedIndex].value;
if (jahr!='ALL') { /* Jahr eingegeben */
query += jahr.right(2);
} else
{ /* kein Jahr eingegeben - alle Jahre */
jahr = '??';
query += jahr;
}
query = '[AZKey]='+query+'*' /* nur Bekanntm./Uploads, daher längeres AZ */
} else {/*subf='v'*/ /*erweiterte*/
if (!checkInputFields()) return false;
query = getQuery(elem['FT'],true);
if (query.length>0) query = '(' + query + ')';
tmp1 = getQuery(elem['VKat']);
if (tmp1.length>0) {
query += (query.length>0) ? logand + tmp1 : tmp1;
}
tmp1 = getQuery(elem['VWert']);
if (tmp1.length>0) {
var six = elem['VWert'].selectedIndex;
tmp2 = elem['VWert'].options[six].text;/*fi bis 75.000,75.000 - 150.000*/
var tmp3 = tmp2.replace(/\./g,'');/*remove .s*/
tmp3 = tmp3.match(/(\d+)/g);/*returns array with 1 or 2 numbers*/
var rix = tmp3.length;/*array length*/
if (rix==1) {/*one number, must be bis/über*/
if (six==1) {/*bis*/
tmp1 = '[NumVWert]<='+tmp3[0];
} else if (six==elem['VWert'].options.length-1) {/*über*/
tmp1 = '[NumVWert]>='+tmp3[0];
} else {
tmp1 = '';/*inconsistent numbers*/
}/*if six*/
} else if (rix==2) {/*two numbers, must be von-bis*/
tmp1 = '([NumVWert]>='+tmp3[0] + logand + '[NumVWert]<='+tmp3[1] +')';
} else {
tmp1 = '';/*inconsistent numbers*/
}/*if rix*/
query += (query.length>0) ? logand + tmp1 : tmp1;
}
tmp1 = getQuery(elem['VVDat1']);
if (tmp1.length>0) {
query += (query.length>0) ? logand + tmp1 : tmp1;
}
tmp1 = getQuery(elem['VVDat2']);
if (tmp1.length>0) {
query += (query.length>0) ? logand + tmp1 : tmp1;
}
tmp1 = getQuery(elem['VOrt']);
if (tmp1.length>0) {
query += (query.length>0) ? logand + tmp1 : tmp1;
}
tmp1 = getQuery(elem['VPlz']);
if (tmp1.length>0) {
query += (query.length>0) ? logand + tmp1 : tmp1;
}
tmp1 = getQuery(elem['BL']);
if (tmp1.length>0) {
query += (query.length>0) ? logand + tmp1 : tmp1;
}
//return alert(query);
}/*if subf*/
if (query.length==0) {
setHtml('msgtext',schmsg,true);
elem[fldns[0]].focus();
return false}
query = query.replace(/\+/g,logand);/*05082004*/
if (!searchView) {/*search by OpenForm and wqosearch agent*/
tmp2 = elem['Trace'];
if (tmp2!=null) {
if (tmp2.value>='3') tmp2='&trace='+tmp2.value; else tmp2='';
} else tmp2='';
tmp1 = html_delim + 'OpenForm&subf=' + subf + tmp2 + '&query=' + escape(query);
if (submit) {/*post*/
but.form.action = self.location.href.replace(/\.nsf.*/,'') + '.nsf/suche' + tmp1;
but.form.submit();
} else { /*get*/
self.location.href = 'suche' + tmp1;
}/*submit*/
} else {/*searchView, doesn't apply to EX31*/
but.form.elements['Query'].value = query;
if (sessionid==null) /*08072005*/
var sessid = '';
else
sessid = sessionid.length>0 ? ('&sessionid=' + sessionid) : '';
but.form.action = 'suchedi' + html_delim + 'SearchView' + sessid +
'&subf=' + subf + '&scope=edi';
if (submit) {/*post*/
but.form.submit();
} else { /*get*/
var smax = (elem['SearchMax']) ? elem['SearchMax'].value : '501';
query = escape(query);/*05082004*/
tmp1 = but.form.action + '&SearchOrder=4&SearchMax=' + smax + '&query='+ query;
// alert(tmp1);
self.location.href = tmp1;
}/*submit*/
}/*!searchView*/
return true;
}
function chOrt(fld) {/*erase other Ort fields if one changed*/
var locs = new Array('VOrt','VPlz','BL');
for (var i in locs) {
if (locs[i]==fld.name) continue;
with (fld.form.elements[locs[i]]) {
if (type=='text') value='';
else if (type=='select-one') selectedIndex=0;
}
}
}
function bis2ab(but,target,source) {
but.form.elements[target].value = but.form.elements[source].value;
}
function imgwinback(link, wid, hei, l, t) { /*overrride global.js until in there 20102005*/
/*test with EX, BM, public and www.sv. and LN03 !!!*/
/* if wid/hei not avlbl, use 750x500 */
/* if left/top not avlbl, use 50,50 */
var w = wid ? wid : 750;
var h = hei ? hei : 500;
w = Math.min( w + 40, screen.width-100);
h = Math.min( h + 40, screen.height-100);
var hl=(l) ? l : 50;
var ht=(t) ? t : 50;
self.status = 'Bild wird geladen b='+w+', h='+h;
var path = self.location.pathname;
var modlink = link.replace(/\+/g,'%2b').replace(/\#/g,'%23');/*escape + # chars*/
/*old Bekinsolvpub uses relative urls to itself, new EX31 absolute urls to Obj31*/
if ( modlink.search(/\.nsf\//i)<0 ) { /*no .nsf/, relative url*/
path = path.replace( /\.nsf\/.*/i , '.nsf/');/*take current path*/
modlink = path + modlink;
}
var imgwindow=self.open( modlink ,'imgwindow',
'menubar=yes,toolbar=no,scrollbars=yes,resizable=yes,dependent,'+
'left='+hl+',top='+ht+',width='+w+',height='+h);
/*keep https to avoid IE "you are leaving..." msg if on Edikte230*/
/*not necessary if img is 'proloaded' like above*/
// modlink = self.location.protocol + '//' + self.location.host + modlink;
var txt = "Klicken Sie hier zum Schließen des Fensters";
imgwindow.document.open('text/html');
imgwindow.document.writeln('' + self.document.title + '');
imgwindow.document.writeln('');
imgwindow.document.writeln('
');
imgwindow.document.close();
imgwindow.focus();
return;
}/*imgwin*/
/* JS Suche31 hierarchy of functions:
form suche onload:
initForm
checkSubf
(setButImgHover)
in HTML:
helpwin
bis2ab
chOrt
in result HTML:
count
subOpen
form suche onsubmit:
1 click button
2 onKeyPress (subfv fulltext)
3 onSubmitSuche (subfe,subff)
subSearch
checkInputFields
(genMessage)
setHtml
getQuery
twoDATBM
setHtml
form ed... onload:
onLoadWeb
in HTML:
today
back
helpwin
nextOpen
*/