var defaultsortfield;

// 17022003
function  popupIndex(srch){
  window.open('../resources/popupIndex.html'+srch,'indx',"location=no,width=410,height=530,left=300,top=100,menubar=no,scrollbars=yes,resizable=no");
}

// enable return to send the query
function zoekenplus_handler(e) {
    if (document.all) { e = window.event;}
    var key;
    if (document.layers) { key = e.which;}
    if (document.all) { key = e.keyCode}
    if (key==13) {zoekenplus(); return false;}
}

function zoeken_handler(e) {
    if (document.all) { e = window.event;}
    var key;
    if (document.layers) { key = e.which;}
    if (document.all) { key = e.keyCode}
    if (key==13) {doTheSubmitThing();   }
}

function setKeyEvents(){
if (document.forms['usersearchform']){
  for (var q=0;q<document.forms['usersearchform'].elements.length;q++){
    document.forms['usersearchform'].elements[q].onkeydown = zoeken_handler;
  }
}
   var zpns = (navigator.appName == "Netscape");
   if (zpns){document.layers["zoeken"].document.forms['usersearchform_zp'].txt0.onkeydown=zoekenplus_handler} else {document.forms['usersearchform_zp'].txt0.onkeydown=zoekenplus_handler}
}

// einde enable return to send the query

//einde 17022003
//for (var sss in sortfields){alert(sortfields[sss]);}
var searchHash=parseXMLsendQueryString(location.search);// parse the query

//alert(searchHash['sortField']);
var dbcodeChecked=new Array();

function start_evaluate_query(){
  if (location.search!=''){// zet de waarden in onderstaande formulier
  // je zou hier nog een check kunnen doen of het sortfield correct is
    if (searchHash['sortField']){defaultsortfield=searchHash['sortField']}else{defaultsortfield=altavistaSortfields[biblSortFields[0]]}
    evaluate_query(searchHash['query']); 
  }
  else {
    //#sortfield1
    defaultsortfield=altavistaSortfields[biblSortFields[0]];// default sortfield is de eerste uit het rijtje
    setdefaultDbcode('');
  }
}

// Evaluation of XML returned query
function evaluate_query(query){
  //Find dbcode part
  var subQuery='';
  var seprtr='dbcode:(';
  var nextseprtr=')';
  var point=query.indexOf(seprtr);
  if (point!=-1) {
      subQuery=query.substring(point+seprtr.length,query.length);
      point=subQuery.indexOf(nextseprtr);
      subQuery=subQuery.substring(0,point);
  }
  setdefaultDbcode(subQuery);

  // Find nondbcode part, eerstvolgende AND ( gaat daaraan vooraf
  subQuery='';
  seprtr=' AND (';
  point=query.indexOf(seprtr);
  if (point!=-1) {
      subQuery=query.substring(point+seprtr.length,query.length);
  }
  subQuery=subQuery.substring(0,subQuery.length-1); // hak de laatste ) eraf
  setdefaultSearchfields(subQuery);
}

function setdefaultDbcode(str){
  var ARR=strToArray(str,' OR ');
  //set default true wanneer er maar een dbcode doe dan niets
  if (dbcodeArray.length>1) {
    if (str==''){
      for (var q=0;q<dbcodeArray.length;q++) {
        dbcodeChecked[dbcodeArray[q]]=true;
      }
    }
    else {
      for (var rr = 0; rr < ARR.length; rr++) {
        dbcodeChecked[ARR[rr]]=true;
      }
      for (var q=0;q<dbcodeArray.length;q++) {
        if (!dbcodeChecked[dbcodeArray[q]]){dbcodeChecked[dbcodeArray[q]]=false};
      }
    }
  }
}


