3 <SCRIPT language="Javascript">
4 var query="*"; // stringa che contiene la query nel suo stato attuale.
7 var storepb=1; // queste tre variabili contengono il numero da assegnare al prossimo simbolo set, val o boole per creare il link nel frame in alto a sinistra.
8 var stadd; // contiene la stringa da aggiungere alla query.
9 var fb; // contiene la stringa da aggiungere alla query prima che i set,val e boole siano convertiti in link.
10 var ltr="*"; // qui viene memorizzato qual è l' ultimo link su cui si è cliccato.
14 var novvars2=0; // queste tre variabili servono per sapere dove memorizzare i nomi delle rvar,svar e vvar inserite dall' utente.
16 var ricordaliaslist=0;
18 var numeroazioniannullate=0;
19 var terminecic="";var listaliases="";var choices;var vlds=new Array();//contengono i parametri per dialogare col server in caso di ambiguità nella Match Conclusion.
20 aliasglob=new Array();//per conservare la lista degli alias
25 vvars1=new Array(100);
26 vvars2=new Array(100); // contengono le rvar,svar e vvar inserite dall' utente.
40 aliasglob=new Array();
42 numeroazioniannullate=0;
45 // @variable@ will be substituted by the searchEngine with the param.variable
47 var processorURL="@processorURL@";
48 var getterURL="@getterURL@";
49 var thkeys="@thkeys@";
50 var proofcheckerURL="@proofcheckerURL@";
51 var draw_graphURL="@draw_graphURL@";
52 var uri_set_queueURL="@uri_set_queueURL@";
53 var UNICODEvsSYMBOL="@UNICODEvsSYMBOL@";
55 var thkeys="@thkeys@";
56 var embedkeys="@embedkeys@";
57 var doctype_public="@doctype-public@";
58 var encoding="@encoding@";
59 var thencoding="@thencoding@";
60 var media_type="@media-type@";
61 var thmedia_type="@thmedia-type@";
62 var interfaceURL="@interfaceURL@";
63 var thinterfaceURL="@thinterfaceURL@";
64 var CICURI="@CICURI@";
65 var naturalLanguage="@naturalLanguage@";
66 var annotations="@annotations@";
67 var interface_topurl="@topurl@";
69 function ask_uwobo(url)
71 return (top.topurl+"/ask_uwobo?url="+
72 escape(processorURL + "apply?" +
73 "xmluri=" + escape(url) +
74 "&keys=" + escape(thkeys) +
75 "¶m.processorURL=" + escape(processorURL) +
76 "¶m.getterURL=" + escape(getterURL) +
77 "¶m.proofcheckerURL=" + escape(proofcheckerURL) +
78 "¶m.draw_graphURL=" + escape(draw_graphURL) +
79 "¶m.uri_set_queueURL=" + escape(uri_set_queueURL) +
80 "¶m.UNICODEvsSYMBOL=" + escape(UNICODEvsSYMBOL) +
81 "¶m.keys=" + escape(keys) +
82 "¶m.thkeys=" + escape(thkeys) +
83 "¶m.embedkeys=" + escape(embedkeys) +
84 "¶m.doctype-public=" + escape(doctype_public) +
85 "¶m.encoding=" + escape(encoding) +
86 "¶m.thencoding=" + escape(thencoding) +
87 "¶m.media-type=" + escape(media_type) +
88 "¶m.thmedia-type=" + escape(thmedia_type) +
89 "¶m.interfaceURL=" + escape(interfaceURL) +
90 "¶m.thinterfaceURL=" + escape(thinterfaceURL) +
91 "¶m.CICURI=" + escape(CICURI) +
92 "¶m.naturalLanguage=" + escape(naturalLanguage) +
93 "¶m.annotations=" + escape(annotations) +
94 "¶m.topurl=" + escape(interface_topurl) +
95 "&prop.method=html"));
97 function help(w) // quando invocata, visualizza l' help relativo ad un oggetto. Di solito è legata ad un evento onFocus o onMouseOver.
101 case -10: hw.document.write("Insert an <a href="+top.topurl+top.action+"grammarpdq.html#Id target=gw>Id</a> or an <a href="+top.topurl+top.action+"grammarpdq.html#Uri target=gw>Uri</a> here.")
103 case -9: hw.document.write("By clicking this you may add or remove aliases as you wish.")
105 case -81: hw.document.write("Allows you to recover your last input")
107 case -8: hw.document.write("Allows you to delete your last input")
109 case -7: hw.document.write("Erases your query and starts a new pre-defined query, you will keep your list of aliases.")
111 case -6: hw.document.write("Puts this string in the current cursor position. This button works only with Internet Explorer.")
113 case -5: hw.document.write("Erases your query and starts a new one.")
115 case -4: hw.document.write("If you click this your query will be processed and the results will appear in the frame above.")
117 case -3: hw.document.write("Substitutes your query with the text written in the area above. Unless you have a good knowledge of MathQL, it's recommended that you use this only to recover errors.")
119 case -2: hw.document.write("This is the edit/submit window. You can modify your query here, but be aware that no syntax check will be performed and that if you enter a <a href="+top.topurl+top.action+"grammar.html#rvar target=gw>variable</a> it won't be available for quick composition later. You may also want to add a <a href="+top.topurl+top.action+"grammar.html#set target=gw>set</a>, a <a href="+top.topurl+top.action+"grammar.html#val target=gw>val</a> or a <a href="+top.topurl+top.action+"grammar.html#boole target=gw>boole</a> somewhere in the query. If you do, write '<set>','<val>' or '<bol>' in the point you'd like it to appear, or use the buttons on the right if you are using IE. When you're done with the query, click the Submit button.")
121 case -1: hw.document.write("You may see the grammar here.")
123 case 0: hw.document.write("")
125 case 1: hw.document.write("You may enter an arbitrary statement here; be careful since syntax errors won't be detected.");
127 case 2: hw.document.write("Enter an <a href="+top.topurl+top.action+"grammar.html#attr_list target=gw>attr_list</a> here.");
129 case 3: hw.document.write("Enter an <a href="+top.topurl+top.action+"grammar.html#id target=gw>id</a> here.");
131 case 4: hw.document.write("You must select one previously entered <a href="+top.topurl+top.action+"grammar.html#rvar target=gw>rvar</a>. If you haven't already entered at least one, you can't choose this. ");
133 case 5: hw.document.write("Enter a <a href="+top.topurl+top.action+"grammar.html#path target=gw>path</a> here.");
135 case 6: hw.document.write("You must select one previously entered <a href="+top.topurl+top.action+"grammar.html#svar target=gw>svar</a>. If you haven't already entered at least one, you can't choose this. ");
137 case 7: hw.document.write("Enter a <a href="+top.topurl+top.action+"grammar.html#string_list target=gw>string_list</a> here.");
139 case 8: hw.document.write("You must select one <a href="+top.topurl+top.action+"grammar.html#vvar target=gw>vvar</a> previously entered as an 'attr'. If you haven't already entered at least one, you can't choose this. ");
141 case 81: hw.document.write("You must select one <a href="+top.topurl+top.action+"grammar.html#vvar target=gw>vvar</a> previously entered in a 'let' statement. If you haven't already entered at least one, you can't choose this. ");
143 case 9: hw.document.write("Enter a single <a href="+top.topurl+top.action+"grammar.html#quoted_string target=gw>quoted_string</a> here.");
147 function tpa(quotpath)
149 while (quotpath.indexOf("<")>-1)
150 {quotpath=quotpath.replace("<","<");}
151 while (quotpath.indexOf(">")>-1)
152 {quotpath=quotpath.replace(">",">");}
155 function idcheck(ident)
158 partediid=/[a-zA-Z0-9_\-\']/;
159 if (!lettera.test(ident.charAt(0))){alert("an Id must begin with a letter.");return(0)}
160 while (ident.length>0)
162 ident=ident.substring(1,(ident.length));
164 if (!partediid.test(ident.charAt(0))){alert(ident.charAt(0)+" is not a valid character for an Id.");return(0);}
168 function uricheck(ident)
171 cic=ident.substring(0,5);//alert(cic);
172 if (cic!="cic:/"){alert("an Uri must begin with the string 'cic:/'");return(0);}
173 ident=ident.substring(5,ident.length);//alert(ident);
174 if (ident.indexOf(".")<0){alert("an Uri must contain a '.'");return(0);}
175 ident1=ident.substring(0,ident.indexOf("."));//alert(ident1);
176 ident2=ident.substring(ident.indexOf(".")+1,ident.length);//alert(ident2);
177 while (ident1.length>0)
179 if (ident1.indexOf("/")>-1)
181 if (idcheck(ident1.substring(0,ident1.indexOf("/")))==0){return (0)}
182 ident1=ident1.substring(ident1.indexOf("/")+1,ident1.length);//alert(ident1);
184 else {if (idcheck(ident1)==0){return (0)}
187 if (ident2=="con"||ident2=="var"){return(1)}
188 if (ident2.substring(0,6)!="ind#1/"){alert ("syntax error in the Uri.");return(0);}
189 ident2=ident2.substring(6,ident2.length);//alert(ident2);
190 if (!cifra.test(ident2.charAt(0))){alert ("syntax error in the Uri.");return(0);}
191 if (ident2.indexOf("/")>-1)
193 while (ident2.charAt(0)!="/")
196 if (!cifra.test(ident2.charAt(0))){alert ("syntax error in the Uri.");return(0);}
197 ident2=ident2.substring(1,ident2.length);
200 while (ident2.length>0)
203 ident2=ident2.substring(1,ident2.length);
204 if (ident2.length>0){
205 if (!cifra.test(ident2.charAt(0))){alert ("syntax error in the Uri.");return(0);}
210 function gramcheck(how,what) // esegue il controllo sintattico sulla stringa "what", controllando che rispetti i requisiti indicati dalla clausola "how". Se qualcosa non è ok, la variabile "wrong" viene posta ad 1 e la stringa da aggiungere viene ignorata, mentre viene visualizzato un apposito messaggio di errore.
213 var alpha=/[A-Za-z:_]/
216 case "qsl": // lista di quoted string
217 if (what.charAt(0)!="{") {gramcheck("qs",what);break;}
218 if (what.charAt(what.length-1)!="}") {alert ("The list must end with a '}'.");wrong=1;break;}
219 what=what.substring(1,what.length-1);//alert (what);
220 while (what.indexOf("\",\"")>-1)
222 as=what.substring(0,what.indexOf("\",\"")+1);//alert(as);
223 what=what.substring(what.indexOf("\",\"")+2,what.length);//alert(what);
226 gramcheck("qs",what);
228 case "qp": // quoted path
229 if (what.charAt(0)!="\"") {alert ("A quoted string must be included between quotes."); wrong=1; break;}
230 if (what.charAt(what.length-1)!="\"") {alert ("A quoted string must be included between quotes."); wrong=1; break;}
231 while (what.indexOf("\"/\"")>-1)
233 as=what.substring(0,what.indexOf("\"/\"")+1);//alert(as);
234 what=what.substring(what.indexOf("\"/\"")+2,what.length);//alert(what);
237 gramcheck("qs",what);
239 case "qs": // quoted string
240 if (what.charAt(0)!="\"") {alert ("A quoted string must be included between quotes."); wrong=1; break;}
241 if (what.charAt(what.length-1)!="\"") {alert ("A quoted string must be included between quotes."); wrong=1; break;}
242 what=what.substring(0,what.length-1);//alert (what);
244 else while (what.length>0)
246 what=what.substring(1,what.length);
247 if (what.charAt(0)=="\"" && slash==0) {alert ("A \" in a quoted string must be preceded by a \\.");wrong=1;break;}
248 if (what.charAt(0)=="\\") {slash=1} else {slash=0}
249 if (slash==1 && what.length==1) {alert ("A \\ in a quoted string must be followed by something.");wrong=1;}
252 case "vlist": // lista di vvar (tutto ciò che si trova dopo "attr")
253 //alert(what.substring(0,4));
254 if ((what.substring(0,4))!="attr"){wrong=1;alert("A vvar_list must begin with the word 'attr'")}
255 what=what.substring(5,(what.length));vl=what;
256 //alert(what+"what");
257 while (what.length>0)
259 if (what.indexOf(",")>0) {vv=(what.substring(0,what.indexOf(",")));}
262 if (vv.charAt(0)!="$"){wrong=1;alert("A vvar must begin with a '$'");}
263 if (vv.indexOf("<-")>0)
265 what=what.substring(vv.length+1,what.length);
266 //alert(what+" nuovowhat "+wrong);
267 path=vv.substring(vv.indexOf("<-")+2,vv.length);
268 //alert(path+" path "+wrong);
269 gramcheck("qp",path);
270 vv=vv.substring(1,(vv.indexOf("<-")));
271 //alert(vv+" vv "+wrong);
274 else {wrong=1;alert("An Assign must contain a '<-'.");what="";}
275 //alert (what+"what");
279 //alert (what.charAt(0));
280 if (!alpha.test(what.charAt(0))) {wrong=1;alert("An ID must begin with a letter , ':' , or '_' .");}
281 while (what.length>1) {
282 what=what.substring(1,(what.length));
283 if (!alpha.test(what.charAt(0)) && !numero.test(what.charAt(0)))
284 {wrong=1;alert(what.charAt(0)+" is not a valid character for an id.");}
285 //document.write(what+"<BR>");
290 if (how=="vlist" && wrong==0) // nel caso in cui sia stato eseguito il controllo su una lista di vvar e non siano stati riscontrati errori, tutte le variabili inserite vengono memorizzate.
294 if (vl.indexOf(",")>-1)
296 vvars2[novvars2++]=vl.substring(0,vl.indexOf("<"));
297 vl=vl.substring(vl.indexOf(",")+1,vl.length);
301 vvars2[novvars2++]=vl.substring(0,vl.indexOf("<"));;
305 //alert ("esco dal loop");
307 if (wrong==0) {cw.inputok=1} else stadd="";
309 function savelink(n,t) // invocata quando si clicca su un link, memorizza quale di questi debba poi essere sostituito.
311 if (t=='s') { top.ltr="[?set"+String(n)+"]";}
312 if (t=='v') { top.ltr="[?val"+String(n)+"]";}
313 if (t=='b') { top.ltr="[?bol"+String(n)+"]";}
316 function aggcw() // invocata automaticamente ad ogni modifica della variabile "query", fa apparire nel frame in alto a destra il menu di composizione relativo al primo link della query. Consente quindi di comporre tutta la query senza mai cliccare su alcun link.
321 if (pq.indexOf("[?")>-1)
323 ltr=pq.slice(pq.indexOf("[?"));
324 ltr=ltr.substring(ltr.indexOf("[?"),(ltr.length-ltr.indexOf("[?"))-(ltr.length-ltr.indexOf("]")-1));
325 wto=ltr.substring(2,5);
326 if (wto=="set") {window.open(top.topurl+action+"set.html","cw");pq="";}
327 else if (wto=="val") {window.open(top.topurl+action+"val.html","cw");pq="";}
328 else if (wto=="bol") {window.open(top.topurl+action+"boole.html","cw");pq="";}
329 else pq=pq.substring(pq.indexOf("[?")+2,pq.length);
331 else {window.open(top.topurl+action+"blank.html","cw");pq="";}
334 function aggform() // aggiorna il form nel frame centrale. Invocata ad ogni cambio della variabile "query".
337 while (cquery.indexOf("<")>-1)
339 cquery=cquery.replace(cquery.substring(cquery.indexOf("<"),cquery.indexOf(">")+1),"");
342 while (cquery.indexOf("[?")>-1)
345 if (cquery.indexOf("]")>-1)
347 while (cquery.indexOf("]")<cquery.indexOf("[?") && cquery.indexOf("]")>-1)
348 {cquery=cquery.replace("]","q+u+a+d+r+a+c+h+i+u+s+a");}//alert("loop"+cquery.indexOf("]")+cquery.indexOf("[?"))}
349 ag1=cquery.slice(cquery.indexOf("[?"));//alert(ag1);
350 ag1=ag1.substring(ag1.indexOf("[?"),(ag1.length-ag1.indexOf("[?"))-(ag1.length-ag1.indexOf("]")));//alert(ag1);
351 ag2=ag1.substring(2,5);//alert(ag2);
352 if (ag2=="set") cquery=cquery.replace(cquery.substring(cquery.indexOf("[?"),cquery.indexOf("]")+1),"<set>");
353 else if (ag2=="val") cquery=cquery.replace(cquery.substring(cquery.indexOf("[?"),cquery.indexOf("]")+1),"<val>");
354 else if (ag2=="bol") cquery=cquery.replace(cquery.substring(cquery.indexOf("[?"),cquery.indexOf("]")+1),"<boole>");
355 else cquery=cquery.replace(cquery.substring(cquery.indexOf("[?"),cquery.indexOf("[?")+1),"q+u+a+d+r+a");
358 else {cquery=cquery.replace("[?","q+u+a+d+r+a?")}
361 while (cquery.indexOf("q+u+a+d+r+a+c+h+i+u+s+a")>-1)
363 cquery=cquery.replace("q+u+a+d+r+a+c+h+i+u+s+a","]");
365 while (cquery.indexOf("q+u+a+d+r+a")>-1)
367 cquery=cquery.replace("q+u+a+d+r+a","[");
369 while (cquery.indexOf("<")>-1)
371 cquery=cquery.replace("<","<");
373 while (cquery.indexOf(">")>-1)
375 cquery=cquery.replace(">",">");
379 function ripristina()
381 //alert (actinput+" "+storia.length);
382 if (numeroazioniannullate>0)
384 numeroazioniannullate--;
385 query=storia[actinput+1];actinput++;
387 qw.document.write(query);
396 //alert (actinput+" "+storia.length);
399 numeroazioniannullate++;
400 query=storia[actinput-1];actinput--;
402 qw.document.write(query);
405 if (query=="*"){cw.location=top.topurl+action+"set.html";ltr="*";} else {aggcw();}
409 function parse() // prende la stringa che si sta tentando di inserire nella query, aggiunge i link dove necessario e mette il risultato nella variabile "fb"
411 while (fb.indexOf("[set]")>-1){
412 if (fb.indexOf("set")>0)
414 fb=fb.replace("[set]","<A HREF="+top.topurl+action+"set.html target=cw onclick=top.savelink("+top.storeps+",'s')>[?set"+top.storeps+"]</A>");
418 while (fb.indexOf("[val]")>-1){
419 if (fb.indexOf("val")>0)
421 fb=fb.replace("[val]","<A HREF="+top.topurl+action+"val.html target=cw onclick=top.savelink("+top.storepv+",'v')>[?val"+top.storepv+"]</A>");
425 while (fb.indexOf("[boole]")>-1){
426 if (fb.indexOf("boole")>0)
428 fb=fb.replace("[boole]","<A HREF="+top.topurl+action+"boole.html target=cw onclick=top.savelink("+top.storepb+",'b')>[?bol"+top.storepb+"]</A>");
433 function aggq() // aggiorna la query sostituendo l' ultimo link editato con la stringa inserita, poi aggiorna tutti i frame.
435 //window.open(top.topurl+action+"summary.html","cw");
438 nst=ltr.substring(5,(ltr.length-1));// alert(nst+" "+ltr);
439 query=query.replace("<A HREF="+top.topurl+action+"set.html target=cw onclick=top.savelink("+nst+",'s')>"+ltr+"</A>",ltr);
440 query=query.replace("<A HREF="+top.topurl+action+"val.html target=cw onclick=top.savelink("+nst+",'v')>"+ltr+"</A>",ltr);
441 query=query.replace("<A HREF="+top.topurl+action+"boole.html target=cw onclick=top.savelink("+nst+",'b')>"+ltr+"</A>",ltr);
443 query=query.replace(ltr,fb);
444 actinput++;storia[actinput]=query;numeroazioniannullate=0;//alert (actinput+" "+storia.length);
445 qw.document.write(query);aggform();
449 var re1 = /(.*)\?.*/;
450 var re2 = /(.*)\/.*/;
451 var topurl=document.location+"";
452 topurl = topurl.replace(re1,"$1");
453 topurl = topurl.replace(re2,"$1");
454 //var topurl=document.location.protocol+'//'+document.location.host;
455 var action="/getpage?url=";
459 // UTILITY FUNCTIONS FOR templateambigpdq1.html
460 function templateambigpdq1_armageddon()
463 top.window.open(top.topurl+top.action+"start.html","qw");
464 top.window.open(top.topurl+top.action+"blank.html","cw");
465 top.window.open(top.topurl+top.action+"blank.html","hw");
466 top.window.open(top.topurl+top.action+"blank.html","gw");
467 top.window.open(top.topurl+top.action+"blank.html","sw");
470 function templateambigpdq1_resetta()
472 if (confirm("This will erase your query and start a new one. Are you sure you want to do this?"))
473 {templateambigpdq1_armageddon();}
476 function templateambigpdq1_listauri(document,elenco)
478 for (i=0;i<elenco.length;i++)
480 document.write("<input type=checkbox name=uricheck value="+elenco[i]+"> "+elenco[i]+"<br>");
484 function templateambigpdq1_invia(document,top,elenco,ident)
486 vecchiavlds=top.vlds.length;
487 stringa=top.topurl+"/"+top.current_query+"?term="+top.terminecic;
488 stringa=stringa+"&aliases="+top.listaliases;
489 stringa=stringa+"&choices=";
491 top.vlds[top.vlds.length]=ident;
492 for (j=0;j<elenco.length;j++)
494 if (document.disamb.uricheck[j].checked)
496 top.vlds[top.vlds.length]=document.disamb.uricheck[j].value;
499 top.vlds[top.vlds.length]=";";
500 for (j=0;j<top.vlds.length;j++)
502 choices=choices+(top.vlds[j]==";"?";":escape(top.vlds[j]))+" ";
504 choices=choices.substring(0,choices.length-2);
505 top.choices = choices;
506 stringa=stringa+escape(choices);
507 if (top.vlds.length==vecchiavlds){alert("You must select at least one of the options.");}
510 window.open(ask_uwobo(stringa),"cw");
514 function templateambigpdq1_selezionaCostanti(document,elenco) {
515 for (i=0; i<elenco.length; i++) {
516 if (elenco[i].substring(elenco[i].length-4, elenco[i].length) != ".var") {
517 document.disamb.uricheck[i].checked = true;
519 document.disamb.uricheck[i].checked = false;
526 // UTILITY FUNCTIONS FOR templateambigpdq2.html
527 function templateambigpdq2_armageddon()
530 top.window.open(top.topurl+top.action+"start.html","qw");
531 top.window.open(top.topurl+top.action+"blank.html","cw");
532 top.window.open(top.topurl+top.action+"blank.html","hw");
533 top.window.open(top.topurl+top.action+"blank.html","gw");
534 top.window.open(top.topurl+top.action+"blank.html","sw");
537 function templateambigpdq2_resetta()
539 if (confirm("This will erase your query and start a new one. Are you sure you want to do this?"))
540 {templateambigpdq2_armageddon();}
543 function templateambigpdq2_listainterpretazioni(document,elenco,labels)
545 for (i=0;i<elenco.length;i++)
547 document.write("<input type=radio name=interp value="+elenco[i]+"> "+labels[i]+"<br />");
551 function templateambigpdq2_invia(document,elenco)
553 stringa=top.topurl+"/"+top.current_query+"?term="+top.terminecic;
554 stringa=stringa+"&aliases=";
555 controllo=stringa.length;
556 for (j=0;j<elenco.length;j++)
558 if (document.disamb.interp[j].checked)
560 stringa=stringa+escape(elenco[j]);
562 // TODO da implementare nella terza fase
563 //top.aliasglob[top.aliasglob.length]=document.disamb.interp[j].value;
565 //for (k=0;k<top.aliasglob.length;k++){alert(top.aliasglob[k])}
566 //top.listaliases=top.listaliases+document.disamb.interp[j].value;//in caso di query ulteriori con la stessa lista di alias
570 if (stringa.length!=controllo)
572 window.open(ask_uwobo(stringa),"cw");
574 else {alert("You must choose one option.");}
579 // UTILITY FUNCTIONS FOR templateambigpdq3.html
580 function templateambigpdq3_init(aliases)
582 top.aliasglob = new Array();
583 for (i=0; i<aliases.length; i++) {
584 top.aliasglob[i] = aliases[i];
586 top.vlds=new Array();
587 top.window.open(top.topurl+top.action+"editorpdq.html", "sw");
590 // UTILITY FUNCTIONS FOR constraints_choice_template.html
591 function get_value_of_checkbox(checkbox)
593 return (checkbox.checked ? "1" : "0");
596 function constraints_choice_template_invia(document,aliases,constr_obj_len,constr_rel_len,constr_sort_len)
598 stringa=top.topurl+"/"+top.current_query+"?term="+top.terminecic;
599 stringa=stringa+"&aliases="+escape(aliases);
600 stringa=stringa+"&choices="+escape(top.choices);
601 stringa=stringa+"&constraints=";
602 for (j=0;j<constr_obj_len;j++)
604 stringa += document.constraints.constr_obj[j].checked ? "1" : "0";
605 stringa += !document.constraints.obj_depth[j] ||
606 document.constraints.obj_depth[j].value == "" ? "_" :
607 document.constraints.obj_depth[j].value;
608 if (j < constr_obj_len - 1) { stringa += "," }
611 for (j=0;j<constr_rel_len;j++)
613 stringa += document.constraints.constr_rel[j].checked ? "1" : "0";
614 stringa += document.constraints.rel_depth[j].value == "" ? "_" :
615 document.constraints.rel_depth[j].value;
616 if (j < constr_rel_len - 1) { stringa += "," }
619 for (j=0;j<constr_sort_len;j++)
621 stringa += document.constraints.constr_sort[j].checked ? "1" : "0";
622 stringa += document.constraints.sort_depth[j].value == "" ? "_" :
623 document.constraints.sort_depth[j].value;
624 if (j < constr_sort_len - 1) { stringa += "," }
626 stringa += ":"+get_value_of_checkbox(document.constraints.only_obj)+
627 ":"+get_value_of_checkbox(document.constraints.only_rel)+
628 ":"+get_value_of_checkbox(document.constraints.only_sort);
629 window.open(ask_uwobo(stringa),"cw");
634 document.write(' <FRAMESET ROWS="69%,31%"> <FRAMESET COLS="40%,60%"> <FRAMESET ROWS="46%,54%"> <FRAME NAME="qw" SRC="'+topurl+action+'start.html"> <FRAME NAME="sw" SRC="'+topurl+action+'blank.html"> </FRAMESET> <FRAME NAME="cw" SRC="'+topurl+action+'blank.html"> </FRAMESET> <FRAMESET COLS="49%,51%"> <FRAME NAME="gw" SRC="'+topurl+action+'blank.html" onFocus="help(-1)";> <FRAME NAME="hw" SRC="'+topurl+action+'blank.html"> </FRAMESET> </FRAMESET>');