output_headers(1, 1, 2, 0, 0, 0);
- wc_printf("<script type=\"text/javascript\"> \n"
- " \n"
- "var previously_active_script; \n"
- " \n"
- "function ToggleSievePanels() { \n"
- " d = ($('sieveform').bigaction.options[$('sieveform').bigaction.selectedIndex].value); \n"
- " for (i=0; i<3; ++i) { \n"
- " if (i == d) { \n"
- " $('sievediv' + i).style.display = 'block'; \n"
- " } \n"
- " else { \n"
- " $('sievediv' + i).style.display = 'none'; \n"
- " } \n"
- " } \n"
- "} \n"
- " \n"
- "function ToggleScriptPanels() { \n"
- " d = ($('sieveform').active_script.options[$('sieveform').active_script.selectedIndex].value); \n"
- " if ($('script_' + previously_active_script)) { \n"
- " $('script_' + previously_active_script).style.display = 'none'; \n"
- " } \n"
- " $('script_' + d).style.display = 'block'; \n"
- " previously_active_script = d; \n"
- "} \n"
- " \n"
- "</script> \n"
- );
+ wc_printf("<script type=\"text/javascript\">\n"
+ "\n"
+ "var previously_active_script;\n"
+ "\n"
+ "function ToggleSievePanels() {\n"
+ " d = ($('sieveform').bigaction.options[$('sieveform').bigaction.selectedIndex].value);\n"
+ " for (i=0; i<3; ++i) {\n"
+ " if (i == d) {\n"
+ " $('sievediv' + i).style.display = 'block';\n"
+ " }\n"
+ " else {\n"
+ " $('sievediv' + i).style.display = 'none';\n"
+ " }\n"
+ " }\n"
+ "}\n"
+ "\n"
+ "function ToggleScriptPanels() {\n"
+ " d = ($('sieveform').active_script.options[$('sieveform').active_script.selectedIndex].value);\n"
+ " if ($('script_' + previously_active_script)) {\n"
+ " $('script_' + previously_active_script).style.display = 'none';\n"
+ " }\n"
+ " $('script_' + d).style.display = 'block';\n"
+ " previously_active_script = d;\n"
+ "}\n"
+ "\n"
+ "</script>\n"
+);
wc_printf("<div id=\"banner\">\n");
wc_printf("<img src=\"static/webcit_icons/essen/32x32/config.png\">");
wc_printf("<div id=\"content\" class=\"service\">\n");
- wc_printf("<table class=\"sieve_background\">"
- "<tr><td valign=top>\n");
+ wc_printf("<table class=\"sieve_background\">\n"
+ "<tr>\n<td valign=top>\n");
wc_printf("<form id=\"sieveform\" method=\"post\" action=\"save_sieve\">\n");
wc_printf(_("Filter it through a manually edited script (advanced users only)"));
wc_printf("</option>\n");
- wc_printf("</select>");
+ wc_printf("</select>\n\n");
);
}
}
- wc_printf("</select>\n");
+ wc_printf("</select>\n\n");
}
wc_printf(" ");
}
}
}
- wc_printf("</select><br>\n");
+ wc_printf("</select>\n\n<br>\n");
wc_printf("<input type=\"submit\" name=\"delete_button\" value=\"%s\" "
"onClick=\"return confirm('%s');\">", _("Delete script"), _("Delete this script?"));
* This script should get called by every onChange event...
*
*/
- wc_printf("<script type=\"text/javascript\"> \n"
- " \n"
- "var highest_active_rule = (-1); \n"
- " \n"
- "function UpdateRules() { \n");
+ wc_printf("<script type=\"text/javascript\">\n"
+ "\n"
+ "var highest_active_rule = (-1);\n"
+ "\n"
+ "function UpdateRules() {\n");
/*
* Show only the active rows...
*/
- wc_printf(" highest_active_rule = (-1); \n");
- wc_printf(" for (i=0; i<%d; ++i) { \n", MAX_RULES);
- wc_printf(" if ($('active'+i).checked) { \n"
- " $('rule' + i).style.display = 'block'; \n"
- " highest_active_rule = i; \n"
- " } \n"
- " else { \n"
- " $('rule' + i).style.display = 'none'; \n"
- " } \n"
- " } \n");
+ wc_printf(" highest_active_rule = (-1);\n");
+ wc_printf(" for (i=0; i<%d; ++i) {\n", MAX_RULES);
+ wc_printf(" if ($('active'+i).checked) {\n"
+ " $('rule' + i).style.display = 'block';\n"
+ " highest_active_rule = i;\n"
+ " }\n"
+ " else {\n"
+ " $('rule' + i).style.display = 'none';\n"
+ " }\n"
+ " }\n");
/*
* Show only the fields relevant to the rules...
*/
- wc_printf(" for (i=0; i<=highest_active_rule; ++i) { \n"
- " d = ($('movedown'+i)); \n"
- " if (i < highest_active_rule) { \n"
- " d.style.display = 'block'; \n"
- " } \n"
- " else { \n"
- " d.style.display = 'none'; \n"
- " } \n"
- " d = ($('hfield'+i).options[$('hfield'+i).selectedIndex].value); \n"
- " if (d == 'all') { \n"
- " $('div_size'+i).style.display = 'none'; \n"
- " $('div_compare'+i).style.display = 'none'; \n"
- " $('div_nocompare'+i).style.display = 'block'; \n"
- " } \n"
- " else if (d == 'size') { \n"
- " $('div_size'+i).style.display = 'block'; \n"
- " $('div_compare'+i).style.display = 'none'; \n"
- " $('div_nocompare'+i).style.display = 'none'; \n"
- " } \n"
- " else { \n"
- " $('div_size'+i).style.display = 'none'; \n"
- " $('div_compare'+i).style.display = 'block'; \n"
- " $('div_nocompare'+i).style.display = 'none'; \n"
- " } \n"
- " d = ($('action'+i).options[$('action'+i).selectedIndex].value); \n"
- " if (d == 'fileinto') { \n"
- " $('div_fileinto'+i).style.display = 'block'; \n"
- " $('div_redirect'+i).style.display = 'none'; \n"
- " $('div_automsg'+i).style.display = 'none'; \n"
- " } else if (d == 'redirect') { \n"
- " $('div_fileinto'+i).style.display = 'none'; \n"
- " $('div_redirect'+i).style.display = 'block'; \n"
- " $('div_automsg'+i).style.display = 'none'; \n"
- " } else if ((d == 'reject') || (d == 'vacation')) { \n"
- " $('div_fileinto'+i).style.display = 'none'; \n"
- " $('div_redirect'+i).style.display = 'none'; \n"
- " $('div_automsg'+i).style.display = 'block'; \n"
- " } else { \n"
- " $('div_fileinto'+i).style.display = 'none'; \n"
- " $('div_redirect'+i).style.display = 'none'; \n"
- " $('div_automsg'+i).style.display = 'none'; \n"
- " } \n"
- " if (highest_active_rule < %d) { \n", MAX_RULES-1 );
- wc_printf(" $('div_addrule').style.display = 'block'; \n"
- " } else { \n"
- " $('div_addrule').style.display = 'none'; \n"
- " } \n"
- " } \n"
- "} \n"
+ wc_printf(" for (i=0; i<=highest_active_rule; ++i) {\n"
+ " d = ($('movedown'+i));\n"
+ " if (i < highest_active_rule) {\n"
+ " d.style.display = 'block';\n"
+ " }\n"
+ " else {\n"
+ " d.style.display = 'none';\n"
+ " }\n"
+ " d = ($('hfield'+i).options[$('hfield'+i).selectedIndex].value);\n"
+ " if (d == 'all') {\n"
+ " $('div_size'+i).style.display = 'none'; \n"
+ " $('div_compare'+i).style.display = 'none';\n"
+ " $('div_nocompare'+i).style.display = 'block';\n"
+ " }\n"
+ " else if (d == 'size') {\n"
+ " $('div_size'+i).style.display = 'block'; \n"
+ " $('div_compare'+i).style.display = 'none';\n"
+ " $('div_nocompare'+i).style.display = 'none';\n"
+ " }\n"
+ " else {\n"
+ " $('div_size'+i).style.display = 'none'; \n"
+ " $('div_compare'+i).style.display = 'block';\n"
+ " $('div_nocompare'+i).style.display = 'none';\n"
+ " }\n"
+ " d = ($('action'+i).options[$('action'+i).selectedIndex].value);\n"
+ " if (d == 'fileinto') {\n"
+ " $('div_fileinto'+i).style.display = 'block';\n"
+ " $('div_redirect'+i).style.display = 'none';\n"
+ " $('div_automsg'+i).style.display = 'none';\n"
+ " } else if (d == 'redirect') {\n"
+ " $('div_fileinto'+i).style.display = 'none';\n"
+ " $('div_redirect'+i).style.display = 'block';\n"
+ " $('div_automsg'+i).style.display = 'none';\n"
+ " } else if ((d == 'reject') || (d == 'vacation')) {\n"
+ " $('div_fileinto'+i).style.display = 'none';\n"
+ " $('div_redirect'+i).style.display = 'none';\n"
+ " $('div_automsg'+i).style.display = 'block';\n"
+ " } else {\n"
+ " $('div_fileinto'+i).style.display = 'none';\n"
+ " $('div_redirect'+i).style.display = 'none';\n"
+ " $('div_automsg'+i).style.display = 'none';\n"
+ " }\n"
+ " if (highest_active_rule < %d) {\n", MAX_RULES-1 );
+ wc_printf(" $('div_addrule').style.display = 'block';\n"
+ " } else {\n"
+ " $('div_addrule').style.display = 'none';\n"
+ " }\n"
+ " }\n"
+ "}\n"
/*
* Add a rule (really, just un-hide it)
*/
- "function AddRule() { \n"
- " highest_active_rule = highest_active_rule + 1; \n"
- " $('active'+highest_active_rule).checked = true; \n"
- " UpdateRules(); \n"
- "} \n"
+ "function AddRule() {\n"
+ " highest_active_rule = highest_active_rule + 1;\n"
+ " $('active'+highest_active_rule).checked = true;\n"
+ " UpdateRules();\n"
+ "}\n"
/*
* Swap two rules
*/
- "function SwapRules(ra, rb) { \n"
- " \n"
- " var things = new Array(); \n"
- " things[0] = 'hfield'; \n"
- " things[1] = 'compare'; \n"
- " things[2] = 'htext'; \n"
- " things[3] = 'action'; \n"
- " things[4] = 'fileinto'; \n"
- " things[5] = 'redirect'; \n"
- " things[6] = 'final'; \n"
- " things[7] = 'sizecomp'; \n"
- " things[8] = 'sizeval'; \n"
- " things[9] = 'automsg'; \n"
- " \n"
- " for (i=0; i<=9; ++i) { \n"
- " tempval=$(things[i]+ra).value; \n"
- " $(things[i]+ra).value = $(things[i]+rb).value; \n"
- " $(things[i]+rb).value = tempval; \n"
- " } \n"
- "} \n"
+ "function SwapRules(ra, rb) {\n"
+ "\n"
+ " var things = new Array();\n"
+ " things[0] = 'hfield';\n"
+ " things[1] = 'compare';\n"
+ " things[2] = 'htext';\n"
+ " things[3] = 'action';\n"
+ " things[4] = 'fileinto';\n"
+ " things[5] = 'redirect';\n"
+ " things[6] = 'final';\n"
+ " things[7] = 'sizecomp';\n"
+ " things[8] = 'sizeval';\n"
+ " things[9] = 'automsg';\n"
+ "\n"
+ " for (i=0; i<=9; ++i) {\n"
+ " tempval=$(things[i]+ra).value;\n"
+ " $(things[i]+ra).value = $(things[i]+rb).value;\n"
+ " $(things[i]+rb).value = tempval;\n"
+ " }\n"
+ "}\n"
/*
* Delete a rule (percolate the deleted rule out to the end, then deactivate it)
*/
- "function DeleteRule(rd) { \n"
- " for (j=rd; j<=highest_active_rule; ++j) { \n"
- " SwapRules(j, (j+1)); \n"
- " } \n"
- " $('active'+highest_active_rule).checked = false; \n"
- "} \n"
- "</script> \n"
- );
+ "function DeleteRule(rd) {\n"
+ " for (j=rd; j<=highest_active_rule; ++j) {\n"
+ " SwapRules(j, (j+1));\n"
+ " }\n"
+ " $('active'+highest_active_rule).checked = false;\n"
+ "}\n"
+ "</script>\n"
+ );
wc_printf("<br>");
/* now generate the table row */
- wc_printf("<tr id=\"rule%d\" bgcolor=\"#%s\">",
+ wc_printf("<tr id=\"rule%d\" class=\"%s\">",
i,
- ((i%2) ? "DDDDDD" : "FFFFFF")
+ ((i%2) ? "odd" : "even")
);
- wc_printf("<td width=5%% align=\"center\">");
+ wc_printf("<td width=5%% align=\"center\">\n");
- wc_printf("<div style=\"display:none\">");
- wc_printf("<input type=\"checkbox\" name=\"active%d\" id=\"active%d\" %s>",
+ wc_printf("<div style=\"display:none\">\n");
+ wc_printf("<input type=\"checkbox\" name=\"active%d\" id=\"active%d\" %s>\n",
i, i,
(active ? "checked" : "")
);
- wc_printf("</div>");
+ wc_printf("</div>\n");
if (i>0) wc_printf("<a href=\"javascript:SwapRules(%d,%d);UpdateRules();\">"
"<img border=\"0\" src=\"static/webcit_icons/up_pointer.gif\" "
- "title=\"%s\"/></a>",
+ "title=\"%s\"/></a>\n",
i-1, i, _("Move rule up") );
wc_printf("<a href=\"javascript:SwapRules(%d,%d);UpdateRules();\">"
"<img id=\"movedown%d\" border=\"0\" src=\"static/webcit_icons/down_pointer.gif\" "
- "title=\"%s\"/></a>",
+ "title=\"%s\"/></a>\n",
i, i+1, i, _("Move rule down") );
wc_printf("<a href=\"javascript:DeleteRule(%d);UpdateRules();\">"
"<img id=\"delete%d\" border=\"0\" src=\"static/webcit_icons/delete.gif\" "
- "title=\"%s\"/></a>",
+ "title=\"%s\"/></a>\n",
i, i, _("Delete rule") );
- wc_printf("</td>");
+ wc_printf("</td>\n\n\n");
- wc_printf("<td width=5%% align=\"center\">");
- wc_printf("<font size=+2>%d</font>", i+1);
- wc_printf("</td>");
+ wc_printf("<td width=5%% align=\"center\">\n");
+ wc_printf("<font size=+2>%d</font>\n", i+1);
+ wc_printf("</td>\n");
wc_printf("<td width=20%%>%s ", _("If") );
wc_printf("<select id=\"hfield%d\" name=\"hfield%d\" size=1 onChange=\"UpdateRules();\">",
i, i);
for (j=0; j<15; ++j) {
- wc_printf("<option %s value=\"%s\">%s</option>",
+ wc_printf("<option %s value=\"%s\">%s</option>\n",
( (!strcasecmp(hfield, hfield_values[j][0])) ? "selected" : ""),
hfield_values[j][0],
hfield_values[j][1]
);
}
- wc_printf("</select>");
+ wc_printf("</select>\n\n");
wc_printf("</td>");
wc_printf("<td width=20%%>");
{ "notmatches", _("does not match") }
};
- wc_printf("<div id=\"div_compare%d\">", i);
- wc_printf("<select id=\"compare%d\" name=\"compare%d\" size=1 onChange=\"UpdateRules();\">",
+ wc_printf("<div id=\"div_compare%d\">\n", i);
+ wc_printf("<select id=\"compare%d\" name=\"compare%d\" size=1 onChange=\"UpdateRules();\">\n",
i, i);
for (j=0; j<6; ++j) {
- wc_printf("<option %s value=\"%s\">%s</option>",
+ wc_printf("<option %s value=\"%s\">%s</option>\n",
( (!strcasecmp(compare, compare_values[j][0])) ? "selected" : ""),
compare_values[j][0],
compare_values[j][1]
);
}
- wc_printf("</select>");
+ wc_printf("</select>\n\n");
wc_printf("<input type=\"text\" id=\"htext%d\" name=\"htext%d\" value=\"", i, i);
escputs(htext);
- wc_printf("\"></div>");
+ wc_printf("\">\n</div>\n");
wc_printf("<div id=\"div_nocompare%d\">", i);
wc_printf("%s", _("(All messages)"));
- wc_printf("</div>");
+ wc_printf("</div>\n");
char *sizecomp_values[2][2] = {
{ "larger", _("is larger than") },
{ "smaller", _("is smaller than") }
};
- wc_printf("<div id=\"div_size%d\">", i);
- wc_printf("<select id=\"sizecomp%d\" name=\"sizecomp%d\" size=1 onChange=\"UpdateRules();\">",
+ wc_printf("<div id=\"div_size%d\">\n", i);
+ wc_printf("<select id=\"sizecomp%d\" name=\"sizecomp%d\" size=1 onChange=\"UpdateRules();\">\n",
i, i);
for (j=0; j<2; ++j) {
- wc_printf("<option %s value=\"%s\">%s</option>",
+ wc_printf("<option %s value=\"%s\">%s</option>\n",
( (!strcasecmp(sizecomp, sizecomp_values[j][0])) ? "selected" : ""),
sizecomp_values[j][0],
sizecomp_values[j][1]
);
}
- wc_printf("</select>");
+ wc_printf("</select>\n\n");
wc_printf("<input type=\"text\" id=\"sizeval%d\" name=\"sizeval%d\" value=\"%d\">",
i, i, sizeval);
{ "vacation", _("Vacation") }
};
- wc_printf("<td width=20%%>");
- wc_printf("<select id=\"action%d\" name=\"action%d\" size=1 onChange=\"UpdateRules();\">",
+ wc_printf("<td width=20%%>\n");
+ wc_printf("<select id=\"action%d\" name=\"action%d\" size=1 onChange=\"UpdateRules();\">\n",
i, i);
for (j=0; j<6; ++j) {
- wc_printf("<option %s value=\"%s\">%s</option>",
+ wc_printf("<option %s value=\"%s\">%s</option>\n",
( (!strcasecmp(action, action_values[j][0])) ? "selected" : ""),
action_values[j][0],
action_values[j][1]
);
}
- wc_printf("</select>");
+ wc_printf("</select>\n\n");
- wc_printf("<div id=\"div_fileinto%d\">", i);
- wc_printf("<select name=\"fileinto%d\" id=\"fileinto%d\">", i, i);
+ wc_printf("<div id=\"div_fileinto%d\">\n", i);
+ wc_printf("<select name=\"fileinto%d\" id=\"fileinto%d\">\n", i, i);
for (j=0; j<num_roomnames; ++j) {
wc_printf("<option ");
if (!strcasecmp(rooms[j].name, fileinto)) {
escputs(rooms[j].name);
wc_printf("</option>\n");
}
- wc_printf("</select>\n");
+ wc_printf("</select>\n\n");
wc_printf("</div>");
- wc_printf("<div id=\"div_redirect%d\">", i);
+ wc_printf("<div id=\"div_redirect%d\">\n", i);
wc_printf("<input type=\"text\" id=\"redirect%d\" name=\"redirect%d\" value=\"", i, i);
escputs(redirect);
- wc_printf("\"></div>");
+ wc_printf("\">\n</div>\n");
- wc_printf("<div id=\"div_automsg%d\">", i);
+ wc_printf("<div id=\"div_automsg%d\">\n", i);
wc_printf(_("Message:"));
- wc_printf("<br>");
+ wc_printf("<br>\n");
wc_printf("<textarea name=\"automsg%d\" id=\"automsg%d\" wrap=soft rows=5>\n", i, i);
escputs(automsg);
wc_printf("</textarea>");
- wc_printf("</div>");
+ wc_printf("</div>\n");
- wc_printf("</td>");
+ wc_printf("</td>\n");
char *final_values[2][2] = {
{ "continue", _("continue processing") },
{ "stop", _("stop") }
};
- wc_printf("<td width=10%% align=\"center\">%s</td>", _("and then") );
+ wc_printf("<td width=10%% align=\"center\">%s</td>\n", _("and then") );
- wc_printf("<td width=20%%>");
- wc_printf("<select name=\"final%d\" id=\"final%d\" size=1 onChange=\"UpdateRules();\">",
+ wc_printf("<td width=20%%>\n");
+ wc_printf("<select name=\"final%d\" id=\"final%d\" size=1 onChange=\"UpdateRules();\">\n",
i, i);
for (j=0; j<2; ++j) {
- wc_printf("<option %s value=\"%s\">%s</option>",
+ wc_printf("<option %s value=\"%s\">%s</option>\n",
( (!strcasecmp(final, final_values[j][0])) ? "selected" : ""),
final_values[j][0],
final_values[j][1]
);
}
- wc_printf("</select>");
- wc_printf("</td>");
+ wc_printf("</select>\n\n");
+ wc_printf("</td>\n");
wc_printf("</tr>\n");
}
- wc_printf("</table>");
+ wc_printf("</table>\n");
wc_printf("<div id=\"div_addrule\"><a href=\"javascript:AddRule();\">%s</a><br></div>\n",
_("Add rule")
);
- wc_printf("<script type=\"text/javascript\"> \n");
- wc_printf("UpdateRules(); \n");
- wc_printf("</script> \n");
+ wc_printf("<script type=\"text/javascript\">\n");
+ wc_printf("UpdateRules();\n");
+ wc_printf("</script>\n");
free(rooms);
}
Ruleset->Name = NewStrBufPlain(NULL, StrLength(Line));
StrBufExtract_NextToken(Ruleset->Name, Line, &pch, '|');
Ruleset->IsActive = StrBufExtractNext_int(Line, &pch, '|');
+ Ruleset->Content = NULL;
if (!strcasecmp(ChrPtr(Ruleset->Name), RULES_SCRIPT))
{
void tmplput_SieveRule_sizeval(StrBuf *Target, WCTemplputParams *TP)
{
SieveRule *Rule = (SieveRule *)CTX;
- wc_printf("%d", Rule->sizeval);
+ StrBufAppendPrintf(Target, "%d", Rule->sizeval);
}
void tmplput_SieveRule_lookup_FileIntoRoom(StrBuf *Target, WCTemplputParams *TP)
StrBufExtract_NextToken(Line, EncodedRule, &pch, '|');
Rule->final = (eSieveFinal) GetTokenDefine(SKEY(Line), econtinue);
Put(SieveRules, IKEY(n), Rule, FreeSieveRule);
+ n++;
}
}
}
+ while (n < MAX_RULES) {
+ Rule = (SieveRule*) malloc(sizeof(SieveRule));
+ memset(Rule, 0, sizeof(SieveRule));
+ Put(SieveRules, IKEY(n), Rule, FreeSieveRule);
+
+ n++;
+ }
+
+
FreeStrBuf(&EncodedRule);
FreeStrBuf(&Line);
return SieveRules;
RegisterIterator("SIEVE:RULES", 0, NULL, GetSieveRules, NULL, DeleteHash, CTX_SIEVESCRIPT, CTX_NONE, IT_NOFLAG);
RegisterIterator("SIEVE:RULE:EMPTY", 0, NULL, GetEmptySieveRule, NULL, DeleteHash, CTX_SIEVESCRIPT, CTX_NONE, IT_NOFLAG);
+/*
+<?ITERATE("SIEVE:RULE:EMPTY", ="sieve_display_one")>
+*/
+
RegisterConditional(HKEY("COND:SIEVE:ACTIVE"), 1, ConditionalSieveRule_Active, CTX_SIEVESCRIPT);
RegisterConditional(HKEY("COND:SIEVE:HFIELD"), 1, ConditionalSieveRule_hfield, CTX_SIEVESCRIPT);
-<?SIEVE:SCRIPT:LOOKUP_FILEINTO><table cellpadding=2 width=100%>
-<tr id="rule<?ITERATE:N>" class="<?ITERATE:ODDEVEN>">
+<?SIEVE:SCRIPT:LOOKUP_FILEINTO><tr id="rule<?ITERATE:N>" class="<?ITERATE:ODDEVEN>">
<td width=5% align="center">
<div style="display:none">
<input type="checkbox" name="active<?ITERATE:N>" id="active<?ITERATE:N>" <?%("COND:SIEVE:ACTIVE", 1, 0, 0, "checked", "")>>
</div>
-
-<a href="javascript:SwapRules(<?ITERATE:N>,<?ITERATE:N> - 1);UpdateRules();"><img border="0" src="static/up_pointer.gif" title='<?_("Move rule up")>'/></a>
-<a href="javascript:SwapRules(<?ITERATE:N>,<?ITERATE:N> + 1);UpdateRules();"><img id="movedown%d" border="0" src="static/down_pointer.gif" title='<?_("Move rule down")>'/></a>
-<a href="javascript:DeleteRule(<?ITERATE:N>);UpdateRules();"><img id="delete<?ITERATE:N>" border="0" src="static/delete.gif" title='<?_("Delete rule")>'/></a>
+<??("COND:ITERATE:FIRSTN", 1)><a href="javascript:SwapRules(<?ITERATE:N> - 1, <?ITERATE:N>);UpdateRules();"><img border="0" src="static/webcit_icons/up_pointer.gif" title='<?_("Move rule up")>'/></a><??("X", 1)>
+<??("COND:ITERATE:LASTN", 2)><a href="javascript:SwapRules(<?ITERATE:N>,<?ITERATE:N> + 1);UpdateRules();"><img id="movedown<?ITERATE:N>" border="0" src="static/webcit_icons/down_pointer.gif" title='<?_("Move rule down")>'/></a><??("X", 2)>
+<a href="javascript:DeleteRule(<?ITERATE:N>);UpdateRules();"><img id="delete<?ITERATE:N>" border="0" src="static/webcit_icons/delete.gif" title='<?_("Delete rule")>'/></a>
</td>
<td width=5% align="center">
-<font size=+2><script type="text/javascript"> echo '<?ITERATE:N> + 1';</script></font>
+<font size=+2><script type="text/javascript"> $z = <?ITERATE:N> + 1; document.write($z);</script></font>
</td>
<td width=20%><?_("If")>
<select id="hfield<?ITERATE:N>" name="hfield<?ITERATE:N>" size=1 onChange="UpdateRules();">
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"from", "checked", "")> value="from" ><?_("From")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"tocc", "checked", "")> value="tocc" ><?_("To or Cc")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"subject", "checked", ""> value="subject", )><?_("Subject")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"replyto", "checked", ""> value="replyto" )><?_("Reply-to")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"sender", "checked", "")> value="sender" ><?_("Sender")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"resentfrom", "checked", "")> value="resentfrom" ><?_("Resent-From")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"resentto", "checked", "")> value="resentto" ><?_("Resent-To")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"envfrom", "checked", ""> value="envfrom" )><?_("Envelope From")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"envto", "checked", "")> value="envto" ><?_("Envelope To")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"xmailer", "checked", ""> value="xmailer" )><?_("X-Mailer")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"xspamflag", "checked", "")> value="xspamflag" ><?_("X-Spam-Flag")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"xspamstatus", "checked", "")> value="xspamstatus" ><?_("X-Spam-Status")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"listid", "checked", "")> value="listid" ><?_("List-ID")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"size", "checked", "")> value="size" ><?_("Message size")></option>
-<option <?%("COND:SIEVE:HFIELD", 1, 0, 0, #"all", "checked", "")> value="all" ><?_("All")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"from", "selected", "")> value="from" ><?_("From")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"tocc", "selected", "")> value="tocc" ><?_("To or Cc")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"subject", "selected", "")> value="subject", ><?_("Subject")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"replyto", "selected", "")> value="replyto" ><?_("Reply-to")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"sender", "selected", "")> value="sender" ><?_("Sender")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"resentfrom", "selected", "")> value="resentfrom" ><?_("Resent-From")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"resentto", "selected", "")> value="resentto" ><?_("Resent-To")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"envfrom", "selected", "")> value="envfrom" ><?_("Envelope From")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"envto", "selected", "")> value="envto" ><?_("Envelope To")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"xmailer", "selected", "")> value="xmailer" ><?_("X-Mailer")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"xspamflag", "selected", "")> value="xspamflag" ><?_("X-Spam-Flag")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"xspamstatus", "selected", "")> value="xspamstatus" ><?_("X-Spam-Status")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"listid", "selected", "")> value="listid" ><?_("List-ID")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"size", "selected", "")> value="size" ><?_("Message size")></option>
+<option <?%("COND:SIEVE:HFIELD", 1, 0, #"all", "selected", "")> value="all" ><?_("All")></option>
</select>
</td>
<td width=20%>
<div id="div_compare<?ITERATE:N>">
<select id="compare<?ITERATE:N>" name="compare<?ITERATE:N>" size=1 onChange="UpdateRules();">
-<option <?%("COND:SIEVE:COMPARE", 1, 0, 0, #"contains", "checked", "")>><?_("contains" )></option>
-<option <?%("COND:SIEVE:COMPARE", 1, 0, 0, #"notcontains", "checked", "")>><?_("does not contain" )></option>
-<option <?%("COND:SIEVE:COMPARE", 1, 0, 0, #"is", "checked", "")>><?_("is" )></option>
-<option <?%("COND:SIEVE:COMPARE", 1, 0, 0, #"isnot", "checked", "")>><?_("is not" )></option>
-<option <?%("COND:SIEVE:COMPARE", 1, 0, 0, #"matches", "checked", "")>><?_("matches" )></option>
-<option <?%("COND:SIEVE:COMPARE", 1, 0, 0, #"notmatches", "checked", "")>><?_("does not match" )></option>
+<option <?%("COND:SIEVE:COMPARE", 1, 0, #"contains", "selected", "")> value="contains"><?_( "contains" )></option>
+<option <?%("COND:SIEVE:COMPARE", 1, 0, #"notcontains", "selected", "")> value="notcontains"><?_( "does not contain" )></option>
+<option <?%("COND:SIEVE:COMPARE", 1, 0, #"is", "selected", "")> value="is"><?_( "is" )></option>
+<option <?%("COND:SIEVE:COMPARE", 1, 0, #"isnot", "selected", "")> value="isnot"><?_( "is not" )></option>
+<option <?%("COND:SIEVE:COMPARE", 1, 0, #"matches", "selected", "")> value="matches"><?_( "matches" )></option>
+<option <?%("COND:SIEVE:COMPARE", 1, 0, #"notmatches", "selected", "")> value="notmatches"><?_( "does not match" )></option>
</select>
-<input type="text" id="htext<?ITERATE:N>" name="htext<?ITERATE:N>" value="<?SIEVE:SCRIPT:HTEXT("X")>"> escputs(htext);
+<input type="text" id="htext<?ITERATE:N>" name="htext<?ITERATE:N>" value="<?SIEVE:SCRIPT:HTEXT("X")>">
</div>
<div id="div_nocompare<?ITERATE:N>"><?_("(All messages)")></div>
<div id="div_size<?ITERATE:N>">
<select id="sizecomp<?ITERATE:N>" name="sizecomp<?ITERATE:N>" size=1 onChange="UpdateRules();">
-<option <?%("COND:SIEVE:SIZECOMP", 1, 0, 0, #"larger", "selected", ""> value="larger"><?_("is larger than")></option>
-<option <?%("COND:SIEVE:SIZECOMP", 1, 0, 0, #"smaller", "selected", ""> value="smaler"><?_("is smaller than")></option>
+<option <?%("COND:SIEVE:SIZECOMP", 1, 0, #"larger", "selected", "")> value="larger"><?_("is larger than")></option>
+<option <?%("COND:SIEVE:SIZECOMP", 1, 0, #"smaller", "selected", "")> value="smaller"><?_("is smaller than")></option>
</select>
-<input type="text" id="sizeval<?ITERATE:N>" name="sizeval<?ITERATE:N>" value="<?SIEVE:SCRIPT:SIZE>">
+<input type="text" id="sizeval<?ITERATE:N>" name="sizeval<?ITERATE:N>" value="<?SIEVE:SCRIPT:SIZE>"><?_("bytes")>
</div>
</td>
<td width=20%>
<select id="action<?ITERATE:N>" name="action<?ITERATE:N>" size=1 onChange="UpdateRules();">
-<option <?%("COND:SIEVE:ACTION", 1, 0, 0, #"keep", "selected", "")>><?_("Keep")> </option>
-<option <?%("COND:SIEVE:ACTION", 1, 0, 0, #"discard", "selected", "")>><?_("Discard silently")></option>
-<option <?%("COND:SIEVE:ACTION", 1, 0, 0, #"reject", "selected", "")>><?_("Reject")> </option>
-<option <?%("COND:SIEVE:ACTION", 1, 0, 0, #"fileinto","selected", "")>><?_("Move message to")></option>
-<option <?%("COND:SIEVE:ACTION", 1, 0, 0, #"redirect","selected", "")>><?_("Forward to")> </option>
-<option <?%("COND:SIEVE:ACTION", 1, 0, 0, #"vacation","selected", "")>><?_("Vacation")> </option>
+<option <?%("COND:SIEVE:ACTION", 1, 0, #"keep", "selected", "")> value="keep"><?_("Keep")> </option>
+<option <?%("COND:SIEVE:ACTION", 1, 0, #"discard", "selected", "")> value="discard"><?_("Discard silently")></option>
+<option <?%("COND:SIEVE:ACTION", 1, 0, #"reject", "selected", "")> value="reject"><?_("Reject")> </option>
+<option <?%("COND:SIEVE:ACTION", 1, 0, #"fileinto", "selected", "")> value="fileinto"><?_("Move message to")></option>
+<option <?%("COND:SIEVE:ACTION", 1, 0, #"redirect", "selected", "")> value="redirect"><?_("Forward to")> </option>
+<option <?%("COND:SIEVE:ACTION", 1, 0, #"vacation", "selected", "")> value="vacation"><?_("Vacation")> </option>
</select>
<div id="div_fileinto<?ITERATE:N>">
</td>
-<td width=10% align="center">< _("and then")></td>
+<td width=10% align="center"><?_("and then")></td>
<td width=20%>
<select name="final<?ITERATE:N>" id="final<?ITERATE:N>" size=1 onChange="UpdateRules();">
<option <?%("COND:SIEVE:FINAL", 1, 0, 0, #"continue", "select", "")> value="continue"><?_("continue processing")></option>
</select>
</td>
</tr>
-</table>