source: trunk/gsdl/macros/query.dm@ 12705

Last change on this file since 12705 was 12557, checked in by mdewsnip, 18 years ago

Lots of HTML4/XHTML compliance fixes.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 19.3 KB
Line 
1# this file must be UTF-8 encoded
2package query
3
4
5#######################################################################
6# Macros whose values are set from within the server at runtime. These
7# are here only for reference and to set default values if required.
8#######################################################################
9
10_quotedquery_ {}
11_freqmsg_ {}
12_stopwordsmsg_ {}
13_resultline_ {}
14_thisfirst_ {}
15_thislast_ {}
16_nextfirst_ {}
17_nextlast_ {}
18_prevfirst_ {}
19_prevlast_ {}
20_searchhistorylist_ {}
21#_histvalue0_ to _histvalue19_
22_advformlist_ {}
23_regformlist_ {}
24#_fqfselection_ {}
25
26
27#######################################################################
28# icons
29#######################################################################
30
31_queryresultsbar_ {
32<div class="divbar">
33<p class="navbar">_texthresults_</p>
34</div>
35}
36
37_searchhistorybar_ {
38<div class="divbar">
39<p class="navbar">_texticonsearchhistorybar_</p>
40</div>
41}
42
43
44# _iconnext_ and _iconprev_ are overridden in this package as we
45# don't want alt text here
46_iconnext_{<img src="_httpiconmore_" width="_widthmore_" height="_heightmore_" border="0" align="top">}
47_iconnext_ [v=1] {}
48_iconprev_{<img src="_httpiconless_" width="_widthless_" height="_heightless_" border="0" align="top">}
49_iconprev_ [v=1] {}
50
51# the small squares for search history
52## " " ## handmade ## mstds ##
53_httpiconmstdsqrof_ {_httpimg_/mstdsof.gif}
54_httpiconmstdsqron_ {_httpimg_/mstdson.gif}
55_widthmstdsqrx_ {13}
56_heightmstdsqrx_ {13}
57
58#######################################################################
59# images
60#######################################################################
61
62# _imagethispage_ set in nav_css/nav_ns4 macro files
63
64#the buttons for the search history entries
65# takes one arg - the entry number (0-num entries)
66_imagehistbutton_ {<a href="_httpquery_" onMouseover="roll('histbutton_1_',1);" onMouseOut="roll('histbutton_1_',0);" onClick="inputQuery(histvalue_1_); return false;"><img name="histbutton_1_" src="_httpiconmstdsqrof_" onLoad="gbutton(this,'_httpiconmstdsqron_');" border="0" alt="_textusequery_" title="_textusequery_"></a>}
67
68
69#######################################################################
70# scripts (and some macros for the scripts)
71#######################################################################
72
73_pagescriptextra_ {_If_("_cgiargqt_" eq "1", _formpagescriptextra_, _selectpagescriptextra_)
74_If_("_cgiarghd_" ne "0",_historypagescriptextra_) }
75
76_selectpagescriptextra_{_If_("_cgiargqto_" eq "2", _formpagescriptextra_,_dummypagescriptextra_)}
77_dummypagescriptextra_{function initialize() \{
78\} }
79_formpagescriptextra_ {
80// query scripts generated by \_query:pagescriptextra\_
81
82_standardfunctions_
83_formfunctions_
84_searchfunctions_
85
86function getsearchargs () \{
87
88 var args="";
89 args = "&fqa=0&fqv="+argfqv+"&fqf="+argfqf;
90 _If_(_cgiargqf_,args += "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc;)
91
92 return args;
93\}
94
95
96
97function getqueryargs () \{
98 return "&fqa=1"+"&q="+argq+"&fqv="+argfqv+"&fqf="+argfqf+
99 "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc ;
100\}
101
102}
103
104_historypagescriptextra_{
105
106var histvalue0='_histvalue0_';
107var histvalue1='_histvalue1_';
108var histvalue2='_histvalue2_';
109var histvalue3='_histvalue3_';
110var histvalue4='_histvalue4_';
111var histvalue5='_histvalue5_';
112var histvalue6='_histvalue6_';
113var histvalue7='_histvalue7_';
114var histvalue8='_histvalue8_';
115var histvalue9='_histvalue9_';
116var histvalue10='_histvalue10_';
117var histvalue11='_histvalue11_';
118var histvalue12='_histvalue12_';
119var histvalue13='_histvalue13_';
120var histvalue14='_histvalue14_';
121var histvalue15='_histvalue15_';
122var histvalue16='_histvalue16_';
123var histvalue17='_histvalue17_';
124var histvalue18='_histvalue18_';
125var histvalue19='_histvalue19_';
126
127function inputQuery(value) \{
128 if ("_cgiargqt_" == "0") \{ // text search
129 document.QueryForm.q.value += " "+value;
130 document.QueryForm.q.focus();
131 \}
132 else \{
133 if ("_cgiargqf_" == "1") \{ // advanced query
134 document.QueryForm.q.value += " "+value;
135 document.QueryForm.q.focus();
136 updateq();
137 \}
138 else \{ // simple form search
139 // do something here, what??
140 \}
141 \}
142\}
143
144}
145
146_standardfunctions_{
147
148 function getstdargs() \{
149
150 stdarg = "";
151 _If_(_gselection_,_getgarg_)
152 _If_(_jselection_,_getjarg_)
153 _If_(_nselection_,_getnarg_)
154
155 value = document.QueryForm.t.options[document.QueryForm.t.selectedIndex].value;
156 if (value != "_cgiargt_") stdarg += "&t="+value;
157
158 stdarg += "&r=1&hs=1";
159 return stdarg;
160 \}
161
162}
163
164_getgarg_{
165 if (document.QueryForm.g!= null) \{
166 value = document.QueryForm.g.options[document.QueryForm.g.selectedIndex].value;
167 if (value != "_cgiargg_") stdarg += "&g="+value;
168 \}
169}
170
171_getjarg_{
172 value = document.QueryForm.j.options[document.QueryForm.j.selectedIndex].value;
173 if (value != "_cgiargj_") stdarg += "&j="+value;
174}
175
176_getnarg_{
177 value = document.QueryForm.n.options[document.QueryForm.n.selectedIndex].value;
178 if (value != "_cgiargn_") stdarg += "&n="+value;
179}
180
181_formfunctions_{
182
183argfqf="_cgiargfqf_";
184argfqv="_cgiargfqv_";
185argfqk="_cgiargfqk_";
186argfqs="_cgiargfqs_";
187argfqc="_cgiargfqc_";
188argq = "";
189
190function initialize () \{
191
192 if (document.QueryForm.fqf != null) \{initfqf();\}
193 initfqv();
194 if ( "_cgiargqf_" == "1") \{
195 initfqs();
196 initfqk();
197 initfqc();
198 initq();
199 \}
200
201\}
202
203// makes a form submit itself when enter is pressed in a text field
204function entersubmit(event) \{
205
206 if (window.event && window.event.keyCode == 13) \{
207 beginSearch();
208 \} else \{
209 if (event && event.which == 13) \{
210 beginSearch();
211 \} else \{
212 return true;
213 \}
214 \}
215\}
216
217// fqf - the field selection box
218function initfqf() \{
219 var i;
220 fqf = argfqf.split(",");
221 num_opts = document.QueryForm.fqf[0].options.length; // assumes all have the same options
222 for (i=0; i<fqf.length && i<document.QueryForm.fqf.length; i++) \{
223 if (fqf[i] != "")\{
224 for (j=0;j<num_opts;j++) \{
225 if (fqf[i]== document.QueryForm.fqf[i].options[j].value) \{
226 document.QueryForm.fqf[i].options[j].selected = true;
227 break;
228 \}
229 \}
230 \}
231 \}
232 if (fqf.length < document.QueryForm.fqf.length) \{ // initialize remaining ones
233 for (i=fqf.length;i<document.QueryForm.fqf.length;i++) \{
234 var z=i;
235 while (z >= num_opts) \{
236 z = z-(num_opts);
237 \}
238 document.QueryForm.fqf[i].options[z].selected = true;
239
240 \}
241 \}
242 updatefqf();
243
244\}
245
246function updatefqf() \{
247
248 var i;
249 argfqf = "";
250 var j = document.QueryForm.fqf[0].selectedIndex;
251 argfqf += document.QueryForm.fqf[0].options[j].value;
252 for (i=1; i<document.QueryForm.fqf.length;i++) \{
253 j = document.QueryForm.fqf[i].selectedIndex;
254 argfqf += "," + document.QueryForm.fqf[i].options[j].value;
255 \}
256
257\}
258
259
260function clearfqf() \{
261 var i;
262 for (i=0;i<document.QueryForm.fqf.length;i++) \{
263 var z = i;
264 if (i >= document.QueryForm.fqf[i].options.length) z = z-document.QueryForm.fqf[i].options.length;
265 document.QueryForm.fqf[i].options[z].selected = true;
266 \}
267 updatefqf();
268\}
269
270// fqc - the boolean operator selection box
271function initfqc() \{
272 var i,j;
273 fqc = argfqc.split(",");
274 if (_cgiargfqn_ == 2) \{ // there will only be one fqc element
275 for (j=0;j<document.QueryForm.fqc.options.length;j++) \{
276 if (fqc[0] == document.QueryForm.fqc.options[j].value) \{
277 document.QueryForm.fqc.options[j].selected = true;
278 break;
279 \}
280 \}
281 \}
282 else \{
283 for (i=0; i<fqc.length;i++) \{
284 for (j=0;j<document.QueryForm.fqc[i].options.length;j++) \{
285 if (fqc[i] == document.QueryForm.fqc[i].options[j].value) \{
286 document.QueryForm.fqc[i].options[j].selected = true;
287 break;
288 \}
289 \}
290 \}
291 \}
292 updatefqc();
293
294\}
295
296function updatefqc() \{
297
298 var i,j;
299 argfqc = "";
300 if (_cgiargfqn_ == 2) \{
301 j = document.QueryForm.fqc.selectedIndex;
302 argfqc += document.QueryForm.fqc.options[j].value;
303 \}
304 else \{
305 j = document.QueryForm.fqc[0].selectedIndex;
306 argfqc += document.QueryForm.fqc[0].options[j].value;
307 for (i=1;i<document.QueryForm.fqc.length;i++) \{
308 j = document.QueryForm.fqc[i].selectedIndex;
309 argfqc += "," + document.QueryForm.fqc[i].options[j].value;
310 \}
311 \}
312
313\}
314
315
316function clearfqc() \{
317
318 var i;
319 if (_cgiargfqn_ == 2) \{
320 document.QueryForm.fqc.options[0].selected = true;
321 \}
322 else \{
323 for (i=0; i<document.QueryForm.fqc.length; i++) \{
324 document.QueryForm.fqc[i].options[0].selected = true;
325 \}
326 \}
327 updatefqc();
328\}
329
330// fqv - the query word/phrase text box
331function initfqv() \{
332 var i;
333 fqv= argfqv.split(",");
334 for (i=0; i<fqv.length && i<document.QueryForm.fqv.length; i++) \{
335 document.QueryForm.fqv[i].value = fqv[i];
336 \}
337 updatefqv();
338
339
340\}
341
342 //argfqv += escape(format(document.QueryForm.fqv[0].value));
343
344function updatefqv() \{
345 var i;
346 argfqv="";
347 argfqv += format(document.QueryForm.fqv[0].value);
348 for (i=1; i<document.QueryForm.fqv.length;i++) \{
349 argfqv += ",";
350 argfqv += format(document.QueryForm.fqv[i].value);
351 \}
352\}
353
354function clearfqv() \{
355 var i;
356 for (i=0; i< document.QueryForm.fqv.length;i++) \{
357 document.QueryForm.fqv[i].value = "";
358 \}
359 updatefqv();
360\}
361
362// fqs - the stemming checkboxes
363function initfqs() \{
364
365 var i;
366 fqs = argfqs.split(",");
367 for (i=0; i<fqs.length; i++) \{
368 if (fqs[i]=="1") \{
369 document.QueryForm.fqs[i].checked = true;
370 \}
371 \}
372 updatefqs();
373
374\}
375
376function updatefqs() \{
377 argfqs="";
378 if (document.QueryForm.fqs[0].checked) \{
379 argfqs += "1";
380 \}
381 else \{
382 argfqs += "0";
383 \}
384 var i;
385 for (i=1; i<document.QueryForm.fqs.length; i++) \{
386 if (document.QueryForm.fqs[i].checked) \{
387 argfqs += ",1";
388 \}
389 else \{
390 argfqs += ",0";
391 \}
392 \}
393\}
394
395
396function clearfqs() \{
397 var i;
398 for (i=0; i<document.QueryForm.fqs.length; i++) \{
399 document.QueryForm.fqs[i].checked = false;
400 \}
401 updatefqs();
402\}
403
404// kqk - the casefolding checkboxes
405function initfqk() \{
406 var i;
407 fqk = argfqk.split(",");
408 for (i=0; i<fqk.length; i++) \{
409 if (fqk[i]=="1") \{
410 document.QueryForm.fqk[i].checked = true;
411 \}
412 \}
413 updatefqk();
414
415\}
416
417
418function updatefqk() \{
419 argfqk="";
420 if (document.QueryForm.fqk[0].checked) \{
421 argfqk += "1";
422 \}
423 else \{
424 argfqk += "0";
425 \}
426 var i;
427 for (i=1; i<document.QueryForm.fqk.length; i++) \{
428 if (document.QueryForm.fqk[i].checked) \{
429 argfqk += ",1";
430 \}
431 else \{
432 argfqk += ",0";
433 \}
434 \}
435\}
436
437function clearfqk() \{
438 var i;
439 for (i=0; i<document.QueryForm.fqk.length; i++) \{
440 document.QueryForm.fqk[i].checked = false;
441 \}
442 updatefqk();
443\}
444
445// q - the advanced query box
446function initq() \{
447 updateq();
448\}
449
450function updateq() \{
451
452 argq = "";
453 argq += format(document.QueryForm.q.value);
454\}
455
456function clearq() \{
457 document.QueryForm.q.value="";
458\}
459
460
461// convert commas and spaces to plus
462// also convert other illegal characters to %xx codes
463function format(string) \{
464 var str = "" + string;
465 var out = "", flag = 0;
466 var ch = "";
467 var j;
468 for (j = 0; j < str.length; j++) \{
469 ch=str.charAt(j);
470 if (ch == " "|| ch == ",") \{
471 if ( flag == 0) \{
472 out += "+";
473 flag=1;
474 \}
475 continue;
476 \}
477 if (ch == ";" || ch == ":" || ch == "/" || ch == "?" ||
478 ch == "@" || ch == "&" || ch == "=" || ch == "#") \{
479 out += escape(ch);
480 flag=0;
481 continue;
482 \}
483 out += str.charAt(j);
484 flag=0;
485 \}
486 return out;
487\}
488
489}
490
491#_httpquery_ has a=q&e=compressedargs
492#if adv form, need to set k=0 and s=0
493_advformargs_{_If_(_cgiargqf_,&k=0&s=0)}
494
495_searchfunctions_ {
496
497function beginSearch() \{
498window.location="_httpquery_"+getstdargs()+"_advformargs_"+getsearchargs();
499\}
500
501function runQuery() \{
502window.location="_httpquery_"+getstdargs()+"_advformargs_"+getqueryargs();
503\}
504
505function clearForm() \{
506 clearfqf();
507 clearfqv();
508
509 if ("_cgiargqf_" == "1") \{
510 clearfqk();
511 clearfqs();
512 clearfqc();
513 \}
514
515\}
516
517}
518
519#######################################################################
520# headers
521# these are overridden so we can put an onLoad event handler
522# in the <body> tag of this page - for mgpp, form search pages
523#######################################################################
524
525#copied from prefs
526
527_header_ {_cgihead_
528_htmlhead_(class="bgimage" onLoad="initialize();")_startspacer__pagebanner_
529}
530
531# this declaration ends up being the same as style=restrict, never mind
532_header_[v=1] {_cgihead_
533_htmlhead_(onLoad="initialize();")_pagebanner_
534}
535
536#######################################################################
537# page content
538#######################################################################
539
540
541_pagetitle_ {_If_(_cgiargq_,_textquerytitle_,_textnoquerytitle_)}
542
543
544_content_ {
545_optnavigationbar_
546<div class="document">
547<div class="queryform">
548_If_(_cgiargct_,_selectqueryform_,_queryform_)
549</div>
550_If_(_searchhistorylist_,<center>_searchhistorybar_</center><br>
551<center>
552_searchhistorylist_
553</center>)
554_If_(_cgiargq_,_queryresultsbar_
555<small>
556_freqmsg_
557_textpostprocess_
558_If_(_stopwordsmsg_,(_stopwordsmsg_))</small><br />
559_resultline_
560,<div class="divbar">&nbsp;</div>)
561}
562
563_selectqueryform_{_If_("_cgiargqt_" eq "1",_fieldqueryform_,_queryform_)}
564
565_queryform_ {
566<!-- query form (\_query:plainqueryform\_) -->
567<form name="QueryForm" method="get" action="_gwcgi_">
568<p>
569<input type="hidden" name="a" value="q">
570<input type="hidden" name="r" value="1">
571<input type="hidden" name="hs" value="1">
572<input type="hidden" name="e" value="_decodedcompressedoptions_">
573_queryformcontent_
574_optdatesearch_
575</p>
576</form>
577<!-- end of query form -->
578}
579
580_ifeellucky_ { <br><input type="checkbox" name="ifl">_textifeellucky_ }
581_useifeellucky_ { } # Set this to _ifeellucky_ if you want this functionality available
582
583_queryformcontent_{
584<span class="textselect">
585_textselect_
586</span>
587
588<span class="querybox">
589_If_(_cgiargqb_,_largequerybox_,_smallquerybox_)
590_useifeellucky_
591</span>
592}
593
594# Automatically set by receptionist if config file switches
595# date searching on
596_optdatesearch_ { }
597
598
599_datesearch_
600{<table><tr><td>
601 <center>
602_textstartdate_
603<input type="text" name="ds" value="_cgiargds_" size="4" maxlength="4">
604<select name="dsbc" value="_cgiargdsbc_" size="1">
605 <option value="0"_If_(_cgiargdsbc_,, selected)>_textad_
606 <option value="1"_If_(_cgiargdsbc_, selected)>_textbc_
607</select>
608_textenddate_
609<input type="text" name="de" value="_cgiargde_" size="4" maxlength="4">
610<select name="debc" size="1">
611 <option value="0" _If_(_cgiargdebc_,, selected)>_textad_
612 <option value="1" _If_(_cgiargdebc_, selected)>_textbc_
613</select>
614</center>
615</tr></td>
616<tr><td>
617_textexplaineras_
618</tr></td>
619</table>
620</center>
621}
622
623_smallquerybox_ {<input type="text" name="q" value="_cgiargq_" size="50">&nbsp;<input type="submit" value="_textbeginsearch_">}
624
625_largequerybox_ {
626<tr><td><textarea name="q" cols="63" rows="10">
627_cgiargq_
628</textarea></td></tr>
629<tr align="right"><td><table>
630<tr><td><input type="submit" value="_textbeginsearch_"></td>
631</tr></table></td></tr>}
632
633
634_fieldqueryform_ {
635<noscript>
636<p><b>_textnojsformwarning_</b><p>
637</noscript>
638<!-- field query form (\_query:fieldqueryform\_) -->
639<form name="QueryForm" method="get" action="_gwcgi_">
640
641<table><tr><td>
642<nobr>
643_textformselect_
644</nobr>
645</td></tr>
646_If_(_cgiargqf_,_advancedforms_,_simpleforms_)
647</table>
648_If_(_cgiargqf_,<div class="divbar">&nbsp;</div>
649<center>_advancedformextra_</center>)
650
651</form>
652<!-- end of query form -->
653}
654
655_advancedforms_{
656<tr><td><center> <table border="0" cellspacing="0" cellpadding="0" width="90%">
657<tr><th></th><th align="left">_textwordphrase_</th><th colspan="2"><nobr>_textfoldstem_</nobr></th><th align="center">&nbsp;&nbsp;_textinfield_</th></tr>
658_advformlist_
659<tr><td colspan="2"><input type="button" value="_textclearform_" onClick="clearForm();"></td>
660<td colspan="3"><table>
661<tr><td><input type="button" value="_textbeginsearch_" onClick="beginSearch();"></td>
662</tr></table></td></tr>
663</table></td></tr>
664}
665
666_advancedformextra_{
667<table>
668<tr><td>_textadvquery_</td></tr>
669<tr><td><textarea name="q" cols="57" rows="3" onChange="updateq();">_cgiargq_</textarea></td>
670<td valign="bottom">
671<input type="button" value="_textrunquery_" onClick="runQuery();"></td></tr>
672</table>
673}
674
675_simpleforms_{
676<tr><td><center> <table border="0" cellspacing="0" cellpadding="0" width="90%">
677<tr><th align="left">_textwordphrase_</th><th align="left">&nbsp;&nbsp;_textinfield_</th></tr>
678_regformlist_
679<tr><td><input type="button" value="_textclearform_" onClick="clearForm();"></td>
680<td><table>
681<tr><td><input type="button" value="_textbeginsearch_" onClick="beginSearch();"></td>
682</tr>
683</table></td></tr>
684</table></td></tr>}
685
686_regformelement_{
687<td><input type="text" size="39" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
688<td>_fqfselection_</td>}
689
690#has no and/or/not selection box
691_firstadvformelement_{
692<td></td><td><input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
693<td align="center"><input type="checkbox" name="fqk" onClick="updatefqk();"></td>
694<td align="center"><input type="checkbox" name="fqs" onClick="updatefqs();"></td>
695<td align="right">_fqfselection_</td>}
696
697_advformelement_{
698<td>_fqcselection_</td>
699<td><input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
700<td align="center"><input type="checkbox" name="fqk" onClick="updatefqk();"></td>
701<td align="center"><input type="checkbox" name="fqs" onClick="updatefqs();"></td>
702<td align="right">_fqfselection_</td>}
703
704_fqcselection_ {
705<select name="fqc" onChange="updatefqc();">
706<option value="and">_textand_
707<option value="or">_textor_
708<option value="not">_textandnot_
709</select>}
710
711_textselect_ {_If_(_cgiargb_,_chooseadvancedsearch_,_textsimplesearch_)}
712_chooseadvancedsearch_ {_If_(_cgiargct_,_If_(_cgiargct_ eq "2",_textadvancedlucenesearch_,_textadvancedmgppsearch_),_textadvancedsearch_}
713_textformselect_ {_If_(_cgiargqf_,_textformadvancedsearch_,_textformsimplesearch_)}
714# mg uses hselection for index, mgpp uses fqfselection
715_indexselection_{_If_(_cgiargct_,_fqfselection_,_hselection_)}
716
717# we want to put the links to previous/next pages of results
718# in the footer
719_pagefooterextra_ {
720<center>
721<table cellspacing="0" cellpadding="0" width="_pagewidth_">
722<tr>
723<td align="left">_If_(_prevfirst_,<a href="_httpquery_&r=_prevfirst_">_iconprev__textmatches__prevfirst_ - _prevlast_</a>)</td>
724<td align="right">_If_(_nextfirst_,<a href="_httpquery_&r=_nextfirst_">_textmatches__nextfirst_ - _nextlast__iconnext_</a>)</td>
725</tr></table>
726</center>
727
728</div> <!-- document -->
729}
730
731_querytypeselection_ {
732<select name="t">
733<option value="1"_If_(_cgiargt_, selected)>_If_(_cgiargb_,_textranked_,_textsome_)
734<option value="0"_If_(_cgiargt_,, selected)>_If_(_cgiargb_,_textboolean_,_textall_)
735</select>
736}
737
738
739_formquerytypesimpleselection_ {
740<select name="t">
741<option value="1"_If_(_cgiargt_, selected)>_textsome_
742<option value="0"_If_(_cgiargt_,, selected)>_textall_
743</select>
744}
745
746_formquerytypeadvancedselection_ {
747<select name="t">
748<option value="1"_If_(_cgiargt_, selected)>_textranked_
749<option value="0"_If_(_cgiargt_,, selected)>_textnatural_
750</select>
751}
752
753# this one is not used by english.dm any more. But I have added it back for the other languages that haven't updated the translations for their form search macros.
754_formquerytypeselection_ {
755<select name="t">
756<option value="1"_If_(_cgiargt_, selected)>_If_(_cgiargqf_,_textranked_,_textsome_)
757<option value="0"_If_(_cgiargt_,, selected)>_If_(_cgiargqf_,_textnatural_,_textall_)
758</select>
759}
760
Note: See TracBrowser for help on using the repository browser.