function setdefaultSearchfields(querystring){
//zsdgf asdas adad asdas dasd asd AND NOT (person:zsg) AND (locations:zsg) AND [year:asdg-asdg] AND (occupations:asdgf) AND (adresses:asdgf) AND (shopsigns:asdgf)
//  knip in stukjes 
//alert(querystring);
//var checktype='alle velden';
//  if ((querystring.substring(0,1)=='(')||(querystring.substring(0,5)=='NOT (')||(querystring.substring(0,4)=='OR (')){checktype='altavistavelden'}//de eerste is een fieldtype
  var firstZoekveldenPoint=999999;  // een variabele waarmee we straks het meest linker punt voor de velden overhouden
  //alles daarvoor is een alle velden zoekterm
  for (var q=0;q<zoekveldenArray.length;q++) {
     if (altavistaName[zoekveldenArray[q]]!='TIME'){// tijd heeft een aparte behandeling nodig
       var field='('+altavistaName[zoekveldenArray[q]]+':';
	   var seppoint=querystring.indexOf(field);
       if (seppoint>-1){
        // alert(altavistaName[zoekveldenArray[q]]);
         var end=seppoint+field.length;
         //Evaluate the boolean before
         firstZoekveldenPoint=evalBool(querystring,seppoint,zoekveldenArray[q],firstZoekveldenPoint);
         var value=querystring.substring(end,querystring.length);
         // het hieropvolgende opknippen van de query values gaat alleen maar mis wanneer aangegeven zoekstrinbgs toevalligerwijze in de value van de zoekterm zouden zitten
         // dat is niet waarschijnlijk, en in iedere geval in deze techniek ook niet meer op te vangen
         // Zoek sde dischtbijzijnde boolean separator naar het volgende zoekveld
         var endarr=new Array();
         endarr[0]=value.indexOf(') AND NOT (');
         endarr[1]=value.indexOf(') AND NOT [');
         endarr[2]=value.indexOf(') AND (');
         endarr[3]=value.indexOf(') AND [');
         endarr[4]=value.indexOf(') OR (');
         endarr[5]=value.indexOf(') OR [');
         var closestset=999999999;
         var closest=closestset;
         for (var rr = 0; rr < endarr.length; rr++) {   
           if ((endarr[rr]>-1)&&(endarr[rr]<closest)){closest=endarr[rr]}
         }
         // wanneer er ngeen waarde aan closest is toegevoegd is geen van de foelfzeparatoren gevomnden
         // daaruit volgt dat we met het laatste veld te maken hebben en is de laatste char de eind )
         if (closest==closestset){closest=value.length-1;}  
         zoekveldenArrayValue[zoekveldenArray[q]]=value.substring(0,closest);
       }
     }
     else {
       var timePoint=setDefaultTimefield(querystring,firstZoekveldenPoint);
       if (timePoint<firstZoekveldenPoint){firstZoekveldenPoint=timePoint}
     }
   }
   // hier ontstaat een fout wanneer je het eerste veld wel een altavista naam geeft
   // het firstzoekveldenpoint is het punt links van het meest vooraanstaande 
   // anders heeft ie al een waarde gekregen
  if (altavistaName[zoekveldenArray[0]]=='NONAME') {
    zoekveldenArrayValue[zoekveldenArray[0]]=querystring.substring(0,firstZoekveldenPoint);
  }
}

function evalBool(querystring,seppoint,veldnaam,firstZoekveldenPoint){
  var bool=querystring.substring(seppoint-4,seppoint);
  if (bool=='NOT ') {
    booleanArray[veldnaam]=' AND NOT ';// AND NOT for the first is changed to not
     var check=querystring.substring(seppoint-9,seppoint);
     if (check==' AND NOT '){
       if (seppoint-9<firstZoekveldenPoint){firstZoekveldenPoint=seppoint-9}
     }
     else {
      if (seppoint-4<firstZoekveldenPoint){firstZoekveldenPoint=seppoint-4}
    }
  } 
  else {
    bool=querystring.substring(seppoint-4,seppoint);
    if (bool==' OR ') { 
      booleanArray[veldnaam]=' OR ';
      if (seppoint-4<firstZoekveldenPoint){firstZoekveldenPoint=seppoint-4}
    } 
    else {
      booleanArray[veldnaam]=' AND ';// default (toekenning niet echt nodig, is al gedefineieerd)
      bool=querystring.substring(seppoint-5,seppoint);
      if (bool==' AND '){
        if (seppoint-5<firstZoekveldenPoint){firstZoekveldenPoint=seppoint-5}
      }
      else { // fist field no boolean in front
        if (seppoint<firstZoekveldenPoint){firstZoekveldenPoint=seppoint}
      }
    }  
  }
  return firstZoekveldenPoint;
}


