// detta scriptblock skall placeras i html-dokumentets
-sektion // funktionerna Šr oberoende av varandra. De som eventuellt inte anropas frŒn script i // body eller via onLoad-event kan raderas // start search scripts var BrackLevel=0; var BrackIndent=""; // set focus on valueinput for next entry function focusval(){ var frm=document.SeForm; frm.Val.focus(); frm.Val.select(); } function selectfld(obj) { if(obj.value == '') { for(i=0;obj.options[i].selected == false;i++); if(obj.options[i].selected == true) { for(j=1;obj.options[i+j].value=="";j++); obj.options[i].selected = false; obj.options[i+j].selected = true; } } focusval(); } // add a leftbracket in Expr function addleftbrack(){ document.SeForm.Expr.value+="( "; BrackLevel+=1; BrackIndent+=" "; } function addrightbrack(){ var expr=document.SeForm.Expr.value; BrackLevel-=1; BrackIndent=BrackIndent.substring(0,BrackIndent.length-7); var ind=expr.lastIndexOf("\r"); // normally add after last linebreak before operator if(ind>-1){ expr=expr.substring(0,ind)+")"+expr.substring(ind,expr.length); }else{ expr=expr+")"; } document.SeForm.Expr.value=expr; } // inserts line in Expr with field, operator, value and logoperator function exprline(logop){ var fldpre; var form=document.SeForm; var expr=form.Expr.value; var opindex=form.oper.selectedIndex; var fldindex=form.FldList.selectedIndex; if(form.Val.value!=""){ if(expr.lastIndexOf("och") < expr.length-(10+BrackIndent.length) && expr.lastIndexOf("eller") < expr.length-(10+BrackIndent.length) && expr.length > 10){ // there is no logop after last line expr+=BrackIndent+logop; }else{ if(expr.length<1){ // add indent for first line expr=" "; } if(form.FldList.options[fldindex].value.charAt(0)=="["){ fldpre=""; // A field with [tablename] }else{ fldpre="#"; // A field with tablenr or no table } expr+=fldpre+form.FldList.options[fldindex].value +" "+form.oper.options[opindex].value+" " +"'"+form.Val.value+"'\r"; if(logop!="" && logop != ")"){ // it is "och" or "eller" op expr+=BrackIndent+logop; } } form.Expr.value=expr; if(logop==""){ // user clicked "Klar", end all brackets while(BrackLevel>0){ addrightbrack(); } } if(logop==")"){ // user clicked ")" end innermost bracket addrightbrack(); } focusval(); } } // if open leftbracket add a rightbracket else do nothing function brackend(){ if(BrackLevel>0){ exprline(")"); } } function deleteline(){ var pos; var del; var t=document.SeForm.Expr.value; var ind=t.lastIndexOf("\r"); // find latest and next latest end of line if(ind=t.length-1){ ind=t.lastIndexOf("\r",ind-1); // if empty line find previous } if(ind!=-1){ del=t.substring(ind,t.length); pos=del.indexOf(")"); while(pos>-1){ BrackLevel++; BrackIndent+=" "; pos=del.indexOf(")",pos+1); } pos=del.indexOf("("); // count brackets in deleted stuff and correct BrackLevel while(pos>-1){ BrackLevel--; BrackIndent=BrackIndent.substring(0,BrackIndent.length-7); pos=del.indexOf("(",pos+1); } t=t.substring(0,ind+1); }else{ t=" "; BrackLevel=0; BrackIndent=""; } document.SeForm.Expr.value=t; } function dosearch(){ exprline(""); if(document.SeForm.Expr.value.length<10){ alert("Det finns inget sökuttryck"); }else{ document.SeForm.logexp.value = document.SeForm.DBTheme.value + ';' + document.SeForm.Listname.value + ';' + document.SeForm.Expr.value; document.SeForm.submit(); } }