IE bugfixes, js simplification
[old-projects.git] / philter / philter / philter.js
index e574de5..f8fda11 100644 (file)
@@ -21,7 +21,7 @@ function cleanChilds(Node, nbChilds) {
         Node.removeChild(Node.childNodes[nbChilds]);
 }
 
-function getElement(obj, index) {
+function getElement(obj) {
     if(document.getElementById)
         return document.getElementById(obj);
     if(document.all)
@@ -29,11 +29,18 @@ function getElement(obj, index) {
     return false;
 }
 
+function del_onclick(val) {
+    if(window.confirm("Do you really want to delete this email address ?")) {
+        getElement('emailsDel').value = val;
+        document.forms['emails'].submit();
+    }
+}
+
 /********** ORDER FORM FUNCTIONS **********/
 
 function order_up() {
     form = document.forms['order'];
-    select = form.elements['order[select]'];
+    select = getElement('orderSelect');
 
     if(select.selectedIndex>1) {
         i = select.selectedIndex;
@@ -46,14 +53,14 @@ function order_up() {
         select.options[i-1] = new Option(text1,value1,false,false);
         select.selectedIndex = i-1;
 
-        form.elements['order['+value1+']'].value = i-1;
-        form.elements['order['+value2+']'].value = i;
+        form.elements['order'+value1].value = i-1;
+        form.elements['order'+value2].value = i;
     }
 }
 
 function order_dn() {
     form = document.forms['order'];
-    select = form.elements['order[select]'];
+    select = getElement['orderSelect'];
 
     if(select.selectedIndex>0 && select.selectedIndex<select.length-1) {
         i = select.selectedIndex;
@@ -66,8 +73,8 @@ function order_dn() {
         select.options[i+1] = new Option(text1,value1,false,false);
         select.selectedIndex = i+1;
 
-        form.elements['order['+value1+']'].value = i+1;
-        form.elements['order['+value2+']'].value = i;
+        form.elements['order'+value1].value = i+1;
+        form.elements['order'+value2].value = i;
     }
 }
 
@@ -97,12 +104,14 @@ var matches_i = 0;
 
 /********** RULE.ACTION FORM FUNCTIONS **********/
 
-function createActionSelect(data,base) {
+function createActionSelect(div,data) {
     var i,j;
     var select = document.createElement("select");
     var sel = 0;
-    select.name = base+'[0]';
+    select.name = div.name+'[0]';
 
+    // OG: must insert select node before creating options because of IE5 bug
+    div.appendChild(select);
     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));
@@ -116,7 +125,6 @@ function createActionSelect(data,base) {
 
 function createActionRow(Node,data) {
     var div = document.createElement("div");
-    div.className = 'row';
     div.name = 'rule[actions]['+actions_i+']';
     actions_i++;
     Node.appendChild(div);
@@ -129,8 +137,7 @@ function createActionRow(Node,data) {
 
     div.appendChild(document.createTextNode(" "));
 
-    var select = createActionSelect(data[0],div.name);
-    div.appendChild(select);
+    var select = createActionSelect(div,data[0]);
 
     actions_func[select.options[select.selectedIndex].value](div,data);
 }
@@ -141,12 +148,14 @@ function newAction() {
 
 /********** RULE.MATCH FORM FUNCTIONS **********/
 
-function createMatchSelect(data,base) {
+function createMatchSelect(div,data) {
     var i,j;
     var select = document.createElement("select");
     var sel = 0;
-    select.name = base+'[0]';
+    select.name = div.name+'[0]';
 
+    // OG: must insert select node before creating options because of IE5 bug
+    div.appendChild(select);
     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));
@@ -160,7 +169,6 @@ function createMatchSelect(data,base) {
 
 function createMatchRow(Node,data) {
     var div = document.createElement("div");
-    div.className = 'row';
     div.name = 'rule[matches]['+actions_i+']';
     actions_i++;
     Node.appendChild(div);
@@ -173,8 +181,7 @@ function createMatchRow(Node,data) {
 
     div.appendChild(document.createTextNode(" "));
 
-    var select = createMatchSelect(data[0],div.name);
-    div.appendChild(select);
+    var select = createMatchSelect(div,data[0]);
 
     matches_func[select.options[select.selectedIndex].value](div,data);
 }
@@ -193,17 +200,17 @@ function changeRow(sel, funcs) {
 
 function createRuleForm() {
     var i;
-    var sel = getElement('order[select]');
+    var sel = getElement('orderSelect');
     var index = sel.options[sel.selectedIndex].value;
 
     actions_i = matches_i = 0;
     current_rule = filter[index];
 
-    getElement('rule[id]').value = index;
-    getElement('rule[name]').value = current_rule.name;
+    getElement('ruleId').value = index;
+    getElement('ruleName').value = current_rule.name;
     var c = (current_rule.all ? '1' : '0');
-    getElement('rule[all'+c+']').checked = true;
-    getElement('rule[block]').checked = current_rule.block;
+    getElement('ruleAll'+c).checked = true;
+    getElement('ruleBlock').checked = current_rule.block;
 
     var mr = getElement('matchesRow');
     cleanChilds(mr,0);