function setDefaultTimefield(querystring,firstZoekveldenPoint){
   var field='([yearbegin:'; //([yearbegin:1220-1330] OR [yearend:1220-1330])
	                         // ([yearbegin:-1220] AND [yearend:1220-])
   var seppoint=querystring.indexOf(field);
   if (seppoint>-1){
//      firstZoekveldenPoint=evalBool(querystring,seppoint,'Jaar/jaren van werkzaamheid',firstZoekveldenPoint);
      firstZoekveldenPoint=evalBool(querystring,seppoint,TIMENAME,firstZoekveldenPoint);
      var value=querystring.substring(seppoint+field.length,querystring.length);
      var findthis=value.indexOf(']');
      value=value.substring(0,findthis);
      var yearsep=value.indexOf('-');
      var startyear=value.substring(0,yearsep);
      var endyear=value.substring(yearsep+1);
      setTimeFields(startyear,endyear);
    }
    return firstZoekveldenPoint;

}

function setTimeFields(startyear,endyear){
  var year='';
  if ((startyear=='')||(endyear=='')){
    if (startyear=='') {year=endyear;endyear=''}
	else {year=startyear;startyear=''}
  }
  def_year=year;
  def_fromyear=startyear;
  def_toyear=endyear;
  def_year_string=year+"TIME"+startyear+"TIME"+endyear;
}





function srwEscape(str){
  var andxml="zxaxz";
  var equalxml="zxexz";
  // before sending out the string change ist value so the srw.pl does noet see it as a bunch of search-fields
  var pairs = str.split('&');
  for (var rr = 0; rr < pairs.length; rr++) {
    // spit field-value
    var field = pairs[rr].split('=');
    pairs[rr]=field[0]+equalxml+field[1];
  }
  str=pairs.join(andxml);
  return str;
}

function srwUnEscape(str){
  var andxml="zxaxz";
  var equalxml="zxexz";
  var pairs = str.split(andxml);
  for (var rr = 0; rr < pairs.length; rr++) {
    // spit field-value
    var field = pairs[rr].split(equalxml);
        pairs[rr]=field[0]+'='+field[1];
  }
  str=pairs.join('&'); 
//alert (str);
  return str;
}


function parseXMLsendQueryString () {
  // wanneer een search is meegegeven gebruik deze, wanneer leeg komen we voor het eerst op de pagina, gebuik dan de deafault settinges
  var srch_both = (location.search=='') ? '' : location.search;
  var srch = (srch_both.charAt(0) == '?') ? srch_both.substring(1) : srch_both;
  var valueArray = new Object();
  if (location.search==''){return valueArray;}
// split pairs
  var pairs = srch.split('&');
  for (var rr = 0; rr < pairs.length; rr++) {
  // spit field-value
    var field = pairs[rr].split('=');
  // throw all in a two dimensional array, unescape the strings
    valueArray[unescape(field[0].replace(/\+/g, ' '))] =  unescape(field[1].replace(/\+/g, ' '));
  }
  return valueArray;
}

function parseQueryStringFieldValues (serch) {
  var srch = (serch.charAt(0) == '?') ? serch.substring(1) : serch;
  var valueArray = new Array();
  // split pairs
  var pairs = srch.split('&');
  for (var rr = 0; rr < pairs.length; rr++) {
    // spit field-value
    var field = pairs[rr].split('=');
    // throw all in a dimensional array, unescape the strings
    valueArray[rr] =  unescape(field[1].replace(/\+/g, ' '));
  }
  return valueArray;
}

function parseQueryStringFields (serch) {
  var srch = (serch.charAt(0) == '?') ? serch.substring(1) : serch;
  var valueArray = new Array();
  // split pairs
  var pairs = srch.split('&');
  for (var rr = 0; rr < pairs.length; rr++) {
    // spit field-value
    var field = pairs[rr].split('=');
    // throw all in a dimensional array, unescape the strings
    valueArray[rr] =  unescape(field[0].replace(/\+/g, ' '));
  }
  return valueArray;
}


