to avoid a little warning
[old-projects.git] / philter / philter / include / philter.js
index 29ee024..e574de5 100644 (file)
@@ -21,6 +21,14 @@ function cleanChilds(Node, nbChilds) {
         Node.removeChild(Node.childNodes[nbChilds]);
 }
 
+function getElement(obj, index) {
+    if(document.getElementById)
+        return document.getElementById(obj);
+    if(document.all)
+        return document.all[obj];
+    return false;
+}
+
 /********** ORDER FORM FUNCTIONS **********/
 
 function order_up() {
@@ -92,16 +100,17 @@ var matches_i = 0;
 function createActionSelect(data,base) {
     var i,j;
     var select = document.createElement("select");
+    var sel = 0;
     select.name = base+'[0]';
 
-    for(i=0, j=0; i<actions_list.length; i++)
-        if(actions_list[i])
-            select.options[j++] = new Option(actions_list[i],i,false,(data==i));
-
-    select.setAttribute("onchange", "changeRow(this,actions_func)");
+    for(i=0, j=0; i<actions_list.length; i++) {
+        if(data==i) sel = j;
+        if(actions_list[i]) select.options[j++] = new Option(actions_list[i],i,false,(data==i));
+    }
 
-    if(select.selectedIndex<0)
-        select.selectedIndex = 0;
+    select.selectedIndex = sel;
+    select.onchange = function () { changeRow(this,actions_func); };
+    
     return select;
 }
 
@@ -115,7 +124,7 @@ function createActionRow(Node,data) {
     var del = document.createElement("input");
     del.setAttribute("type", "submit");
     del.setAttribute("value", "Del");
-    del.setAttribute("onclick", "parentNode.parentNode.removeChild(parentNode)");
+    del.onclick = function () { del.parentNode.parentNode.removeChild(del.parentNode); };
     div.appendChild(del);
 
     div.appendChild(document.createTextNode(" "));
@@ -127,7 +136,7 @@ function createActionRow(Node,data) {
 }
 
 function newAction() {
-    createActionRow(document.all['actions_row'], 0);
+    createActionRow(getElement('actionsRow'), [-1]);
 }
 
 /********** RULE.MATCH FORM FUNCTIONS **********/
@@ -135,16 +144,17 @@ function newAction() {
 function createMatchSelect(data,base) {
     var i,j;
     var select = document.createElement("select");
+    var sel = 0;
     select.name = base+'[0]';
 
-    for(i=0, j=0; i<matches_list.length; i++)
-        if(matches_list[i])
-            select.options[j++] = new Option(matches_list[i],i,false,(data==i));
+    for(i=0, j=0; i<matches_list.length; i++) {
+        if(data==i) sel = j;
+        if(matches_list[i]) select.options[j++] = new Option(matches_list[i],i,false,(data==i));
+    }
 
-    select.setAttribute("onchange", "changeRow(this,matches_func)");
+    select.selectedIndex = sel;
+    select.onchange = function () { changeRow(this,matches_func); };
 
-    if(select.selectedIndex<0)
-        select.selectedIndex = 0;
     return select;
 }
 
@@ -158,7 +168,7 @@ function createMatchRow(Node,data) {
     var del = document.createElement("input");
     del.setAttribute("type", "submit");
     del.setAttribute("value", "Del");
-    del.setAttribute("onclick", "parentNode.parentNode.removeChild(parentNode)");
+    del.onclick = function () { del.parentNode.parentNode.removeChild(del.parentNode); };
     div.appendChild(del);
 
     div.appendChild(document.createTextNode(" "));
@@ -170,7 +180,7 @@ function createMatchRow(Node,data) {
 }
 
 function newMatch() {
-    createMatchRow(document.all['matches_row'], 0);
+    createMatchRow(getElement('matchesRow'), [-1]);
 }
 
 /********** RULE FORM FUNCTIONS **********/
@@ -183,23 +193,24 @@ function changeRow(sel, funcs) {
 
 function createRuleForm() {
     var i;
-    var sel = document.all['order[select]'];
+    var sel = getElement('order[select]');
     var index = sel.options[sel.selectedIndex].value;
 
     actions_i = matches_i = 0;
     current_rule = filter[index];
 
-    document.all['rule[id]'].value = index;
-    document.all['rule[name]'].value = current_rule.name;
-    document.all['rule[all]'][1-current_rule.all].checked = true;
-    document.all['rule[block]'].checked = current_rule.block;
+    getElement('rule[id]').value = index;
+    getElement('rule[name]').value = current_rule.name;
+    var c = (current_rule.all ? '1' : '0');
+    getElement('rule[all'+c+']').checked = true;
+    getElement('rule[block]').checked = current_rule.block;
 
-    var mr = document.all['matches_row'];
+    var mr = getElement('matchesRow');
     cleanChilds(mr,0);
     for(i=0; i<current_rule.matches.length; i++)
         createMatchRow(mr, current_rule.matches[i]);
     
-    var ar = document.all['actions_row'];
+    var ar = getElement('actionsRow');
     cleanChilds(ar,0);
     for(i=0; i<current_rule.actions.length; i++)
         createActionRow(ar, current_rule.actions[i]);