function strToArray(string,separator){
    var outArray=new Array();
    var seplength=separator.length;
	var seppoint=1;
	var index=0;
	while (seppoint>-1){
	  seppoint=string.indexOf(separator);
	  if (seppoint==-1) {
        outArray[index]=string;
      } 
      else{
        outArray[index]=string.substring(0,seppoint)};
	    string=string.substring(seppoint+seplength,string.length);
	  index++;
	}
    return outArray;
}

function doTheSubmitThing(){
  var status=makeSRWquery();
  if (status==0){
    document.searchform.submit();
  }
  else {
    errormessage(status);
  }

}


function errormessage(status){
  var  errormessage="";
  if (status==1){errormessage='Zoekactie afgebroken.\nU dient minstens een van de opties: pamfleteen, etc te selecteren'}
  if (status==2){errormessage='Zoekactie afgebroken.\nU dient minstens een van zoekvelden in te vullen.'}
  alert(errormessage);
}


// query_make_dbcode() :
// deze functie leest de dbcode checkboxes en construeert uit de geselecteerde waarden het debcode 
// gedeelte van de  querystring voor de altavista (oftewel de srw.pl)
function query_make_dbcode(){
  var dbcodestring="";
// dbcode
   var qq;
  if (dbcodeArray.length>1){
    for (qq=0;qq<dbcodeArray.length;qq++) {
      var bool=eval('document.usersearchform.usr_'+dbcodeArray[qq]+'.checked');
       if (bool){
         if (dbcodestring.length==0){
          dbcodestring+=eval('document.usersearchform.usr_'+dbcodeArray[qq]+'.value');
        }
        else {
          dbcodestring+=" OR "+eval('document.usersearchform.usr_'+dbcodeArray[qq]+'.value');       
        }
      }
    }
  }
  else {
    dbcodestring=eval('document.usersearchform.usr_'+dbcodeArray[0]+'.value');
  }
  var query='dbcode:('+dbcodestring+')';
  return query;
}


function checkIfATimeIsLoaded(zkveldtindex, veldnr){
        var altavistaZoekveld=altavistaName[zoekveldenArray[zkveldtindex]];
        if (altavistaZoekveld=='TIME'){
		  // clean the textfield/ name is array index inthe array of searchfiels plus 1
          cleartextfield(veldnr);		  
		  timeFieldChange();
		}
}

function checkIfANoTimeIsLoaded(zkveldtindex, veldnr){
        var altavistaZoekveld=altavistaName[zoekveldenArray[zkveldtindex]];
        if (altavistaZoekveld!='TIME'){
		  //clean the textfield
          cleartextfield(veldnr);		  
		  timeFieldChange();
		}
}

function cleartextfield(zkveldindex){
  var textfieldName='txt'+zkveldindex;
  for (var i = 0; i<document.usersearchform.elements.length; i++) {
     if (document.usersearchform.elements[i].name==textfieldName){
        document.usersearchform.elements[i].value="";
    }
  }
}

function timeFieldChange(){//derived from addtrm
  var newLocation=this.location.href;
  var question=newLocation.indexOf('?');
  if (question!=-1){newLocation=newLocation.substring(0,question)}
  // write all form info in a search string
  var defsrch=memorizeForm();
  defsrch="?previousform="+srwEscape(defsrch);
  escape(defsrch);
  // reset location
  this.location.href=newLocation+defsrch;
}

// this function changes all specials characters that make the xslt transformer crash
// you could load everything with escaped names, change the query, but then you would alo have to
// return the returned query like this hereunder but then reversed
function cleanValueFromSymbolSigns(zkvldt){
  var strangeSign=new Array();
  var simpleSign=new Array();
  
  //áÁàÀéÉèÈíÍìÌóÓòÒúÚùÙ äÄëËïÏöÖüÜãÃõÕ
  //alert(zkvldt);	
  strangeSign[strangeSign.length]='á';simpleSign[simpleSign.length]='a';
  strangeSign[strangeSign.length]='Á';simpleSign[simpleSign.length]='A';
  strangeSign[strangeSign.length]='à';simpleSign[simpleSign.length]='a';
  strangeSign[strangeSign.length]='À';simpleSign[simpleSign.length]='A';
  strangeSign[strangeSign.length]='é';simpleSign[simpleSign.length]='e';
  strangeSign[strangeSign.length]='É';simpleSign[simpleSign.length]='E';
  strangeSign[strangeSign.length]='è';simpleSign[simpleSign.length]='e';
  strangeSign[strangeSign.length]='È';simpleSign[simpleSign.length]='E';
  strangeSign[strangeSign.length]='í';simpleSign[simpleSign.length]='i';
  strangeSign[strangeSign.length]='Í';simpleSign[simpleSign.length]='I';
  strangeSign[strangeSign.length]='ì';simpleSign[simpleSign.length]='i';
  strangeSign[strangeSign.length]='Ì';simpleSign[simpleSign.length]='I';
  strangeSign[strangeSign.length]='ó';simpleSign[simpleSign.length]='o';
  strangeSign[strangeSign.length]='Ó';simpleSign[simpleSign.length]='O';
  strangeSign[strangeSign.length]='ò';simpleSign[simpleSign.length]='o';
  strangeSign[strangeSign.length]='Ò';simpleSign[simpleSign.length]='O';
  strangeSign[strangeSign.length]='ú';simpleSign[simpleSign.length]='u';
  strangeSign[strangeSign.length]='Ú';simpleSign[simpleSign.length]='U';
  strangeSign[strangeSign.length]='ù';simpleSign[simpleSign.length]='u';
  strangeSign[strangeSign.length]='Ù';simpleSign[simpleSign.length]='U';
  strangeSign[strangeSign.length]='ä';simpleSign[simpleSign.length]='a';
  strangeSign[strangeSign.length]='Ä';simpleSign[simpleSign.length]='A';
  strangeSign[strangeSign.length]='ë';simpleSign[simpleSign.length]='e';
  strangeSign[strangeSign.length]='Ë';simpleSign[simpleSign.length]='E';
  strangeSign[strangeSign.length]='ï';simpleSign[simpleSign.length]='i';
  strangeSign[strangeSign.length]='Ï';simpleSign[simpleSign.length]='I';
  strangeSign[strangeSign.length]='ö';simpleSign[simpleSign.length]='o';
  strangeSign[strangeSign.length]='Ö';simpleSign[simpleSign.length]='O';
  strangeSign[strangeSign.length]='ü';simpleSign[simpleSign.length]='u';
  strangeSign[strangeSign.length]='Ü';simpleSign[simpleSign.length]='U';
  strangeSign[strangeSign.length]='ã';simpleSign[simpleSign.length]='a';
  strangeSign[strangeSign.length]='Ã';simpleSign[simpleSign.length]='A';
  strangeSign[strangeSign.length]='õ';simpleSign[simpleSign.length]='o';
  strangeSign[strangeSign.length]='Õ';simpleSign[simpleSign.length]='O';
  strangeSign[strangeSign.length]='ç';simpleSign[simpleSign.length]='c';
  strangeSign[strangeSign.length]='æ';simpleSign[simpleSign.length]='ae';
  
  


  for (var i = 0; i<strangeSign.length; i++) {
     var start=0;
	 var q=1;
	 while ((start>-1)&&(q<1000)){//q just for safety
	   q++;
       start=zkvldt.indexOf(strangeSign[i]);
	   if (start > -1){
  	     var eerstestuk=zkvldt.substring(0,start);
	     var tweedestuk=zkvldt.substring(start+1,zkvldt.length);
         zkvldt=eerstestuk+simpleSign[i]+tweedestuk;
       }
	 }
  }
  //alert(zkvldt);	 
  return zkvldt;
}


// query_make_searchfields()
// deze functie conytrueerd uit de ingevilde velden mbv de opgegeven searchfoeld en de aarrays
// zoekveldenArray en altavistaName de correcte querystring uit het gewone invulgedeelte van het formulier
// Dus niet sortopties of de dbcode checkboxen
function query_make_searchfields(){
  // CAPTIONFIELDS
  var q;
  var veldnr=0;
  var query="";
  for (q=0;q<zoekveldenArray.length;q++) {
    //  document.zoek.volgorde.options[document.zoek.volgorde.selectedIndex].value
    var bool;
    if (q>0) {
      var fq=eval('document.usersearchform.ao_'+q+'.selectedIndex');
      if (fq==0){bool=" AND "};
      if (fq==1){bool=" OR "};
      if (fq==2){bool=" AND NOT "};
    }
    var zoekveldvalue=eval('document.usersearchform.txt'+q+'.value');
	zoekveldvalue=cleanValueFromSymbolSigns(zoekveldvalue);
    // var zoekveld=zoekveldenArray[zkveldtindex];
    var altavistaZoekveld=altavistaName[zoekveldenArray[q]]
                                              // empty time fiels
    if ((zoekveldvalue!='')&&(zoekveldvalue!='TIMETIME')) {// dan heeft het geen zin de trm toe te voege, anders krijg je nul resultaten
       if (q>0){
           query+=bool;

       }
       if ((altavistaName[zoekveldenArray[q]]!="NONAME")&&(altavistaName[zoekveldenArray[q]]!="TIME")){// alle velden heeft geen altavistaname
          query+="("+altavistaZoekveld+":"+zoekveldvalue+")"; 
       } else {
         if (altavistaName[zoekveldenArray[q]]=="NONAME"){
           query+=zoekveldvalue;
         }
         else {
           if (altavistaName[zoekveldenArray[q]]=="TIME"){
             query+=query_make_timefield(zoekveldvalue);
           }

         }
       }
     }
  }
  return query;
}

function query_make_timefield(timestring){
  if (timestring=="TIMETIME"){return '';}
  var jaar=getSearchfieldYear(timestring,'year');
  var vanjaar=getSearchfieldYear(timestring,'fromyear');
  var totjaar=getSearchfieldYear(timestring,'toyear');
  var query='';
//year -- year:1675
//period -- [year:vanjaar-totjaar]
//Als je het streepje laat staan mag je een van de twee jaren weglaten en dat betekent dan > of <.
//http://redbelly.kb.nl:8080/cgi-zoek/srw.pl?query=dbcode:ALF1851%20AND%20[yearbegin:%201865-]%20AND%20[yearend:-1880]



  if (jaar !=''){
 //  query='(year:'+jaar+')'; 
      query='([yearbegin:-'+jaar+'] AND [yearend:'+jaar+'-])'
  }
  else {
   query='([yearbegin:'+vanjaar+'-'+totjaar+'] OR [yearend:'+vanjaar+'-'+totjaar+'])'
//   query='[year:'+vanjaar+'-'+totjaar+']'; 
  }
  return query;
}


function addtrm(){
  var newLocation=this.location.href;
  var question=newLocation.indexOf('?');
  if (question!=-1){newLocation=newLocation.substring(0,question)}
  // write all form info in a search string
  var defsrch=memorizeForm();
  // alert(defsrch);
  // edd new field, set them on their defaults
  defsrch+="&ao_"+newLogicalFieldnr+"=&alle velden=";
  // xml parse them into a search
  // this is not stricly nessacary here, but the same routines will befollowed bij 
  // searching. Rhe forminfo string will be xml parsed into a search previosform=
  // the stylesgeets will remember this unknown tag, and return it on refining search
  defsrch="?previousform="+srwEscape(defsrch);
  // code all weird characters for the net
  escape(defsrch);
  // reset location
  this.location.href=newLocation+defsrch;
}

var newLogicalFieldnr=0;


// memorizeForm():
// deze functie schrijft de forminfo naar een searchstring
function memorizeForm(){
  var veldnr=0;
  var q;
  var searchstring="";
  var nextbool="";
  //  biblsort=vervaardiger&thesaur=THESAUR&adres=ADRES&picathes=PICATHES&alfabet
  //SORT
  for (q=0;q<document.usersearchform.biblsort.length;q++){
    if (document.usersearchform.biblsort[q].checked){searchstring+='biblsort='+document.usersearchform.biblsort[q].value}
  }
  //DBCODE
  //if (document.usersearchform.biblsort[q].checked){searchstring+='biblsort='+document.usersearchform.biblsort[q].value}
// dbcode
  if (document.usersearchform.usr_thesaur.checked){searchstring+='&thesaur='+document.usersearchform.usr_thesaur.value}else {searchstring+='&thesaur='}
  if (document.usersearchform.usr_adres.checked){searchstring+='&adres='+document.usersearchform.usr_adres.value}else {searchstring+='&adres='}
  if (document.usersearchform.usr_picathes.checked){searchstring+='&picathes='+document.usersearchform.usr_picathes.value}else {searchstring+='&picathes='}
  if (document.usersearchform.usr_alfabet.checked){searchstring+='&alfabet='+document.usersearchform.usr_alfabet.value}else {searchstring+='&alfabet='}
  if (document.usersearchform.usr_alf1851.checked){searchstring+='&alf1851='+document.usersearchform.usr_alf1851.value}else {searchstring+='&alf1851='}
  if (document.usersearchform.usr_bkvb.checked){searchstring+='&bkvb='+document.usersearchform.usr_bkvb.value}else {searchstring+='&bkvb='}

  // CAPTIONFIELDS
  for (q=0;q<searchFields.length;q++) {
    var and_or_nr=veldnr+1;
    //  document.zoek.volgorde.options[document.zoek.volgorde.selectedIndex].value
    if (searchFields[q]=='ao_'+and_or_nr){var fq=eval('document.usersearchform.ao_'+and_or_nr+'.selectedIndex');if (fq==0){nextbool="en"};if (fq==1){nextbool="of"};if (fq==2){nextbool="en niet"}}//eval('document.usersearchform.ao_'+and_or_nr+'.options[1].value');alert(nextbool)}
    else {
//dbcode
      if ((searchFields[q].indexOf('ao_')==-1)&&searchFields[q]!='bkvb'&&searchFields[q]!='alf1851'&&searchFields[q]!='thesaur'&&searchFields[q]!='adres'&&searchFields[q]!='alfabet'&&searchFields[q]!='picathes'&&searchFields[q]!='biblsort'){
      veldnr++;
      if (veldnr>1){
        searchstring+='&ao_'+veldnr+'='+nextbool;
       }
       var zkveldtindex=eval('document.usersearchform.trm'+veldnr+'.selectedIndex');
       var zoekveld=zoekveldenArray[zkveldtindex];
       var zoekveldvalue=eval('document.usersearchform.txt'+veldnr+'.value');
       searchstring+='&'+zoekveld+'='+zoekveldvalue;
     }

    }
  }
  newLogicalFieldnr=and_or_nr+1;
  return searchstring;
}


function makeSRWquery(){
  var q,qq;
  var atLeastOneDbcodeChecked=false;
  // Checkform: is there a neccessety for searching?
  if (dbcodeArray.length>1) {
    for (qq=0;qq<dbcodeArray.length;qq++) {
      var bool=eval('document.usersearchform.usr_'+dbcodeArray[qq]+'.checked');
        if (bool){atLeastOneDbcodeChecked=true}
    }
    if (!atLeastOneDbcodeChecked){
      return 1; 
    }
  }
  var atLeastOneSearchfieldFilled=false;
  for (qq=0;qq<zoekveldenArray.length;qq++) {
    var bool=eval('document.usersearchform.txt'+qq+'.value');
     if ((bool!='')&& (bool!=' ')&&(bool!='  ')&&(bool!='   ')){atLeastOneSearchfieldFilled=true}
  }
  if (!atLeastOneSearchfieldFilled){
    return 2; 
  }
  // SRQW fields (everything that is not a query but a formfield to address srw.pl)
  //SORT
  if (biblSortFields.length==1){
    document.searchform.sortField.value=altavistaSortfields[document.usersearchform.biblsort.value];
  }
  else {
    for (q=0;q<document.usersearchform.biblsort.length;q++){
      if (document.usersearchform.biblsort[q].checked){document.searchform.sortField.value=altavistaSortfields[document.usersearchform.biblsort[q].value]}
    }
  }

  // alert(document.searchform.sortField.value);
  //make the altavista query
  //DBCODE
  var dbcodequery=query_make_dbcode();
  var searchfieldsquery=query_make_searchfields();
  // Wanneer de gebruiker een search wil beginnen met het eerste veld leeg, dan hebben de AND's and OR's geen
  // betekenis. De NOT wel, oftewel de AND NOT moet omgezet in een NOT
  if (searchfieldsquery.substring(0,5)==' AND '){
	searchfieldsquery=	searchfieldsquery.substring(5);
  }
  if (searchfieldsquery.substring(0,4)==' OR '){// itherwise you finde nothing
	searchfieldsquery=searchfieldsquery.substring(4);
  }

  document.searchform.query.value=dbcodequery+' AND ('+ searchfieldsquery+')';
//  alert(document.searchform.sortField.value);
//  alert(document.searchform.query.value);
 // var defsrch=memorizeForm();
  //document.searchform.previousform.value=srwEscape(memorizeForm());
  return 0;
}

// deze functie wordt aangeroepen en veranderd de waarde in het voor het btreffende veldnr
// bijbehorende tijdveld wanneer er een verandering is aangerbacht ijn een van de 
// year fromyear toyear velden

function updateTimeField(fieldNr,justUpdated){
  var textfieldName='txt'+fieldNr;
  var yearfieldName='year'+fieldNr;
  var fromyearfieldName='fromyear'+fieldNr;
  var toyearfieldName='toyear'+fieldNr;
  var year=eval('document.usersearchform.year'+fieldNr+'.value');
  var fromyear=eval('document.usersearchform.fromyear'+fieldNr+'.value');
  var toyear=eval('document.usersearchform.toyear'+fieldNr+'.value');
// maak from en to leeg wanneer er in het jaarveld iets is ingevulkd
  if (justUpdated=='year'){
    if (year!=''){
      for (var i = 0; i<document.usersearchform.elements.length; i++) {
        if (document.usersearchform.elements[i].name==toyearfieldName){
          document.usersearchform.elements[i].value="";toyear='';
	    }
        if (document.usersearchform.elements[i].name==fromyearfieldName){
          document.usersearchform.elements[i].value="";fromyear='';
	    }
      }
	}
  
  }else {
    if (fromyear!=''||toyear!=''){
      for (var i = 0; i<document.usersearchform.elements.length; i++) {
        if (document.usersearchform.elements[i].name==yearfieldName){
          document.usersearchform.elements[i].value="";year='';
	    }
      }
	}
  }
  var year=eval('document.usersearchform.year'+fieldNr+'.value');
  var fromyear=eval('document.usersearchform.fromyear'+fieldNr+'.value');
  var toyear=eval('document.usersearchform.toyear'+fieldNr+'.value');
  for (var i = 0; i<document.usersearchform.elements.length; i++) {
    if (document.usersearchform.elements[i].name.indexOf(textfieldName)>-1){
      document.usersearchform.elements[i].value=year+'TIME'+fromyear+'TIME'+toyear;
	}
  }
}

function getSearchfieldYear(codestring,type){
//string=yearTIMEfromyearTIMEtoyear
  var timeArray=new Array();
  timeArray=strToArray(codestring,'TIME');
  for (var ee;ee<timeArray.length;ee++){  alert(timeArray[ee])}
  if (timeArray.length>1){
    if (type=='year'){
	      return timeArray[0];
    }
    else{
      if (type=='fromyear'){
        return timeArray[1];	
	  }
  	  else {// type=='toyear'
	    return timeArray[2];
  	  }
    }
  }
  else {
    return "";
  }
}

function getSearchfield(zoekveld){
  return zoekveldenArrayValue[zoekveld];
}

function getSortfield(q){
  if (altavistaSortfields[biblSortFields[q]]==defaultsortfield){return true} else {return false}
}


